peterknife / boto

Automatically exported from code.google.com/p/boto
0 stars 0 forks source link

can't specify EMR AvailabilityZone #519

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?

  run_jobflow (..., availability_zone='us-west-1', ...)

What is the expected output? What do you see instead?

  I expect the EMR job to run in a us-west region, rather than a us-east one.

What version of the product are you using? On what operating system?

  https://github.com/boto/boto.git on May 17, 2011

Please provide any additional information below.

$ diff boto/emr/connection.py~ boto/emr/connection.py
277c277
<             params['Placement'] = availability_zone

---
>             params['Instances.Placement.AvailabilityZone'] = availability_zone

Original issue reported on code.google.com by seth.al...@gmail.com on 17 May 2011 at 4:21

GoogleCodeExporter commented 9 years ago
The above change does not work. You need to specify the endpoint url it seems 
to get the job to start in a non-default region, e.g.

DefaultRegionName = boto.config.get('Boto', 'emr_region_name', 'eu-west-1')
DefaultRegionEndpoint = boto.config.get('Boto', 'emr_region_endpoint',
                                            'eu-west-1.elasticmapreduce.amazonaws.com')

It would be great if these can be specified in the .boto config file?

The ruby emr client 
http://aws.amazon.com/developertools/2264?_encoding=UTF8&jiveRedirect=1

actually creates the endpoint dynamically by simply appending the region into 
the base url. Maybe boto can do the same?

Original comment by clivejoh...@googlemail.com on 24 May 2011 at 11:48

GoogleCodeExporter commented 9 years ago
These constants may need to be changed in connection.py as well:

 # 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'

Original comment by clivejoh...@googlemail.com on 24 May 2011 at 11:51

GoogleCodeExporter commented 9 years ago
So, once you've picked the correct endpoint, can you control which zone (is 
this the right word?) is used (us-west-1a vs us-west-1b)?  Is this what the 
Placement param is for?  Is the above patch required for this to work?  Without 
the patch, the Placement param is just ignored, because it doesn't match any of 
the expected arguments.

Original comment by seth.al...@gmail.com on 24 May 2011 at 2:15

GoogleCodeExporter commented 9 years ago
I was able to change to the correct endpoint like this:

    region = RegionInfo (name='us-west-1',
                         endpoint='us-west-1.elasticmapreduce.amazonaws.com')
    conn = boto.connect_emr (AWSKEY, SECRETKEY, region=region)

I still think either that patch should be applied, or that line should be 
deleted.

Original comment by seth.al...@gmail.com on 24 May 2011 at 2:18

GoogleCodeExporter commented 9 years ago
This has been fixed in 
https://github.com/boto/boto/commit/1db5b5e6cc3c5c53b73d92e243ecb3f476addd71#bot
o/emr/connection.py

Original comment by Mitch.Ga...@gmail.com on 19 Jul 2011 at 1:23

GoogleCodeExporter commented 9 years ago

Original comment by Mitch.Ga...@gmail.com on 19 Jul 2011 at 1:23

GoogleCodeExporter commented 9 years ago
We try to specify the availability zone to be 'us-west-1a','us-west-1c'. But 
got this error, 

Traceback (most recent call last):
  File "<stdin>", line 11, in <module>
  File "/Library/Python/2.6/site-packages/boto-2.0-py2.6.egg/boto/emr/connection.py", line 259, in run_jobflow
    'RunJobFlow', params, RunJobFlowResponse, verb='POST')
  File "/Library/Python/2.6/site-packages/boto-2.0-py2.6.egg/boto/connection.py", line 863, in get_object
    raise self.ResponseError(response.status, response.reason, body)
boto.exception.EmrResponseError: EmrResponseError: 400 Bad Request
<ErrorResponse xmlns="http://elasticmapreduce.amazonaws.com/doc/2009-03-31">
  <Error>
    <Type>Sender</Type>
    <Code>ValidationError</Code>
    <Message>Specified Availability Zone is not supported</Message>
  </Error>
  <RequestId>e698c889-cdb2-11e0-89b5-7b144f279cde</RequestId>
</ErrorResponse>

Original comment by vyang-di...@imvu.com on 23 Aug 2011 at 6:14