Set tags in response, fix tests for tags

This commit is contained in:
milesoc 2015-10-06 18:02:38 +00:00
parent 3c38a551b2
commit b3096af098
3 changed files with 31 additions and 19 deletions

View File

@ -158,6 +158,7 @@ class FakeAutoScalingGroup(object):
load_balancers=load_balancer_names, load_balancers=load_balancer_names,
placement_group=None, placement_group=None,
termination_policies=properties.get("TerminationPolicies", []), termination_policies=properties.get("TerminationPolicies", []),
tags=properties.get("Tags", []),
) )
return group return group
@ -263,7 +264,7 @@ class AutoScalingBackend(BaseBackend):
launch_config_name, vpc_zone_identifier, launch_config_name, vpc_zone_identifier,
default_cooldown, health_check_period, default_cooldown, health_check_period,
health_check_type, load_balancers, health_check_type, load_balancers,
placement_group, termination_policies): placement_group, termination_policies, tags):
def make_int(value): def make_int(value):
return int(value) if value is not None else value return int(value) if value is not None else value
@ -288,6 +289,7 @@ class AutoScalingBackend(BaseBackend):
placement_group=placement_group, placement_group=placement_group,
termination_policies=termination_policies, termination_policies=termination_policies,
autoscaling_backend=self, autoscaling_backend=self,
tags=tags,
) )
self.autoscaling_groups[name] = group self.autoscaling_groups[name] = group
return group return group

View File

@ -60,7 +60,7 @@ class AutoScalingResponse(BaseResponse):
load_balancers=self._get_multi_param('LoadBalancerNames.member'), load_balancers=self._get_multi_param('LoadBalancerNames.member'),
placement_group=self._get_param('PlacementGroup'), placement_group=self._get_param('PlacementGroup'),
termination_policies=self._get_multi_param('TerminationPolicies.member'), termination_policies=self._get_multi_param('TerminationPolicies.member'),
tags=self._get_multi_param('Tags.member'), tags=self._get_list_prefix('Tags.member'),
) )
template = self.response_template(CREATE_AUTOSCALING_GROUP_TEMPLATE) template = self.response_template(CREATE_AUTOSCALING_GROUP_TEMPLATE)
return template.render() return template.render()
@ -86,7 +86,6 @@ class AutoScalingResponse(BaseResponse):
load_balancers=self._get_multi_param('LoadBalancerNames.member'), load_balancers=self._get_multi_param('LoadBalancerNames.member'),
placement_group=self._get_param('PlacementGroup'), placement_group=self._get_param('PlacementGroup'),
termination_policies=self._get_multi_param('TerminationPolicies.member'), termination_policies=self._get_multi_param('TerminationPolicies.member'),
tags=self._get_multi_param('Tags.member'),
) )
template = self.response_template(UPDATE_AUTOSCALING_GROUP_TEMPLATE) template = self.response_template(UPDATE_AUTOSCALING_GROUP_TEMPLATE)
return template.render() return template.render()
@ -237,7 +236,17 @@ DESCRIBE_AUTOSCALING_GROUPS_TEMPLATE = """<DescribeAutoScalingGroupsResponse xml
<AutoScalingGroups> <AutoScalingGroups>
{% for group in groups %} {% for group in groups %}
<member> <member>
<Tags/> <Tags>
{% for tag in group.tags %}
<member>
<ResourceType>{{ tag.resource_type }}</ResourceType>
<ResourceId>{{ tag.resource_id }}</ResourceId>
<PropagateAtLaunch>{{ tag.propagate_at_launch }}</PropagateAtLaunch>
<Key>{{ tag.key }}</Key>
<Value>{{ tag.value }}</Value>
</member>
{% endfor %}
</Tags>
<SuspendedProcesses/> <SuspendedProcesses/>
<AutoScalingGroupName>{{ group.name }}</AutoScalingGroupName> <AutoScalingGroupName>{{ group.name }}</AutoScalingGroupName>
<HealthCheckType>{{ group.health_check_type }}</HealthCheckType> <HealthCheckType>{{ group.health_check_type }}</HealthCheckType>

View File

@ -2,6 +2,7 @@ from __future__ import unicode_literals
import boto import boto
from boto.ec2.autoscale.launchconfig import LaunchConfiguration from boto.ec2.autoscale.launchconfig import LaunchConfiguration
from boto.ec2.autoscale.group import AutoScalingGroup from boto.ec2.autoscale.group import AutoScalingGroup
from boto.ec2.autoscale import Tag
import sure # noqa import sure # noqa
from moto import mock_autoscaling, mock_ec2 from moto import mock_autoscaling, mock_ec2
@ -18,6 +19,7 @@ def test_create_autoscaling_group():
) )
conn.create_launch_configuration(config) conn.create_launch_configuration(config)
group = AutoScalingGroup( group = AutoScalingGroup(
name='tester_group', name='tester_group',
availability_zones=['us-east-1c', 'us-east-1b'], availability_zones=['us-east-1c', 'us-east-1b'],
@ -32,13 +34,13 @@ def test_create_autoscaling_group():
placement_group="test_placement", placement_group="test_placement",
vpc_zone_identifier='subnet-1234abcd', vpc_zone_identifier='subnet-1234abcd',
termination_policies=["OldestInstance", "NewestInstance"], termination_policies=["OldestInstance", "NewestInstance"],
tags=[{ tags=[Tag(
'ResourceId': 'tester_group', resource_id='tester_group',
'ResourceType': 'auto-scaling-group', key='test_key',
'Key': 'test_key', value='test_value',
'Value': 'test_value', propagate_at_launch=True
'PropagateAtLaunch': True, )
}], ],
) )
conn.create_auto_scaling_group(group) conn.create_auto_scaling_group(group)
@ -57,13 +59,12 @@ def test_create_autoscaling_group():
list(group.load_balancers).should.equal(["test_lb"]) list(group.load_balancers).should.equal(["test_lb"])
group.placement_group.should.equal("test_placement") group.placement_group.should.equal("test_placement")
list(group.termination_policies).should.equal(["OldestInstance", "NewestInstance"]) list(group.termination_policies).should.equal(["OldestInstance", "NewestInstance"])
list(group.tags).should.equal([{ len(list(group.tags)).should.equal(1)
'ResourceId': 'tester_group', tag = list(group.tags)[0]
'ResourceType': 'auto-scaling-group', tag.resource_id.should.equal('tester_group')
'Key': 'test_key', tag.key.should.equal('test_key')
'Value': 'test_value', tag.value.should.equal('test_value')
'PropagateAtLaunch': True, tag.propagate_at_launch.should.equal(True)
}])
@mock_autoscaling @mock_autoscaling