diff --git a/Ganeti/HTools/Rapi.hs b/Ganeti/HTools/Rapi.hs index 261b29095971d4eec0800b7f68adc1b3ed4045e3..3f60699074b692bd58148ab47f1dd3af054979c4 100644 --- a/Ganeti/HTools/Rapi.hs +++ b/Ganeti/HTools/Rapi.hs @@ -33,7 +33,7 @@ import Network.Curl.Types () import Network.Curl.Code import Data.List import Control.Monad -import Text.JSON (JSObject, JSValue, fromJSObject) +import Text.JSON (JSObject, JSValue, fromJSObject, decodeStrict) import Text.Printf (printf) import Ganeti.HTools.Utils @@ -119,9 +119,11 @@ loadData master = do -- IO monad let url = formatHost master node_body <- getUrl $ printf "%s/2/nodes?bulk=1" url inst_body <- getUrl $ printf "%s/2/instances?bulk=1" url + tags_body <- getUrl $ printf "%s/2/tags" url return $ do -- Result monad node_data <- node_body >>= getNodes let (node_names, node_idx) = assignIndices node_data inst_data <- inst_body >>= getInstances node_names let (_, inst_idx) = assignIndices inst_data - return (node_idx, inst_idx, []) + tags_data <- tags_body >>= (fromJResult . decodeStrict) + return (node_idx, inst_idx, tags_data) diff --git a/hbal.hs b/hbal.hs index 51ca704c40f3d6050265a0a6397895b08864eb83..1c3f9fe49459f8b13ed30a091f519c14e1e08a94 100644 --- a/hbal.hs +++ b/hbal.hs @@ -187,7 +187,7 @@ main = do verbose = optVerbose opts shownodes = optShowNodes opts - (fixed_nl, il, _, csf) <- loadExternalData opts + (fixed_nl, il, ctags, csf) <- loadExternalData opts let offline_names = optOffline opts all_nodes = Container.elems fixed_nl @@ -210,6 +210,9 @@ main = do nl = Container.map (flip Node.setMdsk m_dsk . flip Node.setMcpu m_cpu) nm + when (not oneline && verbose > 1) $ + putStrLn $ "Loaded cluster tags: " ++ intercalate "," ctags + when (Container.size il == 0) $ do (if oneline then putStrLn $ formatOneline 0 0 0 else printf "Cluster is empty, exiting.\n")