LGTM

On Mon, Oct 5, 2015 at 5:10 PM, 'Klaus Aehlig' via ganeti-devel <
[email protected]> wrote:

> At the IAlloc backend of htools we do not get the actual
> state of the instance (as everything is state-of-record only).
> However, we do get the administrative state. Therefore, by
> assuming that for each instance the actual state is the one
> corresponding to the administrated one, we can get a much better
> description of the cluster than blindly assuming all instances
> are running. Do so, whenever the admin_state is provided.
>
> Signed-off-by: Klaus Aehlig <[email protected]>
> ---
>  src/Ganeti/HTools/Backend/IAlloc.hs | 13 +++++++++----
>  1 file changed, 9 insertions(+), 4 deletions(-)
>
> diff --git a/src/Ganeti/HTools/Backend/IAlloc.hs
> b/src/Ganeti/HTools/Backend/IAlloc.hs
> index 9cf66a2..da547b0 100644
> --- a/src/Ganeti/HTools/Backend/IAlloc.hs
> +++ b/src/Ganeti/HTools/Backend/IAlloc.hs
> @@ -59,7 +59,8 @@ import Ganeti.HTools.CLI
>  import Ganeti.HTools.Loader
>  import Ganeti.HTools.Types
>  import Ganeti.JSON
> -import Ganeti.Types (EvacMode(ChangePrimary, ChangeSecondary))
> +import Ganeti.Types ( EvacMode(ChangePrimary, ChangeSecondary)
> +                    , adminStateFromRaw, AdminState(..))
>  import Ganeti.Utils
>
>  {-# ANN module "HLint: ignore Eta reduce" #-}
> @@ -107,9 +108,13 @@ parseBaseInstance n a = do
>    su    <- extract "spindle_use"
>    nics  <- extract "nics" >>= toArray >>= asObjectList >>=
>             mapM (parseNic n . fromJSObject)
> -  return
> -    (n,
> -     Instance.create n mem disk disks vcpus Running tags True 0 0 dt su
> nics)
> +  state <- (tryFromObj errorMessage a "admin_state" >>= adminStateFromRaw)
> +           `mplus` Ok AdminUp
> +  let getRunSt AdminOffline = StatusOffline
> +      getRunSt AdminDown = StatusDown
> +      getRunSt AdminUp = Running
> +  return (n, Instance.create n mem disk disks vcpus (getRunSt state) tags
> +             True 0 0 dt su nics)
>
>  -- | Parses an instance as found in the cluster instance list.
>  parseInstance :: NameAssoc -- ^ The node name-to-index association list
> --
> 2.6.0.rc2.230.g3dd15c0
>
>


-- 
Lisa Velden
Software Engineer
[email protected]

Google Germany GmbH
Dienerstraße 12
80331 München

Geschäftsführer: Matthew Scott Sucherman, Paul Terence Manicle
Registergericht und -nummer: Hamburg, HRB 86891
Sitz der Gesellschaft: Hamburg

Reply via email to