Currently, instance desired location tags are not set for the instance(s) in iallocator request. This patch fixes the issue.
Signed-off-by: Oleg Ponomarev <[email protected]> --- src/Ganeti/HTools/Backend/IAlloc.hs | 9 ++++++--- src/Ganeti/HTools/Loader.hs | 2 ++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/Ganeti/HTools/Backend/IAlloc.hs b/src/Ganeti/HTools/Backend/IAlloc.hs index 7bd31ee..3bb8677 100644 --- a/src/Ganeti/HTools/Backend/IAlloc.hs +++ b/src/Ganeti/HTools/Backend/IAlloc.hs @@ -229,6 +229,10 @@ parseData now body = do let (kti, il) = assignIndices iobj -- cluster tags ctags <- extrObj "cluster_tags" + let ex_tags = extractExTags ctags + dsrd_loc_tags = extractDesiredLocations ctags + updateTags = updateExclTags ex_tags . + updateDesiredLocationTags dsrd_loc_tags cdata1 <- mergeData [] [] [] [] now (ClusterData gl nl il ctags defIPolicy) let (msgs, fix_nl) = checkData (cdNodes cdata1) (cdInstances cdata1) cdata = cdata1 { cdNodes = fix_nl } @@ -245,7 +249,7 @@ parseData now body = do rest_nodes <- maybeFromObj request "restrict-to-nodes" req_nodes <- extrReq "required_nodes" inew <- parseBaseInstance rname request - let io = updateExclTags (extractExTags ctags) $ snd inew + let io = updateTags $ snd inew return $ Allocate io (Cluster.AllocDetails req_nodes rgn) rest_nodes | optype == C.iallocatorModeReloc -> @@ -282,8 +286,7 @@ parseData now body = do rgn <- maybeFromObj request "group_name" req_nodes <- extrFromReq r "required_nodes" inew <- parseBaseInstance rname r - let io = updateExclTags (extractExTags ctags) - $ snd inew + let io = updateTags $ snd inew return (io, Cluster.AllocDetails req_nodes rgn)) return $ MultiAllocate prqs diff --git a/src/Ganeti/HTools/Loader.hs b/src/Ganeti/HTools/Loader.hs index 21848c3..50ffbc1 100644 --- a/src/Ganeti/HTools/Loader.hs +++ b/src/Ganeti/HTools/Loader.hs @@ -53,6 +53,8 @@ module Ganeti.HTools.Loader , ClusterData(..) , isAllocationRequest , emptyCluster + , extractDesiredLocations + , updateDesiredLocationTags ) where import Control.Monad -- 2.6.0.rc2.230.g3dd15c0
