Skip to content
Snippets Groups Projects
Commit 4a273e97 authored by Iustin Pop's avatar Iustin Pop
Browse files

Abstract the cluster serialization from hscan.hs

This is currently hardcoded in an internal function in hscan.hs, and we
move it to Text.hs for later use.
parent 02da9d07
No related branches found
No related tags found
No related merge requests found
......@@ -34,6 +34,7 @@ module Ganeti.HTools.Text
, serializeInstances
, serializeNode
, serializeNodes
, serializeCluster
) where
import Control.Monad
......@@ -81,6 +82,13 @@ serializeInstances :: Node.List -> Instance.List -> String
serializeInstances nl =
unlines . map (serializeInstance nl) . Container.elems
-- | Generate complete cluster data from node and instance lists
serializeCluster :: Node.List -> Instance.List -> String
serializeCluster nl il =
let ndata = serializeNodes nl
idata = serializeInstances nl il
in ndata ++ ['\n'] ++ idata
-- | Load a node from a field list.
loadNode :: (Monad m) => [String] -> m (String, Node.Node)
loadNode [name, tm, nm, fm, td, fd, tc, fo] = do
......
......@@ -45,7 +45,7 @@ import qualified Ganeti.HTools.Rapi as Rapi
#endif
import qualified Ganeti.HTools.Luxi as Luxi
import qualified Ganeti.HTools.Loader as Loader
import Ganeti.HTools.Text (serializeNodes, serializeInstances)
import Ganeti.HTools.Text (serializeCluster)
import Ganeti.HTools.CLI
import Ganeti.HTools.Types
......@@ -94,9 +94,7 @@ processData :: Result (Node.AssocList, Instance.AssocList, [String])
processData input_data = do
(nl, il, _) <- input_data >>= Loader.mergeData [] [] []
let (_, fix_nl) = Loader.checkData nl il
let ndata = serializeNodes nl
idata = serializeInstances nl il
adata = ndata ++ ['\n'] ++ idata
adata = serializeCluster nl il
return (fix_nl, il, adata)
-- | Writes cluster data out
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment