Check for a flavor with hugepages 43/30343/6
authorTomas Cechvala <tcechval@cisco.com>
Mon, 13 Mar 2017 14:18:39 +0000 (15:18 +0100)
committerjuraj.linkes <jlinkes@cisco.com>
Tue, 14 Mar 2017 11:38:14 +0000 (12:38 +0100)
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 <tcechval@cisco.com>
Signed-off-by: juraj.linkes <jlinkes@cisco.com>
testing/robot/data/test_data.py
testing/robot/lib/FDSLibrary.py
testing/robot/lib/Keywords.robot
testing/robot/sec_groups_and_l2-smoke.robot
testing/robot_local_no_score/smoke.robot [moved from testing/robot/smoke.robot with 92% similarity]

index 97aaf2b..86ca8fc 100644 (file)
@@ -21,8 +21,9 @@ vm2_address = '192.168.10.6'
 port1_name = 'fds_smoke_port1_' + run_uuid
 port2_name = 'fds_smoke_port2_' + run_uuid
 subnet_cidr = '192.168.10.0/24'
-vm_flavor = 'm1.small'
-vm_image = 'cirros-0.3.4'
+vm_flavor = 'nfv-fds'
+vm_image = 'cirros-0.3.5'
+image_path = '/home/opnfv/functest/data/cirros-0.3.5-x86_64-disk.img'
 userdata1 = "#!/bin/sh\n\nsudo ip a add {}/24 dev eth0\n while true; do echo curl_passed | nc -l -p 80; done\n".format(vm1_address)
 userdata2 = "#!/bin/sh\n\nsudo ip a add {}/24 dev eth0\nwhile true; do\n ping -c 1 {} 2>&1 >/dev/null\n " \
             "RES=$?\n if [ \"Z$RES\" = \"Z0\" ] ; then\n  echo 'ping PASSED'\n break\n else\n  echo " \
index 32c18eb..0d0929e 100644 (file)
@@ -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):
index 36136a1..d9d9cb1 100644 (file)
@@ -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}
index 17c5a42..347c78c 100644 (file)
@@ -56,7 +56,7 @@ Wait for VM1 to be active
 
 Create VM2
     ${port_ids} =   Create List     ${port2_id}
-    ${result} =     Create vm       ${vm2_name}     ${port_ids}     userdata=${userdata2}
+    ${result} =     Create vm       ${vm2_name}     ${port_ids}    flavor=${flavor_to_use}     userdata=${userdata2}
     Set Suite Variable  ${vm2_id}   ${result}
 
 Wait for VM2 to be active
similarity index 92%
rename from testing/robot/smoke.robot
rename to testing/robot_local_no_score/smoke.robot
index d6f8fe6..473c2c7 100644 (file)
@@ -9,9 +9,9 @@
 
 *** Settings ***
 Library         OperatingSystem
-Library         lib/FDSLibrary.py
-Library         lib/Keywords.robot
-Variables       data/test_data.py
+Library         ../robot/lib/FDSLibrary.py
+Library         ../robot/lib/Keywords.robot
+Variables       ../robot/data/test_data.py
 Suite Setup     Setup Suite
 Suite Teardown  Teardown Suite
 
@@ -34,7 +34,8 @@ Create port for VM2
 
 Create VM1
     ${port_ids} =   Create List     ${port1_id}
-    ${result} =     Create vm       ${vm1_name}     ${port_ids}     userdata=${userdata1}
+    ${result} =     Create vm       ${vm1_name}     ${port_ids}    flavor=${flavor_to_use}
+    ...    userdata=${userdata1}
     Set Suite Variable  ${vm1_id}   ${result}
 
 Wait for VM1 to be active