Updated stack tests to only use an admin user when necessary.
[snaps.git] / snaps / domain / stack.py
index eaa45b3..2c593d3 100644 (file)
@@ -19,11 +19,59 @@ class Stack:
     SNAPS domain object for Heat Stacks. Should contain attributes that
     are shared amongst cloud providers
     """
-    def __init__(self, name, stack_id):
+    def __init__(self, name, stack_id, stack_project_id,
+                 status, status_reason):
         """
         Constructor
         :param name: the stack's name
         :param stack_id: the stack's stack_id
+        :param stack_project_id: the project ID that was spawned from this
+                                 deployment
+        :param status: the stack's last known status code
+        :param status_reason: the stack's last known explanation of the status
         """
         self.name = name
         self.id = stack_id
+        self.stack_project_id = stack_project_id
+        self.status = status
+        self.status_reason = status_reason
+
+    def __eq__(self, other):
+        return (self.name == other.name and
+                self.id == other.id)
+
+
+class Resource:
+    """
+    SNAPS domain object for a resource created by a heat template
+    """
+    def __init__(self, name, resource_type, resource_id, status,
+                 status_reason):
+        """
+        Constructor
+        :param name: the resource's name
+        :param resource_type: the resource's type
+        :param resource_id: the ID attached to the resource of the given type
+        :param status: the resource's status code
+        :param status_reason: the resource's status code reason
+        """
+        self.name = name
+        self.type = resource_type
+        self.id = resource_id
+        self.status = status
+        self.status_reason = status_reason
+
+
+class Output:
+    """
+    SNAPS domain object for an output defined by a heat template
+    """
+    def __init__(self, **kwargs):
+        """
+        Constructor
+        :param description: the output description
+        :param output_key: the output's key
+        """
+        self.description = kwargs.get('description')
+        self.key = kwargs.get('output_key')
+        self.value = kwargs.get('output_value')