On Tue, Oct 8, 2013 at 11:36 AM, Jose A. Lopes <[email protected]> wrote:

> 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 ?
>
>
What you prefer. I couldn't resist thinking why they are not listed in a
"sensible" order... LGTM either way.


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



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