diff options
author | spisarski <s.pisarski@cablelabs.com> | 2017-10-27 14:06:01 -0600 |
---|---|---|
committer | spisarski <s.pisarski@cablelabs.com> | 2017-10-27 15:55:54 -0600 |
commit | 6b7307374f6cfcad9eec8986aba8fdd8e08c8574 (patch) | |
tree | ebecca41a486b735d116fd2abc997c7b24ff6dff /snaps/openstack/tests/create_stack_tests.py | |
parent | 08ebe69c1d2e29aa02efd59f58dbbc0be4f9cd37 (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.py | 98 |
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 |