From 5ba2b3cb9a305a9c821484759a1bd6c50b1cb208 Mon Sep 17 00:00:00 2001 From: "Chris St. Pierre" Date: Wed, 7 May 2014 08:36:19 -0400 Subject: [PATCH] Added instance_type support to instances --- moto/ec2/models.py | 8 ++++++-- moto/ec2/responses/instances.py | 7 ++++--- tests/test_ec2/test_instances.py | 9 +++++++++ 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/moto/ec2/models.py b/moto/ec2/models.py index 708756aff..f14772459 100644 --- a/moto/ec2/models.py +++ b/moto/ec2/models.py @@ -37,13 +37,14 @@ class InstanceState(object): class Instance(BotoInstance): - def __init__(self, image_id, user_data, security_groups): + def __init__(self, image_id, user_data, security_groups, **kwargs): super(Instance, self).__init__() self.id = random_instance_id() self.image_id = image_id self._state = InstanceState("running", 16) self.user_data = user_data self.security_groups = security_groups + self.instance_type = kwargs.get("instance_type", "m1.small") @classmethod def create_from_cloudformation_json(cls, resource_name, cloudformation_json): @@ -57,6 +58,7 @@ class Instance(BotoInstance): user_data=properties.get('UserData'), count=1, security_group_names=group_names, + instance_type=properties.get("InstanceType", "m1.small"), ) return reservation.instances[0] @@ -96,7 +98,8 @@ class InstanceBackend(object): if instance.id == instance_id: return instance - def add_instances(self, image_id, count, user_data, security_group_names): + def add_instances(self, image_id, count, user_data, security_group_names, + **kwargs): new_reservation = Reservation() new_reservation.id = random_reservation_id() @@ -106,6 +109,7 @@ class InstanceBackend(object): image_id, user_data, security_groups, + **kwargs ) new_reservation.instances.append(new_instance) self.reservations[new_reservation.id] = new_reservation diff --git a/moto/ec2/responses/instances.py b/moto/ec2/responses/instances.py index 13b23fd3f..280474136 100644 --- a/moto/ec2/responses/instances.py +++ b/moto/ec2/responses/instances.py @@ -33,7 +33,8 @@ class InstanceResponse(BaseResponse): image_id = self.querystring.get('ImageId')[0] user_data = self.querystring.get('UserData') security_group_names = self._get_multi_param('SecurityGroup') - new_reservation = ec2_backend.add_instances(image_id, min_count, user_data, security_group_names) + instance_type = self.querystring.get("InstanceType", ["m1.small"])[0] + new_reservation = ec2_backend.add_instances(image_id, min_count, user_data, security_group_names, instance_type=instance_type) template = Template(EC2_RUN_INSTANCES) return template.render(reservation=new_reservation) @@ -111,7 +112,7 @@ EC2_RUN_INSTANCES = """