htools: remove 'running' from instance options
[ganeti-local] / htools / Ganeti / HTools / Instance.hs
index a6debe8..1d7bc78 100644 (file)
@@ -31,6 +31,7 @@ module Ganeti.HTools.Instance
     , AssocList
     , List
     , create
+    , instanceRunning
     , setIdx
     , setName
     , setAlias
@@ -40,7 +41,6 @@ module Ganeti.HTools.Instance
     , setMovable
     , specOf
     , shrinkByType
-    , runningStates
     , localStorageTemplates
     , hasSecondary
     , requiredNodes
@@ -61,8 +61,7 @@ data Instance = Instance
     , mem          :: Int       -- ^ Memory of the instance
     , dsk          :: Int       -- ^ Disk size of instance
     , vcpus        :: Int       -- ^ Number of VCPUs
-    , running      :: Bool      -- ^ Is the instance running?
-    , runSt        :: String    -- ^ Original (text) run status
+    , runSt        :: T.InstanceStatus -- ^ Original run status
     , pNode        :: T.Ndx     -- ^ Original primary node
     , sNode        :: T.Ndx     -- ^ Original secondary node
     , idx          :: T.Idx     -- ^ Internal index
@@ -80,9 +79,11 @@ instance T.Element Instance where
     setIdx   = setIdx
     allNames n = [name n, alias n]
 
--- | Constant holding the running instance states.
-runningStates :: [String]
-runningStates = [C.inststRunning, C.inststErrorup]
+-- | Check if instance is running.
+instanceRunning :: Instance -> Bool
+instanceRunning (Instance {runSt = T.Running}) = True
+instanceRunning (Instance {runSt = T.ErrorUp}) = True
+instanceRunning _                               = False
 
 -- | Constant holding the local storage templates.
 --
@@ -115,7 +116,7 @@ type List = Container.Container Instance
 --
 -- Some parameters are not initialized by function, and must be set
 -- later (via 'setIdx' for example).
-create :: String -> Int -> Int -> Int -> String
+create :: String -> Int -> Int -> Int -> T.InstanceStatus
        -> [String] -> Bool -> T.Ndx -> T.Ndx -> T.DiskTemplate -> Instance
 create name_init mem_init dsk_init vcpus_init run_init tags_init
        auto_balance_init pn sn dt =
@@ -124,7 +125,6 @@ create name_init mem_init dsk_init vcpus_init run_init tags_init
              , mem = mem_init
              , dsk = dsk_init
              , vcpus = vcpus_init
-             , running = run_init `elem` runningStates
              , runSt = run_init
              , pNode = pn
              , sNode = sn