[Pkg-ganeti-devel] [ganeti] 07/165: Fix reference to instance disk template in attach

Apollon Oikonomopoulos apoikos at moszumanska.debian.org
Tue Aug 11 13:53:08 UTC 2015


This is an automated email from the git hooks/post-receive script.

apoikos pushed a commit to branch master
in repository ganeti.

commit c8b133cb4934a280d4168583257fba280a8ec706
Author: Aaron Karper <akarper at google.com>
Date:   Thu Jan 22 10:23:32 2015 +0100

    Fix reference to instance disk template in attach
    
    Since we don't have a disk template for instances anymore this patch
    replaces the reference with the aggregate disk template. It also
    allows attaching to diskless instances and removes the disk template
    from the unittests.
    
    Signed-off-by: Aaron Karper <akarper at google.com>
    Reviewed-by: Klaus Aehlig <aehlig at google.com>
---
 lib/cmdlib/instance_set_params.py   | 6 ++++--
 test/py/cmdlib/instance_unittest.py | 5 +++--
 test/py/testutils/config_mock.py    | 1 -
 3 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/lib/cmdlib/instance_set_params.py b/lib/cmdlib/instance_set_params.py
index fafc026..fd6bcca 100644
--- a/lib/cmdlib/instance_set_params.py
+++ b/lib/cmdlib/instance_set_params.py
@@ -380,10 +380,12 @@ class LUInstanceSetParams(LogicalUnit):
     name = params.get(constants.IDISK_NAME, None)
 
     disk = self.GenericGetDiskInfo(uuid, name)
-    if disk.dev_type != self.instance.disk_template:
+    instance_template = self.cfg.GetInstanceDiskTemplate(self.instance.uuid)
+    if (disk.dev_type != instance_template or
+        instance_template == constants.DT_DISKLESS):
       raise errors.OpPrereqError("Instance has '%s' template while disk has"
                                  " '%s' template" %
-                                 (self.instance.disk_template, disk.dev_type),
+                                 (instance_template, disk.dev_type),
                                  errors.ECODE_INVAL)
 
     instance_nodes = self.cfg.GetInstanceNodes(self.instance.uuid)
diff --git a/test/py/cmdlib/instance_unittest.py b/test/py/cmdlib/instance_unittest.py
index 9201255..1783e81 100644
--- a/test/py/cmdlib/instance_unittest.py
+++ b/test/py/cmdlib/instance_unittest.py
@@ -2054,7 +2054,8 @@ class TestLUInstanceSetParams(CmdlibTestCase):
     self.MockOut(instance_set_params, 'netutils', self.netutils_mod)
     self.MockOut(instance_utils, 'netutils', self.netutils_mod)
 
-    self.inst = self.cfg.AddNewInstance()
+    self.dev_type = constants.DT_PLAIN
+    self.inst = self.cfg.AddNewInstance(disk_template=self.dev_type)
     self.op = opcodes.OpInstanceSetParams(instance_name=self.inst.name)
 
     self.running_inst = \
@@ -2893,7 +2894,7 @@ class TestLUInstanceSetParams(CmdlibTestCase):
 
   def testSetOldDiskTemplate(self):
     op = self.CopyOpCode(self.op,
-                         disk_template=self.inst.disk_template)
+                         disk_template=self.dev_type)
     self.ExecOpCodeExpectOpPrereqError(
       op, "Instance already has disk template")
 
diff --git a/test/py/testutils/config_mock.py b/test/py/testutils/config_mock.py
index e128d58..455e996 100644
--- a/test/py/testutils/config_mock.py
+++ b/test/py/testutils/config_mock.py
@@ -284,7 +284,6 @@ class ConfigMock(config.ConfigWriter):
                             admin_state_source=admin_state_source,
                             nics=nics,
                             disks=[],
-                            disk_template=disk_template,
                             disks_active=disks_active,
                             network_port=network_port)
     self.AddInstance(inst, None)

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-ganeti/ganeti.git



More information about the Pkg-ganeti-devel mailing list