summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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: