From bc437b2bc76839ae7872bdefe39e7e39b54b1194 Mon Sep 17 00:00:00 2001 From: Cristina Pauna Date: Tue, 7 Mar 2017 16:52:35 +0200 Subject: Adapt integration tests to use custom image config This fix uses the possibility to pass custom imformation about the image via image_metadata variable. In the integration tests it checks for this info and creates a 3-part image if the kernel_url and ramdisk_url are set. The fix also allows the default url to be overriden as well as passing extra-properties. All the metadata info comes from the app. The part in functest where the custom config is set for creating a 3-part image is https://gerrit.opnfv.org/gerrit/29987 Change-Id: Ib2ad823705dbea68d672514c7c89b150c9c6dc63 Signed-off-by: Cristina Pauna --- snaps/provisioning/tests/ansible_utils_tests.py | 36 ++++++++++++++++++++----- 1 file changed, 30 insertions(+), 6 deletions(-) (limited to 'snaps/provisioning') diff --git a/snaps/provisioning/tests/ansible_utils_tests.py b/snaps/provisioning/tests/ansible_utils_tests.py index 552171f..92a56dc 100644 --- a/snaps/provisioning/tests/ansible_utils_tests.py +++ b/snaps/provisioning/tests/ansible_utils_tests.py @@ -62,13 +62,35 @@ class AnsibleProvisioningTests(OSIntegrationTestCase): self.flavor_creator = None self.router_creator = None self.network_creator = None - self.image_creator = None + self.image_creators = list() try: # Create Image os_image_settings = openstack_tests.ubuntu_url_image(name=guid + '-' + '-image') - self.image_creator = create_image.OpenStackImage(self.os_creds, os_image_settings) - self.image_creator.create() + if self.image_metadata: + if self.image_metadata['disk_url']: + os_image_settings.url = self.image_metadata['disk_url'] + if self.image_metadata['extra_properties']: + os_image_settings.extra_properties = self.image_metadata['extra_properties'] + + # If this is a 3-part image create the kernel and ramdisk images first + if self.image_metadata: + if self.image_metadata['kernel_url']: + kernel_image_settings = openstack_tests.cirros_url_image( + name=os_image_settings.name+'_kernel', url=self.image_metadata['kernel_url']) + self.image_creators.append(create_image.OpenStackImage(self.os_creds, kernel_image_settings)) + kernel_image = self.image_creators[-1].create() + os_image_settings.extra_properties['kernel_id'] = kernel_image.id + + if self.image_metadata['ramdisk_url']: + ramdisk_image_settings = openstack_tests.cirros_url_image( + name=os_image_settings.name+'_ramdisk', url=self.image_metadata['ramdisk_url']) + self.image_creators.append(create_image.OpenStackImage(self.os_creds, ramdisk_image_settings)) + ramdisk_image = self.image_creators[-1].create() + os_image_settings.extra_properties['ramdisk_id'] = ramdisk_image.id + + self.image_creators.append(create_image.OpenStackImage(self.os_creds, os_image_settings)) + self.image_creators[-1].create() # First network is public self.pub_net_config = openstack_tests.get_pub_net_config( @@ -109,7 +131,7 @@ class AnsibleProvisioningTests(OSIntegrationTestCase): router_name=self.pub_net_config.router_settings.name)]) self.inst_creator = create_instance.OpenStackVmInstance( - self.os_creds, instance_settings, self.image_creator.image_settings, + self.os_creds, instance_settings, self.image_creators[-1].image_settings, keypair_settings=self.keypair_creator.keypair_settings) except Exception as e: self.tearDown() @@ -140,8 +162,10 @@ class AnsibleProvisioningTests(OSIntegrationTestCase): if self.network_creator: self.network_creator.clean() - if self.image_creator: - self.image_creator.clean() + if self.image_creators: + while self.image_creators: + self.image_creators[-1].clean() + self.image_creators.pop() if os.path.isfile(self.test_file_local_path): os.remove(self.test_file_local_path) -- cgit 1.2.3-korg