Coverage for manila/common/constants.py: 100%

142 statements  

« prev     ^ index     » next       coverage.py v7.11.0, created at 2026-02-18 22:19 +0000

1# Copyright 2013 OpenStack Foundation 

2# All Rights Reserved. 

3# 

4# Licensed under the Apache License, Version 2.0 (the "License"); you may 

5# not use this file except in compliance with the License. You may obtain 

6# a copy of the License at 

7# 

8# http://www.apache.org/licenses/LICENSE-2.0 

9# 

10# Unless required by applicable law or agreed to in writing, software 

11# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 

12# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 

13# License for the specific language governing permissions and limitations 

14# under the License. 

15 

16# The maximum value a signed INT type may have 

17DB_MAX_INT = 0x7FFFFFFF 

18 

19# The maximum length a display field may have 

20DB_DISPLAY_FIELDS_MAX_LENGTH = 255 

21 

22# SHARE AND GENERAL STATUSES 

23STATUS_CREATING = 'creating' 

24STATUS_CREATING_FROM_SNAPSHOT = 'creating_from_snapshot' 

25STATUS_DELETING = 'deleting' 

26STATUS_DEFERRED_DELETING = 'deferred_deleting' 

27STATUS_DELETED = 'deleted' 

28STATUS_ERROR = 'error' 

29STATUS_ERROR_DELETING = 'error_deleting' 

30STATUS_ERROR_DEFERRED_DELETING = 'error_deferred_deleting' 

31STATUS_AVAILABLE = 'available' 

32STATUS_INACTIVE = 'inactive' 

33STATUS_MANAGING = 'manage_starting' 

34STATUS_MANAGE_ERROR = 'manage_error' 

35STATUS_UNMANAGING = 'unmanage_starting' 

36STATUS_MANAGE_ERROR_UNMANAGING = 'manage_error_unmanage_starting' 

37STATUS_UNMANAGE_ERROR = 'unmanage_error' 

38STATUS_UNMANAGED = 'unmanaged' 

39STATUS_EXTENDING = 'extending' 

40STATUS_EXTENDING_ERROR = 'extending_error' 

41STATUS_SHRINKING = 'shrinking' 

42STATUS_SHRINKING_ERROR = 'shrinking_error' 

43STATUS_MIGRATING = 'migrating' 

44STATUS_MIGRATING_TO = 'migrating_to' 

45STATUS_SHRINKING_POSSIBLE_DATA_LOSS_ERROR = ( 

46 'shrinking_possible_data_loss_error' 

47) 

48STATUS_REPLICATION_CHANGE = 'replication_change' 

49STATUS_RESTORING = 'restoring' 

50STATUS_REVERTING = 'reverting' 

51STATUS_REVERTING_ERROR = 'reverting_error' 

52STATUS_AWAITING_TRANSFER = 'awaiting_transfer' 

53STATUS_BACKUP_CREATING = 'backup_creating' 

54STATUS_BACKUP_RESTORING = 'backup_restoring' 

55STATUS_BACKUP_RESTORING_ERROR = 'backup_restoring_error' 

56STATUS_ENSURING = 'ensuring' 

57 

58# Transfer resource type 

59SHARE_RESOURCE_TYPE = 'share' 

60SHARE_ACCESS_RESOURCE_TYPE = 'access_rule' 

61 

62# Access rule states 

63ACCESS_STATE_QUEUED_TO_APPLY = 'queued_to_apply' 

64ACCESS_STATE_QUEUED_TO_DENY = 'queued_to_deny' 

65ACCESS_STATE_QUEUED_TO_UPDATE = 'queued_to_update' 

66ACCESS_STATE_APPLYING = 'applying' 

67ACCESS_STATE_DENYING = 'denying' 

68ACCESS_STATE_UPDATING = 'updating' 

69ACCESS_STATE_ACTIVE = 'active' 

70ACCESS_STATE_ERROR = 'error' 

71ACCESS_STATE_DELETED = 'deleted' 

72 

73# Share instance "access_rules_status" field values 

74SHARE_INSTANCE_RULES_SYNCING = 'syncing' 

75SHARE_INSTANCE_RULES_ERROR = 'error' 

76 

77# States/statuses for multiple resources 

78STATUS_NEW = 'new' 

79STATUS_OUT_OF_SYNC = 'out_of_sync' 

80STATUS_ACTIVE = 'active' 

81 

82# Share server migration statuses 

83STATUS_SERVER_MIGRATING = 'server_migrating' 

84STATUS_SERVER_MIGRATING_TO = 'server_migrating_to' 

85 

86# Share server update statuses 

87STATUS_SERVER_NETWORK_CHANGE = 'network_change' 

88 

89# Share network statuses 

90STATUS_NETWORK_ACTIVE = 'active' 

91STATUS_NETWORK_ERROR = 'error' 

92STATUS_NETWORK_CHANGE = 'network_change' 

93 

94ACCESS_RULES_STATES = ( 

95 ACCESS_STATE_QUEUED_TO_APPLY, 

96 ACCESS_STATE_QUEUED_TO_DENY, 

97 ACCESS_STATE_QUEUED_TO_UPDATE, 

98 ACCESS_STATE_APPLYING, 

99 ACCESS_STATE_DENYING, 

100 ACCESS_STATE_UPDATING, 

101 ACCESS_STATE_ACTIVE, 

102 ACCESS_STATE_ERROR, 

103 ACCESS_STATE_DELETED, 

104) 

105# Share and share server migration task states 

106TASK_STATE_MIGRATION_STARTING = 'migration_starting' 

107TASK_STATE_MIGRATION_IN_PROGRESS = 'migration_in_progress' 

108TASK_STATE_MIGRATION_COMPLETING = 'migration_completing' 

109TASK_STATE_MIGRATION_SUCCESS = 'migration_success' 

110TASK_STATE_MIGRATION_ERROR = 'migration_error' 

111TASK_STATE_MIGRATION_CANCELLED = 'migration_cancelled' 

112TASK_STATE_MIGRATION_CANCEL_IN_PROGRESS = 'migration_cancel_in_progress' 

113TASK_STATE_MIGRATION_DRIVER_STARTING = 'migration_driver_starting' 

114TASK_STATE_MIGRATION_DRIVER_IN_PROGRESS = 'migration_driver_in_progress' 

115TASK_STATE_MIGRATION_DRIVER_PHASE1_DONE = 'migration_driver_phase1_done' 

116# Share statuses used by data service and host assisted migration 

117TASK_STATE_DATA_COPYING_STARTING = 'data_copying_starting' 

118TASK_STATE_DATA_COPYING_IN_PROGRESS = 'data_copying_in_progress' 

119TASK_STATE_DATA_COPYING_COMPLETING = 'data_copying_completing' 

120TASK_STATE_DATA_COPYING_COMPLETED = 'data_copying_completed' 

121TASK_STATE_DATA_COPYING_CANCELLED = 'data_copying_cancelled' 

122TASK_STATE_DATA_COPYING_ERROR = 'data_copying_error' 

123BACKUP_TYPE = "backup_type" 

124 

125BUSY_TASK_STATES = ( 

126 TASK_STATE_MIGRATION_STARTING, 

127 TASK_STATE_MIGRATION_IN_PROGRESS, 

128 TASK_STATE_MIGRATION_COMPLETING, 

129 TASK_STATE_MIGRATION_DRIVER_STARTING, 

130 TASK_STATE_MIGRATION_DRIVER_IN_PROGRESS, 

131 TASK_STATE_MIGRATION_DRIVER_PHASE1_DONE, 

132 TASK_STATE_DATA_COPYING_STARTING, 

133 TASK_STATE_DATA_COPYING_IN_PROGRESS, 

134 TASK_STATE_DATA_COPYING_COMPLETING, 

135 TASK_STATE_DATA_COPYING_COMPLETED, 

136) 

137 

138BUSY_COPYING_STATES = ( 

139 TASK_STATE_DATA_COPYING_STARTING, 

140 TASK_STATE_DATA_COPYING_IN_PROGRESS, 

141 TASK_STATE_DATA_COPYING_COMPLETING, 

142) 

143 

144TRANSITIONAL_STATUSES = ( 

145 STATUS_CREATING, STATUS_DELETING, 

146 STATUS_MANAGING, STATUS_UNMANAGING, 

147 STATUS_EXTENDING, STATUS_SHRINKING, 

148 STATUS_MIGRATING, STATUS_MIGRATING_TO, 

149 STATUS_RESTORING, STATUS_REVERTING, 

150 STATUS_SERVER_MIGRATING, STATUS_SERVER_MIGRATING_TO, 

151 STATUS_BACKUP_RESTORING, STATUS_BACKUP_CREATING, 

152 STATUS_ENSURING, 

153) 

154 

155INVALID_SHARE_INSTANCE_STATUSES_FOR_ACCESS_RULE_UPDATES = ( 

156 TRANSITIONAL_STATUSES 

157) 

158 

159SUPPORTED_ENCRYPTION_TYPES = ['share', 'share_server'] 

160 

161SUPPORTED_SHARE_PROTOCOLS = ( 

162 'NFS', 'CIFS', 'GLUSTERFS', 'HDFS', 'CEPHFS', 'MAPRFS') 

163 

164SECURITY_SERVICES_ALLOWED_TYPES = ['active_directory', 'ldap', 'kerberos'] 

165 

166LIKE_FILTER = ['name~', 'description~'] 

167 

168NFS_EXPORTS_FILE = '/etc/exports' 

169NFS_EXPORTS_FILE_TEMP = '/var/lib/nfs/etab' 

170 

171MOUNT_FILE = '/etc/fstab' 

172MOUNT_FILE_TEMP = '/etc/mtab' 

173 

174# Below represented ports are ranges (from, to) 

175CIFS_PORTS = ( 

176 ("tcp", (445, 445)), 

177 ("tcp", (137, 139)), 

178 ("udp", (137, 139)), 

179 ("udp", (445, 445)), 

180) 

181NFS_PORTS = ( 

182 ("tcp", (2049, 2049)), 

183 ("udp", (2049, 2049)), 

184) 

185SSH_PORTS = ( 

186 ("tcp", (22, 22)), 

187) 

188PING_PORTS = ( 

189 ("icmp", (-1, -1)), 

190) 

191WINRM_PORTS = ( 

192 ("tcp", (5985, 5986)), 

193) 

194 

195SERVICE_INSTANCE_SECGROUP_DATA = ( 

196 CIFS_PORTS + NFS_PORTS + PING_PORTS + WINRM_PORTS) 

197 

198ACCESS_LEVEL_RW = 'rw' 

199ACCESS_LEVEL_RO = 'ro' 

200 

201ACCESS_LEVELS = ( 

202 ACCESS_LEVEL_RW, 

203 ACCESS_LEVEL_RO, 

204) 

205 

206SHARE_STATUSES = ( 

207 STATUS_CREATING, 

208 STATUS_CREATING_FROM_SNAPSHOT, 

209 STATUS_DELETING, 

210 STATUS_DEFERRED_DELETING, 

211 STATUS_DELETED, 

212 STATUS_ERROR, 

213 STATUS_ERROR_DELETING, 

214 STATUS_ERROR_DEFERRED_DELETING, 

215 STATUS_AVAILABLE, 

216 STATUS_MANAGING, 

217 STATUS_MANAGE_ERROR, 

218 STATUS_UNMANAGING, 

219 STATUS_MANAGE_ERROR_UNMANAGING, 

220 STATUS_UNMANAGE_ERROR, 

221 STATUS_UNMANAGED, 

222 STATUS_EXTENDING, 

223 STATUS_EXTENDING_ERROR, 

224 STATUS_SHRINKING, 

225 STATUS_SHRINKING_ERROR, 

226 STATUS_MIGRATING, 

227 STATUS_MIGRATING_TO, 

228 STATUS_SHRINKING_POSSIBLE_DATA_LOSS_ERROR, 

229 STATUS_REPLICATION_CHANGE, 

230 STATUS_RESTORING, 

231 STATUS_REVERTING, 

232 STATUS_REVERTING_ERROR, 

233 STATUS_AWAITING_TRANSFER, 

234 STATUS_BACKUP_CREATING, 

235 STATUS_BACKUP_RESTORING, 

236 STATUS_BACKUP_RESTORING_ERROR, 

237 STATUS_ENSURING, 

238 STATUS_SERVER_MIGRATING, 

239 STATUS_SERVER_MIGRATING_TO, 

240) 

241 

242TASK_STATE_STATUSES = ( 

243 TASK_STATE_MIGRATION_STARTING, 

244 TASK_STATE_MIGRATION_IN_PROGRESS, 

245 TASK_STATE_MIGRATION_COMPLETING, 

246 TASK_STATE_MIGRATION_SUCCESS, 

247 TASK_STATE_MIGRATION_ERROR, 

248 TASK_STATE_MIGRATION_CANCELLED, 

249 TASK_STATE_MIGRATION_DRIVER_IN_PROGRESS, 

250 TASK_STATE_MIGRATION_DRIVER_PHASE1_DONE, 

251 TASK_STATE_DATA_COPYING_STARTING, 

252 TASK_STATE_DATA_COPYING_IN_PROGRESS, 

253 TASK_STATE_DATA_COPYING_COMPLETING, 

254 TASK_STATE_DATA_COPYING_COMPLETED, 

255 TASK_STATE_DATA_COPYING_CANCELLED, 

256 TASK_STATE_DATA_COPYING_ERROR, 

257 None, 

258) 

259 

260SERVER_TASK_STATE_STATUSES = ( 

261 TASK_STATE_MIGRATION_STARTING, 

262 TASK_STATE_MIGRATION_IN_PROGRESS, 

263 TASK_STATE_MIGRATION_COMPLETING, 

264 TASK_STATE_MIGRATION_SUCCESS, 

265 TASK_STATE_MIGRATION_ERROR, 

266 TASK_STATE_MIGRATION_CANCEL_IN_PROGRESS, 

267 TASK_STATE_MIGRATION_CANCELLED, 

268 TASK_STATE_MIGRATION_DRIVER_IN_PROGRESS, 

269 TASK_STATE_MIGRATION_DRIVER_PHASE1_DONE, 

270 None, 

271) 

272 

273SHARE_SERVER_STATUSES = ( 

274 STATUS_ACTIVE, 

275 STATUS_ERROR, 

276 STATUS_DELETING, 

277 STATUS_CREATING, 

278 STATUS_MANAGING, 

279 STATUS_UNMANAGING, 

280 STATUS_UNMANAGE_ERROR, 

281 STATUS_MANAGE_ERROR, 

282 STATUS_INACTIVE, 

283 STATUS_SERVER_MIGRATING, 

284 STATUS_SERVER_MIGRATING_TO, 

285 STATUS_SERVER_NETWORK_CHANGE, 

286) 

287 

288SHARE_NETWORK_STATUSES = ( 

289 STATUS_NETWORK_ACTIVE, 

290 STATUS_NETWORK_ERROR, 

291 STATUS_NETWORK_CHANGE, 

292) 

293 

294REPLICA_STATE_ACTIVE = 'active' 

295REPLICA_STATE_IN_SYNC = 'in_sync' 

296REPLICA_STATE_OUT_OF_SYNC = 'out_of_sync' 

297 

298REPLICATION_TYPE_READABLE = 'readable' 

299REPLICATION_TYPE_WRITABLE = 'writable' 

300REPLICATION_TYPE_DR = 'dr' 

301 

302 

303POLICY_EXTEND_BEYOND_MAX_SHARE_SIZE = 'extend_beyond_max_share_size_spec' 

304 

305RESOURCE_ACTION_DELETE = 'delete' # delete, soft-delete, unmanage 

306RESOURCE_ACTION_SHOW = 'show' 

307 

308RESOURCE_LOCK_RESOURCE_TYPES = ( 

309 SHARE_RESOURCE_TYPE, 

310 SHARE_ACCESS_RESOURCE_TYPE, 

311) 

312 

313RESOURCE_LOCK_RESOURCE_ACTIONS = ( 

314 RESOURCE_ACTION_DELETE, 

315 RESOURCE_ACTION_SHOW, 

316) 

317 

318RESOURCE_LOCK_ACTIONS_MAPPING = { 

319 SHARE_RESOURCE_TYPE: [RESOURCE_ACTION_DELETE], 

320 SHARE_ACCESS_RESOURCE_TYPE: [RESOURCE_ACTION_DELETE, RESOURCE_ACTION_SHOW], 

321} 

322 

323DISALLOWED_STATUS_WHEN_LOCKING_SHARES = ( 

324 STATUS_DELETING, 

325 STATUS_ERROR_DELETING, 

326 STATUS_UNMANAGING, 

327 STATUS_MANAGE_ERROR_UNMANAGING, 

328 STATUS_UNMANAGE_ERROR, 

329 STATUS_UNMANAGED, # not possible, future proofing 

330 STATUS_DELETED, # not possible, future proofing 

331) 

332 

333DISALLOWED_STATUS_WHEN_LOCKING_ACCESS_RULES = ( 

334 ACCESS_STATE_QUEUED_TO_DENY, 

335 ACCESS_STATE_DENYING, 

336 ACCESS_STATE_ERROR, 

337 ACCESS_STATE_DELETED, 

338) 

339 

340SHARE_LOCKED_BY_ACCESS_LOCK_REASON = 'Locked by access lock: %(lock_id)s' 

341 

342 

343class ExtraSpecs(object): 

344 

345 # Extra specs key names 

346 DRIVER_HANDLES_SHARE_SERVERS = "driver_handles_share_servers" 

347 SNAPSHOT_SUPPORT = "snapshot_support" 

348 REPLICATION_TYPE_SPEC = "replication_type" 

349 CREATE_SHARE_FROM_SNAPSHOT_SUPPORT = "create_share_from_snapshot_support" 

350 REVERT_TO_SNAPSHOT_SUPPORT = "revert_to_snapshot_support" 

351 MOUNT_SNAPSHOT_SUPPORT = "mount_snapshot_support" 

352 MOUNT_POINT_NAME_SUPPORT = "mount_point_name_support" 

353 AVAILABILITY_ZONES = "availability_zones" 

354 ENCRYPTION_SUPPORT = "encryption_support" 

355 PROVISIONING_MAX_SHARE_SIZE = "provisioning:max_share_size" 

356 PROVISIONING_MIN_SHARE_SIZE = "provisioning:min_share_size" 

357 PROVISIONING_MAX_SHARE_EXTEND_SIZE = "provisioning:max_share_extend_size" 

358 PROVISIONING_MOUNT_POINT_PREFIX = "provisioning:mount_point_prefix" 

359 

360 # Extra specs containers 

361 REQUIRED = ( 

362 DRIVER_HANDLES_SHARE_SERVERS, 

363 ) 

364 

365 OPTIONAL = ( 

366 SNAPSHOT_SUPPORT, 

367 CREATE_SHARE_FROM_SNAPSHOT_SUPPORT, 

368 REVERT_TO_SNAPSHOT_SUPPORT, 

369 REPLICATION_TYPE_SPEC, 

370 MOUNT_SNAPSHOT_SUPPORT, 

371 MOUNT_POINT_NAME_SUPPORT, 

372 AVAILABILITY_ZONES, 

373 ENCRYPTION_SUPPORT, 

374 PROVISIONING_MAX_SHARE_SIZE, 

375 PROVISIONING_MIN_SHARE_SIZE, 

376 PROVISIONING_MAX_SHARE_EXTEND_SIZE, 

377 PROVISIONING_MOUNT_POINT_PREFIX, 

378 ) 

379 

380 # NOTE(cknight): Some extra specs are necessary parts of the Manila API and 

381 # should be visible to non-admin users. REQUIRED specs are user-visible, as 

382 # are a handful of community-agreed standardized OPTIONAL ones. 

383 TENANT_VISIBLE = REQUIRED + OPTIONAL 

384 

385 BOOLEAN = ( 

386 DRIVER_HANDLES_SHARE_SERVERS, 

387 SNAPSHOT_SUPPORT, 

388 CREATE_SHARE_FROM_SNAPSHOT_SUPPORT, 

389 REVERT_TO_SNAPSHOT_SUPPORT, 

390 MOUNT_SNAPSHOT_SUPPORT, 

391 ) 

392 

393 # NOTE(cknight): Some extra specs are optional, but a nominal (typically 

394 # False, but may be non-boolean) default value for each is still needed 

395 # when creating shares. 

396 INFERRED_OPTIONAL_MAP = { 

397 SNAPSHOT_SUPPORT: False, 

398 CREATE_SHARE_FROM_SNAPSHOT_SUPPORT: False, 

399 REVERT_TO_SNAPSHOT_SUPPORT: False, 

400 MOUNT_SNAPSHOT_SUPPORT: False, 

401 } 

402 

403 REPLICATION_TYPES = ('writable', 'readable', 'dr') 

404 

405 ENCRYPTION_TYPES = ('share', 'share_server') 

406 

407 

408class AdminOnlyMetadata(object): 

409 AFFINITY_KEY = "__affinity_same_host" 

410 ANTI_AFFINITY_KEY = "__affinity_different_host" 

411 PREFERRED_KEY = "preferred" 

412 

413 SCHEDULER_FILTERS = [ 

414 AFFINITY_KEY, 

415 ANTI_AFFINITY_KEY, 

416 ] 

417 

418 EXPORT_LOCATION_KEYS = [ 

419 PREFERRED_KEY, 

420 ]