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

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

Issue 12042069: Scripts to download files from google storage based on sha1 sums (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/depot_tools.git@master
Patch Set: Removed gsutil/tests and gsutil/docs Created 7 years, 10 months 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
OLDNEW
(Empty)
1 from datetime import datetime
2
3 from boto.resultset import ResultSet
4
5
6 class Stack(object):
7 def __init__(self, connection=None):
8 self.connection = connection
9 self.creation_time = None
10 self.description = None
11 self.disable_rollback = None
12 self.notification_arns = []
13 self.outputs = []
14 self.parameters = []
15 self.capabilities = []
16 self.tags = []
17 self.stack_id = None
18 self.stack_status = None
19 self.stack_name = None
20 self.stack_name_reason = None
21 self.timeout_in_minutes = None
22
23 def startElement(self, name, attrs, connection):
24 if name == "Parameters":
25 self.parameters = ResultSet([('member', Parameter)])
26 return self.parameters
27 elif name == "Outputs":
28 self.outputs = ResultSet([('member', Output)])
29 return self.outputs
30 elif name == "Capabilities":
31 self.capabilities = ResultSet([('member', Capability)])
32 return self.capabilities
33 elif name == "Tags":
34 self.tags = Tag()
35 return self.tags
36 elif name == 'NotificationARNs':
37 self.notification_arns = ResultSet([('member', NotificationARN)])
38 return self.notification_arns
39 else:
40 return None
41
42 def endElement(self, name, value, connection):
43 if name == 'CreationTime':
44 self.creation_time = datetime.strptime(value, '%Y-%m-%dT%H:%M:%SZ')
45 elif name == "Description":
46 self.description = value
47 elif name == "DisableRollback":
48 self.disable_rollback = bool(value)
49 elif name == 'StackId':
50 self.stack_id = value
51 elif name == 'StackName':
52 self.stack_name = value
53 elif name == 'StackStatus':
54 self.stack_status = value
55 elif name == "StackStatusReason":
56 self.stack_status_reason = value
57 elif name == "TimeoutInMinutes":
58 self.timeout_in_minutes = int(value)
59 elif name == "member":
60 pass
61 else:
62 setattr(self, name, value)
63
64 def delete(self):
65 return self.connection.delete_stack(stack_name_or_id=self.stack_id)
66
67 def describe_events(self, next_token=None):
68 return self.connection.describe_stack_events(
69 stack_name_or_id=self.stack_id,
70 next_token=next_token
71 )
72
73 def describe_resource(self, logical_resource_id):
74 return self.connection.describe_stack_resource(
75 stack_name_or_id=self.stack_id,
76 logical_resource_id=logical_resource_id
77 )
78
79 def describe_resources(self, logical_resource_id=None,
80 physical_resource_id=None):
81 return self.connection.describe_stack_resources(
82 stack_name_or_id=self.stack_id,
83 logical_resource_id=logical_resource_id,
84 physical_resource_id=physical_resource_id
85 )
86
87 def list_resources(self, next_token=None):
88 return self.connection.list_stack_resources(
89 stack_name_or_id=self.stack_id,
90 next_token=next_token
91 )
92
93 def update(self):
94 rs = self.connection.describe_stacks(self.stack_id)
95 if len(rs) == 1 and rs[0].stack_id == self.stack_id:
96 self.__dict__.update(rs[0].__dict__)
97 else:
98 raise ValueError("%s is not a valid Stack ID or Name" %
99 self.stack_id)
100
101 def get_template(self):
102 return self.connection.get_template(stack_name_or_id=self.stack_id)
103
104
105 class StackSummary(object):
106 def __init__(self, connection=None):
107 self.connection = connection
108 self.stack_id = None
109 self.stack_status = None
110 self.stack_name = None
111 self.creation_time = None
112 self.deletion_time = None
113 self.template_description = None
114
115 def startElement(self, name, attrs, connection):
116 return None
117
118 def endElement(self, name, value, connection):
119 if name == 'StackId':
120 self.stack_id = value
121 elif name == 'StackStatus':
122 self.stack_status = value
123 elif name == 'StackName':
124 self.stack_name = value
125 elif name == 'CreationTime':
126 self.creation_time = datetime.strptime(value, '%Y-%m-%dT%H:%M:%SZ')
127 elif name == "DeletionTime":
128 self.deletion_time = datetime.strptime(value, '%Y-%m-%dT%H:%M:%SZ')
129 elif name == 'TemplateDescription':
130 self.template_description = value
131 elif name == "member":
132 pass
133 else:
134 setattr(self, name, value)
135
136
137 class Parameter(object):
138 def __init__(self, connection=None):
139 self.connection = None
140 self.key = None
141 self.value = None
142
143 def startElement(self, name, attrs, connection):
144 return None
145
146 def endElement(self, name, value, connection):
147 if name == "ParameterKey":
148 self.key = value
149 elif name == "ParameterValue":
150 self.value = value
151 else:
152 setattr(self, name, value)
153
154 def __repr__(self):
155 return "Parameter:\"%s\"=\"%s\"" % (self.key, self.value)
156
157
158 class Output(object):
159 def __init__(self, connection=None):
160 self.connection = connection
161 self.description = None
162 self.key = None
163 self.value = None
164
165 def startElement(self, name, attrs, connection):
166 return None
167
168 def endElement(self, name, value, connection):
169 if name == "Description":
170 self.description = value
171 elif name == "OutputKey":
172 self.key = value
173 elif name == "OutputValue":
174 self.value = value
175 else:
176 setattr(self, name, value)
177
178 def __repr__(self):
179 return "Output:\"%s\"=\"%s\"" % (self.key, self.value)
180
181
182 class Capability(object):
183 def __init__(self, connection=None):
184 self.connection = None
185 self.value = None
186
187 def startElement(self, name, attrs, connection):
188 return None
189
190 def endElement(self, name, value, connection):
191 self.value = value
192
193 def __repr__(self):
194 return "Capability:\"%s\"" % (self.value)
195
196
197 class Tag(dict):
198
199 def __init__(self, connection=None):
200 dict.__init__(self)
201 self.connection = connection
202 self._current_key = None
203
204 def startElement(self, name, attrs, connection):
205 return None
206
207 def endElement(self, name, value, connection):
208 if name == "Key":
209 self._current_key = value
210 elif name == "Value":
211 self[self._current_key] = value
212 else:
213 setattr(self, name, value)
214
215
216 class NotificationARN(object):
217 def __init__(self, connection=None):
218 self.connection = None
219 self.value = None
220
221 def startElement(self, name, attrs, connection):
222 return None
223
224 def endElement(self, name, value, connection):
225 self.value = value
226
227 def __repr__(self):
228 return "NotificationARN:\"%s\"" % (self.value)
229
230
231 class StackResource(object):
232 def __init__(self, connection=None):
233 self.connection = connection
234 self.description = None
235 self.logical_resource_id = None
236 self.physical_resource_id = None
237 self.resource_status = None
238 self.resource_status_reason = None
239 self.resource_type = None
240 self.stack_id = None
241 self.stack_name = None
242 self.timestamp = None
243
244 def startElement(self, name, attrs, connection):
245 return None
246
247 def endElement(self, name, value, connection):
248 if name == "Description":
249 self.description = value
250 elif name == "LogicalResourceId":
251 self.logical_resource_id = value
252 elif name == "PhysicalResourceId":
253 self.physical_resource_id = value
254 elif name == "ResourceStatus":
255 self.resource_status = value
256 elif name == "ResourceStatusReason":
257 self.resource_status_reason = value
258 elif name == "ResourceType":
259 self.resource_type = value
260 elif name == "StackId":
261 self.stack_id = value
262 elif name == "StackName":
263 self.stack_name = value
264 elif name == "Timestamp":
265 self.timestamp = datetime.strptime(value, '%Y-%m-%dT%H:%M:%SZ')
266 else:
267 setattr(self, name, value)
268
269 def __repr__(self):
270 return "StackResource:%s (%s)" % (self.logical_resource_id,
271 self.resource_type)
272
273
274 class StackResourceSummary(object):
275 def __init__(self, connection=None):
276 self.connection = connection
277 self.last_updated_timestamp = None
278 self.logical_resource_id = None
279 self.physical_resource_id = None
280 self.resource_status = None
281 self.resource_status_reason = None
282 self.resource_type = None
283
284 def startElement(self, name, attrs, connection):
285 return None
286
287 def endElement(self, name, value, connection):
288 if name == "LastUpdatedTimestamp":
289 self.last_updated_timestamp = datetime.strptime(value,
290 '%Y-%m-%dT%H:%M:%SZ')
291 elif name == "LogicalResourceId":
292 self.logical_resource_id = value
293 elif name == "PhysicalResourceId":
294 self.physical_resource_id = value
295 elif name == "ResourceStatus":
296 self.resource_status = value
297 elif name == "ResourceStatusReason":
298 self.resource_status_reason = value
299 elif name == "ResourceType":
300 self.resource_type = value
301 else:
302 setattr(self, name, value)
303
304 def __repr__(self):
305 return "StackResourceSummary:%s (%s)" % (self.logical_resource_id,
306 self.resource_type)
307
308
309 class StackEvent(object):
310 valid_states = ("CREATE_IN_PROGRESS", "CREATE_FAILED", "CREATE_COMPLETE",
311 "DELETE_IN_PROGRESS", "DELETE_FAILED", "DELETE_COMPLETE")
312 def __init__(self, connection=None):
313 self.connection = connection
314 self.event_id = None
315 self.logical_resource_id = None
316 self.physical_resource_id = None
317 self.resource_properties = None
318 self.resource_status = None
319 self.resource_status_reason = None
320 self.resource_type = None
321 self.stack_id = None
322 self.stack_name = None
323 self.timestamp = None
324
325 def startElement(self, name, attrs, connection):
326 return None
327
328 def endElement(self, name, value, connection):
329 if name == "EventId":
330 self.event_id = value
331 elif name == "LogicalResourceId":
332 self.logical_resource_id = value
333 elif name == "PhysicalResourceId":
334 self.physical_resource_id = value
335 elif name == "ResourceProperties":
336 self.resource_properties = value
337 elif name == "ResourceStatus":
338 self.resource_status = value
339 elif name == "ResourceStatusReason":
340 self.resource_status_reason = value
341 elif name == "ResourceType":
342 self.resource_type = value
343 elif name == "StackId":
344 self.stack_id = value
345 elif name == "StackName":
346 self.stack_name = value
347 elif name == "Timestamp":
348 self.timestamp = datetime.strptime(value, '%Y-%m-%dT%H:%M:%SZ')
349 else:
350 setattr(self, name, value)
351
352 def __repr__(self):
353 return "StackEvent %s %s %s" % (self.resource_type,
354 self.logical_resource_id, self.resource_status)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698