Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(396)

Side by Side Diff: boto/cloudformation/stack.py

Issue 8386013: Merging in latest boto. (Closed) Base URL: svn://svn.chromium.org/boto
Patch Set: Redoing vendor drop by deleting and then merging. Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « boto/cloudformation/connection.py ('k') | boto/cloudformation/template.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 from datetime import datetime
2
3 from boto.resultset import ResultSet
4
5 class Stack:
6 def __init__(self, connection=None):
7 self.connection = connection
8 self.creation_time = None
9 self.description = None
10 self.disable_rollback = None
11 self.notification_arns = []
12 self.outputs = []
13 self.parameters = []
14 self.stack_id = None
15 self.stack_status = None
16 self.stack_name = None
17 self.stack_name_reason = None
18 self.timeout_in_minutes = None
19
20 def startElement(self, name, attrs, connection):
21 if name == "Parameters":
22 self.parameters = ResultSet([('member', Parameter)])
23 return self.parameters
24 elif name == "Outputs":
25 self.outputs = ResultSet([('member', Output)])
26 return self.outputs
27 else:
28 return None
29
30 def endElement(self, name, value, connection):
31 if name == 'CreationTime':
32 self.creation_time = datetime.strptime(value, '%Y-%m-%dT%H:%M:%SZ')
33 elif name == "Description":
34 self.description = value
35 elif name == "DisableRollback":
36 self.disable_rollback = bool(value)
37 elif name == "NotificationARNs":
38 self.notification_arns = value
39 elif name == 'StackId':
40 self.stack_id = value
41 elif name == 'StackName':
42 self.stack_name = value
43 elif name == 'StackStatus':
44 self.stack_status = value
45 elif name == "StackStatusReason":
46 self.stack_status_reason = value
47 elif name == "TimeoutInMinutes":
48 self.timeout_in_minutes = int(value)
49 elif name == "member":
50 pass
51 else:
52 setattr(self, name, value)
53
54 def delete(self):
55 return self.connection.delete_stack(stack_name_or_id=self.stack_id)
56
57 def describe_events(self, next_token=None):
58 return self.connection.describe_stack_events(
59 stack_name_or_id=self.stack_id,
60 next_token=next_token
61 )
62
63 def describe_resource(self, logical_resource_id):
64 return self.connection.describe_stack_resource(
65 stack_name_or_id=self.stack_id,
66 logical_resource_id=logical_resource_id
67 )
68
69 def describe_resources(self, logical_resource_id=None,
70 physical_resource_id=None):
71 return self.connection.describe_stack_resources(
72 stack_name_or_id=self.stack_id,
73 logical_resource_id=logical_resource_id,
74 physical_resource_id=physical_resource_id
75 )
76
77 def list_resources(self, next_token=None):
78 return self.connection.list_stack_resources(
79 stack_name_or_id=self.stack_id,
80 next_token=next_token
81 )
82
83 def update(self):
84 rs = self.connection.describe_stacks(self.stack_id)
85 if len(rs) == 1 and rs[0].stack_id == self.stack_id:
86 self.__dict__.update(rs[0].__dict__)
87 else:
88 raise ValueError("%s is not a valid Stack ID or Name" %
89 self.stack_id)
90
91 def get_template(self):
92 return self.connection.get_template(stack_name_or_id=self.stack_id)
93
94 class StackSummary:
95 def __init__(self, connection=None):
96 self.connection = connection
97 self.stack_id = None
98 self.stack_status = None
99 self.stack_name = None
100 self.creation_time = None
101 self.deletion_time = None
102 self.template_description = None
103
104 def startElement(self, name, attrs, connection):
105 return None
106
107 def endElement(self, name, value, connection):
108 if name == 'StackId':
109 self.stack_id = value
110 elif name == 'StackStatus':
111 self.stack_status = value
112 elif name == 'StackName':
113 self.stack_name = value
114 elif name == 'CreationTime':
115 self.creation_time = datetime.strptime(value, '%Y-%m-%dT%H:%M:%SZ')
116 elif name == "DeletionTime":
117 self.deletion_time = datetime.strptime(value, '%Y-%m-%dT%H:%M:%SZ')
118 elif name == 'TemplateDescription':
119 self.template_description = value
120 elif name == "member":
121 pass
122 else:
123 setattr(self, name, value)
124
125 class Parameter:
126 def __init__(self, connection=None):
127 self.connection = None
128 self.key = None
129 self.value = None
130
131 def startElement(self, name, attrs, connection):
132 return None
133
134 def endElement(self, name, value, connection):
135 if name == "ParameterKey":
136 self.key = value
137 elif name == "ParameterValue":
138 self.value = value
139 else:
140 setattr(self, name, value)
141
142 def __repr__(self):
143 return "Parameter:\"%s\"=\"%s\"" % (self.key, self.value)
144
145 class Output:
146 def __init__(self, connection=None):
147 self.connection = connection
148 self.description = None
149 self.key = None
150 self.value = None
151
152 def startElement(self, name, attrs, connection):
153 return None
154
155 def endElement(self, name, value, connection):
156 if name == "Description":
157 self.description = value
158 elif name == "OutputKey":
159 self.key = value
160 elif name == "OutputValue":
161 self.value = value
162 else:
163 setattr(self, name, value)
164
165 def __repr__(self):
166 return "Output:\"%s\"=\"%s\"" % (self.key, self.value)
167
168 class StackResource:
169 def __init__(self, connection=None):
170 self.connection = connection
171 self.description = None
172 self.logical_resource_id = None
173 self.physical_resource_id = None
174 self.resource_status = None
175 self.resource_status_reason = None
176 self.resource_type = None
177 self.stack_id = None
178 self.stack_name = None
179 self.timestamp = None
180
181 def startElement(self, name, attrs, connection):
182 return None
183
184 def endElement(self, name, value, connection):
185 if name == "Description":
186 self.description = value
187 elif name == "LogicalResourceId":
188 self.logical_resource_id = value
189 elif name == "PhysicalResourceId":
190 self.physical_resource_id = value
191 elif name == "ResourceStatus":
192 self.resource_status = value
193 elif name == "ResourceStatusReason":
194 self.resource_status_reason = value
195 elif name == "ResourceType":
196 self.resource_type = value
197 elif name == "StackId":
198 self.stack_id = value
199 elif name == "StackName":
200 self.stack_name = value
201 elif name == "Timestamp":
202 self.timestamp = datetime.strptime(value, '%Y-%m-%dT%H:%M:%SZ')
203 else:
204 setattr(self, name, value)
205
206 def __repr__(self):
207 return "StackResource:%s (%s)" % (self.logical_resource_id,
208 self.resource_type)
209
210 class StackResourceSummary:
211 def __init__(self, connection=None):
212 self.connection = connection
213 self.last_updated_timestamp = None
214 self.logical_resource_id = None
215 self.physical_resource_id = None
216 self.resource_status = None
217 self.resource_status_reason = None
218 self.resource_type = None
219
220 def startElement(self, name, attrs, connection):
221 return None
222
223 def endElement(self, name, value, connection):
224 if name == "LastUpdatedTimestamp":
225 self.last_updated_timestampe = datetime.strptime(value,
226 '%Y-%m-%dT%H:%M:%SZ')
227 elif name == "LogicalResourceId":
228 self.logical_resource_id = value
229 elif name == "PhysicalResourceId":
230 self.physical_resource_id = value
231 elif name == "ResourceStatus":
232 self.resource_status = value
233 elif name == "ResourceStatusReason":
234 self.resource_status_reason = value
235 elif name == "ResourceType":
236 self.resource_type = value
237 else:
238 setattr(self, name, value)
239
240 def __repr__(self):
241 return "StackResourceSummary:%s (%s)" % (self.logical_resource_id,
242 self.resource_type)
243
244 class StackEvent:
245 valid_states = ("CREATE_IN_PROGRESS", "CREATE_FAILED", "CREATE_COMPLETE",
246 "DELETE_IN_PROGRESS", "DELETE_FAILED", "DELETE_COMPLETE")
247 def __init__(self, connection=None):
248 self.connection = connection
249 self.event_id = None
250 self.logical_resource_id = None
251 self.physical_resource_id = None
252 self.resource_properties = None
253 self.resource_status = None
254 self.resource_status_reason = None
255 self.resource_type = None
256 self.stack_id = None
257 self.stack_name = None
258 self.timestamp = None
259
260 def startElement(self, name, attrs, connection):
261 return None
262
263 def endElement(self, name, value, connection):
264 if name == "EventId":
265 self.event_id = value
266 elif name == "LogicalResourceId":
267 self.logical_resource_id = value
268 elif name == "PhysicalResourceId":
269 self.physical_resource_id = value
270 elif name == "ResourceProperties":
271 self.resource_properties = value
272 elif name == "ResourceStatus":
273 self.resource_status = value
274 elif name == "ResourceStatusReason":
275 self.resource_status_reason = value
276 elif name == "ResourceType":
277 self.resource_type = value
278 elif name == "StackId":
279 self.stack_id = value
280 elif name == "StackName":
281 self.stack_name = value
282 elif name == "Timestamp":
283 self.timestamp = datetime.strptime(value, '%Y-%m-%dT%H:%M:%SZ')
284 else:
285 setattr(self, name, value)
286
287 def __repr__(self):
288 return "StackEvent %s %s %s" % (self.resource_type,
289 self.logical_resource_id, self.resource_status)
OLDNEW
« no previous file with comments | « boto/cloudformation/connection.py ('k') | boto/cloudformation/template.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698