Add support for 'offline' nodes
[ganeti-local] / hscan.hs
index 634cbe5..e859c9a 100644 (file)
--- a/hscan.hs
+++ b/hscan.hs
@@ -79,9 +79,11 @@ serializeNodes nl csf ktn =
                           t_mem = (truncate $ Node.t_mem node)::Int
                           t_dsk = (truncate $ Node.t_dsk node)::Int
                       in
-                        printf "%s|%d|%d|%d|%d|%d" name
+                        printf "%s|%d|%d|%d|%d|%d|%c" name
                                    t_mem (Node.n_mem node) (Node.f_mem node)
-                                   t_dsk (Node.f_dsk node))
+                                   t_dsk (Node.f_dsk node)
+                                   (if Node.offline node then 'Y' else 'N')
+                 )
                  nodes
     in unlines nlines
 
@@ -99,8 +101,9 @@ serializeInstances il csf ktn kti =
                           pnode = fromJust $ lookup (Instance.pnode inst) etn
                           snode = fromJust $ lookup (Instance.snode inst) etn
                       in
-                        printf "%s|%d|%d|%s|%s"
+                        printf "%s|%d|%d|%s|%s|%s"
                                iname (Instance.mem inst) (Instance.dsk inst)
+                               (Instance.run_st inst)
                                pnode snode
                  )
                  instances
@@ -161,9 +164,9 @@ main = do
                           idata = fromRight inst_data
                           (nl, il, csf, ktn, kti) =
                               Cluster.loadData ndata idata
-                      putStrLn $ printCluster nl il ktn kti
+                          (_, fix_nl) = Cluster.checkData nl il ktn kti
+                      putStrLn $ printCluster fix_nl il ktn kti
                       when (optShowNodes opts) $ do
-                           let (_, fix_nl) = Cluster.checkData nl il ktn kti
                            putStr $ Cluster.printNodes ktn fix_nl
                       let ndata = serializeNodes nl csf ktn
                           idata = serializeInstances il csf ktn kti