Merge "Fixed comment"
[snaps.git] / snaps / domain / stack.py
1 # Copyright (c) 2017 Cable Television Laboratories, Inc. ("CableLabs")
2 #                    and others.  All rights reserved.
3 #
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at:
7 #
8 #     http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
15
16
17 class Stack:
18     """
19     SNAPS domain object for Heat Stacks. Should contain attributes that
20     are shared amongst cloud providers
21     """
22     def __init__(self, name, stack_id):
23         """
24         Constructor
25         :param name: the stack's name
26         :param stack_id: the stack's stack_id
27         """
28         self.name = name
29         self.id = stack_id
30
31     def __eq__(self, other):
32         return (self.name == other.name and
33                 self.id == other.id)
34
35
36 class Resource:
37     """
38     SNAPS domain object for a resource created by a heat template
39     """
40     def __init__(self, name, resource_type, resource_id, status,
41                  status_reason):
42         """
43         Constructor
44         :param name: the resource's name
45         :param resource_type: the resource's type
46         :param resource_id: the ID attached to the resource of the given type
47         :param status: the resource's status code
48         :param status_reason: the resource's status code reason
49         """
50         self.name = name
51         self.type = resource_type
52         self.id = resource_id
53         self.status = status
54         self.status_reason = status_reason
55
56
57 class Output:
58     """
59     SNAPS domain object for an output defined by a heat template
60     """
61     def __init__(self, **kwargs):
62         """
63         Constructor
64         :param description: the output description
65         :param output_key: the output's key
66         """
67         self.description = kwargs.get('description')
68         self.key = kwargs.get('output_key')
69         self.value = kwargs.get('output_value')