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

Unified Diff: third_party/gsutil/20110627/boto/boto/emr/connection.py

Issue 10199002: Upgrade gsutil to 3.4 (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Addressed comments Created 8 years, 8 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/20110627/boto/boto/emr/connection.py
diff --git a/third_party/gsutil/20110627/boto/boto/emr/connection.py b/third_party/gsutil/20110627/boto/boto/emr/connection.py
deleted file mode 100644
index 70ddf8247238461d152d3f8512fe698b22d80d8a..0000000000000000000000000000000000000000
--- a/third_party/gsutil/20110627/boto/boto/emr/connection.py
+++ /dev/null
@@ -1,286 +0,0 @@
-# Copyright (c) 2010 Spotify AB
-# 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.
-
-"""
-Represents a connection to the EMR service
-"""
-import types
-
-import boto
-import boto.utils
-from boto.ec2.regioninfo import RegionInfo
-from boto.emr.emrobject import JobFlow, RunJobFlowResponse
-from boto.emr.step import JarStep
-from boto.connection import AWSQueryConnection
-from boto.exception import EmrResponseError
-
-class EmrConnection(AWSQueryConnection):
-
- APIVersion = boto.config.get('Boto', 'emr_version', '2009-03-31')
- DefaultRegionName = boto.config.get('Boto', 'emr_region_name', 'us-east-1')
- DefaultRegionEndpoint = boto.config.get('Boto', 'emr_region_endpoint',
- 'elasticmapreduce.amazonaws.com')
- ResponseError = EmrResponseError
-
- # Constants for AWS Console debugging
- DebuggingJar = 's3n://us-east-1.elasticmapreduce/libs/script-runner/script-runner.jar'
- DebuggingArgs = 's3n://us-east-1.elasticmapreduce/libs/state-pusher/0.1/fetch'
-
- def __init__(self, aws_access_key_id=None, aws_secret_access_key=None,
- is_secure=True, port=None, proxy=None, proxy_port=None,
- proxy_user=None, proxy_pass=None, debug=0,
- https_connection_factory=None, region=None, path='/'):
- if not region:
- region = RegionInfo(self, self.DefaultRegionName, self.DefaultRegionEndpoint)
- self.region = region
- AWSQueryConnection.__init__(self, aws_access_key_id,
- aws_secret_access_key,
- is_secure, port, proxy, proxy_port,
- proxy_user, proxy_pass,
- self.region.endpoint, debug,
- https_connection_factory, path)
-
- def _required_auth_capability(self):
- return ['emr']
-
- def describe_jobflow(self, jobflow_id):
- """
- Describes a single Elastic MapReduce job flow
-
- :type jobflow_id: str
- :param jobflow_id: The job flow id of interest
- """
- jobflows = self.describe_jobflows(jobflow_ids=[jobflow_id])
- if jobflows:
- return jobflows[0]
-
- def describe_jobflows(self, states=None, jobflow_ids=None,
- created_after=None, created_before=None):
- """
- Retrieve all the Elastic MapReduce job flows on your account
-
- :type states: list
- :param states: A list of strings with job flow states wanted
-
- :type jobflow_ids: list
- :param jobflow_ids: A list of job flow IDs
- :type created_after: datetime
- :param created_after: Bound on job flow creation time
-
- :type created_before: datetime
- :param created_before: Bound on job flow creation time
- """
- params = {}
-
- if states:
- self.build_list_params(params, states, 'JobFlowStates.member')
- if jobflow_ids:
- self.build_list_params(params, jobflow_ids, 'JobFlowIds.member')
- if created_after:
- params['CreatedAfter'] = created_after.strftime(
- boto.utils.ISO8601)
- if created_before:
- params['CreatedBefore'] = created_before.strftime(
- boto.utils.ISO8601)
-
- return self.get_list('DescribeJobFlows', params, [('member', JobFlow)])
-
- def terminate_jobflow(self, jobflow_id):
- """
- Terminate an Elastic MapReduce job flow
-
- :type jobflow_id: str
- :param jobflow_id: A jobflow id
- """
- self.terminate_jobflows([jobflow_id])
-
- def terminate_jobflows(self, jobflow_ids):
- """
- Terminate an Elastic MapReduce job flow
-
- :type jobflow_ids: list
- :param jobflow_ids: A list of job flow IDs
- """
- params = {}
- self.build_list_params(params, jobflow_ids, 'JobFlowIds.member')
- return self.get_status('TerminateJobFlows', params, verb='POST')
-
- def add_jobflow_steps(self, jobflow_id, steps):
- """
- Adds steps to a jobflow
-
- :type jobflow_id: str
- :param jobflow_id: The job flow id
- :type steps: list(boto.emr.Step)
- :param steps: A list of steps to add to the job
- """
- if type(steps) != types.ListType:
- steps = [steps]
- params = {}
- params['JobFlowId'] = jobflow_id
-
- # Step args
- step_args = [self._build_step_args(step) for step in steps]
- params.update(self._build_step_list(step_args))
-
- return self.get_object(
- 'AddJobFlowSteps', params, RunJobFlowResponse, verb='POST')
-
- def run_jobflow(self, name, log_uri, ec2_keyname=None, availability_zone=None,
- master_instance_type='m1.small',
- slave_instance_type='m1.small', num_instances=1,
- action_on_failure='TERMINATE_JOB_FLOW', keep_alive=False,
- enable_debugging=False,
- hadoop_version='0.18',
- steps=[],
- bootstrap_actions=[]):
- """
- Runs a job flow
-
- :type name: str
- :param name: Name of the job flow
- :type log_uri: str
- :param log_uri: URI of the S3 bucket to place logs
- :type ec2_keyname: str
- :param ec2_keyname: EC2 key used for the instances
- :type availability_zone: str
- :param availability_zone: EC2 availability zone of the cluster
- :type master_instance_type: str
- :param master_instance_type: EC2 instance type of the master
- :type slave_instance_type: str
- :param slave_instance_type: EC2 instance type of the slave nodes
- :type num_instances: int
- :param num_instances: Number of instances in the Hadoop cluster
- :type action_on_failure: str
- :param action_on_failure: Action to take if a step terminates
- :type keep_alive: bool
- :param keep_alive: Denotes whether the cluster should stay alive upon completion
- :type enable_debugging: bool
- :param enable_debugging: Denotes whether AWS console debugging should be enabled.
- :type steps: list(boto.emr.Step)
- :param steps: List of steps to add with the job
-
- :rtype: str
- :return: The jobflow id
- """
- params = {}
- if action_on_failure:
- params['ActionOnFailure'] = action_on_failure
- params['Name'] = name
- params['LogUri'] = log_uri
-
- # Instance args
- instance_params = self._build_instance_args(ec2_keyname, availability_zone,
- master_instance_type, slave_instance_type,
- num_instances, keep_alive, hadoop_version)
- params.update(instance_params)
-
- # Debugging step from EMR API docs
- if enable_debugging:
- debugging_step = JarStep(name='Setup Hadoop Debugging',
- action_on_failure='TERMINATE_JOB_FLOW',
- main_class=None,
- jar=self.DebuggingJar,
- step_args=self.DebuggingArgs)
- steps.insert(0, debugging_step)
-
- # Step args
- if steps:
- step_args = [self._build_step_args(step) for step in steps]
- params.update(self._build_step_list(step_args))
-
- if bootstrap_actions:
- bootstrap_action_args = [self._build_bootstrap_action_args(bootstrap_action) for bootstrap_action in bootstrap_actions]
- params.update(self._build_bootstrap_action_list(bootstrap_action_args))
-
- response = self.get_object(
- 'RunJobFlow', params, RunJobFlowResponse, verb='POST')
- return response.jobflowid
-
- def _build_bootstrap_action_args(self, bootstrap_action):
- bootstrap_action_params = {}
- bootstrap_action_params['ScriptBootstrapAction.Path'] = bootstrap_action.path
-
- try:
- bootstrap_action_params['Name'] = bootstrap_action.name
- except AttributeError:
- pass
-
- args = bootstrap_action.args()
- if args:
- self.build_list_params(bootstrap_action_params, args, 'ScriptBootstrapAction.Args.member')
-
- return bootstrap_action_params
-
- def _build_step_args(self, step):
- step_params = {}
- step_params['ActionOnFailure'] = step.action_on_failure
- step_params['HadoopJarStep.Jar'] = step.jar()
-
- main_class = step.main_class()
- if main_class:
- step_params['HadoopJarStep.MainClass'] = main_class
-
- args = step.args()
- if args:
- self.build_list_params(step_params, args, 'HadoopJarStep.Args.member')
-
- step_params['Name'] = step.name
- return step_params
-
- def _build_bootstrap_action_list(self, bootstrap_actions):
- if type(bootstrap_actions) != types.ListType:
- bootstrap_actions = [bootstrap_actions]
-
- params = {}
- for i, bootstrap_action in enumerate(bootstrap_actions):
- for key, value in bootstrap_action.iteritems():
- params['BootstrapActions.member.%s.%s' % (i + 1, key)] = value
- return params
-
- def _build_step_list(self, steps):
- if type(steps) != types.ListType:
- steps = [steps]
-
- params = {}
- for i, step in enumerate(steps):
- for key, value in step.iteritems():
- params['Steps.member.%s.%s' % (i+1, key)] = value
- return params
-
- def _build_instance_args(self, ec2_keyname, availability_zone, master_instance_type,
- slave_instance_type, num_instances, keep_alive, hadoop_version):
- params = {
- 'Instances.MasterInstanceType' : master_instance_type,
- 'Instances.SlaveInstanceType' : slave_instance_type,
- 'Instances.InstanceCount' : num_instances,
- 'Instances.KeepJobFlowAliveWhenNoSteps' : str(keep_alive).lower(),
- 'Instances.HadoopVersion' : hadoop_version
- }
-
- if ec2_keyname:
- params['Instances.Ec2KeyName'] = ec2_keyname
- if availability_zone:
- params['Placement.AvailabilityZone'] = availability_zone
-
- return params
-
« no previous file with comments | « third_party/gsutil/20110627/boto/boto/emr/bootstrap_action.py ('k') | third_party/gsutil/20110627/boto/boto/emr/emrobject.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698