From a717a49967f77ede476da582b6d3bb2c6359da1b Mon Sep 17 00:00:00 2001 From: Tomas Cechvala Date: Mon, 13 Mar 2017 15:18:39 +0100 Subject: Check for a flavor with hugepages Flavor is not checked by name but by huge_pages extra option. It is created when no flavor has huge_pages setting. Change-Id: I1266a6e58047c24456b12f16fc3061082916558c Signed-off-by: Tomas Cechvala Signed-off-by: juraj.linkes --- testing/robot/lib/FDSLibrary.py | 11 ++++++++--- testing/robot/lib/Keywords.robot | 20 ++++++++++++-------- 2 files changed, 20 insertions(+), 11 deletions(-) (limited to 'testing/robot/lib') diff --git a/testing/robot/lib/FDSLibrary.py b/testing/robot/lib/FDSLibrary.py index 32c18eb..0d0929e 100644 --- a/testing/robot/lib/FDSLibrary.py +++ b/testing/robot/lib/FDSLibrary.py @@ -36,12 +36,17 @@ class FDSLibrary(): logger.debug("Initializing nova client.") self.nova_client = nova.Client('2', session=session.Session(auth=auth_obj)) - def check_flavor_exists(self, flavor): - flavor_list_names = [x.name for x in self.nova_client.flavors.list()] - return flavor in flavor_list_names + def check_flavor_exists(self): + flavor_names = [x for x in self.nova_client.flavors.list(min_ram=760)] + for flavor in flavor_names: + for key in flavor.get_keys(): + if "mem_page_size" in key: + logger.info("Found flavor with memory-setting: " + flavor.name) + return flavor.name def create_flavor(self, name, ram, vcpus="1", disk="0"): response = self.nova_client.flavors.create(name, ram, vcpus, disk) + response.set_keys({'hw:mem_page_size': 'large'}) return response def check_image_exists(self, image): diff --git a/testing/robot/lib/Keywords.robot b/testing/robot/lib/Keywords.robot index 36136a1..d9d9cb1 100644 --- a/testing/robot/lib/Keywords.robot +++ b/testing/robot/lib/Keywords.robot @@ -15,16 +15,20 @@ Variables ../data/test_data.py *** Keywords *** Ensure Flavor - ${result} = Check Flavor Exists ${vm_flavor} - Return From Keyword If '${result}' == 'True' + ${result} = Check Flavor Exists + Log ${result} + Set Suite Variable ${flavor_to_use} ${result} + Return From Keyword If '${result}' is not '${None}' Create Flavor ${vm_flavor} ram=768 - ${result} = Check Flavor Exists ${vm_flavor} - Should be True ${result} + ${result} = Check Flavor Exists + Log ${result} + Set Suite Variable ${flavor_to_use} ${result} + Should Not Be Empty ${result} Ensure Image ${result} = Check Image Exists ${vm_image} Return From Keyword If '${result}' == 'True' - Create Image ${vm_image} /home/opnfv/functest/data/cirros-0.3.4-x86_64-disk.img + Create Image ${vm_image} ${image_path} ${result} = Check Image Exists ${vm_image} Should be True ${result} @@ -75,9 +79,9 @@ Create port with ip [Return] ${response.port['id']} Create vm - [Arguments] ${vm_name} ${port_ids} ${security_groups}=${None} ${userdata}=${None} - Log Many ${vm_name} ${vm_image} ${vm_flavor} ${port_ids} ${userdata} - ${response} = create server ${vm_name} ${vm_image} ${vm_flavor} ${port_ids} ${security_groups} + [Arguments] ${vm_name} ${port_ids} ${flavor}=${flavor_to_use} ${security_groups}=${None} ${userdata}=${None} + Log Many ${vm_name} ${vm_image} ${flavor} ${port_ids} ${userdata} + ${response} = create server ${vm_name} ${vm_image} ${flavor} ${port_ids} ${security_groups} ... ${userdata} log many ${response} log ${response.id} -- cgit 1.2.3-korg