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
