summaryrefslogtreecommitdiffstats
path: root/nova/tests
diff options
context:
space:
mode:
authorYaguang Tang <yaguang.tang@canonical.com>2013-06-05 15:16:16 +0800
committerYaguang Tang <yaguang.tang@canonical.com>2013-06-13 11:07:22 +0800
commite517e5668ab20214432e06ef87f7b16776edaf7c (patch)
treed86d7df55a350896a7b00d278c7bf2de0a4371a4 /nova/tests
parent3f2b22499d9e94ae3ac80786752223f43d24492b (diff)
Naming instance directory by uuid in VMware Hyper.
Like Libvirt Hyper, Using EC2 template for naming instance directory may cause conflict. we follow what Libvirt does to use instance uuid instead of EC2 template naming. To keep backwards compability, when fails to find a instance by uuid, fall back to use EC2 name. Fix bug #1186944 Change-Id: Iaba099225a9b3b0390cae4c5fbd82d7e6c11f0e0
Diffstat (limited to 'nova/tests')
-rw-r--r--nova/tests/virt/vmwareapi/db_fakes.py4
-rw-r--r--nova/tests/virt/vmwareapi/test_vmwareapi.py57
2 files changed, 36 insertions, 25 deletions
diff --git a/nova/tests/virt/vmwareapi/db_fakes.py b/nova/tests/virt/vmwareapi/db_fakes.py
index 8f2df43e3..93fcf6e13 100644
--- a/nova/tests/virt/vmwareapi/db_fakes.py
+++ b/nova/tests/virt/vmwareapi/db_fakes.py
@@ -19,8 +19,6 @@
Stubouts, mocks and fixtures for the test suite
"""
-import uuid
-
from nova.compute import task_states
from nova.compute import vm_states
from nova import db
@@ -62,7 +60,7 @@ def stub_out_db_instance_api(stubs):
base_options = {
'name': values['name'],
'id': values['id'],
- 'uuid': uuid.uuid4(),
+ 'uuid': values['uuid'],
'reservation_id': utils.generate_uid('r'),
'image_ref': values['image_ref'],
'kernel_id': values['kernel_id'],
diff --git a/nova/tests/virt/vmwareapi/test_vmwareapi.py b/nova/tests/virt/vmwareapi/test_vmwareapi.py
index dd1a0e923..e5c2520ca 100644
--- a/nova/tests/virt/vmwareapi/test_vmwareapi.py
+++ b/nova/tests/virt/vmwareapi/test_vmwareapi.py
@@ -135,6 +135,7 @@ class VMwareAPIVMTestCase(test.TestCase):
def _create_instance_in_the_db(self):
values = {'name': 1,
'id': 1,
+ 'uuid': "fake-uuid",
'project_id': self.project_id,
'user_id': self.user_id,
'image_ref': "1",
@@ -164,7 +165,8 @@ class VMwareAPIVMTestCase(test.TestCase):
self.assertEquals(len(instances), 1)
# Get Nova record for VM
- vm_info = self.conn.get_info({'name': 1})
+ vm_info = self.conn.get_info({'uuid': 'fake-uuid',
+ 'name': 1})
# Get record for VM
vms = vmwareapi_fake._get_objects("VirtualMachine")
@@ -218,7 +220,7 @@ class VMwareAPIVMTestCase(test.TestCase):
def test_spawn(self):
self._create_vm()
- info = self.conn.get_info({'name': 1})
+ info = self.conn.get_info({'uuid': 'fake-uuid'})
self._check_vm_info(info, power_state.RUNNING)
def test_snapshot(self):
@@ -232,11 +234,11 @@ class VMwareAPIVMTestCase(test.TestCase):
'expected_state': task_states.IMAGE_PENDING_UPLOAD}}]
func_call_matcher = matchers.FunctionCallMatcher(expected_calls)
self._create_vm()
- info = self.conn.get_info({'name': 1})
+ info = self.conn.get_info({'uuid': 'fake-uuid'})
self._check_vm_info(info, power_state.RUNNING)
self.conn.snapshot(self.context, self.instance, "Test-Snapshot",
func_call_matcher.call)
- info = self.conn.get_info({'name': 1})
+ info = self.conn.get_info({'uuid': 'fake-uuid'})
self._check_vm_info(info, power_state.RUNNING)
self.assertIsNone(func_call_matcher.match())
@@ -248,12 +250,23 @@ class VMwareAPIVMTestCase(test.TestCase):
def test_reboot(self):
self._create_vm()
- info = self.conn.get_info({'name': 1})
+ info = self.conn.get_info({'name': 1, 'uuid': 'fake-uuid'})
self._check_vm_info(info, power_state.RUNNING)
reboot_type = "SOFT"
self.conn.reboot(self.context, self.instance, self.network_info,
reboot_type)
- info = self.conn.get_info({'name': 1})
+ info = self.conn.get_info({'name': 1, 'uuid': 'fake-uuid'})
+ self._check_vm_info(info, power_state.RUNNING)
+
+ def test_reboot_with_uuid(self):
+ """Test fall back to use name when can't find by uuid."""
+ self._create_vm()
+ info = self.conn.get_info({'name': 'fake-uuid', 'uuid': 'wrong-uuid'})
+ self._check_vm_info(info, power_state.RUNNING)
+ reboot_type = "SOFT"
+ self.conn.reboot(self.context, self.instance, self.network_info,
+ reboot_type)
+ info = self.conn.get_info({'name': 'fake-uuid', 'uuid': 'wrong-uuid'})
self._check_vm_info(info, power_state.RUNNING)
def test_reboot_non_existent(self):
@@ -264,10 +277,10 @@ class VMwareAPIVMTestCase(test.TestCase):
def test_reboot_not_poweredon(self):
self._create_vm()
- info = self.conn.get_info({'name': 1})
+ info = self.conn.get_info({'uuid': 'fake-uuid'})
self._check_vm_info(info, power_state.RUNNING)
self.conn.suspend(self.instance)
- info = self.conn.get_info({'name': 1})
+ info = self.conn.get_info({'uuid': 'fake-uuid'})
self._check_vm_info(info, power_state.SUSPENDED)
self.assertRaises(exception.InstanceRebootFailure, self.conn.reboot,
self.context, self.instance, self.network_info,
@@ -275,10 +288,10 @@ class VMwareAPIVMTestCase(test.TestCase):
def test_suspend(self):
self._create_vm()
- info = self.conn.get_info({'name': 1})
+ info = self.conn.get_info({'uuid': "fake-uuid"})
self._check_vm_info(info, power_state.RUNNING)
self.conn.suspend(self.instance)
- info = self.conn.get_info({'name': 1})
+ info = self.conn.get_info({'uuid': 'fake-uuid'})
self._check_vm_info(info, power_state.SUSPENDED)
def test_suspend_non_existent(self):
@@ -288,13 +301,13 @@ class VMwareAPIVMTestCase(test.TestCase):
def test_resume(self):
self._create_vm()
- info = self.conn.get_info({'name': 1})
+ info = self.conn.get_info({'uuid': 'fake-uuid'})
self._check_vm_info(info, power_state.RUNNING)
self.conn.suspend(self.instance)
- info = self.conn.get_info({'name': 1})
+ info = self.conn.get_info({'uuid': 'fake-uuid'})
self._check_vm_info(info, power_state.SUSPENDED)
self.conn.resume(self.instance, self.network_info)
- info = self.conn.get_info({'name': 1})
+ info = self.conn.get_info({'uuid': 'fake-uuid'})
self._check_vm_info(info, power_state.RUNNING)
def test_resume_non_existent(self):
@@ -304,20 +317,20 @@ class VMwareAPIVMTestCase(test.TestCase):
def test_resume_not_suspended(self):
self._create_vm()
- info = self.conn.get_info({'name': 1})
+ info = self.conn.get_info({'uuid': 'fake-uuid'})
self._check_vm_info(info, power_state.RUNNING)
self.assertRaises(exception.InstanceResumeFailure, self.conn.resume,
self.instance, self.network_info)
def test_power_on(self):
self._create_vm()
- info = self.conn.get_info({'name': 1})
+ info = self.conn.get_info({'uuid': 'fake-uuid'})
self._check_vm_info(info, power_state.RUNNING)
self.conn.power_off(self.instance)
- info = self.conn.get_info({'name': 1})
+ info = self.conn.get_info({'uuid': 'fake-uuid'})
self._check_vm_info(info, power_state.SHUTDOWN)
self.conn.power_on(self.instance)
- info = self.conn.get_info({'name': 1})
+ info = self.conn.get_info({'uuid': 'fake-uuid'})
self._check_vm_info(info, power_state.RUNNING)
def test_power_on_non_existent(self):
@@ -327,10 +340,10 @@ class VMwareAPIVMTestCase(test.TestCase):
def test_power_off(self):
self._create_vm()
- info = self.conn.get_info({'name': 1})
+ info = self.conn.get_info({'uuid': 'fake-uuid'})
self._check_vm_info(info, power_state.RUNNING)
self.conn.power_off(self.instance)
- info = self.conn.get_info({'name': 1})
+ info = self.conn.get_info({'uuid': 'fake-uuid'})
self._check_vm_info(info, power_state.SHUTDOWN)
def test_power_off_non_existent(self):
@@ -341,19 +354,19 @@ class VMwareAPIVMTestCase(test.TestCase):
def test_power_off_suspended(self):
self._create_vm()
self.conn.suspend(self.instance)
- info = self.conn.get_info({'name': 1})
+ info = self.conn.get_info({'uuid': 'fake-uuid'})
self._check_vm_info(info, power_state.SUSPENDED)
self.assertRaises(exception.InstancePowerOffFailure,
self.conn.power_off, self.instance)
def test_get_info(self):
self._create_vm()
- info = self.conn.get_info({'name': 1})
+ info = self.conn.get_info({'uuid': 'fake-uuid'})
self._check_vm_info(info, power_state.RUNNING)
def test_destroy(self):
self._create_vm()
- info = self.conn.get_info({'name': 1})
+ info = self.conn.get_info({'uuid': 'fake-uuid'})
self._check_vm_info(info, power_state.RUNNING)
instances = self.conn.list_instances()
self.assertEquals(len(instances), 1)