diff options
author | JingLu5 <lvjing5@huawei.com> | 2017-07-24 01:39:57 +0000 |
---|---|---|
committer | Jing Lu <lvjing5@huawei.com> | 2017-07-29 04:39:36 +0000 |
commit | f089a528c30b8163f52db9e5ff09f8632bc9078e (patch) | |
tree | 4647eefc9de585ad464d37823e1551d0e77d0439 /yardstick/common/openstack_utils.py | |
parent | 362f0330b4456414b9b05e4cc0e9e7db0c753722 (diff) |
Heat: support create and attach volume in heat type context
JIRA: YARDSTICK-756
Some test scenarios require VM with volume attached.
This work is about supporting create and attach volume in heat type context.
context:
name: demo
image: cirros-0.3.5
flavor: yardstick-flavor
user: cirros
placement_groups:
pgrp1:
policy: "availability"
servers:
athena:
floating_ip: true
# per-vm inline volume definition. if no volume size specified, then this
# volume should be an existing volume in the openstack environment
volume: yardstick-volume
placement: "pgrp1"
ares:
# per-vm inline volume definition. if volume size is specified, then this
# volume will be crated and attach to the vm
volume:
name: test-volume
size: 10
# volume mountpoint is also configurable
volume_mountpoint: /dev/vdb
placement: "pgrp1"
networks:
test:
cidr: '10.0.1.0/24'
Change-Id: Ief87b313980a59eac229eb4780d93ffc929ceb66
Signed-off-by: JingLu5 <lvjing5@huawei.com>
Diffstat (limited to 'yardstick/common/openstack_utils.py')
-rw-r--r-- | yardstick/common/openstack_utils.py | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/yardstick/common/openstack_utils.py b/yardstick/common/openstack_utils.py index 8787e605a..f027b7922 100644 --- a/yardstick/common/openstack_utils.py +++ b/yardstick/common/openstack_utils.py @@ -15,6 +15,7 @@ import logging from keystoneauth1 import loading from keystoneauth1 import session +from cinderclient import client as cinderclient from novaclient import client as novaclient from glanceclient import client as glanceclient from neutronclient.neutron import client as neutronclient @@ -108,6 +109,21 @@ def get_heat_api_version(): # pragma: no cover return api_version +def get_cinder_client_version(): # pragma: no cover + try: + api_version = os.environ['OS_VOLUME_API_VERSION'] + except KeyError: + return DEFAULT_API_VERSION + else: + log.info("OS_VOLUME_API_VERSION is set in env as '%s'", api_version) + return api_version + + +def get_cinder_client(): # pragma: no cover + sess = get_session() + return cinderclient.Client(get_cinder_client_version(), session=sess) + + def get_nova_client_version(): # pragma: no cover try: api_version = os.environ['OS_COMPUTE_API_VERSION'] @@ -430,3 +446,11 @@ def get_port_id_by_ip(neutron_client, ip_address): # pragma: no cover def get_image_id(glance_client, image_name): # pragma: no cover images = glance_client.images.list() return next((i.id for i in images if i.name == image_name), None) + + +# ********************************************* +# CINDER +# ********************************************* +def get_volume_id(volume_name): # pragma: no cover + volumes = get_cinder_client().volumes.list() + return next((v.id for v in volumes if v.name == volume_name), None) |