summaryrefslogtreecommitdiffstats
path: root/snaps/openstack/tests/create_stack_tests.py
diff options
context:
space:
mode:
authorspisarski <s.pisarski@cablelabs.com>2017-10-27 14:06:01 -0600
committerspisarski <s.pisarski@cablelabs.com>2017-10-27 15:55:54 -0600
commit6b7307374f6cfcad9eec8986aba8fdd8e08c8574 (patch)
treeebecca41a486b735d116fd2abc997c7b24ff6dff /snaps/openstack/tests/create_stack_tests.py
parent08ebe69c1d2e29aa02efd59f58dbbc0be4f9cd37 (diff)
Return OpenStackVolume and OpenStackVolumeType instances from heat.
Added a methods to OpenStackHeatStack to return any OpenStackVolume and OpenStackVolumeType objects it was responsible for spawning. Changes include all of the necessary changes to the heat and settings utilities and associated tests. JIRA: SNAPS-199, SNAPS-200 Change-Id: I6da4bce1e90f080e22c96ab1b46eca8b85991ebf Signed-off-by: spisarski <s.pisarski@cablelabs.com>
Diffstat (limited to 'snaps/openstack/tests/create_stack_tests.py')
-rw-r--r--snaps/openstack/tests/create_stack_tests.py98
1 files changed, 97 insertions, 1 deletions
diff --git a/snaps/openstack/tests/create_stack_tests.py b/snaps/openstack/tests/create_stack_tests.py
index d96462a..a2b2215 100644
--- a/snaps/openstack/tests/create_stack_tests.py
+++ b/snaps/openstack/tests/create_stack_tests.py
@@ -394,7 +394,7 @@ class CreateStackSuccessTests(OSIntegrationTestCase):
nova, vm_inst_creators[0].get_vm_inst().id))
-class CreateComplexStackTests(OSIntegrationTestCase):
+class CreateStackFloatingIpTests(OSIntegrationTestCase):
"""
Tests for the CreateStack class defined in create_stack.py
"""
@@ -493,6 +493,102 @@ class CreateComplexStackTests(OSIntegrationTestCase):
self.assertEqual(0, len(vm_settings.floating_ip_settings))
+class CreateStackVolumeTests(OSIntegrationTestCase):
+ """
+ Tests for the CreateStack class defined in create_stack.py
+ """
+
+ def setUp(self):
+ """
+ Instantiates the CreateStack object that is responsible for downloading
+ and creating an OS stack file within OpenStack
+ """
+ super(self.__class__, self).__start__()
+
+ self.guid = self.__class__.__name__ + '-' + str(uuid.uuid4())
+
+ 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.volume_name = self.guid + '-volume'
+ self.volume_type_name = self.guid + '-volume-type'
+
+ self.env_values = {
+ 'volume_name': self.volume_name,
+ 'volume_type_name': self.volume_type_name}
+
+ self.heat_tmplt_path = pkg_resources.resource_filename(
+ 'snaps.openstack.tests.heat', 'volume_heat_template.yaml')
+
+ stack_settings = StackSettings(
+ 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.heat_creds, stack_settings)
+ self.created_stack = self.stack_creator.create()
+ self.assertIsNotNone(self.created_stack)
+
+ def tearDown(self):
+ """
+ Cleans the stack and downloaded stack file
+ """
+ if self.stack_creator:
+ try:
+ self.stack_creator.clean()
+ except:
+ pass
+
+ super(self.__class__, self).__clean__()
+
+ def test_retrieve_volume_creator(self):
+ """
+ Tests the creation of an OpenStack stack from Heat template file and
+ the retrieval of an OpenStackVolume creator/state machine instance
+ """
+ volume_creators = self.stack_creator.get_volume_creators()
+ self.assertEqual(1, len(volume_creators))
+
+ creator = volume_creators[0]
+ self.assertEqual(self.volume_name, creator.volume_settings.name)
+ self.assertEqual(self.volume_name, creator.get_volume().name)
+ self.assertEqual(self.volume_type_name,
+ creator.volume_settings.type_name)
+ self.assertEqual(self.volume_type_name, creator.get_volume().type)
+ self.assertEqual(1, creator.volume_settings.size)
+ self.assertEqual(1, creator.get_volume().size)
+
+ def test_retrieve_volume_type_creator(self):
+ """
+ Tests the creation of an OpenStack stack from Heat template file and
+ the retrieval of an OpenStackVolume creator/state machine instance
+ """
+ volume_type_creators = self.stack_creator.get_volume_type_creators()
+ self.assertEqual(1, len(volume_type_creators))
+
+ creator = volume_type_creators[0]
+ self.assertIsNotNone(creator)
+
+ volume_type = creator.get_volume_type()
+ self.assertIsNotNone(volume_type)
+
+ self.assertEqual(self.volume_type_name, volume_type.name)
+ self.assertTrue(volume_type.public)
+ self.assertIsNone(volume_type.qos_spec)
+
+ encryption = volume_type.encryption
+ self.assertIsNotNone(encryption)
+ self.assertIsNone(encryption.cipher)
+ self.assertEqual('front-end', encryption.control_location)
+ self.assertIsNone(encryption.key_size)
+ self.assertEqual(u'nova.volume.encryptors.luks.LuksEncryptor',
+ encryption.provider)
+ self.assertEqual(volume_type.id, encryption.volume_type_id)
+
+
class CreateStackNegativeTests(OSIntegrationTestCase):
"""
Negative test cases for the CreateStack class