Safe HaskellNone




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.


Helper functions

Serialisation functions

serializeGroup :: Group -> String Source #

Serialize a single group.

serializeNode Source #


:: List

The list of groups (needed for group uuid)

-> Node

The node to be serialised

-> String 

Serialize a single node.

serializeNodes :: List -> List -> String Source #

Generate node file data from node objects.

serializeInstance Source #


:: List

The node list (needed for node names)

-> Instance

The instance to be serialised

-> String 

Serialize a single instance.

serializeInstances :: List -> List -> String Source #

Generate instance file data from instance objects.

serializeISpec :: ISpec -> String Source #

Generate a spec data from a given ISpec object.

serializeMultipleMinMaxISpecs :: [MinMaxISpecs] -> String Source #

Generate min/max instance specs data.

serializeIPolicy :: String -> IPolicy -> String Source #

Generate policy data from a given policy object.

serializeCluster :: ClusterData -> String Source #

Generate complete cluster data from node and instance lists.

Parsing functions

loadNode Source #


:: MonadFail m 
=> NameAssoc

Association list with current groups

-> [String]

Input data as a list of fields

-> m (String, Node)

The result, a tuple o node name and node object

Load a node from a field list.

loadInst Source #


:: NameAssoc

Association 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.

loadISpec :: String -> [String] -> Result ISpec Source #

Loads a spec from a field list.

loadMultipleMinMaxISpecs :: String -> [String] -> Result [MinMaxISpecs] Source #

Load a list of min/max ispecs pairs

loadIPolicy :: [String] -> Result (String, IPolicy) Source #

Loads an ipolicy from a field list.

parseData Source #


:: String

Text data

-> Result ClusterData 

Builds the cluster data from text input.

loadData Source #


:: String

Path to the text file

-> IO (Result ClusterData) 

Top level function for data loading.