Set tags in response, fix tests for tags
This commit is contained in:
		
							parent
							
								
									3c38a551b2
								
							
						
					
					
						commit
						b3096af098
					
				@ -113,7 +113,7 @@ class FakeAutoScalingGroup(object):
 | 
				
			|||||||
    def __init__(self, name, availability_zones, desired_capacity, max_size,
 | 
					    def __init__(self, name, availability_zones, desired_capacity, max_size,
 | 
				
			||||||
                 min_size, launch_config_name, vpc_zone_identifier,
 | 
					                 min_size, launch_config_name, vpc_zone_identifier,
 | 
				
			||||||
                 default_cooldown, health_check_period, health_check_type,
 | 
					                 default_cooldown, health_check_period, health_check_type,
 | 
				
			||||||
                 load_balancers, placement_group, termination_policies, 
 | 
					                 load_balancers, placement_group, termination_policies,
 | 
				
			||||||
                 autoscaling_backend, tags):
 | 
					                 autoscaling_backend, tags):
 | 
				
			||||||
        self.autoscaling_backend = autoscaling_backend
 | 
					        self.autoscaling_backend = autoscaling_backend
 | 
				
			||||||
        self.name = name
 | 
					        self.name = name
 | 
				
			||||||
@ -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
 | 
				
			||||||
 | 
				
			|||||||
@ -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>
 | 
				
			||||||
 | 
				
			|||||||
@ -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
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user