Merge "Generic method for creating a volume snapshot"
This commit is contained in:
commit
7cfb98fa60
|
@ -238,6 +238,23 @@ class ScenarioTest(tempest.test.BaseTestCase):
|
|||
volume = self.volumes_client.show_volume(volume['id'])['volume']
|
||||
return volume
|
||||
|
||||
def create_volume_snapshot(self, volume_id, name=None, description=None,
|
||||
metadata=None, force=False):
|
||||
name = name or data_utils.rand_name(
|
||||
self.__class__.__name__ + '-snapshot')
|
||||
snapshot = self.snapshots_client.create_snapshot(
|
||||
volume_id=volume_id,
|
||||
force=force,
|
||||
display_name=name,
|
||||
description=description,
|
||||
metadata=metadata)['snapshot']
|
||||
self.addCleanup(self.snapshots_client.wait_for_resource_deletion,
|
||||
snapshot['id'])
|
||||
self.addCleanup(self.snapshots_client.delete_snapshot, snapshot['id'])
|
||||
waiters.wait_for_volume_resource_status(self.snapshots_client,
|
||||
snapshot['id'], 'available')
|
||||
return snapshot
|
||||
|
||||
def create_volume_type(self, client=None, name=None, backend_name=None):
|
||||
if not client:
|
||||
client = self.os_admin.volume_types_v2_client
|
||||
|
|
|
@ -16,9 +16,7 @@
|
|||
from oslo_log import log as logging
|
||||
import testtools
|
||||
|
||||
from tempest.common import waiters
|
||||
from tempest import config
|
||||
from tempest.lib.common.utils import data_utils
|
||||
from tempest.lib.common.utils import test_utils
|
||||
from tempest.lib import decorators
|
||||
from tempest.lib import exceptions as lib_exc
|
||||
|
@ -57,20 +55,6 @@ class TestStampPattern(manager.ScenarioTest):
|
|||
if not CONF.volume_feature_enabled.snapshot:
|
||||
raise cls.skipException("Cinder volume snapshots are disabled")
|
||||
|
||||
def _create_volume_snapshot(self, volume):
|
||||
snapshot_name = data_utils.rand_name('scenario-snapshot')
|
||||
snapshot = self.snapshots_client.create_snapshot(
|
||||
volume_id=volume['id'], display_name=snapshot_name)['snapshot']
|
||||
self.addCleanup(self.snapshots_client.wait_for_resource_deletion,
|
||||
snapshot['id'])
|
||||
self.addCleanup(self.snapshots_client.delete_snapshot, snapshot['id'])
|
||||
waiters.wait_for_volume_resource_status(self.volumes_client,
|
||||
volume['id'], 'available')
|
||||
waiters.wait_for_volume_resource_status(self.snapshots_client,
|
||||
snapshot['id'], 'available')
|
||||
self.assertEqual(snapshot_name, snapshot['name'])
|
||||
return snapshot
|
||||
|
||||
def _wait_for_volume_available_on_the_system(self, ip_address,
|
||||
private_key):
|
||||
ssh = self.get_remote_client(ip_address, private_key=private_key)
|
||||
|
@ -116,7 +100,7 @@ class TestStampPattern(manager.ScenarioTest):
|
|||
self.nova_volume_detach(server, volume)
|
||||
|
||||
# snapshot the volume
|
||||
volume_snapshot = self._create_volume_snapshot(volume)
|
||||
volume_snapshot = self.create_volume_snapshot(volume['id'])
|
||||
|
||||
# snapshot the instance
|
||||
snapshot_image = self.create_server_snapshot(server=server)
|
||||
|
|
|
@ -69,21 +69,6 @@ class TestVolumeBootPattern(manager.EncryptionScenarioTest):
|
|||
|
||||
return self.create_server(image_id='', **create_kwargs)
|
||||
|
||||
def _create_snapshot_from_volume(self, vol_id):
|
||||
snap_name = data_utils.rand_name(
|
||||
self.__class__.__name__ + '-snapshot')
|
||||
snap = self.snapshots_client.create_snapshot(
|
||||
volume_id=vol_id,
|
||||
force=True,
|
||||
display_name=snap_name)['snapshot']
|
||||
self.addCleanup(
|
||||
self.snapshots_client.wait_for_resource_deletion, snap['id'])
|
||||
self.addCleanup(self.snapshots_client.delete_snapshot, snap['id'])
|
||||
waiters.wait_for_volume_resource_status(self.snapshots_client,
|
||||
snap['id'], 'available')
|
||||
self.assertEqual(snap_name, snap['name'])
|
||||
return snap
|
||||
|
||||
def _delete_server(self, server):
|
||||
self.servers_client.delete_server(server['id'])
|
||||
waiters.wait_for_server_termination(self.servers_client, server['id'])
|
||||
|
@ -147,7 +132,7 @@ class TestVolumeBootPattern(manager.EncryptionScenarioTest):
|
|||
|
||||
# snapshot a volume
|
||||
LOG.info("Creating snapshot from volume: %s", volume_origin['id'])
|
||||
snapshot = self._create_snapshot_from_volume(volume_origin['id'])
|
||||
snapshot = self.create_volume_snapshot(volume_origin['id'], force=True)
|
||||
|
||||
# create a 3rd instance from snapshot
|
||||
LOG.info("Creating third instance from snapshot: %s", snapshot['id'])
|
||||
|
@ -177,7 +162,7 @@ class TestVolumeBootPattern(manager.EncryptionScenarioTest):
|
|||
boot_volume = self._create_volume_from_image()
|
||||
|
||||
# Create a snapshot
|
||||
boot_snapshot = self._create_snapshot_from_volume(boot_volume['id'])
|
||||
boot_snapshot = self.create_volume_snapshot(boot_volume['id'])
|
||||
|
||||
# Create a server from a volume snapshot
|
||||
server = self._boot_instance_from_resource(
|
||||
|
|
Loading…
Reference in New Issue