ganeti-htoolsSource codeContentsIndex
Ganeti.HTools.Text
Contents
Serialisation functions
Parsing functions
Description

Parsing data from text-files.

This module holds the code for loading the cluster state from text files, as produced by gnt-node and gnt-instance list command.

Synopsis
serializeGroup :: Group -> String
serializeGroups :: List -> String
serializeNode :: List -> Node -> String
serializeNodes :: List -> List -> String
serializeInstance :: List -> Instance -> String
serializeInstances :: List -> List -> String
serializeCluster :: ClusterData -> String
loadGroup :: Monad m => [String] -> m (String, Group)
loadNode :: Monad m => NameAssoc -> [String] -> m (String, Node)
loadInst :: NameAssoc -> [String] -> Result (String, Instance)
loadTabular :: (Monad m, Element a) => [String] -> ([String] -> m (String, a)) -> m (NameAssoc, Container a)
readData :: String -> IO String
parseData :: String -> Result ClusterData
loadData :: String -> IO (Result ClusterData)
Serialisation functions
serializeGroup :: Group -> StringSource
Serialize a single group.
serializeGroups :: List -> StringSource
Generate group file data from a group list.
serializeNodeSource
:: ListThe list of groups (needed for group uuid)
-> NodeThe node to be serialised
-> String
Serialize a single node.
serializeNodes :: List -> List -> StringSource
Generate node file data from node objects.
serializeInstanceSource
:: ListThe node list (needed for node names)
-> InstanceThe instance to be serialised
-> String
Serialize a single instance.
serializeInstances :: List -> List -> StringSource
Generate instance file data from instance objects.
serializeCluster :: ClusterData -> StringSource
Generate complete cluster data from node and instance lists.
Parsing functions
loadGroupSource
:: Monad m
=> [String]The result, a tuple of group UUID and group object
-> m (String, Group)
Load a group from a field list.
loadNodeSource
:: Monad m
=> NameAssocInput data as a list of fields
-> [String]The result, a tuple o node name and node object
-> m (String, Node)
Load a node from a field list.
loadInstSource
:: NameAssocAssociation list with the current nodes
-> [String]Input data as a list of fields
-> Result (String, Instance)A tuple of instance name and the instance object
Load an instance from a field list.
loadTabularSource
:: (Monad m, Element a)
=> [String]Conversion function
-> [String] -> m (String, a)A tuple of an association list (name to object) and a set as used in Ganeti.HTools.Container
-> m (NameAssoc, Container a)

Convert newline and delimiter-separated text.

This function converts a text in tabular format as generated by gnt-instance list and gnt-node list to a list of objects using a supplied conversion function.

readDataSource
:: StringPath to the text file
-> IO StringContents of the file

Load the cluser data from disk.

This is an alias to readFile just for consistency with the other modules.

parseDataSource
:: StringText data
-> Result ClusterData
Builds the cluster data from text input.
loadDataSource
:: StringPath to the text file
-> IO (Result ClusterData)
Top level function for data loading.
Produced by Haddock version 2.6.0