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

Unified Diff: third_party/gsutil/boto/boto/emr/emrobject.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: Review fixes, updated gsutil 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 side-by-side diff with in-line comments
Download patch
Index: third_party/gsutil/boto/boto/emr/emrobject.py
diff --git a/third_party/gsutil/boto/boto/emr/emrobject.py b/third_party/gsutil/boto/boto/emr/emrobject.py
new file mode 100644
index 0000000000000000000000000000000000000000..95ca7e6f9cf946a9580de7c8f25f300dfb123f82
--- /dev/null
+++ b/third_party/gsutil/boto/boto/emr/emrobject.py
@@ -0,0 +1,176 @@
+# Copyright (c) 2010 Spotify AB
+# Copyright (c) 2010 Jeremy Thurgood <firxen+boto@gmail.com>
+# Copyright (c) 2010-2011 Yelp
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish, dis-
+# tribute, sublicense, and/or sell copies of the Software, and to permit
+# persons to whom the Software is furnished to do so, subject to the fol-
+# lowing conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
+# ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
+# SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+# IN THE SOFTWARE.
+
+"""
+This module contains EMR response objects
+"""
+
+from boto.resultset import ResultSet
+
+
+class EmrObject(object):
+ Fields = set()
+
+ def __init__(self, connection=None):
+ self.connection = connection
+
+ def startElement(self, name, attrs, connection):
+ pass
+
+ def endElement(self, name, value, connection):
+ if name in self.Fields:
+ setattr(self, name.lower(), value)
+
+
+class RunJobFlowResponse(EmrObject):
+ Fields = set(['JobFlowId'])
+
+class AddInstanceGroupsResponse(EmrObject):
+ Fields = set(['InstanceGroupIds', 'JobFlowId'])
+
+class ModifyInstanceGroupsResponse(EmrObject):
+ Fields = set(['RequestId'])
+
+
+class Arg(EmrObject):
+ def __init__(self, connection=None):
+ self.value = None
+
+ def endElement(self, name, value, connection):
+ self.value = value
+
+
+class BootstrapAction(EmrObject):
+ Fields = set([
+ 'Args',
+ 'Name',
+ 'Path',
+ ])
+
+ def startElement(self, name, attrs, connection):
+ if name == 'Args':
+ self.args = ResultSet([('member', Arg)])
+ return self.args
+
+
+class KeyValue(EmrObject):
+ Fields = set([
+ 'Key',
+ 'Value',
+ ])
+
+
+class Step(EmrObject):
+ Fields = set([
+ 'ActionOnFailure',
+ 'CreationDateTime',
+ 'EndDateTime',
+ 'Jar',
+ 'LastStateChangeReason',
+ 'MainClass',
+ 'Name',
+ 'StartDateTime',
+ 'State',
+ ])
+
+ def __init__(self, connection=None):
+ self.connection = connection
+ self.args = None
+
+ def startElement(self, name, attrs, connection):
+ if name == 'Args':
+ self.args = ResultSet([('member', Arg)])
+ return self.args
+ if name == 'Properties':
+ self.properties = ResultSet([('member', KeyValue)])
+ return self.properties
+
+
+class InstanceGroup(EmrObject):
+ Fields = set([
+ 'BidPrice',
+ 'CreationDateTime',
+ 'EndDateTime',
+ 'InstanceGroupId',
+ 'InstanceRequestCount',
+ 'InstanceRole',
+ 'InstanceRunningCount',
+ 'InstanceType',
+ 'LastStateChangeReason',
+ 'LaunchGroup',
+ 'Market',
+ 'Name',
+ 'ReadyDateTime',
+ 'StartDateTime',
+ 'State',
+ ])
+
+
+class JobFlow(EmrObject):
+ Fields = set([
+ 'AmiVersion',
+ 'AvailabilityZone',
+ 'CreationDateTime',
+ 'Ec2KeyName',
+ 'EndDateTime',
+ 'HadoopVersion',
+ 'Id',
+ 'InstanceCount',
+ 'JobFlowId',
+ 'KeepJobFlowAliveWhenNoSteps',
+ 'LastStateChangeReason',
+ 'LogUri',
+ 'MasterInstanceId',
+ 'MasterInstanceType',
+ 'MasterPublicDnsName',
+ 'Name',
+ 'NormalizedInstanceHours',
+ 'ReadyDateTime',
+ 'RequestId',
+ 'SlaveInstanceType',
+ 'StartDateTime',
+ 'State',
+ 'TerminationProtected',
+ 'Type',
+ 'Value',
+ 'VisibleToAllUsers',
+ ])
+
+ def __init__(self, connection=None):
+ self.connection = connection
+ self.steps = None
+ self.instancegroups = None
+ self.bootstrapactions = None
+
+ def startElement(self, name, attrs, connection):
+ if name == 'Steps':
+ self.steps = ResultSet([('member', Step)])
+ return self.steps
+ elif name == 'InstanceGroups':
+ self.instancegroups = ResultSet([('member', InstanceGroup)])
+ return self.instancegroups
+ elif name == 'BootstrapActions':
+ self.bootstrapactions = ResultSet([('member', BootstrapAction)])
+ return self.bootstrapactions
+ else:
+ return None

Powered by Google App Engine
This is Rietveld 408576698