....that is, for each test instance the number of copies of
it that can additionally be placed on a given node.

Signed-off-by: Klaus Aehlig <aeh...@google.com>
---
 src/Ganeti/HTools/Dedicated.hs | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/src/Ganeti/HTools/Dedicated.hs b/src/Ganeti/HTools/Dedicated.hs
index 39773b3..0dd2b01 100644
--- a/src/Ganeti/HTools/Dedicated.hs
+++ b/src/Ganeti/HTools/Dedicated.hs
@@ -35,6 +35,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 module Ganeti.HTools.Dedicated
   ( isDedicated
   , testInstances
+  , allocationVector
   ) where
 
 import Control.Applicative (liftA2)
@@ -44,6 +45,7 @@ import qualified Data.IntMap as IntMap
 import qualified Data.IntSet as IntSet
 import Data.List (sortBy)
 
+import Ganeti.BasicTypes (iterateOk)
 import qualified Ganeti.HTools.Group as Group
 import qualified Ganeti.HTools.Instance as Instance
 import qualified Ganeti.HTools.Loader as Loader
@@ -87,3 +89,9 @@ testInstances =
   . sortBy (flip compare `on` T.iSpecDiskSize)
   . map T.minMaxISpecsMinSpec
   . T.iPolicyMinMaxISpecs
+
+-- | Given the test instances, compute the allocations vector of a node
+allocationVector :: [Instance.Instance] -> Node.Node -> [Int]
+allocationVector insts node =
+  map (\ inst -> length $ iterateOk (`Node.addPri` inst) node) insts
+
-- 
2.2.0.rc0.207.ga3a616c

Reply via email to