ganeti

Safe HaskellSafe-Infered

Ganeti.HTools.Backend.Text

Contents

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

Helper functions

commaSplit :: String -> [String]Source

Serialisation functions

serializeGroup :: Group -> StringSource

Serialize a single group.

serializeNodeSource

Arguments

:: List

The list of groups (needed for group uuid)

-> Node

The node to be serialised

-> String 

Serialize a single node.

serializeNodes :: List -> List -> StringSource

Generate node file data from node objects.

serializeInstanceSource

Arguments

:: List

The node list (needed for node names)

-> Instance

The instance to be serialised

-> String 

Serialize a single instance.

serializeInstances :: List -> List -> StringSource

Generate instance file data from instance objects.

serializeISpec :: ISpec -> StringSource

Generate a spec data from a given ISpec object.

serializeMultipleMinMaxISpecs :: [MinMaxISpecs] -> StringSource

Generate min/max instance specs data.

serializeIPolicy :: String -> IPolicy -> StringSource

Generate policy data from a given policy object.

serializeCluster :: ClusterData -> StringSource

Generate complete cluster data from node and instance lists.

Parsing functions

loadGroup :: Monad m => [String] -> m (String, Group)Source

loadNodeSource

Arguments

:: Monad 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.

loadInstSource

Arguments

:: 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 ISpecSource

Loads a spec from a field list.

loadMinMaxISpecs :: String -> String -> String -> Result MinMaxISpecsSource

breakISpecsPairs :: String -> [String] -> Result [(String, String)]Source

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.

loadTabular :: (Monad m, Element a) => [String] -> ([String] -> m (String, a)) -> m (NameAssoc, Container a)Source

readData :: String -> IO StringSource

parseDataSource

Arguments

:: String

Text data

-> Result ClusterData 

Builds the cluster data from text input.

loadDataSource

Arguments

:: String

Path to the text file

-> IO (Result ClusterData) 

Top level function for data loading.