Il 19/ago/2014 10:37 "'Aaron Karper' via ganeti-devel" < [email protected]> ha scritto: > > In order to modify the data collectors displayed, there are the options > --activate-data-collector=[inst-status-xen ..] and > --deactivate-data-collector=[inst-status-xen ..] > > Includes bootstrap.py and cfgupgrade.py setting data_collectors config > values. > > Implements 870
Actually, it's the other patch fixing the issue with the xen collector. This one is just an evolution of the fix. I'd remove this line. > > Signed-off-by: Aaron Karper <[email protected]> > --- > lib/bootstrap.py | 4 ++++ > lib/client/gnt_cluster.py | 28 ++++++++++++++++++++++++++-- > lib/cmdlib/cluster.py | 6 ++++++ > lib/objects.py | 2 +- > src/Ganeti/OpCodes.hs | 2 ++ > src/Ganeti/OpParams.hs | 14 ++++++++++++++ > test/py/cfgupgrade_unittest.py | 7 +++++++ > tools/cfgupgrade | 2 -- > 8 files changed, 60 insertions(+), 5 deletions(-) > > diff --git a/lib/bootstrap.py b/lib/bootstrap.py > index 5f79dd1..3da5f78 100644 > --- a/lib/bootstrap.py > +++ b/lib/bootstrap.py > @@ -799,6 +799,9 @@ def InitCluster(cluster_name, mac_prefix, # pylint: disable=R0913, R0914 > if compression_tools is not None: > cluster.CheckCompressionTools(compression_tools) > > + data_collectors = dict((name, dict(active=True)) for name in > + constants.DATA_COLLECTOR_NAMES) > + > # init of cluster config file > cluster_config = objects.Cluster( > serial_no=1, > @@ -828,6 +831,7 @@ def InitCluster(cluster_name, mac_prefix, # pylint: disable=R0913, R0914 > ctime=now, > mtime=now, > maintain_node_health=maintain_node_health, > + data_collectors=data_collectors, > drbd_usermode_helper=drbd_helper, > default_iallocator=default_iallocator, > default_iallocator_params=default_iallocator_params, > diff --git a/lib/client/gnt_cluster.py b/lib/client/gnt_cluster.py > index 655cb43..67cab0a 100644 > --- a/lib/client/gnt_cluster.py > +++ b/lib/client/gnt_cluster.py > @@ -75,6 +75,16 @@ TO_OPT = cli_option("--to", default=None, type="string", > RESUME_OPT = cli_option("--resume", default=False, action="store_true", > help="Resume any pending Ganeti upgrades") > > +ACTIVATE_DATA_COLLECTOR = cli_option( > + "--activate-data-collector", > + action="append", choices=list(constants.DATA_COLLECTOR_NAMES), > + help="Reactivate a data collector for reporting.") > + > +DEACTIVATE_DATA_COLLECTOR = cli_option( > + "--deactivate-data-collector", > + action="append", choices=list(constants.DATA_COLLECTOR_NAMES), > + help="Deactivate a data collector for reporting.") In similar situations we tend to use enable/disable instead of activate/deactivate. Could you please rename them, for consistency? > + > _EPO_PING_INTERVAL = 30 # 30 seconds between pings > _EPO_PING_TIMEOUT = 1 # 1 second > _EPO_REACHABLE_TIMEOUT = 15 * 60 # 15 minutes > @@ -1173,7 +1183,9 @@ def SetClusterParams(opts, args): > opts.shared_file_storage_dir is not None or > opts.compression_tools is not None or > opts.shared_file_storage_dir is not None or > - opts.enabled_user_shutdown is not None): > + opts.enabled_user_shutdown is not None or > + opts.activate_data_collector is not None or > + opts.deactivate_data_collector is not None): > ToStderr("Please give at least one of the parameters.") > return 1 > > @@ -1256,6 +1268,14 @@ def SetClusterParams(opts, args): > > compression_tools = _GetCompressionTools(opts) > > + activate_dcs = set(opts.activate_data_collector or []) > + deactivate_dcs = set(opts.deactivate_data_collector or []) > + activate_and_deactivate = activate_dcs & deactivate_dcs > + if activate_and_deactivate: > + ToStderr("Can't activate and deactivate %s at the same time." % > + sorted(activate_and_deactivate)) > + return 1 > + > op = opcodes.OpClusterSetParams( > vg_name=vg_name, > drbd_helper=drbd_helper, > @@ -1294,6 +1314,8 @@ def SetClusterParams(opts, args): > shared_file_storage_dir=opts.shared_file_storage_dir, > compression_tools=compression_tools, > enabled_user_shutdown=opts.enabled_user_shutdown, > + activate_data_collectors=list(activate_dcs), > + deactivate_data_collectors=list(deactivate_dcs), > ) > return base.GetResult(None, opts, SubmitOrSend(op, opts)) > > @@ -2279,7 +2301,9 @@ commands = { > ENABLED_USER_SHUTDOWN_OPT] + > INSTANCE_POLICY_OPTS + > [GLOBAL_FILEDIR_OPT, GLOBAL_SHARED_FILEDIR_OPT, ZEROING_IMAGE_OPT, > - COMPRESSION_TOOLS_OPT], > + COMPRESSION_TOOLS_OPT] + > + [ACTIVATE_DATA_COLLECTOR, > + DEACTIVATE_DATA_COLLECTOR], > "[opts...]", > "Alters the parameters of the cluster"), > "renew-crypto": ( > diff --git a/lib/cmdlib/cluster.py b/lib/cmdlib/cluster.py > index 10c9d8c..2ddd81d 100644 > --- a/lib/cmdlib/cluster.py > +++ b/lib/cmdlib/cluster.py > @@ -1559,6 +1559,12 @@ class LUClusterSetParams(LogicalUnit): > > ensure_kvmd = False > > + for name in self.op.activate_data_collectors: > + self.cluster.data_collectors[name]["active"] = True "Active" here is like a magic number. Please add a constant for it and substitute all of its uses. > + > + for name in self.op.deactivate_data_collectors: > + self.cluster.data_collectors[name]["active"] = False > + > if self.op.hvparams: > self.cluster.hvparams = self.new_hvparams > if self.op.os_hvp: > diff --git a/lib/objects.py b/lib/objects.py > index 2fa72a0..02ea411 100644 > --- a/lib/objects.py > +++ b/lib/objects.py > @@ -407,7 +407,6 @@ class ConfigData(ConfigObject): > "networks", > "disks", > "serial_no", > - "datacollectors", > ] + _TIMESTAMPS > > def ToDict(self, _with_private=False): > @@ -1618,6 +1617,7 @@ class Cluster(TaggableObject): > "zeroing_image", > "compression_tools", > "enabled_user_shutdown", > + "data_collectors", > ] + _TIMESTAMPS + _UUID > > def UpgradeConfig(self): > diff --git a/src/Ganeti/OpCodes.hs b/src/Ganeti/OpCodes.hs > index 635cd1b..858d629 100644 > --- a/src/Ganeti/OpCodes.hs > +++ b/src/Ganeti/OpCodes.hs > @@ -246,6 +246,8 @@ $(genOpCode "OpCode" > , pZeroingImage > , pCompressionTools > , pEnabledUserShutdown > + , pActivateDataCollectors > + , pDeactivateDataCollectors > ], > []) > , ("OpClusterRedistConf", > diff --git a/src/Ganeti/OpParams.hs b/src/Ganeti/OpParams.hs > index 413fae9..83255d4 100644 > --- a/src/Ganeti/OpParams.hs > +++ b/src/Ganeti/OpParams.hs > @@ -282,6 +282,8 @@ module Ganeti.OpParams > , pEnabledDiskTemplates > , pEnabledUserShutdown > , pAdminStateSource > + , pActivateDataCollectors > + , pDeactivateDataCollectors > ) where > > import Control.Monad (liftM, mplus) > @@ -1829,3 +1831,15 @@ pNetworkVlan :: Field > pNetworkVlan = > withDoc "Network vlan when connecting to a group" . > defaultField [| "" |] $ stringField "network_vlan" > + > +pActivateDataCollectors :: Field > +pActivateDataCollectors = > + withDoc "Reactivate the data collectors" . > + defaultField [| emptyListSet |] $ > + simpleField "activate_data_collectors" [t| ListSet String |] > + > +pDeactivateDataCollectors :: Field > +pDeactivateDataCollectors = > + withDoc "Deactivate the data collectors" . > + defaultField [| emptyListSet |] $ > + simpleField "deactivate_data_collectors" [t| ListSet String |] > diff --git a/test/py/cfgupgrade_unittest.py b/test/py/cfgupgrade_unittest.py > index 3f8c3cf..b61967e 100755 > --- a/test/py/cfgupgrade_unittest.py > +++ b/test/py/cfgupgrade_unittest.py > @@ -54,6 +54,13 @@ def GetMinimalConfig(): > "zeroing_image": "", > "compression_tools": constants.IEC_DEFAULT_TOOLS, > "enabled_user_shutdown": False, > + "data_collectors": { > + "diskstats": { "active": True }, > + "drbd": { "active": True }, > + "lv": { "active": True }, > + "inst-status-xen": { "active": True }, > + "cpu-avg-load": { "active": True }, > + }, > }, > "instances": {}, > "disks": {}, > diff --git a/tools/cfgupgrade b/tools/cfgupgrade > index b97ebd4..78e26d9 100755 > --- a/tools/cfgupgrade > +++ b/tools/cfgupgrade > @@ -437,8 +437,6 @@ def UpgradeTopLevelDisks(config_data): > iobj["disks"] = disk_uuids > > > - > - > def UpgradeAll(config_data): > config_data["version"] = version.BuildVersion(TARGET_MAJOR, TARGET_MINOR, 0) > UpgradeRapiUsers() > -- > 2.1.0.rc2.206.gedb03e5 > Thanks, Michele
