On Mon, Oct 7, 2013 at 4:37 PM, Jose A. Lopes <[email protected]> wrote:

> Add constants related to local disk status to the Haskell to Python
> constant generation. A new Haskell type 'LocalDiskStatus' is added
> similarly to the constants that have been added previously in other
> Hs2Py patches.
>
> Signed-off-by: Jose A. Lopes <[email protected]>
> ---
>  lib/constants.py          | 19 +++++--------------
>  src/Ganeti/HsConstants.hs | 20 ++++++++++++++++++++
>  src/Ganeti/Types.hs       | 24 ++++++++++++++++++++++++
>  3 files changed, 49 insertions(+), 14 deletions(-)
>
> diff --git a/lib/constants.py b/lib/constants.py
> index 2e7bb5b..412b996 100644
> --- a/lib/constants.py
> +++ b/lib/constants.py
> @@ -353,6 +353,10 @@ MODIFIABLE_STORAGE_FIELDS = {
>    ST_LVM_PV: frozenset([SF_ALLOCATABLE]),
>    }
>
> +LDS_OKAY = _constants.LDS_OKAY
> +LDS_UNKNOWN = _constants.LDS_UNKNOWN
> +LDS_FAULTY = _constants.LDS_FAULTY
> +LDS_NAMES = _constants.LDS_NAMES
>  VALID_STORAGE_OPERATIONS = {
>    ST_LVM_VG: frozenset([SO_FIX_CONSISTENCY]),
>    }
> @@ -366,18 +370,6 @@ VF_PHYS = "phys"
>  VF_SIZE = "size"
>  VF_VG = "vg"
>
> -# Local disk status
> -# Note: Code depends on LDS_OKAY < LDS_UNKNOWN < LDS_FAULTY
> -(LDS_OKAY,
> - LDS_UNKNOWN,
> - LDS_FAULTY) = range(1, 4)
> -
> -LDS_NAMES = {
> -  LDS_OKAY: "ok",
> -  LDS_UNKNOWN: "unknown",
> -  LDS_FAULTY: "faulty",
> -}
> -
>  # disk template types
>  DT_BLOCK = _constants.DT_BLOCK
>  DT_DISKLESS = _constants.DT_DISKLESS
> @@ -514,8 +506,7 @@ RBD_CMD = "rbd"
>  FD_BLKTAP = _constants.FD_BLKTAP
>  FD_LOOP = _constants.FD_LOOP
>
> -# the set of drbd-like disk types
> -LDS_DRBD = compat.UniqueFrozenset([DT_DRBD8])
> +LDS_DRBD = _constants.LDS_DRBD
>
>  # disk access mode
>  DISK_RDONLY = _constants.DISK_RDONLY
> diff --git a/src/Ganeti/HsConstants.hs b/src/Ganeti/HsConstants.hs
> index 86c606a..fdcacd0 100644
> --- a/src/Ganeti/HsConstants.hs
> +++ b/src/Ganeti/HsConstants.hs
> @@ -452,6 +452,22 @@ sfSize = Types.storageFieldToRaw SFSize
>  sfUsed :: String
>  sfUsed = Types.storageFieldToRaw SFUsed
>
> +-- * Local disk status
> +
> +ldsFaulty :: Int
> +ldsFaulty = Types.localDiskStatusToRaw DiskStatusFaulty
> +
> +ldsOkay :: Int
> +ldsOkay = Types.localDiskStatusToRaw DiskStatusOk
> +
> +ldsUnknown :: Int
> +ldsUnknown = Types.localDiskStatusToRaw DiskStatusUnknown
> +
> +ldsNames :: Map Int String
> +ldsNames =
> +  Map.fromList [ (Types.localDiskStatusToRaw ds,
> +                  localDiskStatusName ds) | ds <- [minBound..] ]
> +
>  -- * Disk template types
>
>  dtDiskless :: String
> @@ -503,6 +519,10 @@ fdBlktap = Types.fileDriverToRaw FileBlktap
>  fdLoop :: String
>  fdLoop = Types.fileDriverToRaw FileLoop
>
> +-- | The set of drbd-like disk types
> +ldsDrbd :: FrozenSet String
> +ldsDrbd = ConstantUtils.mkSet [Types.diskTemplateToRaw DTDrbd8]
> +
>  -- * Disk access mode
>
>  diskRdonly :: String
> diff --git a/src/Ganeti/Types.hs b/src/Ganeti/Types.hs
> index e737065..28bfd3e 100644
> --- a/src/Ganeti/Types.hs
> +++ b/src/Ganeti/Types.hs
> @@ -143,6 +143,10 @@ module Ganeti.Types
>    , storageFieldToRaw
>    , DiskAccessMode(..)
>    , diskAccessModeToRaw
> +  , LocalDiskStatus(..)
> +  , localDiskStatusFromRaw
> +  , localDiskStatusToRaw
> +  , localDiskStatusName
>    , ReplaceDisksMode(..)
>    , replaceDisksModeToRaw
>    , RpcTimeout(..)
> @@ -398,6 +402,8 @@ $(THH.declareLADT ''String "DdmSimple"
>  $(THH.makeJSONInstance ''DdmSimple)
>
>  -- | Dynamic device modification, all operations version.
> +--
> +-- TODO: DDM_SWAP, DDM_MOVE?
>  $(THH.declareLADT ''String "DdmFull"
>       [ ("DdmFullAdd",    "add")
>       , ("DdmFullRemove", "remove")
> @@ -724,6 +730,9 @@ $(THH.declareLADT ''String "VType"
>    ])
>  $(THH.makeJSONInstance ''VType)
>
> +instance THH.PyValue VType where
> +  showValue = THH.showValue . vTypeToRaw
> +
>  -- * Node role type
>
>  $(THH.declareLADT ''String "NodeRole"
> @@ -785,6 +794,21 @@ $(THH.declareLADT ''String "DiskAccessMode"
>    ])
>  $(THH.makeJSONInstance ''DiskAccessMode)
>
> +-- | Local disk status
> +--
> +-- Python code depends on:
> +--   DiskStatusOk < DiskStatusUnknown < DiskStatusFaulty
>

Why not list them in this order then?


> +$(THH.declareILADT "LocalDiskStatus"
> +  [ ("DiskStatusFaulty",  3)
> +  , ("DiskStatusOk",      1)
> +  , ("DiskStatusUnknown", 2)
> +  ])
> +
> +localDiskStatusName :: LocalDiskStatus -> String
> +localDiskStatusName DiskStatusFaulty = "faulty"
> +localDiskStatusName DiskStatusOk = "ok"
> +localDiskStatusName DiskStatusUnknown = "unknown"
> +
>  -- | Replace disks type.
>  $(THH.declareLADT ''String "ReplaceDisksMode"
>    [ -- Replace disks on primary
> --
> 1.8.4
>
>
Rest LGTM, thanks.



-- 
Thomas Thrainer | 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

Reply via email to