From 1eddb7ec20a2afe7873b85b16e4c3c137c5a200d Mon Sep 17 00:00:00 2001 From: "jose.lausuch" Date: Wed, 6 Jul 2016 09:20:48 +0200 Subject: Add support functions for SDNVPN test cases JIRA: FUNCTEST-99 Get availability zones from nova client and give the possibility to create an instance on a specific hypervisor (availability zone) Change-Id: Ieb2d26764c50ea4f4403818bb73a238236e03ee4 Signed-off-by: jose.lausuch --- utils/openstack_utils.py | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) (limited to 'utils') diff --git a/utils/openstack_utils.py b/utils/openstack_utils.py index 1379d782..b93d3818 100644 --- a/utils/openstack_utils.py +++ b/utils/openstack_utils.py @@ -178,6 +178,18 @@ def get_floating_ips(nova_client): return None +def get_hypervisors(nova_client): + try: + nodes = [] + hypervisors = nova_client.hypervisors.list() + for hypervisor in hypervisors: + nodes.append(hypervisor.hypervisor_hostname) + return nodes + except Exception, e: + print "Error [get_hypervisors(nova_client)]:", e + return None + + def create_flavor(nova_client, flavor_name, ram, disk, vcpus): try: flavor = nova_client.flavors.create(flavor_name, ram, vcpus, disk) @@ -193,7 +205,8 @@ def create_instance(flavor_name, network_id, instance_name="functest-vm", confdrive=True, - userdata=None): + userdata=None, + av_zone=''): nova_client = get_nova_client() try: flavor = nova_client.flavors.find(name=flavor_name) @@ -207,7 +220,8 @@ def create_instance(flavor_name, name=instance_name, flavor=flavor, image=image_id, - nics=[{"net-id": network_id}] + nics=[{"net-id": network_id}], + availability_zone=av_zone ) else: instance = nova_client.servers.create( @@ -216,7 +230,8 @@ def create_instance(flavor_name, image=image_id, nics=[{"net-id": network_id}], config_drive=confdrive, - userdata=userdata + userdata=userdata, + availability_zone=av_zone ) return instance @@ -226,7 +241,8 @@ def create_instance_and_wait_for_active(flavor_name, network_id, instance_name="", config_drive=False, - userdata=""): + userdata="", + av_zone=''): SLEEP = 3 VM_BOOT_TIMEOUT = 180 nova_client = get_nova_client() @@ -235,7 +251,8 @@ def create_instance_and_wait_for_active(flavor_name, network_id, instance_name, config_drive, - userdata) + userdata, + av_zone) count = VM_BOOT_TIMEOUT / SLEEP for n in range(count, -1, -1): -- cgit 1.2.3-korg