]> git.proxmox.com Git - ceph.git/blob - ceph/src/pybind/mgr/volumes/fs/operations/versions/subvolume_attrs.py
import quincy beta 17.1.0
[ceph.git] / ceph / src / pybind / mgr / volumes / fs / operations / versions / subvolume_attrs.py
1 import errno
2 from enum import Enum, unique
3
4 from ...exception import VolumeException
5
6
7 @unique
8 class SubvolumeTypes(Enum):
9 TYPE_NORMAL = "subvolume"
10 TYPE_CLONE = "clone"
11
12 @staticmethod
13 def from_value(value):
14 if value == "subvolume":
15 return SubvolumeTypes.TYPE_NORMAL
16 if value == "clone":
17 return SubvolumeTypes.TYPE_CLONE
18
19 raise VolumeException(-errno.EINVAL, "invalid subvolume type '{0}'".format(value))
20
21
22 @unique
23 class SubvolumeStates(Enum):
24 STATE_INIT = 'init'
25 STATE_PENDING = 'pending'
26 STATE_INPROGRESS = 'in-progress'
27 STATE_FAILED = 'failed'
28 STATE_COMPLETE = 'complete'
29 STATE_CANCELED = 'canceled'
30 STATE_RETAINED = 'snapshot-retained'
31
32 @staticmethod
33 def from_value(value):
34 if value == "init":
35 return SubvolumeStates.STATE_INIT
36 if value == "pending":
37 return SubvolumeStates.STATE_PENDING
38 if value == "in-progress":
39 return SubvolumeStates.STATE_INPROGRESS
40 if value == "failed":
41 return SubvolumeStates.STATE_FAILED
42 if value == "complete":
43 return SubvolumeStates.STATE_COMPLETE
44 if value == "canceled":
45 return SubvolumeStates.STATE_CANCELED
46 if value == "snapshot-retained":
47 return SubvolumeStates.STATE_RETAINED
48
49 raise VolumeException(-errno.EINVAL, "invalid state '{0}'".format(value))
50
51
52 @unique
53 class SubvolumeActions(Enum):
54 ACTION_NONE = 0
55 ACTION_SUCCESS = 1
56 ACTION_FAILED = 2
57 ACTION_CANCELLED = 3
58 ACTION_RETAINED = 4
59
60
61 @unique
62 class SubvolumeFeatures(Enum):
63 FEATURE_SNAPSHOT_CLONE = "snapshot-clone"
64 FEATURE_SNAPSHOT_RETENTION = "snapshot-retention"
65 FEATURE_SNAPSHOT_AUTOPROTECT = "snapshot-autoprotect"