2 from enum
import Enum
, unique
4 from ...exception
import VolumeException
8 class SubvolumeTypes(Enum
):
9 TYPE_NORMAL
= "subvolume"
13 def from_value(value
):
14 if value
== "subvolume":
15 return SubvolumeTypes
.TYPE_NORMAL
17 return SubvolumeTypes
.TYPE_CLONE
19 raise VolumeException(-errno
.EINVAL
, "invalid subvolume type '{0}'".format(value
))
23 class SubvolumeStates(Enum
):
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'
33 def from_value(value
):
35 return SubvolumeStates
.STATE_INIT
36 if value
== "pending":
37 return SubvolumeStates
.STATE_PENDING
38 if value
== "in-progress":
39 return SubvolumeStates
.STATE_INPROGRESS
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
49 raise VolumeException(-errno
.EINVAL
, "invalid state '{0}'".format(value
))
53 class SubvolumeActions(Enum
):
62 class SubvolumeFeatures(Enum
):
63 FEATURE_SNAPSHOT_CLONE
= "snapshot-clone"
64 FEATURE_SNAPSHOT_RETENTION
= "snapshot-retention"
65 FEATURE_SNAPSHOT_AUTOPROTECT
= "snapshot-autoprotect"