DISK_KERNELSPACE = _constants.DISK_KERNELSPACE
DISK_VALID_ACCESS_MODES = _constants.DISK_VALID_ACCESS_MODES
-# disk replacement mode
-REPLACE_DISK_PRI = "replace_on_primary" # replace disks on primary
-REPLACE_DISK_SEC = "replace_on_secondary" # replace disks on secondary
-REPLACE_DISK_CHG = "replace_new_secondary" # change secondary node
-REPLACE_DISK_AUTO = "replace_auto"
-REPLACE_MODES = compat.UniqueFrozenset([
- REPLACE_DISK_PRI,
- REPLACE_DISK_SEC,
- REPLACE_DISK_CHG,
- REPLACE_DISK_AUTO,
- ])
+REPLACE_DISK_PRI = _constants.REPLACE_DISK_PRI
+REPLACE_DISK_SEC = _constants.REPLACE_DISK_SEC
+REPLACE_DISK_CHG = _constants.REPLACE_DISK_CHG
+REPLACE_DISK_AUTO = _constants.REPLACE_DISK_AUTO
+REPLACE_MODES = _constants.REPLACE_MODES
# Instance export mode
EXPORT_MODE_LOCAL = _constants.EXPORT_MODE_LOCAL
diskAccessSet :: FrozenSet String
diskAccessSet = ConstantUtils.mkSet $ map Types.diskModeToRaw [minBound..]
+-- * Disk replacement mode
+
+replaceDiskAuto :: String
+replaceDiskAuto = Types.replaceDisksModeToRaw ReplaceAuto
+
+replaceDiskChg :: String
+replaceDiskChg = Types.replaceDisksModeToRaw ReplaceNewSecondary
+
+replaceDiskPri :: String
+replaceDiskPri = Types.replaceDisksModeToRaw ReplaceOnPrimary
+
+replaceDiskSec :: String
+replaceDiskSec = Types.replaceDisksModeToRaw ReplaceOnSecondary
+
+replaceModes :: FrozenSet String
+replaceModes =
+ ConstantUtils.mkSet $ map Types.replaceDisksModeToRaw [minBound..]
+
-- * Instance export mode
exportModeLocal :: String
-- ** Disks
--- | Replace disks type.
-$(declareSADT "ReplaceDisksMode"
- [ ("ReplaceOnPrimary", 'C.replaceDiskPri)
- , ("ReplaceOnSecondary", 'C.replaceDiskSec)
- , ("ReplaceNewSecondary", 'C.replaceDiskChg)
- , ("ReplaceAuto", 'C.replaceDiskAuto)
- ])
-$(makeJSONInstance ''ReplaceDisksMode)
-
-- | Disk index type (embedding constraints on the index value via a
-- smart constructor).
newtype DiskIndex = DiskIndex { unDiskIndex :: Int }
, storageFieldToRaw
, DiskAccessMode(..)
, diskAccessModeToRaw
+ , ReplaceDisksMode(..)
+ , replaceDisksModeToRaw
) where
import Control.Monad (liftM)
, ( "DiskKernelspace", "kernelspace")
])
$(THH.makeJSONInstance ''DiskAccessMode)
+
+-- | Replace disks type.
+$(THH.declareLADT ''String "ReplaceDisksMode"
+ [ -- Replace disks on primary
+ ("ReplaceOnPrimary", "replace_on_primary")
+ -- Replace disks on secondary
+ , ("ReplaceOnSecondary", "replace_on_secondary")
+ -- Change secondary node
+ , ("ReplaceNewSecondary", "replace_new_secondary")
+ , ("ReplaceAuto", "replace_auto")
+ ])
+$(THH.makeJSONInstance ''ReplaceDisksMode)