diff options
author | Shobhi Jain <shobhi.jain@intel.com> | 2018-04-06 14:44:33 +0100 |
---|---|---|
committer | Shobhi Jain <shobhi.jain@intel.com> | 2018-05-08 08:21:16 +0000 |
commit | 2d33d0f289f3dd3864fe57289e953b876f362c06 (patch) | |
tree | db91b3ec639b8bee32f7f70a587446b58e470319 /yardstick/common | |
parent | be197a6197e803b6334f2ccf72f561245ef7aac7 (diff) |
Replace cinder create volume with shade client.
Adds get_volume function.
Function create volume now uses shade client.
JIRA: YARDSTICK-891
Change-Id: I0b2fae5f2cf52eaf2e4a0062c858d49bc4ce9ccd
Signed-off-by: Shobhi Jain <shobhi.jain@intel.com>
Diffstat (limited to 'yardstick/common')
-rw-r--r-- | yardstick/common/exceptions.py | 4 | ||||
-rw-r--r-- | yardstick/common/openstack_utils.py | 45 |
2 files changed, 35 insertions, 14 deletions
diff --git a/yardstick/common/exceptions.py b/yardstick/common/exceptions.py index 04920943d..1aa734ae3 100644 --- a/yardstick/common/exceptions.py +++ b/yardstick/common/exceptions.py @@ -230,3 +230,7 @@ class ScenarioGetServerError(YardstickException): class ScenarioGetFlavorError(YardstickException): message = 'Nova Get Falvor Scenario failed' + + +class ScenarioCreateVolumeError(YardstickException): + message = 'Cinder Create Volume Scenario failed' diff --git a/yardstick/common/openstack_utils.py b/yardstick/common/openstack_utils.py index 5a83ddb24..026ec620f 100644 --- a/yardstick/common/openstack_utils.py +++ b/yardstick/common/openstack_utils.py @@ -788,21 +788,38 @@ def get_volume_id(shade_client, volume_name): return shade_client.get_volume_id(volume_name) -def create_volume(cinder_client, volume_name, volume_size, - volume_image=False): # pragma: no cover +def get_volume(shade_client, name_or_id, filters=None): + """Get a volume by name or ID. + + :param name_or_id: Name or ID of the volume. + :param filters: A dictionary of meta data to use for further filtering. + + :returns: A volume ``munch.Munch`` or None if no matching volume is found. + """ + return shade_client.get_volume(name_or_id, filters=filters) + + +def create_volume(shade_client, size, wait=True, timeout=None, + image=None, **kwargs): + """Create a volume. + + :param size: Size, in GB of the volume to create. + :param name: (optional) Name for the volume. + :param description: (optional) Name for the volume. + :param wait: If true, waits for volume to be created. + :param timeout: Seconds to wait for volume creation. None is forever. + :param image: (optional) Image name, ID or object from which to create + the volume. + + :returns: The created volume object. + + """ try: - if volume_image: - volume = cinder_client.volumes.create(name=volume_name, - size=volume_size, - imageRef=volume_image) - else: - volume = cinder_client.volumes.create(name=volume_name, - size=volume_size) - return volume - except Exception: # pylint: disable=broad-except - log.exception("Error [create_volume(cinder_client, %s)]", - (volume_name, volume_size)) - return None + return shade_client.create_volume(size, wait=wait, timeout=timeout, + image=image, **kwargs) + except (exc.OpenStackCloudException, exc.OpenStackCloudTimeout) as op_exc: + log.error("Failed to create_volume(shade_client). " + "Exception message: %s", op_exc.orig_message) def delete_volume(cinder_client, volume_id, |