summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorspenczar <spenczar@u.northwestern.edu>2011-07-01 21:27:14 -0400
committerspenczar <spenczar@u.northwestern.edu>2011-07-01 21:27:14 -0400
commit0cf99ddaf517bb553b65ea54befa9b70204f1b4b (patch)
treecf8acb34be6681e70b79df2efe6a8e40a7a3a310
parent6878f808bb586e84dfa7d0fbad0db6fe351e9e21 (diff)
downloadboto-0cf99ddaf517bb553b65ea54befa9b70204f1b4b.tar.gz
Added modify_instance_groups
-rw-r--r--boto/emr/connection.py20
-rw-r--r--boto/emr/emrobject.py4
2 files changed, 22 insertions, 2 deletions
diff --git a/boto/emr/connection.py b/boto/emr/connection.py
index e3938520..f20c44d0 100644
--- a/boto/emr/connection.py
+++ b/boto/emr/connection.py
@@ -162,8 +162,24 @@ class EmrConnection(AWSQueryConnection):
instance_group_args = [self._build_instance_group_args(ig) for ig in instance_groups]
params.update(self._build_instance_group_list(instance_group_args))
- return self.get_object(
- 'AddInstanceGroups', params, AddInstanceGroupsResponse, verb='POST')
+ return self.get_object('AddInstanceGroups', params, AddInstanceGroupsResponse, verb='POST')
+
+ def modify_instance_groups(self, new_instance_groups):
+ """
+ Modify the number of nodes and configuration settings in an instance group.
+
+ :type new_instance_groups: list((int, str))
+ :param new_instance_groups: A list of tuples holding an integer for the new size and a string for the InstanceGroupId of the instance group to be modified
+ """
+ params = {}
+
+ for k, ig in enumerate(new_instance_groups):
+ #could be wrong - the example amazon gives uses InstanceRequestCount,
+ #while the api documentation says InstanceCount
+ params['InstanceGroups.member.%s.InstanceCount' % k+1 ] = ig[0]
+ params['InstanceGroups.member.%s.InstanceGroupId' % k+1 ] = ig[1]
+
+ return self.get_object('ModifyInstanceGroups', params, ModifyInstanceGroupsResponse, verb='POST')
def run_jobflow(self, name, log_uri, ec2_keyname=None, availability_zone=None,
diff --git a/boto/emr/emrobject.py b/boto/emr/emrobject.py
index 3e437e3d..3430b987 100644
--- a/boto/emr/emrobject.py
+++ b/boto/emr/emrobject.py
@@ -47,6 +47,10 @@ class RunJobFlowResponse(EmrObject):
class AddInstanceGroupsResponse(EmrObject):
Fields = set(['InstanceGroupIds', 'JobFlowId'])
+
+class ModifyInstanceGroupsResponse(EmrObject):
+ Fields = set(['RequestId'])
+
class Arg(EmrObject):
def __init__(self, connection=None):