Safe Haskell | None |
---|
Implementation of the Ganeti config objects.
Some object fields are not implemented yet, and as such they are commented out below.
- fillDict :: Ord k => Map k v -> Map k v -> [k] -> Map k v
- data VType
- = VTypeString
- | VTypeMaybeString
- | VTypeBool
- | VTypeSize
- | VTypeInt
- vTypeFromRaw :: forall m. Monad m => String -> m VType
- vTypeToRaw :: VType -> String
- type HvParams = Container JSValue
- type OsParams = Container String
- class TimeStampObject a where
- class UuidObject a where
- uuidOf :: a -> String
- class SerialNoObject a where
- serialOf :: a -> Int
- class TagsObject a where
- tagsOf :: a -> Set String
- data NodeRole
- = NROffline
- | NRDrained
- | NRRegular
- | NRCandidate
- | NRMaster
- nodeRoleFromRaw :: forall m. Monad m => String -> m NodeRole
- nodeRoleToRaw :: NodeRole -> String
- roleDescription :: NodeRole -> String
- data Ip4Address = Ip4Address Word8 Word8 Word8 Word8
- readIp4Address :: (Applicative m, Monad m) => String -> m Ip4Address
- nextIp4Address :: Ip4Address -> Ip4Address
- data Ip4Network = Ip4Network Ip4Address Word8
- data Network = Network {
- networkName :: NonEmptyString
- networkMacPrefix :: Maybe String
- networkNetwork :: Ip4Network
- networkNetwork6 :: Maybe String
- networkGateway :: Maybe Ip4Address
- networkGateway6 :: Maybe String
- networkReservations :: Maybe String
- networkExtReservations :: Maybe String
- networkUuid :: String
- networkCtime :: Double
- networkMtime :: Double
- networkSerial :: Int
- networkTags :: TagSet
- loadNetwork :: JSValue -> Result Network
- saveNetwork :: Network -> JSValue
- toDictNetwork :: Network -> [(String, JSValue)]
- data FilledNicParams = FilledNicParams {}
- data PartialNicParams = PartialNicParams {}
- allNicParamFields :: [String]
- fillNicParams :: FilledNicParams -> PartialNicParams -> FilledNicParams
- loadPartialNicParams :: JSValue -> Result PartialNicParams
- savePartialNicParams :: PartialNicParams -> JSValue
- toDictPartialNicParams :: PartialNicParams -> [(String, JSValue)]
- loadFilledNicParams :: JSValue -> Result FilledNicParams
- saveFilledNicParams :: FilledNicParams -> JSValue
- toDictFilledNicParams :: FilledNicParams -> [(String, JSValue)]
- data PartialNic = PartialNic {
- nicMac :: String
- nicIp :: Maybe String
- nicNicparams :: PartialNicParams
- nicNetwork :: Maybe String
- nicName :: Maybe String
- nicUuid :: String
- loadPartialNic :: JSValue -> Result PartialNic
- savePartialNic :: PartialNic -> JSValue
- toDictPartialNic :: PartialNic -> [(String, JSValue)]
- data DiskMode
- = DiskRdOnly
- | DiskRdWr
- diskModeFromRaw :: forall m. Monad m => String -> m DiskMode
- diskModeToRaw :: DiskMode -> String
- data DiskType
- diskTypeFromRaw :: forall m. Monad m => String -> m DiskType
- diskTypeToRaw :: DiskType -> String
- data BlockDriver = BlockDrvManual
- blockDriverFromRaw :: forall m. Monad m => String -> m BlockDriver
- blockDriverToRaw :: BlockDriver -> String
- devType :: String
- data DiskLogicalId
- = LIDPlain String String
- | LIDDrbd8 String String Int Int Int String
- | LIDFile FileDriver String
- | LIDBlockDev BlockDriver String
- | LIDRados String String
- | LIDExt String String
- lidDiskType :: DiskLogicalId -> DiskType
- lidEncodeType :: DiskLogicalId -> [(String, JSValue)]
- encodeDLId :: DiskLogicalId -> JSValue
- encodeFullDLId :: DiskLogicalId -> (JSValue, [(String, JSValue)])
- decodeDLId :: [(String, JSValue)] -> JSValue -> Result DiskLogicalId
- data Disk = Disk {
- diskLogicalId :: DiskLogicalId
- diskChildren :: [Disk]
- diskIvName :: String
- diskSize :: Int
- diskMode :: DiskMode
- diskName :: Maybe String
- diskUuid :: String
- loadDisk :: JSValue -> Result Disk
- saveDisk :: Disk -> JSValue
- toDictDisk :: Disk -> [(String, JSValue)]
- data AdminState
- = AdminOffline
- | AdminDown
- | AdminUp
- adminStateFromRaw :: forall m. Monad m => String -> m AdminState
- adminStateToRaw :: AdminState -> String
- data FilledBeParams = FilledBeParams {
- bepMinmem :: Int
- bepMaxmem :: Int
- bepVcpus :: Int
- bepAutoBalance :: Bool
- data PartialBeParams = PartialBeParams {
- bepMinmemP :: Maybe Int
- bepMaxmemP :: Maybe Int
- bepVcpusP :: Maybe Int
- bepAutoBalanceP :: Maybe Bool
- allBeParamFields :: [String]
- fillBeParams :: FilledBeParams -> PartialBeParams -> FilledBeParams
- loadPartialBeParams :: JSValue -> Result PartialBeParams
- savePartialBeParams :: PartialBeParams -> JSValue
- toDictPartialBeParams :: PartialBeParams -> [(String, JSValue)]
- loadFilledBeParams :: JSValue -> Result FilledBeParams
- saveFilledBeParams :: FilledBeParams -> JSValue
- toDictFilledBeParams :: FilledBeParams -> [(String, JSValue)]
- data Instance = Instance {
- instName :: String
- instPrimaryNode :: String
- instOs :: String
- instHypervisor :: Hypervisor
- instHvparams :: HvParams
- instBeparams :: PartialBeParams
- instOsparams :: OsParams
- instAdminState :: AdminState
- instNics :: [PartialNic]
- instDisks :: [Disk]
- instDiskTemplate :: DiskTemplate
- instDisksActive :: Bool
- instNetworkPort :: Maybe Int
- instCtime :: Double
- instMtime :: Double
- instUuid :: String
- instSerial :: Int
- instTags :: TagSet
- loadInstance :: JSValue -> Result Instance
- saveInstance :: Instance -> JSValue
- toDictInstance :: Instance -> [(String, JSValue)]
- data FilledISpecParams = FilledISpecParams {
- ispecMemorySize :: Int
- ispecDiskSize :: Int
- ispecDiskCount :: Int
- ispecCpuCount :: Int
- ispecNicCount :: Int
- ispecSpindleUse :: Int
- data PartialISpecParams = PartialISpecParams {
- ispecMemorySizeP :: Maybe Int
- ispecDiskSizeP :: Maybe Int
- ispecDiskCountP :: Maybe Int
- ispecCpuCountP :: Maybe Int
- ispecNicCountP :: Maybe Int
- ispecSpindleUseP :: Maybe Int
- allISpecParamFields :: [String]
- fillISpecParams :: FilledISpecParams -> PartialISpecParams -> FilledISpecParams
- loadPartialISpecParams :: JSValue -> Result PartialISpecParams
- savePartialISpecParams :: PartialISpecParams -> JSValue
- toDictPartialISpecParams :: PartialISpecParams -> [(String, JSValue)]
- loadFilledISpecParams :: JSValue -> Result FilledISpecParams
- saveFilledISpecParams :: FilledISpecParams -> JSValue
- toDictFilledISpecParams :: FilledISpecParams -> [(String, JSValue)]
- data MinMaxISpecs = MinMaxISpecs {}
- loadMinMaxISpecs :: JSValue -> Result MinMaxISpecs
- saveMinMaxISpecs :: MinMaxISpecs -> JSValue
- toDictMinMaxISpecs :: MinMaxISpecs -> [(String, JSValue)]
- data PartialIPolicy = PartialIPolicy {
- ipolicyMinMaxISpecsP :: Maybe [MinMaxISpecs]
- ipolicyStdSpecP :: Maybe PartialISpecParams
- ipolicySpindleRatioP :: Maybe Double
- ipolicyVcpuRatioP :: Maybe Double
- ipolicyDiskTemplatesP :: Maybe [DiskTemplate]
- loadPartialIPolicy :: JSValue -> Result PartialIPolicy
- savePartialIPolicy :: PartialIPolicy -> JSValue
- toDictPartialIPolicy :: PartialIPolicy -> [(String, JSValue)]
- data FilledIPolicy = FilledIPolicy {
- ipolicyMinMaxISpecs :: [MinMaxISpecs]
- ipolicyStdSpec :: FilledISpecParams
- ipolicySpindleRatio :: Double
- ipolicyVcpuRatio :: Double
- ipolicyDiskTemplates :: [DiskTemplate]
- loadFilledIPolicy :: JSValue -> Result FilledIPolicy
- saveFilledIPolicy :: FilledIPolicy -> JSValue
- toDictFilledIPolicy :: FilledIPolicy -> [(String, JSValue)]
- fillIPolicy :: FilledIPolicy -> PartialIPolicy -> FilledIPolicy
- data FilledNDParams = FilledNDParams {
- ndpOobProgram :: String
- ndpSpindleCount :: Int
- ndpExclusiveStorage :: Bool
- data PartialNDParams = PartialNDParams {
- ndpOobProgramP :: Maybe String
- ndpSpindleCountP :: Maybe Int
- ndpExclusiveStorageP :: Maybe Bool
- allNDParamFields :: [String]
- fillNDParams :: FilledNDParams -> PartialNDParams -> FilledNDParams
- loadPartialNDParams :: JSValue -> Result PartialNDParams
- savePartialNDParams :: PartialNDParams -> JSValue
- toDictPartialNDParams :: PartialNDParams -> [(String, JSValue)]
- loadFilledNDParams :: JSValue -> Result FilledNDParams
- saveFilledNDParams :: FilledNDParams -> JSValue
- toDictFilledNDParams :: FilledNDParams -> [(String, JSValue)]
- data Node = Node {
- nodeName :: String
- nodePrimaryIp :: String
- nodeSecondaryIp :: String
- nodeMasterCandidate :: Bool
- nodeOffline :: Bool
- nodeDrained :: Bool
- nodeGroup :: String
- nodeMasterCapable :: Bool
- nodeVmCapable :: Bool
- nodeNdparams :: PartialNDParams
- nodePowered :: Bool
- nodeCtime :: Double
- nodeMtime :: Double
- nodeUuid :: String
- nodeSerial :: Int
- nodeTags :: TagSet
- loadNode :: JSValue -> Result Node
- saveNode :: Node -> JSValue
- toDictNode :: Node -> [(String, JSValue)]
- type DiskParams = Container (Container JSValue)
- type Networks = Container PartialNicParams
- data NodeGroup = NodeGroup {
- groupName :: String
- groupMembers :: [String]
- groupNdparams :: PartialNDParams
- groupAllocPolicy :: AllocPolicy
- groupIpolicy :: PartialIPolicy
- groupDiskparams :: DiskParams
- groupNetworks :: Networks
- groupCtime :: Double
- groupMtime :: Double
- groupUuid :: String
- groupSerial :: Int
- groupTags :: TagSet
- loadNodeGroup :: JSValue -> Result NodeGroup
- saveNodeGroup :: NodeGroup -> JSValue
- toDictNodeGroup :: NodeGroup -> [(String, JSValue)]
- data IpFamily
- = IpFamilyV4
- | IpFamilyV6
- ipFamilyFromRaw :: forall m. Monad m => Int -> m IpFamily
- ipFamilyToRaw :: IpFamily -> Int
- ipFamilyToVersion :: IpFamily -> Int
- type ClusterHvParams = Container HvParams
- type OsHvParams = Container ClusterHvParams
- type ClusterBeParams = Container FilledBeParams
- type ClusterOsParams = Container OsParams
- type ClusterNicParams = Container FilledNicParams
- type UidPool = [(Int, Int)]
- data Cluster = Cluster {
- clusterRsahostkeypub :: String
- clusterDsahostkeypub :: Maybe String
- clusterHighestUsedPort :: Int
- clusterTcpudpPortPool :: [Int]
- clusterMacPrefix :: String
- clusterVolumeGroupName :: Maybe String
- clusterReservedLvs :: [String]
- clusterDrbdUsermodeHelper :: Maybe String
- clusterMasterNode :: String
- clusterMasterIp :: String
- clusterMasterNetdev :: String
- clusterMasterNetmask :: Int
- clusterUseExternalMipScript :: Bool
- clusterClusterName :: String
- clusterFileStorageDir :: String
- clusterSharedFileStorageDir :: String
- clusterEnabledHypervisors :: [Hypervisor]
- clusterHvparams :: ClusterHvParams
- clusterOsHvp :: OsHvParams
- clusterBeparams :: ClusterBeParams
- clusterOsparams :: ClusterOsParams
- clusterNicparams :: ClusterNicParams
- clusterNdparams :: FilledNDParams
- clusterDiskparams :: DiskParams
- clusterCandidatePoolSize :: Int
- clusterModifyEtcHosts :: Bool
- clusterModifySshSetup :: Bool
- clusterMaintainNodeHealth :: Bool
- clusterUidPool :: UidPool
- clusterDefaultIallocator :: String
- clusterHiddenOs :: [String]
- clusterBlacklistedOs :: [String]
- clusterPrimaryIpFamily :: IpFamily
- clusterPreallocWipeDisks :: Bool
- clusterIpolicy :: FilledIPolicy
- clusterEnabledDiskTemplates :: [DiskTemplate]
- clusterCtime :: Double
- clusterMtime :: Double
- clusterUuid :: String
- clusterSerial :: Int
- clusterTags :: TagSet
- loadCluster :: JSValue -> Result Cluster
- saveCluster :: Cluster -> JSValue
- toDictCluster :: Cluster -> [(String, JSValue)]
- data ConfigData = ConfigData {}
- loadConfigData :: JSValue -> Result ConfigData
- saveConfigData :: ConfigData -> JSValue
- toDictConfigData :: ConfigData -> [(String, JSValue)]
Generic definitions
fillDict :: Ord k => Map k v -> Map k v -> [k] -> Map k vSource
Fills one map with keys from the other map, if not already existing. Mirrors objects.py:FillDict.
The VTYPES, a mini-type system in Python.
vTypeFromRaw :: forall m. Monad m => String -> m VTypeSource
vTypeToRaw :: VType -> StringSource
type HvParams = Container JSValueSource
The hypervisor parameter type. This is currently a simple map, without type checking on key/value pairs.
type OsParams = Container StringSource
The OS parameters type. This is, and will remain, a string container, since the keys are dynamically declared by the OSes, and the values are always strings.
class TimeStampObject a whereSource
Class of objects that have timestamps.
class UuidObject a whereSource
Class of objects that have an UUID.
class SerialNoObject a whereSource
Class of object that have a serial number.
class TagsObject a whereSource
Class of objects that have tags.
Node role object
nodeRoleFromRaw :: forall m. Monad m => String -> m NodeRoleSource
nodeRoleToRaw :: NodeRole -> StringSource
roleDescription :: NodeRole -> StringSource
The description of the node role.
Network definitions
Ipv4 types
data Ip4Address Source
Custom type for a simple IPv4 address.
Ip4Address Word8 Word8 Word8 Word8 |
Eq Ip4Address | |
Show Ip4Address | |
IsString Ip4Address | IsString instance for |
Arbitrary Ip4Address | |
JSON Ip4Address | JSON instance for |
readIp4Address :: (Applicative m, Monad m) => String -> m Ip4AddressSource
Parses an IPv4 address from a string.
nextIp4Address :: Ip4Address -> Ip4AddressSource
"Next" address implementation for IPv4 addresses.
Note that this loops! Note also that this is a very dumb implementation.
data Ip4Network Source
Custom type for an IPv4 network.
Ip4Network Ip4Address Word8 |
Eq Ip4Network | |
Show Ip4Network | |
Arbitrary Ip4Network | |
JSON Ip4Network | JSON instance for |
Ganeti "network" config object.
Network | |
|
Eq Network | |
Show Network | |
Arbitrary Network | |
JSON Network | |
TagsObject Network | |
SerialNoObject Network | |
UuidObject Network | |
TimeStampObject Network |
loadNetwork :: JSValue -> Result NetworkSource
saveNetwork :: Network -> JSValueSource
toDictNetwork :: Network -> [(String, JSValue)]Source
NIC definitions
data FilledNicParams Source
Eq FilledNicParams | |
Show FilledNicParams | |
Arbitrary FilledNicParams | |
Arbitrary ClusterNicParams | |
JSON FilledNicParams | |
DictObject FilledNicParams |
data PartialNicParams Source
Eq PartialNicParams | |
Show PartialNicParams | |
Arbitrary PartialNicParams | |
JSON PartialNicParams |
allNicParamFields :: [String]Source
loadPartialNicParams :: JSValue -> Result PartialNicParamsSource
savePartialNicParams :: PartialNicParams -> JSValueSource
toDictPartialNicParams :: PartialNicParams -> [(String, JSValue)]Source
loadFilledNicParams :: JSValue -> Result FilledNicParamsSource
saveFilledNicParams :: FilledNicParams -> JSValueSource
toDictFilledNicParams :: FilledNicParams -> [(String, JSValue)]Source
data PartialNic Source
PartialNic | |
|
Eq PartialNic | |
Show PartialNic | |
Arbitrary PartialNic | |
JSON PartialNic | |
UuidObject PartialNic |
loadPartialNic :: JSValue -> Result PartialNicSource
savePartialNic :: PartialNic -> JSValueSource
toDictPartialNic :: PartialNic -> [(String, JSValue)]Source
Disk definitions
diskModeFromRaw :: forall m. Monad m => String -> m DiskModeSource
diskModeToRaw :: DiskMode -> StringSource
diskTypeFromRaw :: forall m. Monad m => String -> m DiskTypeSource
diskTypeToRaw :: DiskType -> StringSource
data BlockDriver Source
The persistent block driver type. Currently only one type is allowed.
Bounded BlockDriver | |
Enum BlockDriver | |
Eq BlockDriver | |
Ord BlockDriver | |
Show BlockDriver | |
Arbitrary BlockDriver | |
JSON BlockDriver |
blockDriverFromRaw :: forall m. Monad m => String -> m BlockDriverSource
blockDriverToRaw :: BlockDriver -> StringSource
data DiskLogicalId Source
The disk configuration type. This includes the disk type itself, for a more complete consistency. Note that since in the Python code-base there's no authoritative place where we document the logical id, this is probably a good reference point.
LIDPlain String String | Volume group, logical volume |
LIDDrbd8 String String Int Int Int String | NodeA, NodeB, Port, MinorA, MinorB, Secret |
LIDFile FileDriver String | Driver, path |
LIDBlockDev BlockDriver String | Driver, path (must be under /dev) |
LIDRados String String | Unused, path |
LIDExt String String | ExtProvider, unique name |
Eq DiskLogicalId | |
Show DiskLogicalId | |
Arbitrary DiskLogicalId |
lidEncodeType :: DiskLogicalId -> [(String, JSValue)]Source
encodeDLId :: DiskLogicalId -> JSValueSource
encodeFullDLId :: DiskLogicalId -> (JSValue, [(String, JSValue)])Source
decodeDLId :: [(String, JSValue)] -> JSValue -> Result DiskLogicalIdSource
Disk data structure.
This is declared manually as it's a recursive structure, and our TH code currently can't build it.
Disk | |
|
toDictDisk :: Disk -> [(String, JSValue)]Source
Instance definitions
data AdminState Source
Bounded AdminState | |
Enum AdminState | |
Eq AdminState | |
Ord AdminState | |
Show AdminState | |
Arbitrary AdminState | |
JSON AdminState |
adminStateFromRaw :: forall m. Monad m => String -> m AdminStateSource
adminStateToRaw :: AdminState -> StringSource
data FilledBeParams Source
FilledBeParams | |
|
Eq FilledBeParams | |
Show FilledBeParams | |
Arbitrary FilledBeParams | |
Arbitrary ClusterBeParams | |
JSON FilledBeParams | |
DictObject FilledBeParams |
data PartialBeParams Source
PartialBeParams | |
|
Eq PartialBeParams | |
Show PartialBeParams | |
Arbitrary PartialBeParams | |
JSON PartialBeParams |
allBeParamFields :: [String]Source
loadPartialBeParams :: JSValue -> Result PartialBeParamsSource
savePartialBeParams :: PartialBeParams -> JSValueSource
toDictPartialBeParams :: PartialBeParams -> [(String, JSValue)]Source
loadFilledBeParams :: JSValue -> Result FilledBeParamsSource
saveFilledBeParams :: FilledBeParams -> JSValueSource
toDictFilledBeParams :: FilledBeParams -> [(String, JSValue)]Source
Instance | |
|
Eq Instance | |
Show Instance | |
Arbitrary Instance | |
JSON Instance | |
TagsObject Instance | |
SerialNoObject Instance | |
UuidObject Instance | |
TimeStampObject Instance |
loadInstance :: JSValue -> Result InstanceSource
saveInstance :: Instance -> JSValueSource
toDictInstance :: Instance -> [(String, JSValue)]Source
IPolicy definitions
data FilledISpecParams Source
FilledISpecParams | |
|
Eq FilledISpecParams | |
Show FilledISpecParams | |
Arbitrary FilledISpecParams | |
JSON FilledISpecParams | |
DictObject FilledISpecParams |
data PartialISpecParams Source
PartialISpecParams | |
|
Eq PartialISpecParams | |
Show PartialISpecParams | |
Arbitrary PartialISpecParams | FIXME: This generates completely random data, without normal validation rules. |
JSON PartialISpecParams |
allISpecParamFields :: [String]Source
loadPartialISpecParams :: JSValue -> Result PartialISpecParamsSource
savePartialISpecParams :: PartialISpecParams -> JSValueSource
toDictPartialISpecParams :: PartialISpecParams -> [(String, JSValue)]Source
loadFilledISpecParams :: JSValue -> Result FilledISpecParamsSource
saveFilledISpecParams :: FilledISpecParams -> JSValueSource
toDictFilledISpecParams :: FilledISpecParams -> [(String, JSValue)]Source
data MinMaxISpecs Source
Eq MinMaxISpecs | |
Show MinMaxISpecs | |
Arbitrary MinMaxISpecs | |
JSON MinMaxISpecs |
loadMinMaxISpecs :: JSValue -> Result MinMaxISpecsSource
saveMinMaxISpecs :: MinMaxISpecs -> JSValueSource
toDictMinMaxISpecs :: MinMaxISpecs -> [(String, JSValue)]Source
data PartialIPolicy Source
Custom partial ipolicy. This is not built via buildParam since it has a special 2-level inheritance mode.
PartialIPolicy | |
|
Eq PartialIPolicy | |
Show PartialIPolicy | |
Arbitrary PartialIPolicy | FIXME: This generates completely random data, without normal validation rules. |
JSON PartialIPolicy |
loadPartialIPolicy :: JSValue -> Result PartialIPolicySource
savePartialIPolicy :: PartialIPolicy -> JSValueSource
toDictPartialIPolicy :: PartialIPolicy -> [(String, JSValue)]Source
data FilledIPolicy Source
Custom filled ipolicy. This is not built via buildParam since it has a special 2-level inheritance mode.
FilledIPolicy | |
|
Eq FilledIPolicy | |
Show FilledIPolicy | |
Arbitrary FilledIPolicy | |
JSON FilledIPolicy |
loadFilledIPolicy :: JSValue -> Result FilledIPolicySource
saveFilledIPolicy :: FilledIPolicy -> JSValueSource
toDictFilledIPolicy :: FilledIPolicy -> [(String, JSValue)]Source
fillIPolicy :: FilledIPolicy -> PartialIPolicy -> FilledIPolicySource
Custom filler for the ipolicy types.
Node definitions
data FilledNDParams Source
FilledNDParams | |
|
Eq FilledNDParams | |
Show FilledNDParams | |
Arbitrary FilledNDParams | |
JSON FilledNDParams | |
DictObject FilledNDParams |
data PartialNDParams Source
PartialNDParams | |
|
Eq PartialNDParams | |
Show PartialNDParams | |
Arbitrary PartialNDParams | |
JSON PartialNDParams |
allNDParamFields :: [String]Source
loadPartialNDParams :: JSValue -> Result PartialNDParamsSource
savePartialNDParams :: PartialNDParams -> JSValueSource
toDictPartialNDParams :: PartialNDParams -> [(String, JSValue)]Source
loadFilledNDParams :: JSValue -> Result FilledNDParamsSource
saveFilledNDParams :: FilledNDParams -> JSValueSource
toDictFilledNDParams :: FilledNDParams -> [(String, JSValue)]Source
Node | |
|
Eq Node | |
Show Node | |
Arbitrary Node | |
JSON Node | |
TagsObject Node | |
SerialNoObject Node | |
UuidObject Node | |
TimeStampObject Node | |
NdParamObject Node |
toDictNode :: Node -> [(String, JSValue)]Source
NodeGroup definitions
type DiskParams = Container (Container JSValue)Source
The disk parameters type.
NodeGroup | |
|
Eq NodeGroup | |
Show NodeGroup | |
Arbitrary NodeGroup | |
JSON NodeGroup | |
TagsObject NodeGroup | |
SerialNoObject NodeGroup | |
UuidObject NodeGroup | |
TimeStampObject NodeGroup | |
NdParamObject NodeGroup |
loadNodeGroup :: JSValue -> Result NodeGroupSource
saveNodeGroup :: NodeGroup -> JSValueSource
toDictNodeGroup :: NodeGroup -> [(String, JSValue)]Source
IP family type
ipFamilyFromRaw :: forall m. Monad m => Int -> m IpFamilySource
ipFamilyToRaw :: IpFamily -> IntSource
ipFamilyToVersion :: IpFamily -> IntSource
Conversion from IP family to IP version. This is needed because Python uses both, depending on context.
type ClusterHvParams = Container HvParamsSource
Cluster HvParams (hvtype to hvparams mapping).
type OsHvParams = Container ClusterHvParamsSource
Cluster Os-HvParams (os to hvparams mapping).
type ClusterBeParams = Container FilledBeParamsSource
Cluser BeParams.
type ClusterOsParams = Container OsParamsSource
Cluster OsParams.
type ClusterNicParams = Container FilledNicParamsSource
Cluster NicParams.
Cluster definitions
Eq Cluster | |
Show Cluster | |
Arbitrary Cluster | |
JSON Cluster | |
TagsObject Cluster | |
SerialNoObject Cluster | |
UuidObject Cluster | |
TimeStampObject Cluster | |
NdParamObject Cluster |
loadCluster :: JSValue -> Result ClusterSource
saveCluster :: Cluster -> JSValueSource
toDictCluster :: Cluster -> [(String, JSValue)]Source
ConfigData definitions
data ConfigData Source
ConfigData | |
|
Eq ConfigData | |
Show ConfigData | |
Arbitrary ConfigData | |
JSON ConfigData | |
SerialNoObject ConfigData |
loadConfigData :: JSValue -> Result ConfigDataSource
saveConfigData :: ConfigData -> JSValueSource
toDictConfigData :: ConfigData -> [(String, JSValue)]Source