cubefs

Форк
0
137 строк · 2.8 Кб
1
// Copyright 2022 The CubeFS Authors.
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
//     http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
12
// implied. See the License for the specific language governing
13
// permissions and limitations under the License.
14

15
package proto
16

17
import (
18
	"math"
19
)
20

21
// service names
22
const (
23
	ServiceNameBlobNode  = "BLOBNODE"
24
	ServiceNameProxy     = "PROXY"
25
	ServiceNameScheduler = "SCHEDULER"
26
)
27

28
type DiskStatus uint8
29

30
// disk status
31
const (
32
	DiskStatusNormal    = DiskStatus(iota + 1) // 1
33
	DiskStatusBroken                           // 2
34
	DiskStatusRepairing                        // 3
35
	DiskStatusRepaired                         // 4
36
	DiskStatusDropped                          // 5
37
	DiskStatusMax                              // 6
38
)
39

40
func (status DiskStatus) IsValid() bool {
41
	return status >= DiskStatusNormal && status < DiskStatusMax
42
}
43

44
func (status DiskStatus) String() string {
45
	switch status {
46
	case DiskStatusNormal:
47
		return "normal"
48
	case DiskStatusBroken:
49
		return "broken"
50
	case DiskStatusRepairing:
51
		return "repairing"
52
	case DiskStatusRepaired:
53
		return "repaired"
54
	case DiskStatusDropped:
55
		return "dropped"
56
	default:
57
		return "unknown"
58
	}
59
}
60

61
const (
62
	InvalidDiskID = DiskID(0)
63
	InValidBlobID = BlobID(0)
64
	InvalidCrc32  = uint32(0)
65
	InvalidVid    = Vid(0)
66
	InvalidVuid   = Vuid(0)
67
)
68

69
const (
70
	MaxBlobID = BlobID(math.MaxUint64)
71
)
72

73
// volume status
74
type VolumeStatus uint8
75

76
func (status VolumeStatus) IsValid() bool {
77
	return status > volumeStatusMin && status < volumeStatusMax
78
}
79

80
func (status VolumeStatus) String() string {
81
	switch status {
82
	case VolumeStatusIdle:
83
		return "idle"
84
	case VolumeStatusActive:
85
		return "active"
86
	case VolumeStatusLock:
87
		return "lock"
88
	case VolumeStatusUnlocking:
89
		return "unlocking"
90
	default:
91
		return "unknown"
92
	}
93
}
94

95
const (
96
	volumeStatusMin = VolumeStatus(iota)
97
	VolumeStatusIdle
98
	VolumeStatusActive
99
	VolumeStatusLock
100
	VolumeStatusUnlocking
101
	volumeStatusMax
102
)
103

104
// system config key,not allow delete
105
const (
106
	CodeModeConfigKey    = "code_mode"
107
	VolumeReserveSizeKey = "volume_reserve_size"
108
	VolumeChunkSizeKey   = "volume_chunk_size"
109
)
110

111
func IsSysConfigKey(key string) bool {
112
	switch key {
113
	case VolumeChunkSizeKey, VolumeReserveSizeKey, CodeModeConfigKey:
114
		return true
115
	default:
116
		return false
117
	}
118
}
119

120
type TaskSwitch string
121

122
const (
123
	TaskSwitchDataInspect TaskSwitch = "data_inspect"
124
)
125

126
func (t TaskSwitch) Valid() bool {
127
	switch t {
128
	case TaskSwitchDataInspect:
129
		return true
130
	default:
131
		return false
132
	}
133
}
134

135
func (t TaskSwitch) String() string {
136
	return string(t)
137
}
138

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.