Move common functions into functional test base-class

The list_resources and update_stack are generic and likely to be used
in multiple tests, so move them into the test base-class.

Change-Id: I20b5399212a3dde514e0785b1fc91be2c30cba04
diff --git a/common/test.py b/common/test.py
index 2973964..143fae3 100644
--- a/common/test.py
+++ b/common/test.py
@@ -304,3 +304,23 @@
         self._wait_for_stack_status(
             stack_identifier, 'DELETE_COMPLETE',
             success_on_not_found=True)
+
+    def update_stack(self, stack_identifier, template, environment=None,
+                     files=None):
+        env = environment or {}
+        env_files = files or {}
+        stack_name = stack_identifier.split('/')[0]
+        self.client.stacks.update(
+            stack_id=stack_identifier,
+            stack_name=stack_name,
+            template=template,
+            files=env_files,
+            disable_rollback=True,
+            parameters={},
+            environment=env
+        )
+        self._wait_for_stack_status(stack_identifier, 'UPDATE_COMPLETE')
+
+    def list_resources(self, stack_identifier):
+        resources = self.client.resources.list(stack_identifier)
+        return dict((r.resource_name, r.resource_type) for r in resources)
diff --git a/functional/test_update.py b/functional/test_update.py
index da2b5e3..dcba97d 100644
--- a/functional/test_update.py
+++ b/functional/test_update.py
@@ -57,26 +57,6 @@
         super(UpdateStackTest, self).setUp()
         self.client = self.orchestration_client
 
-    def update_stack(self, stack_identifier, template, environment=None,
-                     files=None):
-        env = environment or {}
-        env_files = files or {}
-        stack_name = stack_identifier.split('/')[0]
-        self.client.stacks.update(
-            stack_id=stack_identifier,
-            stack_name=stack_name,
-            template=template,
-            files=env_files,
-            disable_rollback=True,
-            parameters={},
-            environment=env
-        )
-        self._wait_for_stack_status(stack_identifier, 'UPDATE_COMPLETE')
-
-    def list_resources(self, stack_identifier):
-        resources = self.client.resources.list(stack_identifier)
-        return dict((r.resource_name, r.resource_type) for r in resources)
-
     def test_stack_update_nochange(self):
         stack_name = self._stack_rand_name()
         self.client.stacks.create(