Also show it in hbal's verbose output (helpful for debugging).
---
htools/Ganeti/HTools/Luxi.hs | 16 ++--
htools/Ganeti/HTools/Program/Hbal.hs |5 +++--
2 files changed, 13 insertions(+), 8 deletions(-)
diff --git a/htools/Ganeti/HTools/Luxi.hs b/htools/Ganeti/HTools/Luxi.hs
index d360390..74dd984 100644
--- a/htools/Ganeti/HTools/Luxi.hs
+++ b/htools/Ganeti/HTools/Luxi.hs
@@ -199,11 +199,15 @@ parseNode ktg [ name, mtotal, mnode, mfree, dtotal, dfree
parseNode _ v = fail (Invalid node query result: ++ show v)
-- | Parses the cluster tags.
-getClusterTags :: JSValue - Result [String]
-getClusterTags v = do
+getClusterData :: JSValue - Result ([String], IPolicy)
+getClusterData (JSObject obj) = do
let errmsg = Parsing cluster info
- obj - annotateResult errmsg $ asJSObject v
- tryFromObj errmsg (fromJSObject obj) tags
+ obj' = fromJSObject obj
+ ctags - tryFromObj errmsg obj' tags
+ cpol - tryFromObj errmsg obj' ipolicy
+ return (ctags, cpol)
+
+getClusterData _ = Bad $ Cannot parse cluster info, not a JSON record
-- | Parses the cluster groups.
getGroups :: JSValue - Result [(String, Group.Group)]
@@ -248,8 +252,8 @@ parseData (groups, nodes, instances, cinfo) = do
let (node_names, node_idx) = assignIndices node_data
inst_data - instances = getInstances node_names
let (_, inst_idx) = assignIndices inst_data
- ctags - cinfo = getClusterTags
- return (ClusterData group_idx node_idx inst_idx ctags defIPolicy)
+ (ctags, cpol) - cinfo = getClusterData
+ return (ClusterData group_idx node_idx inst_idx ctags cpol)
-- | Top level function for data loading.
loadData :: String -- ^ Unix socket to use as source
diff --git a/htools/Ganeti/HTools/Program/Hbal.hs
b/htools/Ganeti/HTools/Program/Hbal.hs
index 758b890..689e8aa 100644
--- a/htools/Ganeti/HTools/Program/Hbal.hs
+++ b/htools/Ganeti/HTools/Program/Hbal.hs
@@ -351,10 +351,11 @@ main = do
shownodes = optShowNodes opts
showinsts = optShowInsts opts
- ini_cdata@(ClusterData gl fixed_nl ilf ctags _) - loadExternalData opts
+ ini_cdata@(ClusterData gl fixed_nl ilf ctags ipol) - loadExternalData opts
- when (verbose 1) $
+ when (verbose 1) $ do
putStrLn $ Loaded cluster tags: ++ intercalate , ctags
+ putStrLn $ Loaded cluster ipolicy: ++ show ipol
nlf - setNodeStatus opts fixed_nl
checkCluster verbose nlf ilf
--
1.7.3.1