From 02a5fe0e093180969de56602e2e32e758d228549 Mon Sep 17 00:00:00 2001 From: Michael Hanselmann <hansmi@google.com> Date: Tue, 5 Feb 2013 17:43:34 +0100 Subject: [PATCH] QA: Set disk template directly via instance object MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use a method on the instance object instead of going through βqa_config.GetInstanceTemplateβ. This provides for better encapsulation. Signed-off-by: Michael Hanselmann <hansmi@google.com> Reviewed-by: Bernardo Dal Seno <bdalseno@google.com> --- qa/qa_config.py | 37 ++++++++++++++++++------------------- qa/qa_instance.py | 15 ++++++--------- qa/qa_rapi.py | 5 ++--- 3 files changed, 26 insertions(+), 31 deletions(-) diff --git a/qa/qa_config.py b/qa/qa_config.py index fd2ea7afe..6b0c5e106 100644 --- a/qa/qa_config.py +++ b/qa/qa_config.py @@ -45,7 +45,7 @@ class _QaInstance(object): "name", "nicmac", "used", - "disk_template", + "_disk_template", ] def __init__(self, name, nicmac): @@ -55,7 +55,7 @@ class _QaInstance(object): self.name = name self.nicmac = nicmac self.used = None - self.disk_template = None + self._disk_template = None @classmethod def FromDict(cls, data): @@ -79,7 +79,7 @@ class _QaInstance(object): self.name) self.used = False - self.disk_template = None + self._disk_template = None def GetNicMacAddr(self, idx, default): """Returns MAC address for NIC. @@ -94,6 +94,21 @@ class _QaInstance(object): else: return default + def SetDiskTemplate(self, template): + """Set the disk template. + + """ + assert template in constants.DISK_TEMPLATES + + self._disk_template = template + + @property + def disk_template(self): + """Returns the current disk template. + + """ + return self._disk_template + class _QaNode(object): __slots__ = [ @@ -480,22 +495,6 @@ def AcquireInstance(_cfg=None): return inst -def GetInstanceTemplate(inst): - """Return the disk template of an instance. - - """ - templ = inst.disk_template - assert templ is not None - return templ - - -def SetInstanceTemplate(inst, template): - """Set the disk template for an instance. - - """ - inst.disk_template = template - - def SetExclusiveStorage(value): """Wrapper for L{_QaConfig.SetExclusiveStorage}. diff --git a/qa/qa_instance.py b/qa/qa_instance.py index d072e52bb..8afe3ec57 100644 --- a/qa/qa_instance.py +++ b/qa/qa_instance.py @@ -77,7 +77,7 @@ def _DiskTest(node, disk_template): AssertCommand(cmd) _CheckSsconfInstanceList(instance.name) - qa_config.SetInstanceTemplate(instance, disk_template) + instance.SetDiskTemplate(disk_template) return instance except: @@ -177,18 +177,15 @@ def _GetBoolInstanceField(instance, field): def IsFailoverSupported(instance): - templ = qa_config.GetInstanceTemplate(instance) - return templ in constants.DTS_MIRRORED + return instance.disk_template in constants.DTS_MIRRORED def IsMigrationSupported(instance): - templ = qa_config.GetInstanceTemplate(instance) - return templ in constants.DTS_MIRRORED + return instance.disk_template in constants.DTS_MIRRORED def IsDiskReplacingSupported(instance): - templ = qa_config.GetInstanceTemplate(instance) - return templ == constants.DT_DRBD8 + return instance.disk_template == constants.DT_DRBD8 @InstanceCheck(None, INST_UP, RETURN_VALUE) @@ -500,7 +497,7 @@ def TestInstanceConvertDiskToPlain(instance, inodes): """gnt-instance modify -t""" name = instance.name - template = qa_config.GetInstanceTemplate(instance) + template = instance.disk_template if template != constants.DT_DRBD8: print qa_utils.FormatInfo("Unsupported template %s, skipping conversion" " test" % template) @@ -697,7 +694,7 @@ def TestInstanceImport(newinst, node, expnode, name): _GetGenericAddParameters(newinst, force_mac=constants.VALUE_GENERATE)) cmd.append(newinst.name) AssertCommand(cmd) - qa_config.SetInstanceTemplate(newinst, templ) + newinst.SetDiskTemplate(templ) def TestBackupList(expnode): diff --git a/qa/qa_rapi.py b/qa/qa_rapi.py index df374600e..887f3b71d 100644 --- a/qa/qa_rapi.py +++ b/qa/qa_rapi.py @@ -554,7 +554,7 @@ def TestRapiNodeGroups(): def TestRapiInstanceAdd(node, use_client): """Test adding a new instance via RAPI""" instance = qa_config.AcquireInstance() - qa_config.SetInstanceTemplate(instance, constants.DT_PLAIN) + instance.SetDiskTemplate(constants.DT_PLAIN) try: disk_sizes = [utils.ParseUnit(size) for size in qa_config.get("disk")] disks = [{"size": size} for size in disk_sizes] @@ -764,8 +764,7 @@ def TestInterClusterInstanceMove(src_instance, dest_instance, rapi_pw_file.write(_rapi_password) rapi_pw_file.flush() - qa_config.SetInstanceTemplate(dest_instance, - qa_config.GetInstanceTemplate(src_instance)) + dest_instance.SetDiskTemplate(src_instance.disk_template) # TODO: Run some instance tests before moving back -- GitLab