X-Git-Url: https://code.grnet.gr/git/ganeti-local/blobdiff_plain/040afc3532b84536c926a1bafa4252f9364e260e..bd1794b2a7444e2223aea3d79067538bc391cf42:/Ganeti/HTools/Node.hs diff --git a/Ganeti/HTools/Node.hs b/Ganeti/HTools/Node.hs index 37d3d92..aa3eaf4 100644 --- a/Ganeti/HTools/Node.hs +++ b/Ganeti/HTools/Node.hs @@ -6,7 +6,7 @@ module Ganeti.HTools.Node ( - Node(failN1, idx, t_mem, n_mem, f_mem, t_dsk, f_dsk, + Node(failN1, name, idx, t_mem, n_mem, f_mem, t_dsk, f_dsk, p_mem, p_dsk, p_rem, plist, slist, offline) -- * Constructor @@ -14,6 +14,7 @@ module Ganeti.HTools.Node -- ** Finalization after data loading , buildPeers , setIdx + , setName , setOffline , setXmem , setFmem @@ -38,9 +39,8 @@ import qualified Ganeti.HTools.Container as Container import qualified Ganeti.HTools.Instance as Instance import qualified Ganeti.HTools.PeerMap as PeerMap -import Ganeti.HTools.Utils - -data Node = Node { t_mem :: Double -- ^ total memory (MiB) +data Node = Node { name :: String -- ^ the node name + , t_mem :: Double -- ^ total memory (MiB) , n_mem :: Int -- ^ node memory (MiB) , f_mem :: Int -- ^ free memory (MiB) , x_mem :: Int -- ^ unaccounted memory (MiB) @@ -74,11 +74,12 @@ The index and the peers maps are empty, and will be need to be update later via the 'setIdx' and 'buildPeers' functions. -} -create :: Double -> Int -> Int -> Double -> Int -> Bool -> Node -create mem_t_init mem_n_init mem_f_init dsk_t_init dsk_f_init - offline_init = +create :: String -> Double -> Int -> Int -> Double -> Int -> Bool -> Node +create name_init mem_t_init mem_n_init mem_f_init + dsk_t_init dsk_f_init offline_init = Node { + name = name_init, t_mem = mem_t_init, n_mem = mem_n_init, f_mem = mem_f_init, @@ -102,6 +103,10 @@ create mem_t_init mem_n_init mem_f_init dsk_t_init dsk_f_init setIdx :: Node -> Int -> Node setIdx t i = t {idx = i} +-- | Changes the name +-- This is used only during the building of the data structures. +setName t s = t {name = s} + -- | Sets the offline attribute setOffline :: Node -> Bool -> Node setOffline t val = t { offline = val } @@ -229,8 +234,8 @@ setSec :: Node -> Int -> Node setSec t idx = t { slist = idx:(slist t) } -- | String converter for the node list functionality. -list :: Int -> String -> Node -> String -list mname n t = +list :: Int -> Node -> String +list mname t = let pl = plist t sl = slist t mp = p_mem t @@ -245,7 +250,7 @@ list mname n t = in printf " %c %-*s %5.0f %5d %5d %5d %5d %5d %5.0f %5d %3d %3d %.5f %.5f" (if off then '-' else if fn then '*' else ' ') - mname n tmem nmem imem xmem fmem (r_mem t) + mname (name t) tmem nmem imem xmem fmem (r_mem t) ((t_dsk t) / 1024) ((f_dsk t) `div` 1024) (length pl) (length sl) mp dp