On Tue, Oct 7, 2014 at 4:53 PM, 'Klaus Aehlig' via ganeti-devel < [email protected]> wrote:
> Migration will be possible, if the migTags set of the node migrated > from is a subset of the rmigTags of the node migrated to. > > Signed-off-by: Klaus Aehlig <[email protected]> > --- > src/Ganeti/HTools/Node.hs | 15 +++++++++++++++ > 1 file changed, 15 insertions(+) > > diff --git a/src/Ganeti/HTools/Node.hs b/src/Ganeti/HTools/Node.hs > index 1d793b0..1e87980 100644 > --- a/src/Ganeti/HTools/Node.hs > +++ b/src/Ganeti/HTools/Node.hs > @@ -55,6 +55,8 @@ module Ganeti.HTools.Node > , setMcpu > , setPolicy > , setCpuSpeed > + , setMigrationTags > + , setRecvMigrationTags > -- * Tag maps > , addTags > , delTags > @@ -103,6 +105,7 @@ import qualified Data.IntMap as IntMap > import Data.List hiding (group) > import qualified Data.Map as Map > import Data.Ord (comparing) > +import qualified Data.Set as Set > import Text.Printf (printf) > > import qualified Ganeti.Constants as C > @@ -167,6 +170,8 @@ data Node = Node > , group :: T.Gdx -- ^ The node's group (index) > , iPolicy :: T.IPolicy -- ^ The instance policy (of the node's group) > , exclStorage :: Bool -- ^ Effective value of exclusive_storage > + , migTags :: Set.Set String -- ^ migration-relevant tags > + , rmigTags :: Set.Set String -- ^ migration tags able to receive > } deriving (Show, Eq) > {- A note on how we handle spindles > > @@ -309,6 +314,8 @@ create name_init mem_t_init mem_n_init mem_f_init > , group = group_init > , iPolicy = T.defIPolicy > , exclStorage = excl_stor > + , migTags = Set.empty > + , rmigTags = Set.empty > } > > -- | Conversion formula from mDsk\/tDsk to loDsk. > @@ -347,6 +354,14 @@ setMaster t val = t { isMaster = val } > setNodeTags :: Node -> [String] -> Node > setNodeTags t val = t { nTags = val } > > +-- | Set migration tags > +setMigrationTags :: Node -> Set.Set String -> Node > +setMigrationTags t val = t { migTags = val } > + > +-- | Set the migration tags a node is able to receive > +setRecvMigrationTags :: Node -> Set.Set String -> Node > +setRecvMigrationTags t val = t { rmigTags = val } > + > -- | Sets the unnaccounted memory. > setXmem :: Node -> Int -> Node > setXmem t val = t { xMem = val } > -- > 2.1.0.rc2.206.gedb03e5 > > LGTM, thanks -- Helga Velroyen | Software Engineer | [email protected] | Google Germany GmbH Dienerstr. 12 80331 München Registergericht und -nummer: Hamburg, HRB 86891 Sitz der Gesellschaft: Hamburg Geschäftsführer: Graham Law, Christine Elizabeth Flores
