Add workaround for bug with launching vcenter instance from snapshot

Change-Id: I224451a425448d65fc804e55d292fe4e9252e36f
Related-bug: #1536795
This commit is contained in:
Ilya Bumarskov 2016-01-31 21:02:32 +03:00
parent 5fe41945c2
commit 7bcddf1802
1 changed files with 23 additions and 21 deletions

View File

@ -267,13 +267,6 @@ class TestVcenterImageAction(nmanager.SmokeChecksTest):
super(TestVcenterImageAction, self).setUp()
self.check_clients_state()
@classmethod
def find_flavor_id(cls):
flavors = dict([flavor.ram, flavor.id]
for flavor in cls.compute_client.flavors.list()
if flavor.ram >= 128)
return flavors[sorted(flavors)[0]]
def _wait_for_server_status(self, server, status):
self.status_timeout(self.compute_client.servers,
server.id,
@ -302,11 +295,7 @@ class TestVcenterImageAction(nmanager.SmokeChecksTest):
# Block until resource deletion has completed or timed-out
test.call_until_true(is_deletion_complete, 10, 1)
def _boot_image(self, image_id):
flavor_id = self.find_flavor_id()
if not flavor_id:
self.fail("Flavor for tests was not found. Seems that "
"something is wrong with nova services.")
def _boot_image(self, image_id, flavor_id):
name = rand_name('ost1_test-image')
client = self.compute_client
@ -362,6 +351,7 @@ class TestVcenterImageAction(nmanager.SmokeChecksTest):
Target component: Glance
Scenario:
1. Create flavor.
1. Get existing image by name.
2. Launch an instance using the default image.
3. Make snapshot of the created instance.
@ -369,6 +359,7 @@ class TestVcenterImageAction(nmanager.SmokeChecksTest):
5. Wait while instance deleted
6. Launch another instance from the snapshot created in step 2.
7. Delete server.
9. Delete flavor.
Duration: 300 s.
Available since release: 2014.2-6.1
@ -378,42 +369,53 @@ class TestVcenterImageAction(nmanager.SmokeChecksTest):
img_name = 'TestVM-VMDK'
self.manager.config.compute.image_name = img_name
self.check_image_exists()
image = self.verify(30, self.get_image_from_name, 1,
fail_msg = "Flavor was not created properly."
flavor = self.verify(30, self._create_flavors, 1,
fail_msg,
"flavor creation",
self.compute_client, 256, 0)
image = self.verify(30, self.get_image_from_name, 2,
"Image can not be retrieved.",
"getting image by name",
img_name)
server = self.verify(180, self._boot_image, 2,
server = self.verify(180, self._boot_image, 3,
"Image can not be booted.",
"image booting",
image)
image, flavor.id)
# snapshot the instance
snapshot_image_id = self.verify(700, self._create_image, 3,
snapshot_image_id = self.verify(700, self._create_image, 4,
"Snapshot of an"
" instance can not be created.",
'snapshotting an instance',
server)
self.verify(180, self.compute_client.servers.delete, 4,
self.verify(180, self.compute_client.servers.delete, 5,
"Instance can not be deleted.",
'Instance deletion',
server)
self.verify(180, self._wait_for_server_deletion, 5,
self.verify(180, self._wait_for_server_deletion, 6,
"Instance can not be deleted.",
'Wait for instance deletion complete',
server)
server = self.verify(700, self._boot_image, 6,
server = self.verify(700, self._boot_image, 7,
"Instance can not be launched from snapshot.",
'booting instance from snapshot',
snapshot_image_id)
snapshot_image_id, flavor.id)
self.verify(30, self._delete_server, 7,
self.verify(30, self._delete_server, 8,
"Server can not be deleted.",
"server deletion", server)
msg = "Flavor failed to be deleted."
self.verify(30, self._delete_flavors, 9, msg,
"flavor deletion", self.compute_client, flavor)
class VcenterVolumesTest(nmanager.SmokeChecksTest):