summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/how-to-use/LibraryUsage.rst2
-rw-r--r--requirements.txt2
-rw-r--r--snaps/openstack/create_keypairs.py4
-rw-r--r--snaps/openstack/tests/create_image_tests.py22
-rw-r--r--snaps/openstack/tests/create_stack_tests.py25
-rw-r--r--snaps/provisioning/tests/ansible_utils_tests.py46
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)