diff options
-rw-r--r-- | docs/how-to-use/LibraryUsage.rst | 2 | ||||
-rw-r--r-- | requirements.txt | 2 | ||||
-rw-r--r-- | snaps/openstack/create_keypairs.py | 4 | ||||
-rw-r--r-- | snaps/openstack/tests/create_image_tests.py | 22 | ||||
-rw-r--r-- | snaps/openstack/tests/create_stack_tests.py | 25 | ||||
-rw-r--r-- | snaps/provisioning/tests/ansible_utils_tests.py | 46 |
6 files changed, 79 insertions, 22 deletions
diff --git a/docs/how-to-use/LibraryUsage.rst b/docs/how-to-use/LibraryUsage.rst index 36d4b9c..9efb26f 100644 --- a/docs/how-to-use/LibraryUsage.rst +++ b/docs/how-to-use/LibraryUsage.rst @@ -204,7 +204,7 @@ Create Keypair .. code:: python - from snaps.openstack.create_keypair import KeypairSettings, OpenStackKeypair + from snaps.openstack.create_keypairs import KeypairSettings, OpenStackKeypair keypair_settings = KeypairSettings(name='kepair-name', private_filepath='/tmp/priv-kp') keypair_creator = OpenStackKeypair(os_creds, keypair_settings) keypair_creator.create() diff --git a/requirements.txt b/requirements.txt index c708103..fa58983 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -python-novaclient>=6.0.0 # Apache-2.0 +python-novaclient!=7.0.0,>=6.0.0 # Apache-2.0 python-neutronclient>=5.1.0 # Apache-2.0 python-keystoneclient>=3.8.0 # Apache-2.0 python-glanceclient>=2.5.0 # Apache-2.0 diff --git a/snaps/openstack/create_keypairs.py b/snaps/openstack/create_keypairs.py index cf5a93d..83cfbbc 100644 --- a/snaps/openstack/create_keypairs.py +++ b/snaps/openstack/create_keypairs.py @@ -75,6 +75,10 @@ class OpenStackKeypair: keys, self.keypair_settings.public_filepath, self.keypair_settings.private_filepath) self.__delete_keys_on_clean = True + elif self.__keypair and not os.path.isfile( + self.keypair_settings.private_filepath): + logger.warn("The public key already exist in OpenStack \ + but the private key file is not found ..") return self.__keypair diff --git a/snaps/openstack/tests/create_image_tests.py b/snaps/openstack/tests/create_image_tests.py index cadbe5c..d538fef 100644 --- a/snaps/openstack/tests/create_image_tests.py +++ b/snaps/openstack/tests/create_image_tests.py @@ -619,11 +619,15 @@ class CreateMultiPartImageTests(OSIntegrationTestCase): """ Tests the creation of a 3-part OpenStack image from files. """ + file_only = False + # Set properties properties = {} if self.glance_test_meta: if 'extra_properties' in self.glance_test_meta: properties = self.glance_test_meta['extra_properties'] + if 'disk_file' in self.glance_test_meta: + file_only = True # Create the kernel image kernel_file_name = None @@ -635,9 +639,13 @@ class CreateMultiPartImageTests(OSIntegrationTestCase): else: kernel_url = openstack_tests.CIRROS_DEFAULT_KERNEL_IMAGE_URL - if not kernel_file_name: + if not kernel_file_name and not file_only: kernel_file_name = file_utils.download(kernel_url, self.tmp_dir).name + else: + logger.warn('Will not download the kernel image.' + ' Cannot execute test') + return kernel_file_image_settings = openstack_tests.file_image_test_settings( name=self.image_name + '_kernel', file_path=kernel_file_name) @@ -657,9 +665,13 @@ class CreateMultiPartImageTests(OSIntegrationTestCase): elif 'ramdisk_url' in self.glance_test_meta: ramdisk_url = self.glance_test_meta['ramdisk_url'] - if not ramdisk_file_name: + if not ramdisk_file_name and not file_only: ramdisk_file_name = file_utils.download(ramdisk_url, self.tmp_dir).name + else: + logger.warn('Will not download the ramdisk image.' + ' Cannot execute test') + return ramdisk_file_image_settings = openstack_tests.file_image_test_settings( name=self.image_name + '_ramdisk', file_path=ramdisk_file_name) @@ -678,8 +690,12 @@ class CreateMultiPartImageTests(OSIntegrationTestCase): elif 'disk_url' in self.glance_test_meta: disk_url = self.glance_test_meta['disk_url'] - if not disk_file_name: + if not disk_file_name and not file_only: disk_file_name = file_utils.download(disk_url, self.tmp_dir).name + else: + logger.warn('Will not download the disk file image.' + ' Cannot execute test') + return file_image_settings = openstack_tests.file_image_test_settings( name=self.image_name, file_path=disk_file_name) diff --git a/snaps/openstack/tests/create_stack_tests.py b/snaps/openstack/tests/create_stack_tests.py index 626fc97..d56c967 100644 --- a/snaps/openstack/tests/create_stack_tests.py +++ b/snaps/openstack/tests/create_stack_tests.py @@ -133,11 +133,15 @@ class CreateStackSuccessTests(OSIntegrationTestCase): super(self.__class__, self).__start__() self.guid = str(uuid.uuid4()) - self.heat_cli = heat_utils.heat_client(self.os_creds) + + self.heat_creds = self.admin_os_creds + self.heat_creds.project_name = self.admin_os_creds.project_name + + self.heat_cli = heat_utils.heat_client(self.heat_creds) self.stack_creator = None self.image_creator = OpenStackImage( - self.os_creds, openstack_tests.cirros_image_settings( + self.heat_creds, openstack_tests.cirros_image_settings( name=self.__class__.__name__ + '-' + str(self.guid) + '-image', image_metadata=self.image_metadata)) self.image_creator.create() @@ -191,7 +195,7 @@ class CreateStackSuccessTests(OSIntegrationTestCase): name=self.__class__.__name__ + '-' + str(self.guid) + '-stack', template_path=self.heat_tmplt_path, env_values=self.env_values) - self.stack_creator = create_stack.OpenStackHeatStack(self.os_creds, + self.stack_creator = create_stack.OpenStackHeatStack(self.heat_creds, stack_settings) created_stack = self.stack_creator.create() self.assertIsNotNone(created_stack) @@ -217,7 +221,7 @@ class CreateStackSuccessTests(OSIntegrationTestCase): name=self.__class__.__name__ + '-' + str(self.guid) + '-stack', template=template_dict, env_values=self.env_values) - self.stack_creator = create_stack.OpenStackHeatStack(self.os_creds, + self.stack_creator = create_stack.OpenStackHeatStack(self.heat_creds, stack_settings) created_stack = self.stack_creator.create() self.assertIsNotNone(created_stack) @@ -242,7 +246,7 @@ class CreateStackSuccessTests(OSIntegrationTestCase): name=self.__class__.__name__ + '-' + str(self.guid) + '-stack', template=template_dict, env_values=self.env_values) - self.stack_creator = create_stack.OpenStackHeatStack(self.os_creds, + self.stack_creator = create_stack.OpenStackHeatStack(self.heat_creds, stack_settings) created_stack = self.stack_creator.create() self.assertIsNotNone(created_stack) @@ -287,7 +291,7 @@ class CreateStackSuccessTests(OSIntegrationTestCase): name=self.__class__.__name__ + '-' + str(self.guid) + '-stack', template=template_dict, env_values=self.env_values) - self.stack_creator = create_stack.OpenStackHeatStack(self.os_creds, + self.stack_creator = create_stack.OpenStackHeatStack(self.heat_creds, stack_settings) created_stack1 = self.stack_creator.create() @@ -300,7 +304,7 @@ class CreateStackSuccessTests(OSIntegrationTestCase): self.assertEqual(0, len(self.stack_creator.get_outputs())) # Should be retrieving the instance data - stack_creator2 = create_stack.OpenStackHeatStack(self.os_creds, + stack_creator2 = create_stack.OpenStackHeatStack(self.heat_creds, stack_settings) stack2 = stack_creator2.create() self.assertEqual(created_stack1.id, stack2.id) @@ -314,6 +318,9 @@ class CreateStackNegativeTests(OSIntegrationTestCase): def setUp(self): super(self.__class__, self).__start__() + self.heat_creds = self.admin_os_creds + self.heat_creds.project_name = self.admin_os_creds.project_name + self.stack_name = self.__class__.__name__ + '-' + str(uuid.uuid4()) self.stack_creator = None self.heat_tmplt_path = pkg_resources.resource_filename( @@ -330,7 +337,7 @@ class CreateStackNegativeTests(OSIntegrationTestCase): """ stack_settings = StackSettings(name=self.stack_name, template_path=self.heat_tmplt_path) - self.stack_creator = create_stack.OpenStackHeatStack(self.os_creds, + self.stack_creator = create_stack.OpenStackHeatStack(self.heat_creds, stack_settings) with self.assertRaises(HTTPBadRequest): self.stack_creator.create() @@ -341,7 +348,7 @@ class CreateStackNegativeTests(OSIntegrationTestCase): """ stack_settings = StackSettings(name=self.stack_name, template_path='foo') - self.stack_creator = create_stack.OpenStackHeatStack(self.os_creds, + self.stack_creator = create_stack.OpenStackHeatStack(self.heat_creds, stack_settings) with self.assertRaises(IOError): self.stack_creator.create() diff --git a/snaps/provisioning/tests/ansible_utils_tests.py b/snaps/provisioning/tests/ansible_utils_tests.py index 733068f..83e34ca 100644 --- a/snaps/provisioning/tests/ansible_utils_tests.py +++ b/snaps/provisioning/tests/ansible_utils_tests.py @@ -156,28 +156,58 @@ class AnsibleProvisioningTests(OSIntegrationTestCase): Cleans the created objects """ if self.inst_creator: - self.inst_creator.clean() + try: + self.inst_creator.clean() + except: + pass + + if self.sec_grp_creator: + try: + self.sec_grp_creator.clean() + except: + pass if self.keypair_creator: - self.keypair_creator.clean() + try: + self.keypair_creator.clean() + except: + pass if self.flavor_creator: - self.flavor_creator.clean() + try: + self.flavor_creator.clean() + except: + pass if os.path.isfile(self.keypair_pub_filepath): - os.remove(self.keypair_pub_filepath) + try: + os.remove(self.keypair_pub_filepath) + except: + pass if os.path.isfile(self.keypair_priv_filepath): - os.remove(self.keypair_priv_filepath) + try: + os.remove(self.keypair_priv_filepath) + except: + pass if self.router_creator: - self.router_creator.clean() + try: + self.router_creator.clean() + except: + pass if self.network_creator: - self.network_creator.clean() + try: + self.network_creator.clean() + except: + pass if self.image_creator and not self.image_creator.image_settings.exists: - self.image_creator.clean() + try: + self.image_creator.clean() + except: + pass if os.path.isfile(self.test_file_local_path): os.remove(self.test_file_local_path) |