aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCatalina Focsa <catalina.focsa@enea.com>2017-08-28 14:31:12 +0200
committerCatalina Focsa <catalina.focsa@enea.com>2017-09-01 14:21:37 +0200
commitc25140b27229ce85ecbcabfe5af84622b36f0209 (patch)
tree27e45ec96d0ef168354e60e9bbcf42b7e31467e0
parentd20297e509ad127b237a90ba5cedbc2500bae753 (diff)
Add UEFI support in functest
Add extra properties to the cirros image for ARM architecture. In the glanceclient repository, the create method expects **kwargs as parameters, thus an extra_properties variable containing a dictionary of property-value pairs can be added (if given) to the image to be created. If the properties do not appear, the call should not affect the image properties because the dictionary is initialized as empty. Change-Id: I690da90e6c6f250bd0a3d99cce39aa250e19b9c2 Signed-off-by: Catalina Focsa <catalina.focsa@enea.com>
-rw-r--r--functest/ci/config_aarch64_patch.yaml4
-rw-r--r--functest/opnfv_tests/openstack/rally/rally.py7
-rw-r--r--functest/utils/openstack_utils.py20
3 files changed, 25 insertions, 6 deletions
diff --git a/functest/ci/config_aarch64_patch.yaml b/functest/ci/config_aarch64_patch.yaml
index 6b3699b4d..44df3cadf 100644
--- a/functest/ci/config_aarch64_patch.yaml
+++ b/functest/ci/config_aarch64_patch.yaml
@@ -4,6 +4,10 @@ os:
image_name: TestVM
image_file_name: cirros-d161201-aarch64-disk.img
image_password: gocubsgo
+ extra_properties:
+ hw_firmware_type: 'uefi'
+ hw_video_model: 'vga'
+ short_id: 'ubuntu16.04'
snaps:
images:
glance_tests:
diff --git a/functest/opnfv_tests/openstack/rally/rally.py b/functest/opnfv_tests/openstack/rally/rally.py
index fdef8bed0..2042b2d15 100644
--- a/functest/opnfv_tests/openstack/rally/rally.py
+++ b/functest/opnfv_tests/openstack/rally/rally.py
@@ -42,6 +42,10 @@ class RallyBase(testcase.OSGCTestCase):
CONST.__getattribute__('dir_functest_images'),
GLANCE_IMAGE_FILENAME)
GLANCE_IMAGE_FORMAT = CONST.__getattribute__('openstack_image_disk_format')
+ GLANCE_IMAGE_EXTRA_PROPERTIES = {}
+ if hasattr(CONST, 'openstack_extra_properties'):
+ GLANCE_IMAGE_EXTRA_PROPERTIES = CONST.__getattribute__(
+ 'openstack_extra_properties')
FLAVOR_NAME = "m1.tiny"
RALLY_DIR = pkg_resources.resource_filename(
@@ -462,7 +466,8 @@ class RallyBase(testcase.OSGCTestCase):
self.image_exists, self.image_id = os_utils.get_or_create_image(
self.GLANCE_IMAGE_NAME,
self.GLANCE_IMAGE_PATH,
- self.GLANCE_IMAGE_FORMAT)
+ self.GLANCE_IMAGE_FORMAT,
+ self.GLANCE_IMAGE_EXTRA_PROPERTIES)
if self.image_id is None:
raise Exception("Failed to get or create image '%s'" %
self.GLANCE_IMAGE_NAME)
diff --git a/functest/utils/openstack_utils.py b/functest/utils/openstack_utils.py
index 73d1cde49..def0539b6 100644
--- a/functest/utils/openstack_utils.py
+++ b/functest/utils/openstack_utils.py
@@ -1195,8 +1195,13 @@ def get_image_id(glance_client, image_name):
return id
-def create_glance_image(glance_client, image_name, file_path, disk="qcow2",
- container="bare", public="public"):
+def create_glance_image(glance_client,
+ image_name,
+ file_path,
+ disk="qcow2",
+ extra_properties={},
+ container="bare",
+ public="public"):
if not os.path.isfile(file_path):
logger.error("Error: file %s does not exist." % file_path)
return None
@@ -1211,7 +1216,8 @@ def create_glance_image(glance_client, image_name, file_path, disk="qcow2",
image = glance_client.images.create(name=image_name,
visibility=public,
disk_format=disk,
- container_format=container)
+ container_format=container,
+ **extra_properties)
image_id = image.id
with open(file_path) as image_data:
glance_client.images.upload(image_id, image_data)
@@ -1222,7 +1228,7 @@ def create_glance_image(glance_client, image_name, file_path, disk="qcow2",
return None
-def get_or_create_image(name, path, format):
+def get_or_create_image(name, path, format, extra_properties):
image_exists = False
glance_client = get_glance_client()
@@ -1232,7 +1238,11 @@ def get_or_create_image(name, path, format):
image_exists = True
else:
logger.info("Creating image '%s' from '%s'..." % (name, path))
- image_id = create_glance_image(glance_client, name, path, format)
+ image_id = create_glance_image(glance_client,
+ name,
+ path,
+ format,
+ extra_properties)
if not image_id:
logger.error("Failed to create a Glance image...")
else: