On Tue, Oct 08, 2013 at 11:10:23AM +0200, Thomas Thrainer wrote:
> 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?

They are listed alphabetically. Do you want me to change that ?

> 
> 
> > +$(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

-- 
Jose Antonio Lopes
Ganeti Engineering
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
Steuernummer: 48/725/00206
Umsatzsteueridentifikationsnummer: DE813741370

Reply via email to