Safe Haskell | Safe-Infered |
---|
Implementation of the Ganeti configuration database.
- type LinkIpMap = Map String (Map String String)
- class NdParamObject a where
- getNdParamsOf :: ConfigData -> a -> Maybe FilledNDParams
- readConfig :: FilePath -> IO String
- parseConfig :: String -> Result ConfigData
- loadConfig :: FilePath -> IO (Result ConfigData)
- computeDiskNodes :: Disk -> Set String
- instDiskNodes :: Instance -> Set String
- instNodes :: Instance -> Set String
- instSecondaryNodes :: Instance -> Set String
- getNodeInstances :: ConfigData -> String -> ([Instance], [Instance])
- getNodeRole :: ConfigData -> Node -> NodeRole
- getDefaultNicLink :: ConfigData -> String
- getDefaultHypervisor :: ConfigData -> Hypervisor
- getInstancesIpByLink :: LinkIpMap -> String -> [String]
- getItem :: String -> String -> Map String a -> ErrorResult a
- getNode :: ConfigData -> String -> ErrorResult Node
- getInstance :: ConfigData -> String -> ErrorResult Instance
- getGroup :: ConfigData -> String -> ErrorResult NodeGroup
- getGroupNdParams :: ConfigData -> NodeGroup -> FilledNDParams
- getGroupIpolicy :: ConfigData -> NodeGroup -> FilledIPolicy
- getGroupDiskParams :: ConfigData -> NodeGroup -> DiskParams
- getGroupNodes :: ConfigData -> String -> [Node]
- getGroupInstances :: ConfigData -> String -> ([Instance], [Instance])
- getInstPrimaryNode :: ConfigData -> String -> ErrorResult Node
- getDrbdMinorsForNode :: String -> Disk -> [(Int, String)]
- rolePrimary :: String
- roleSecondary :: String
- getInstMinorsForNode :: String -> Instance -> [(String, Int, String, String, String, String)]
- buildLinkIpInstnameMap :: ConfigData -> LinkIpMap
- getGroupOfNode :: ConfigData -> Node -> Maybe NodeGroup
- getNodeNdParams :: ConfigData -> Node -> Maybe FilledNDParams
Documentation
class NdParamObject a whereSource
Type class denoting objects which have node parameters.
getNdParamsOf :: ConfigData -> a -> Maybe FilledNDParamsSource
readConfig :: FilePath -> IO StringSource
parseConfig :: String -> Result ConfigDataSource
loadConfig :: FilePath -> IO (Result ConfigData)Source
Wrapper over readConfig
and parseConfig
.
Query functions
computeDiskNodes :: Disk -> Set StringSource
instDiskNodes :: Instance -> Set StringSource
instSecondaryNodes :: Instance -> Set StringSource
getNodeInstances :: ConfigData -> String -> ([Instance], [Instance])Source
Get instances of a given node.
getNodeRole :: ConfigData -> Node -> NodeRoleSource
Computes the role of a node.
getDefaultNicLink :: ConfigData -> StringSource
Returns the default cluster link.
getDefaultHypervisor :: ConfigData -> HypervisorSource
Returns the default cluster hypervisor.
getInstancesIpByLink :: LinkIpMap -> String -> [String]Source
Returns instances of a given link.
getItem :: String -> String -> Map String a -> ErrorResult aSource
getNode :: ConfigData -> String -> ErrorResult NodeSource
Looks up a node.
getInstance :: ConfigData -> String -> ErrorResult InstanceSource
Looks up an instance.
getGroup :: ConfigData -> String -> ErrorResult NodeGroupSource
Looks up a node group. This is more tricky than for node/instances since the groups map is indexed by uuid, not name.
getGroupNdParams :: ConfigData -> NodeGroup -> FilledNDParamsSource
Computes a node group's node params.
getGroupIpolicy :: ConfigData -> NodeGroup -> FilledIPolicySource
Computes a node group's ipolicy.
getGroupDiskParams :: ConfigData -> NodeGroup -> DiskParamsSource
Computes a group's (merged) disk params.
getGroupNodes :: ConfigData -> String -> [Node]Source
Get nodes of a given node group.
getGroupInstances :: ConfigData -> String -> ([Instance], [Instance])Source
Get (primary, secondary) instances of a given node group.
getInstPrimaryNode :: ConfigData -> String -> ErrorResult NodeSource
Looks up an instance's primary node.
getDrbdMinorsForNode :: String -> Disk -> [(Int, String)]Source
rolePrimary :: StringSource
roleSecondary :: StringSource
getInstMinorsForNode :: String -> Instance -> [(String, Int, String, String, String, String)]Source
Gets the list of DRBD minors for an instance that are related to a given node.
buildLinkIpInstnameMap :: ConfigData -> LinkIpMapSource
Builds link -> ip -> instname map.
TODO: improve this by splitting it into multiple independent functions:
- abstract the "fetch instance with filled params" functionality
- abstsract the [instance] -> [(nic, instance_name)] part
- etc.
getGroupOfNode :: ConfigData -> Node -> Maybe NodeGroupSource
Returns a node's group, with optional failure if we can't find it (configuration corrupt).
getNodeNdParams :: ConfigData -> Node -> Maybe FilledNDParamsSource
Returns a node's ndparams, filled.