On Thu, Aug 22, 2013 at 10:16 AM, Helga Velroyen <[email protected]> wrote:
> This adjusts and extends the QA for 'gnt-cluster modify' > with respect to the changes regarding the DRBD > usermode helper. > > Signed-off-by: Helga Velroyen <[email protected]> > --- > qa/qa_cluster.py | 78 > ++++++++++++++++++++++++++++++++++++++------------------ > 1 file changed, 53 insertions(+), 25 deletions(-) > > diff --git a/qa/qa_cluster.py b/qa/qa_cluster.py > index 0d051f9..500155d 100644 > --- a/qa/qa_cluster.py > +++ b/qa/qa_cluster.py > @@ -553,8 +553,8 @@ def TestClusterModifyDiskTemplates(): > enabled_disk_templates = qa_config.GetEnabledDiskTemplates() > default_disk_template = qa_config.GetDefaultDiskTemplate() > > - _TestClusterModifyDiskTemplatesArguments(default_disk_template, > - enabled_disk_templates) > + _TestClusterModifyDiskTemplatesArguments(default_disk_template) > + _TestClusterModifyDiskTemplatesDrbdHelper(enabled_disk_templates) > _TestClusterModifyDiskTemplatesVgName(enabled_disk_templates) > > _RestoreEnabledDiskTemplates() > @@ -591,8 +591,57 @@ def _RestoreEnabledDiskTemplates(): > AssertCommand(cmd, fail=False) > > > -def _TestClusterModifyDiskTemplatesArguments(default_disk_template, > - enabled_disk_templates): > +def _TestClusterModifyDiskTemplatesDrbdHelper(enabled_disk_templates): > + """Tests argument handling of 'gnt-cluster modify' with respect to > + the parameter '--drbd-usermode-helper'. This test is independent > + of instances. > + > + """ > + _RestoreEnabledDiskTemplates() > + > + if constants.DT_DRBD8 not in enabled_disk_templates: > + return > + if constants.DT_PLAIN not in enabled_disk_templates: > + return > + > + drbd_usermode_helper = qa_config.get("drbd-usermode-helper", > "/bin/true") > + bogus_usermode_helper = "/tmp/pinkbunny" > + for command, fail in \ > + [(["gnt-cluster", "modify", > + "--enabled-disk-templates=%s" % constants.DT_DRBD8, > + "--ipolicy-disk-templates=%s" % constants.DT_DRBD8], False), > + (["gnt-cluster", "modify", > + "--drbd-usermode-helper=%s" % drbd_usermode_helper], False), > + (["gnt-cluster", "modify", > + "--drbd-usermode-helper=%s" % bogus_usermode_helper], True), > + # unsetting helper when DRBD is enabled should not work > + (["gnt-cluster", "modify", > + "--drbd-usermode-helper="], True), > + (["gnt-cluster", "modify", > + "--enabled-disk-templates=%s" % constants.DT_PLAIN, > + "--ipolicy-disk-templates=%s" % constants.DT_PLAIN], False), > + (["gnt-cluster", "modify", > + "--drbd-usermode-helper="], True), > + (["gnt-cluster", "modify", > + "--drbd-usermode-helper=%s" % drbd_usermode_helper], False), > + (["gnt-cluster", "modify", > + "--drbd-usermode-helper=%s" % drbd_usermode_helper, > + "--enabled-disk-templates=%s" % constants.DT_DRBD8, > + "--ipolicy-disk-templates=%s" % constants.DT_DRBD8], False), > + (["gnt-cluster", "modify", > + "--drbd-usermode-helper=", > + "--enabled-disk-templates=%s" % constants.DT_PLAIN, > + "--ipolicy-disk-templates=%s" % constants.DT_PLAIN], False), > + (["gnt-cluster", "modify", > + "--drbd-usermode-helper=%s" % drbd_usermode_helper, > + "--enabled-disk-templates=%s" % constants.DT_DRBD8, > + "--ipolicy-disk-templates=%s" % constants.DT_DRBD8], False), > + ]: > Could we skip some of those tests because there are already unit tests for them? > + AssertCommand(command, fail=fail) > + _RestoreEnabledDiskTemplates() > + > + > +def _TestClusterModifyDiskTemplatesArguments(default_disk_template): > """Tests argument handling of 'gnt-cluster modify' with respect to > the parameter '--enabled-disk-templates'. This test is independent > of instances. > @@ -613,27 +662,6 @@ def > _TestClusterModifyDiskTemplatesArguments(default_disk_template, > "--ipolicy-disk-templates=%s" % default_disk_template], > fail=False) > > - if constants.DT_DRBD8 in enabled_disk_templates: > - # interaction with --drbd-usermode-helper option > - drbd_usermode_helper = qa_config.get("drbd-usermode-helper", None) > - if not drbd_usermode_helper: > - drbd_usermode_helper = "/bin/true" > - # specifying a helper when drbd gets disabled is ok. Note that drbd > still > - # has to be installed on the nodes in this case > - AssertCommand(["gnt-cluster", "modify", > - "--drbd-usermode-helper=%s" % drbd_usermode_helper, > - "--enabled-disk-templates=%s" % constants.DT_DISKLESS, > - "--ipolicy-disk-templates=%s" % constants.DT_DISKLESS], > - fail=False) > - # specifying a helper when drbd is re-enabled > - AssertCommand(["gnt-cluster", "modify", > - "--drbd-usermode-helper=%s" % drbd_usermode_helper, > - "--enabled-disk-templates=%s" % > - ",".join(enabled_disk_templates), > - "--ipolicy-disk-templates=%s" % > - ",".join(enabled_disk_templates)], > - fail=False) > - > > def _TestClusterModifyDiskTemplatesVgName(enabled_disk_templates): > """Tests argument handling of 'gnt-cluster modify' with respect to > -- > 1.8.3 > > 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
