diff --git a/htools/Ganeti/HTools/Loader.hs b/htools/Ganeti/HTools/Loader.hs index 89b479d8e75c3d53ad9022a80abc8754c0093d39..7331a59a3b3e0054856e87af946acd3b464560c1 100644 --- a/htools/Ganeti/HTools/Loader.hs +++ b/htools/Ganeti/HTools/Loader.hs @@ -35,6 +35,7 @@ module Ganeti.HTools.Loader , lookupGroup , commonSuffix , RelocMode(..) + , EvacMode(..) , RqType(..) , Request(..) , ClusterData(..) @@ -78,6 +79,7 @@ data RqType -- secondary node | Evacuate [Ndx] -- ^ Evacuate nodes | MultiReloc [Idx] RelocMode -- ^ Multi-relocate mode + | NodeEvacuate [Idx] EvacMode -- ^ node-evacuate mode deriving (Show, Read) -- | A complete request, as received from Ganeti. diff --git a/htools/Ganeti/HTools/Types.hs b/htools/Ganeti/HTools/Types.hs index be7ec18fcbd1c99e869d1df75f395c56799fc4bc..0c5941090f4a019efd2438be6c08a3127bf09dc6 100644 --- a/htools/Ganeti/HTools/Types.hs +++ b/htools/Ganeti/HTools/Types.hs @@ -59,6 +59,7 @@ module Ganeti.HTools.Types , OpResult(..) , connTimeout , queryTimeout + , EvacMode(..) ) where import qualified Data.Map as M @@ -279,3 +280,9 @@ class Element a where name = nameOf e -- | Updates the index of the element setIdx :: a -> Int -> a + +-- | The iallocator node-evacuate evac_mode type. +data EvacMode = ChangePrimary + | ChangeSecondary + | ChangeAll + deriving (Show, Read) diff --git a/htools/hail.hs b/htools/hail.hs index 7a1c6817e504b36fb39f4b3601e61391a42654ca..86f672757f57f038c4a543607568449bf223dd4c 100644 --- a/htools/hail.hs +++ b/htools/hail.hs @@ -76,6 +76,7 @@ processRequest request = idx reqn exnodes Evacuate exnodes -> Cluster.tryMGEvac gl nl il exnodes MultiReloc _ _ -> fail "multi-reloc not handled" + NodeEvacuate _ _ -> fail "node-evacuate not handled" -- | Reads the request from the data file(s) readRequest :: Options -> [String] -> IO Request