Merge "Update encrypted param template Added the encrypted parameter as a property for a Nova server"
diff --git a/common/test.py b/common/test.py
index 386ed59..1039625 100644
--- a/common/test.py
+++ b/common/test.py
@@ -426,7 +426,7 @@
             tags=tags
         )
         if expected_status not in ['ROLLBACK_COMPLETE'] and enable_cleanup:
-            self.addCleanup(self.client.stacks.delete, name)
+            self.addCleanup(self._stack_delete, name)
 
         stack = self.client.stacks.get(name)
         stack_identifier = '%s/%s' % (name, stack.id)
@@ -458,7 +458,7 @@
             environment=env,
             adopt_stack_data=adopt_data,
         )
-        self.addCleanup(self.client.stacks.delete, name)
+        self.addCleanup(self._stack_delete, name)
 
         stack = self.client.stacks.get(name)
         stack_identifier = '%s/%s' % (name, stack.id)
@@ -468,7 +468,7 @@
     def stack_abandon(self, stack_id):
         if (self.conf.skip_test_stack_action_list and
                 'ABANDON' in self.conf.skip_test_stack_action_list):
-            self.addCleanup(self.client.stacks.delete, stack_id)
+            self.addCleanup(self._stack_delete, stack_id)
             self.skipTest('Testing Stack abandon disabled in conf, skipping')
         info = self.client.stacks.abandon(stack_id=stack_id)
         return info
@@ -476,7 +476,7 @@
     def stack_suspend(self, stack_identifier):
         if (self.conf.skip_test_stack_action_list and
                 'SUSPEND' in self.conf.skip_test_stack_action_list):
-            self.addCleanup(self.client.stacks.delete, stack_identifier)
+            self.addCleanup(self._stack_delete, stack_identifier)
             self.skipTest('Testing Stack suspend disabled in conf, skipping')
         stack_name = stack_identifier.split('/')[0]
         self.client.actions.suspend(stack_name)
@@ -488,7 +488,7 @@
     def stack_resume(self, stack_identifier):
         if (self.conf.skip_test_stack_action_list and
                 'RESUME' in self.conf.skip_test_stack_action_list):
-            self.addCleanup(self.client.stacks.delete, stack_identifier)
+            self.addCleanup(self._stack_delete, stack_identifier)
             self.skipTest('Testing Stack resume disabled in conf, skipping')
         stack_name = stack_identifier.split('/')[0]
         self.client.actions.resume(stack_name)
diff --git a/functional/test_autoscaling.py b/functional/test_autoscaling.py
index 0beefcb..1b9fe99 100644
--- a/functional/test_autoscaling.py
+++ b/functional/test_autoscaling.py
@@ -235,7 +235,7 @@
             parameters={},
             environment=env
         )
-        self.addCleanup(self.client.stacks.delete, stack_name)
+        self.addCleanup(self._stack_delete, stack_name)
         stack = self.client.stacks.get(stack_name)
         stack_identifier = '%s/%s' % (stack_name, stack.id)
         self._wait_for_stack_status(stack_identifier, 'CREATE_FAILED')
diff --git a/functional/test_conditional_exposure.py b/functional/test_conditional_exposure.py
index 2ab297e..99e76ee 100644
--- a/functional/test_conditional_exposure.py
+++ b/functional/test_conditional_exposure.py
@@ -16,19 +16,7 @@
 from heat_integrationtests.functional import functional_base
 
 
-class ConditionalExposureTestBase(functional_base.FunctionalTestsBase):
-    def setUp(self):
-        super(ConditionalExposureTestBase, self).setUp()
-
-    def _delete(self, stack_name):
-        stacks = self.client.stacks.list()
-        for s in stacks:
-            if s.stack_name == stack_name:
-                self._stack_delete(s.identifier)
-                break
-
-
-class ServiceBasedExposureTest(ConditionalExposureTestBase):
+class ServiceBasedExposureTest(functional_base.FunctionalTestsBase):
     # NOTE(pas-ha) if we ever decide to install Sahara on Heat
     # functional gate, this must be changed to other not-installed
     # but in principle supported service
@@ -72,7 +60,6 @@
 
     def test_unavailable_resources_not_created(self):
         stack_name = self._stack_rand_name()
-        self.addCleanup(self._delete, stack_name)
         ex = self.assertRaises(exc.HTTPBadRequest,
                                self.client.stacks.create,
                                stack_name=stack_name,
diff --git a/functional/test_instance_group.py b/functional/test_instance_group.py
index a8494c2..b8bcc3d 100644
--- a/functional/test_instance_group.py
+++ b/functional/test_instance_group.py
@@ -225,7 +225,7 @@
             parameters={},
             environment=env
         )
-        self.addCleanup(self.client.stacks.delete, stack_name)
+        self.addCleanup(self._stack_delete, stack_name)
         stack = self.client.stacks.get(stack_name)
         stack_identifier = '%s/%s' % (stack_name, stack.id)
         self._wait_for_stack_status(stack_identifier, 'CREATE_FAILED')
diff --git a/functional/test_preview.py b/functional/test_preview.py
index b4389ff..19da01b 100644
--- a/functional/test_preview.py
+++ b/functional/test_preview.py
@@ -53,9 +53,10 @@
                       'description'):
             self.assertIn(field, res)
             self.assertEqual('', res[field])
+        # 'creation_time' and 'updated_time' are None when preview
         for field in ('creation_time', 'updated_time'):
             self.assertIn(field, res)
-            self.assertIsNotNone(res[field])
+            self.assertIsNone(res[field])
         self.assertIn('output', res['attributes'])
 
         # resource_identity