Add trunk functional testcases to heat

Introducing new functional testcases for trunk support

Related-Change: Iea12844f77abf8c254f6224d55470663eba66aab
Depends-On: Ibffe41b123b2ec065bc2551aa29800163fa57aee
Co-Authored-By: Lajos Katona <lajos.katona@ericsson.com>
Partially-Implements: blueprint support-trunk-port
Change-Id: Ie7a2f44d5bb3aca98e6c9a799116a6eec5e74926
diff --git a/common/test.py b/common/test.py
index 9944bd1..4587770 100644
--- a/common/test.py
+++ b/common/test.py
@@ -529,6 +529,20 @@
         stack_link = [l for l in r.links if l.get('rel') == 'stack'][0]
         return stack_link['href'].split("/")[-1]
 
+    def get_physical_resource_id(self, stack_identifier, resource_name):
+        try:
+            resource = self.client.resources.get(
+                stack_identifier, resource_name)
+            return resource.physical_resource_id
+        except Exception:
+            raise Exception('Resource (%s) not found in stack (%s)!' %
+                            (stack_identifier, resource_name))
+
+    def get_stack_output(self, stack_identifier, output_key,
+                         validate_errors=True):
+        stack = self.client.stacks.get(stack_identifier)
+        return self._stack_output(stack, output_key, validate_errors)
+
     def check_input_values(self, group_resources, key, value):
         # Check inputs for deployment and derived config
         for r in group_resources: