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 ...@@ -34,6 +34,7 @@ module Ganeti.HTools.Text
, serializeInstances , serializeInstances
, serializeNode , serializeNode
, serializeNodes , serializeNodes
, serializeCluster
) where ) where
import Control.Monad import Control.Monad
...@@ -81,6 +82,13 @@ serializeInstances :: Node.List -> Instance.List -> String ...@@ -81,6 +82,13 @@ serializeInstances :: Node.List -> Instance.List -> String
serializeInstances nl = serializeInstances nl =
unlines . map (serializeInstance nl) . Container.elems 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. -- | Load a node from a field list.
loadNode :: (Monad m) => [String] -> m (String, Node.Node) loadNode :: (Monad m) => [String] -> m (String, Node.Node)
loadNode [name, tm, nm, fm, td, fd, tc, fo] = do loadNode [name, tm, nm, fm, td, fd, tc, fo] = do
......
...@@ -45,7 +45,7 @@ import qualified Ganeti.HTools.Rapi as Rapi ...@@ -45,7 +45,7 @@ import qualified Ganeti.HTools.Rapi as Rapi
#endif #endif
import qualified Ganeti.HTools.Luxi as Luxi import qualified Ganeti.HTools.Luxi as Luxi
import qualified Ganeti.HTools.Loader as Loader 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.CLI
import Ganeti.HTools.Types import Ganeti.HTools.Types
...@@ -94,9 +94,7 @@ processData :: Result (Node.AssocList, Instance.AssocList, [String]) ...@@ -94,9 +94,7 @@ processData :: Result (Node.AssocList, Instance.AssocList, [String])
processData input_data = do processData input_data = do
(nl, il, _) <- input_data >>= Loader.mergeData [] [] [] (nl, il, _) <- input_data >>= Loader.mergeData [] [] []
let (_, fix_nl) = Loader.checkData nl il let (_, fix_nl) = Loader.checkData nl il
let ndata = serializeNodes nl adata = serializeCluster nl il
idata = serializeInstances nl il
adata = ndata ++ ['\n'] ++ idata
return (fix_nl, il, adata) return (fix_nl, il, adata)
-- | Writes cluster data out -- | 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