On Tue, Oct 08, 2013 at 09:54:49AM +0200, Thomas Thrainer wrote: > Should the patch title not read "... add node parameter related constants" > instead of "... add node parameter related"?
Will fix. > > > On Mon, Oct 7, 2013 at 4:37 PM, Jose A. Lopes <[email protected]> wrote: > > > Add node parameter related constants to the Haskell to Python constant > > generation. This patch also fixes a type inconsistency between > > Haskell and Python, namely, 'ndsParameterTypes' and > > 'ndsParameterTitles' become 'Map's instead of 'Tuple's, which allows > > us to simplify the module 'Ganeti.Query.Common'. > > > > Signed-off-by: Jose A. Lopes <[email protected]> > > --- > > lib/constants.py | 38 ++++++++++---------------------------- > > src/Ganeti/HsConstants.hs | 45 > > ++++++++++++++++++++++++++++++++++++++++++++- > > src/Ganeti/Query/Common.hs | 12 ++---------- > > 3 files changed, 56 insertions(+), 39 deletions(-) > > > > diff --git a/lib/constants.py b/lib/constants.py > > index 8319124..1fe7087 100644 > > --- a/lib/constants.py > > +++ b/lib/constants.py > > @@ -976,6 +976,16 @@ DS_DEFAULTS = { > > DS_DISK_OVERHEAD: 0, > > } > > > > +ND_OOB_PROGRAM = _constants.ND_OOB_PROGRAM > > +ND_SPINDLE_COUNT = _constants.ND_SPINDLE_COUNT > > +ND_EXCLUSIVE_STORAGE = _constants.ND_EXCLUSIVE_STORAGE > > +ND_OVS = _constants.ND_OVS > > +ND_OVS_NAME = _constants.ND_OVS_NAME > > +ND_OVS_LINK = _constants.ND_OVS_LINK > > + > > +NDS_PARAMETER_TYPES = _constants.NDS_PARAMETER_TYPES > > +NDS_PARAMETERS = _constants.NDS_PARAMETERS > > +NDS_PARAMETER_TITLES = _constants.NDS_PARAMETER_TITLES > > DSS_PARAMETER_TYPES = { > > DS_DISK_TOTAL: VTYPE_INT, > > DS_DISK_RESERVED: VTYPE_INT, > > @@ -1057,34 +1067,6 @@ IPOLICY_PARAMETERS = compat.UniqueFrozenset([ > > IPOLICY_ALL_KEYS = (IPOLICY_PARAMETERS | > > frozenset([ISPECS_MINMAX, ISPECS_STD, IPOLICY_DTS])) > > > > -# Node parameter names > > -ND_OOB_PROGRAM = "oob_program" > > -ND_SPINDLE_COUNT = "spindle_count" > > -ND_EXCLUSIVE_STORAGE = "exclusive_storage" > > -ND_OVS = "ovs" > > -ND_OVS_NAME = "ovs_name" > > -ND_OVS_LINK = "ovs_link" > > - > > -NDS_PARAMETER_TYPES = { > > - ND_OOB_PROGRAM: VTYPE_STRING, > > - ND_SPINDLE_COUNT: VTYPE_INT, > > - ND_EXCLUSIVE_STORAGE: VTYPE_BOOL, > > - ND_OVS: VTYPE_BOOL, > > - ND_OVS_NAME: VTYPE_MAYBE_STRING, > > - ND_OVS_LINK: VTYPE_MAYBE_STRING, > > - } > > - > > -NDS_PARAMETERS = frozenset(NDS_PARAMETER_TYPES.keys()) > > - > > -NDS_PARAMETER_TITLES = { > > - ND_OOB_PROGRAM: "OutOfBandProgram", > > - ND_SPINDLE_COUNT: "SpindleCount", > > - ND_EXCLUSIVE_STORAGE: "ExclusiveStorage", > > - ND_OVS: "OpenvSwitch", > > - ND_OVS_NAME: "OpenvSwitchName", > > - ND_OVS_LINK: "OpenvSwitchLink", > > - } > > - > > # Logical Disks parameters > > LDP_RESYNC_RATE = "resync-rate" > > LDP_STRIPES = "stripes" > > diff --git a/src/Ganeti/HsConstants.hs b/src/Ganeti/HsConstants.hs > > index 195bc2f..165d522 100644 > > --- a/src/Ganeti/HsConstants.hs > > +++ b/src/Ganeti/HsConstants.hs > > @@ -38,7 +38,7 @@ module Ganeti.HsConstants where > > > > import Data.List ((\\)) > > import Data.Map (Map) > > -import qualified Data.Map as Map (fromList) > > +import qualified Data.Map as Map (fromList, keys, insert) > > > > import AutoConf > > import Ganeti.ConstantUtils (FrozenSet, Protocol(..), buildVersion) > > @@ -664,6 +664,49 @@ rpcTmo_1day = Types.rpcTimeoutToRaw OneDay > > rpcConnectTimeout :: Int > > rpcConnectTimeout = 5 > > > > +-- | Node parameter names > > + > > +ndExclusiveStorage :: String > > +ndExclusiveStorage = "exclusive_storage" > > + > > +ndOobProgram :: String > > +ndOobProgram = "oob_program" > > + > > +ndSpindleCount :: String > > +ndSpindleCount = "spindle_count" > > + > > +ndOvs :: String > > +ndOvs = "ovs" > > + > > +ndOvsLink :: String > > +ndOvsLink = "ovs_link" > > + > > +ndOvsName :: String > > +ndOvsName = "ovs_name" > > + > > +ndsParameterTypes :: Map String VType > > +ndsParameterTypes = > > + Map.fromList > > + [(ndExclusiveStorage, VTypeBool), > > + (ndOobProgram, VTypeString), > > + (ndOvs, VTypeBool), > > + (ndOvsLink, VTypeMaybeString), > > + (ndOvsName, VTypeMaybeString), > > + (ndSpindleCount, VTypeInt)] > > + > > +ndsParameters :: FrozenSet String > > +ndsParameters = ConstantUtils.mkSet (Map.keys ndsParameterTypes) > > + > > +ndsParameterTitles :: Map String String > > +ndsParameterTitles = > > + Map.fromList > > + [(ndExclusiveStorage, "ExclusiveStorage"), > > + (ndOobProgram, "OutOfBandProgram"), > > + (ndOvs, "OpenvSwitch"), > > + (ndOvsLink, "OpenvSwitchLink"), > > + (ndOvsName, "OpenvSwitchName"), > > + (ndSpindleCount, "SpindleCount")] > > + > > ipCommandPath :: String > > ipCommandPath = AutoConf.ipPath > > > > diff --git a/src/Ganeti/Query/Common.hs b/src/Ganeti/Query/Common.hs > > index 51b3b76..f710d71 100644 > > --- a/src/Ganeti/Query/Common.hs > > +++ b/src/Ganeti/Query/Common.hs > > @@ -37,7 +37,6 @@ module Ganeti.Query.Common > > , serialFields > > , tagsFields > > , dictFieldGetter > > - , buildQFTLookup > > , buildNdParamField > > ) where > > > > @@ -147,20 +146,13 @@ tagsFields = > > dictFieldGetter :: (DictObject a) => String -> Maybe a -> ResultEntry > > dictFieldGetter k = maybe rsNoData (rsMaybeNoData . lookup k . toDict) > > > > --- | Build an optimised lookup map from a Python _PARAMETER_TYPES > > --- association list. > > -buildQFTLookup :: [(String, String)] -> Map.Map String FieldType > > -buildQFTLookup = > > - Map.fromList . > > - map (\(k, v) -> (k, maybe QFTOther vTypeToQFT (vTypeFromRaw v))) > > - > > -- | Ndparams optimised lookup map. > > ndParamTypes :: Map.Map String FieldType > > -ndParamTypes = buildQFTLookup C.ndsParameterTypes > > +ndParamTypes = Map.map vTypeToQFT C.ndsParameterTypes > > > > -- | Ndparams title map. > > ndParamTitles :: Map.Map String FieldTitle > > -ndParamTitles = Map.fromList C.ndsParameterTitles > > +ndParamTitles = C.ndsParameterTitles > > > > -- | Ndparam getter builder: given a field, it returns a FieldConfig > > -- getter, that is a function that takes the config and the object and > > -- > > 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
