diff options
author | Catalina Focsa <catalina.focsa@enea.com> | 2017-08-28 14:31:12 +0200 |
---|---|---|
committer | Catalina Focsa <catalina.focsa@enea.com> | 2017-09-01 14:21:37 +0200 |
commit | c25140b27229ce85ecbcabfe5af84622b36f0209 (patch) | |
tree | 27e45ec96d0ef168354e60e9bbcf42b7e31467e0 | |
parent | d20297e509ad127b237a90ba5cedbc2500bae753 (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.yaml | 4 | ||||
-rw-r--r-- | functest/opnfv_tests/openstack/rally/rally.py | 7 | ||||
-rw-r--r-- | functest/utils/openstack_utils.py | 20 |
3 files changed, 25 insertions, 6 deletions
diff --git a/functest/ci/config_aarch64_patch.yaml b/functest/ci/config_aarch64_patch.yaml index 6b3699b4..44df3cad 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 fdef8bed..2042b2d1 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 73d1cde4..def0539b 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: |