ganeti

Safe HaskellNone

Ganeti.HTools.Backend.IAlloc

Description

Implementation of the iallocator interface.

Synopsis

Documentation

formatAllocate :: List -> GenericAllocSolution a -> Result IAllocResult Source #

Convert allocation/relocation results into the result format.

formatMultiAlloc :: (List, List, GenericAllocSolutionList a) -> Result IAllocResult Source #

Convert multi allocation results into the result format.

processRelocate Source #

Arguments

:: AlgorithmOptions 
-> List

The group list

-> List

The node list

-> List

The instance list

-> Idx

The index of the instance to move

-> Int

The number of nodes required

-> [Ndx]

Nodes which should not be used

-> Result (List, List, [Ndx])

Solution list

Runs relocate for a single instance.

This is wrapper over the tryNodeEvac function that is run with a single instance (ours), and further it checks that the result it got (in the nodes field) is actually consistent, as tryNodeEvac is designed to output primarily an opcode list, not a node list.

readRequest Source #

Arguments

:: FilePath

Path to IAllocator input file

-> Int

Static node memory size, see optStaticKvmNodeMemory

-> IO Request 

Reads the request from the data file(s).

formatIAllocResult :: Result IAllocResult -> (Maybe (List, List), String) Source #

Format an IAlloc result to maybe the new cluster and a response.

runIAllocator :: AlgorithmOptions -> Request -> (Maybe (List, List), String) Source #

Main iallocator pipeline.

loadData Source #

Arguments

:: FilePath

Path to IAllocator input file

-> Int

Static node memory size, see optStaticKvmNodeMemory

-> IO (Result ClusterData) 

Load the data from an iallocation request file