| Index: tools/telemetry/third_party/gsutilz/third_party/boto/tests/unit/ec2/autoscale/test_group.py
|
| diff --git a/tools/telemetry/third_party/gsutilz/third_party/boto/tests/unit/ec2/autoscale/test_group.py b/tools/telemetry/third_party/gsutilz/third_party/boto/tests/unit/ec2/autoscale/test_group.py
|
| deleted file mode 100755
|
| index a5df45899a2bd3710ed54c506477140fb79ec6d2..0000000000000000000000000000000000000000
|
| --- a/tools/telemetry/third_party/gsutilz/third_party/boto/tests/unit/ec2/autoscale/test_group.py
|
| +++ /dev/null
|
| @@ -1,881 +0,0 @@
|
| -#!/usr/bin/env python
|
| -# Copyright (c) 2012 Amazon.com, Inc. or its affiliates. All Rights Reserved
|
| -#
|
| -# Permission is hereby granted, free of charge, to any person obtaining a
|
| -# copy of this software and associated documentation files (the
|
| -# "Software"), to deal in the Software without restriction, including
|
| -# without limitation the rights to use, copy, modify, merge, publish, dis-
|
| -# tribute, sublicense, and/or sell copies of the Software, and to permit
|
| -# persons to whom the Software is furnished to do so, subject to the fol-
|
| -# lowing conditions:
|
| -#
|
| -# The above copyright notice and this permission notice shall be included
|
| -# in all copies or substantial portions of the Software.
|
| -#
|
| -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
| -# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
|
| -# ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
|
| -# SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
| -# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
| -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
| -# IN THE SOFTWARE.
|
| -#
|
| -
|
| -import base64
|
| -from datetime import datetime
|
| -
|
| -from tests.unit import unittest
|
| -from tests.unit import AWSMockServiceTestCase
|
| -
|
| -from boto.ec2.autoscale import AutoScaleConnection
|
| -from boto.ec2.autoscale.group import AutoScalingGroup
|
| -from boto.ec2.autoscale.policy import ScalingPolicy
|
| -from boto.ec2.autoscale.tag import Tag
|
| -
|
| -from boto.ec2.blockdevicemapping import EBSBlockDeviceType, BlockDeviceMapping
|
| -
|
| -from boto.ec2.autoscale import launchconfig, LaunchConfiguration
|
| -
|
| -
|
| -class TestAutoScaleGroup(AWSMockServiceTestCase):
|
| - connection_class = AutoScaleConnection
|
| -
|
| - def setUp(self):
|
| - super(TestAutoScaleGroup, self).setUp()
|
| -
|
| - def default_body(self):
|
| - return b"""
|
| - <CreateLaunchConfigurationResponse>
|
| - <ResponseMetadata>
|
| - <RequestId>requestid</RequestId>
|
| - </ResponseMetadata>
|
| - </CreateLaunchConfigurationResponse>
|
| - """
|
| -
|
| - def test_autoscaling_group_with_termination_policies(self):
|
| - self.set_http_response(status_code=200)
|
| - autoscale = AutoScalingGroup(
|
| - name='foo', launch_config='lauch_config',
|
| - min_size=1, max_size=2,
|
| - termination_policies=['OldestInstance', 'OldestLaunchConfiguration'],
|
| - instance_id='test-id')
|
| - self.service_connection.create_auto_scaling_group(autoscale)
|
| - self.assert_request_parameters({
|
| - 'Action': 'CreateAutoScalingGroup',
|
| - 'AutoScalingGroupName': 'foo',
|
| - 'LaunchConfigurationName': 'lauch_config',
|
| - 'MaxSize': 2,
|
| - 'MinSize': 1,
|
| - 'TerminationPolicies.member.1': 'OldestInstance',
|
| - 'TerminationPolicies.member.2': 'OldestLaunchConfiguration',
|
| - 'InstanceId': 'test-id',
|
| - }, ignore_params_values=['Version'])
|
| -
|
| - def test_autoscaling_group_single_vpc_zone_identifier(self):
|
| - self.set_http_response(status_code=200)
|
| - autoscale = AutoScalingGroup(
|
| - name='foo',
|
| - vpc_zone_identifier='vpc_zone_1')
|
| - self.service_connection.create_auto_scaling_group(autoscale)
|
| - self.assert_request_parameters({
|
| - 'Action': 'CreateAutoScalingGroup',
|
| - 'AutoScalingGroupName': 'foo',
|
| - 'VPCZoneIdentifier': 'vpc_zone_1',
|
| - }, ignore_params_values=['MaxSize', 'MinSize', 'LaunchConfigurationName', 'Version'])
|
| -
|
| - def test_autoscaling_group_vpc_zone_identifier_list(self):
|
| - self.set_http_response(status_code=200)
|
| - autoscale = AutoScalingGroup(
|
| - name='foo',
|
| - vpc_zone_identifier=['vpc_zone_1', 'vpc_zone_2'])
|
| - self.service_connection.create_auto_scaling_group(autoscale)
|
| - self.assert_request_parameters({
|
| - 'Action': 'CreateAutoScalingGroup',
|
| - 'AutoScalingGroupName': 'foo',
|
| - 'VPCZoneIdentifier': 'vpc_zone_1,vpc_zone_2',
|
| - }, ignore_params_values=['MaxSize', 'MinSize', 'LaunchConfigurationName', 'Version'])
|
| -
|
| - def test_autoscaling_group_vpc_zone_identifier_multi(self):
|
| - self.set_http_response(status_code=200)
|
| - autoscale = AutoScalingGroup(
|
| - name='foo',
|
| - vpc_zone_identifier='vpc_zone_1,vpc_zone_2')
|
| - self.service_connection.create_auto_scaling_group(autoscale)
|
| - self.assert_request_parameters({
|
| - 'Action': 'CreateAutoScalingGroup',
|
| - 'AutoScalingGroupName': 'foo',
|
| - 'VPCZoneIdentifier': 'vpc_zone_1,vpc_zone_2',
|
| - }, ignore_params_values=['MaxSize', 'MinSize', 'LaunchConfigurationName', 'Version'])
|
| -
|
| -
|
| -class TestAutoScaleGroupHonorCooldown(AWSMockServiceTestCase):
|
| - connection_class = AutoScaleConnection
|
| -
|
| - def default_body(self):
|
| - return b"""
|
| - <SetDesiredCapacityResponse>
|
| - <ResponseMetadata>
|
| - <RequestId>9fb7e2db-6998-11e2-a985-57c82EXAMPLE</RequestId>
|
| - </ResponseMetadata>
|
| - </SetDesiredCapacityResponse>
|
| - """
|
| -
|
| - def test_honor_cooldown(self):
|
| - self.set_http_response(status_code=200)
|
| - self.service_connection.set_desired_capacity('foo', 10, True)
|
| - self.assert_request_parameters({
|
| - 'Action': 'SetDesiredCapacity',
|
| - 'AutoScalingGroupName': 'foo',
|
| - 'DesiredCapacity': 10,
|
| - 'HonorCooldown': 'true',
|
| - }, ignore_params_values=['Version'])
|
| -
|
| -
|
| -class TestScheduledGroup(AWSMockServiceTestCase):
|
| - connection_class = AutoScaleConnection
|
| -
|
| - def setUp(self):
|
| - super(TestScheduledGroup, self).setUp()
|
| -
|
| - def default_body(self):
|
| - return b"""
|
| - <PutScheduledUpdateGroupActionResponse>
|
| - <ResponseMetadata>
|
| - <RequestId>requestid</RequestId>
|
| - </ResponseMetadata>
|
| - </PutScheduledUpdateGroupActionResponse>
|
| - """
|
| -
|
| - def test_scheduled_group_creation(self):
|
| - self.set_http_response(status_code=200)
|
| - self.service_connection.create_scheduled_group_action('foo',
|
| - 'scheduled-foo',
|
| - desired_capacity=1,
|
| - start_time=datetime(2013, 1, 1, 22, 55, 31),
|
| - end_time=datetime(2013, 2, 1, 22, 55, 31),
|
| - min_size=1,
|
| - max_size=2,
|
| - recurrence='0 10 * * *')
|
| - self.assert_request_parameters({
|
| - 'Action': 'PutScheduledUpdateGroupAction',
|
| - 'AutoScalingGroupName': 'foo',
|
| - 'ScheduledActionName': 'scheduled-foo',
|
| - 'MaxSize': 2,
|
| - 'MinSize': 1,
|
| - 'DesiredCapacity': 1,
|
| - 'EndTime': '2013-02-01T22:55:31',
|
| - 'StartTime': '2013-01-01T22:55:31',
|
| - 'Recurrence': '0 10 * * *',
|
| - }, ignore_params_values=['Version'])
|
| -
|
| -
|
| -class TestParseAutoScaleGroupResponse(AWSMockServiceTestCase):
|
| - connection_class = AutoScaleConnection
|
| -
|
| - def default_body(self):
|
| - return b"""
|
| - <DescribeAutoScalingGroupsResult>
|
| - <AutoScalingGroups>
|
| - <member>
|
| - <Tags/>
|
| - <SuspendedProcesses/>
|
| - <AutoScalingGroupName>test_group</AutoScalingGroupName>
|
| - <HealthCheckType>EC2</HealthCheckType>
|
| - <CreatedTime>2012-09-27T20:19:47.082Z</CreatedTime>
|
| - <EnabledMetrics/>
|
| - <LaunchConfigurationName>test_launchconfig</LaunchConfigurationName>
|
| - <Instances>
|
| - <member>
|
| - <HealthStatus>Healthy</HealthStatus>
|
| - <AvailabilityZone>us-east-1a</AvailabilityZone>
|
| - <InstanceId>i-z118d054</InstanceId>
|
| - <LaunchConfigurationName>test_launchconfig</LaunchConfigurationName>
|
| - <LifecycleState>InService</LifecycleState>
|
| - </member>
|
| - </Instances>
|
| - <DesiredCapacity>1</DesiredCapacity>
|
| - <AvailabilityZones>
|
| - <member>us-east-1c</member>
|
| - <member>us-east-1a</member>
|
| - </AvailabilityZones>
|
| - <LoadBalancerNames/>
|
| - <MinSize>1</MinSize>
|
| - <VPCZoneIdentifier/>
|
| - <HealthCheckGracePeriod>0</HealthCheckGracePeriod>
|
| - <DefaultCooldown>300</DefaultCooldown>
|
| - <AutoScalingGroupARN>myarn</AutoScalingGroupARN>
|
| - <TerminationPolicies>
|
| - <member>OldestInstance</member>
|
| - <member>OldestLaunchConfiguration</member>
|
| - </TerminationPolicies>
|
| - <MaxSize>2</MaxSize>
|
| - <InstanceId>Something</InstanceId>
|
| - </member>
|
| - </AutoScalingGroups>
|
| - </DescribeAutoScalingGroupsResult>
|
| - """
|
| -
|
| - def test_get_all_groups_is_parsed_correctly(self):
|
| - self.set_http_response(status_code=200)
|
| - response = self.service_connection.get_all_groups(names=['test_group'])
|
| - self.assertEqual(len(response), 1, response)
|
| - as_group = response[0]
|
| - self.assertEqual(as_group.availability_zones, ['us-east-1c', 'us-east-1a'])
|
| - self.assertEqual(as_group.default_cooldown, 300)
|
| - self.assertEqual(as_group.desired_capacity, 1)
|
| - self.assertEqual(as_group.enabled_metrics, [])
|
| - self.assertEqual(as_group.health_check_period, 0)
|
| - self.assertEqual(as_group.health_check_type, 'EC2')
|
| - self.assertEqual(as_group.launch_config_name, 'test_launchconfig')
|
| - self.assertEqual(as_group.load_balancers, [])
|
| - self.assertEqual(as_group.min_size, 1)
|
| - self.assertEqual(as_group.max_size, 2)
|
| - self.assertEqual(as_group.name, 'test_group')
|
| - self.assertEqual(as_group.suspended_processes, [])
|
| - self.assertEqual(as_group.tags, [])
|
| - self.assertEqual(as_group.termination_policies,
|
| - ['OldestInstance', 'OldestLaunchConfiguration'])
|
| - self.assertEqual(as_group.instance_id, 'Something')
|
| -
|
| -
|
| -class TestDescribeTerminationPolicies(AWSMockServiceTestCase):
|
| - connection_class = AutoScaleConnection
|
| -
|
| - def default_body(self):
|
| - return b"""
|
| - <DescribeTerminationPolicyTypesResponse>
|
| - <DescribeTerminationPolicyTypesResult>
|
| - <TerminationPolicyTypes>
|
| - <member>ClosestToNextInstanceHour</member>
|
| - <member>Default</member>
|
| - <member>NewestInstance</member>
|
| - <member>OldestInstance</member>
|
| - <member>OldestLaunchConfiguration</member>
|
| - </TerminationPolicyTypes>
|
| - </DescribeTerminationPolicyTypesResult>
|
| - <ResponseMetadata>
|
| - <RequestId>requestid</RequestId>
|
| - </ResponseMetadata>
|
| - </DescribeTerminationPolicyTypesResponse>
|
| - """
|
| -
|
| - def test_autoscaling_group_with_termination_policies(self):
|
| - self.set_http_response(status_code=200)
|
| - response = self.service_connection.get_termination_policies()
|
| - self.assertListEqual(
|
| - response,
|
| - ['ClosestToNextInstanceHour', 'Default',
|
| - 'NewestInstance', 'OldestInstance', 'OldestLaunchConfiguration'])
|
| -
|
| -
|
| -class TestLaunchConfigurationDescribe(AWSMockServiceTestCase):
|
| - connection_class = AutoScaleConnection
|
| -
|
| - def default_body(self):
|
| - # This is a dummy response
|
| - return b"""
|
| - <DescribeLaunchConfigurationsResponse>
|
| - <DescribeLaunchConfigurationsResult>
|
| - <LaunchConfigurations>
|
| - <member>
|
| - <AssociatePublicIpAddress>true</AssociatePublicIpAddress>
|
| - <SecurityGroups/>
|
| - <CreatedTime>2013-01-21T23:04:42.200Z</CreatedTime>
|
| - <KernelId/>
|
| - <LaunchConfigurationName>my-test-lc</LaunchConfigurationName>
|
| - <UserData/>
|
| - <InstanceType>m1.small</InstanceType>
|
| - <LaunchConfigurationARN>arn:aws:autoscaling:us-east-1:803981987763:launchConfiguration:9dbbbf87-6141-428a-a409-0752edbe6cad:launchConfigurationName/my-test-lc</LaunchConfigurationARN>
|
| - <BlockDeviceMappings/>
|
| - <ImageId>ami-514ac838</ImageId>
|
| - <KeyName/>
|
| - <RamdiskId/>
|
| - <InstanceMonitoring>
|
| - <Enabled>true</Enabled>
|
| - </InstanceMonitoring>
|
| - <EbsOptimized>false</EbsOptimized>
|
| - <ClassicLinkVPCId>vpc-12345</ClassicLinkVPCId>
|
| - <ClassicLinkVPCSecurityGroups>
|
| - <member>sg-1234</member>
|
| - </ClassicLinkVPCSecurityGroups>
|
| - </member>
|
| - </LaunchConfigurations>
|
| - </DescribeLaunchConfigurationsResult>
|
| - <ResponseMetadata>
|
| - <RequestId>d05a22f8-b690-11e2-bf8e-2113fEXAMPLE</RequestId>
|
| - </ResponseMetadata>
|
| - </DescribeLaunchConfigurationsResponse>
|
| - """
|
| -
|
| - def test_get_all_launch_configurations(self):
|
| - self.set_http_response(status_code=200)
|
| -
|
| - response = self.service_connection.get_all_launch_configurations()
|
| - self.assertTrue(isinstance(response, list))
|
| - self.assertEqual(len(response), 1)
|
| - self.assertTrue(isinstance(response[0], LaunchConfiguration))
|
| -
|
| - self.assertEqual(response[0].associate_public_ip_address, True)
|
| - self.assertEqual(response[0].name, "my-test-lc")
|
| - self.assertEqual(response[0].instance_type, "m1.small")
|
| - self.assertEqual(response[0].launch_configuration_arn, "arn:aws:autoscaling:us-east-1:803981987763:launchConfiguration:9dbbbf87-6141-428a-a409-0752edbe6cad:launchConfigurationName/my-test-lc")
|
| - self.assertEqual(response[0].image_id, "ami-514ac838")
|
| - self.assertTrue(isinstance(response[0].instance_monitoring, launchconfig.InstanceMonitoring))
|
| - self.assertEqual(response[0].instance_monitoring.enabled, 'true')
|
| - self.assertEqual(response[0].ebs_optimized, False)
|
| - self.assertEqual(response[0].block_device_mappings, [])
|
| - self.assertEqual(response[0].classic_link_vpc_id, 'vpc-12345')
|
| - self.assertEqual(response[0].classic_link_vpc_security_groups,
|
| - ['sg-1234'])
|
| -
|
| - self.assert_request_parameters({
|
| - 'Action': 'DescribeLaunchConfigurations',
|
| - }, ignore_params_values=['Version'])
|
| -
|
| - def test_get_all_configuration_limited(self):
|
| - self.set_http_response(status_code=200)
|
| -
|
| - response = self.service_connection.get_all_launch_configurations(max_records=10, names=["my-test1", "my-test2"])
|
| - self.assert_request_parameters({
|
| - 'Action': 'DescribeLaunchConfigurations',
|
| - 'MaxRecords': 10,
|
| - 'LaunchConfigurationNames.member.1': 'my-test1',
|
| - 'LaunchConfigurationNames.member.2': 'my-test2'
|
| - }, ignore_params_values=['Version'])
|
| -
|
| -
|
| -class TestLaunchConfiguration(AWSMockServiceTestCase):
|
| - connection_class = AutoScaleConnection
|
| -
|
| - def default_body(self):
|
| - # This is a dummy response
|
| - return b"""
|
| - <DescribeLaunchConfigurationsResponse>
|
| - </DescribeLaunchConfigurationsResponse>
|
| - """
|
| -
|
| - def test_launch_config(self):
|
| - # This unit test is based on #753 and #1343
|
| - self.set_http_response(status_code=200)
|
| - dev_sdf = EBSBlockDeviceType(snapshot_id='snap-12345')
|
| -
|
| - bdm = BlockDeviceMapping()
|
| - bdm['/dev/sdf'] = dev_sdf
|
| -
|
| - lc = launchconfig.LaunchConfiguration(
|
| - connection=self.service_connection,
|
| - name='launch_config',
|
| - image_id='123456',
|
| - instance_type='m1.large',
|
| - user_data='#!/bin/bash',
|
| - security_groups=['group1'],
|
| - spot_price='price',
|
| - block_device_mappings=[bdm],
|
| - associate_public_ip_address=True,
|
| - volume_type='atype',
|
| - delete_on_termination=False,
|
| - iops=3000,
|
| - classic_link_vpc_id='vpc-1234',
|
| - classic_link_vpc_security_groups=['classic_link_group']
|
| - )
|
| -
|
| - response = self.service_connection.create_launch_configuration(lc)
|
| -
|
| - self.assert_request_parameters({
|
| - 'Action': 'CreateLaunchConfiguration',
|
| - 'BlockDeviceMappings.member.1.DeviceName': '/dev/sdf',
|
| - 'BlockDeviceMappings.member.1.Ebs.DeleteOnTermination': 'false',
|
| - 'BlockDeviceMappings.member.1.Ebs.SnapshotId': 'snap-12345',
|
| - 'EbsOptimized': 'false',
|
| - 'LaunchConfigurationName': 'launch_config',
|
| - 'ImageId': '123456',
|
| - 'UserData': base64.b64encode(b'#!/bin/bash').decode('utf-8'),
|
| - 'InstanceMonitoring.Enabled': 'false',
|
| - 'InstanceType': 'm1.large',
|
| - 'SecurityGroups.member.1': 'group1',
|
| - 'SpotPrice': 'price',
|
| - 'AssociatePublicIpAddress': 'true',
|
| - 'VolumeType': 'atype',
|
| - 'DeleteOnTermination': 'false',
|
| - 'Iops': 3000,
|
| - 'ClassicLinkVPCId': 'vpc-1234',
|
| - 'ClassicLinkVPCSecurityGroups.member.1': 'classic_link_group'
|
| - }, ignore_params_values=['Version'])
|
| -
|
| -
|
| -class TestCreateAutoScalePolicy(AWSMockServiceTestCase):
|
| - connection_class = AutoScaleConnection
|
| -
|
| - def setUp(self):
|
| - super(TestCreateAutoScalePolicy, self).setUp()
|
| -
|
| - def default_body(self):
|
| - return b"""
|
| - <PutScalingPolicyResponse xmlns="http://autoscaling.amazonaws.com\
|
| - /doc/2011-01-01/">
|
| - <PutScalingPolicyResult>
|
| - <PolicyARN>arn:aws:autoscaling:us-east-1:803981987763:scaling\
|
| - Policy:b0dcf5e8
|
| - -02e6-4e31-9719-0675d0dc31ae:autoScalingGroupName/my-test-asg:\
|
| - policyName/my-scal
|
| - eout-policy</PolicyARN>
|
| - </PutScalingPolicyResult>
|
| - <ResponseMetadata>
|
| - <RequestId>3cfc6fef-c08b-11e2-a697-2922EXAMPLE</RequestId>
|
| - </ResponseMetadata>
|
| - </PutScalingPolicyResponse>
|
| - """
|
| -
|
| - def test_scaling_policy_with_min_adjustment_step(self):
|
| - self.set_http_response(status_code=200)
|
| -
|
| - policy = ScalingPolicy(
|
| - name='foo', as_name='bar',
|
| - adjustment_type='PercentChangeInCapacity', scaling_adjustment=50,
|
| - min_adjustment_step=30)
|
| - self.service_connection.create_scaling_policy(policy)
|
| -
|
| - self.assert_request_parameters({
|
| - 'Action': 'PutScalingPolicy',
|
| - 'PolicyName': 'foo',
|
| - 'AutoScalingGroupName': 'bar',
|
| - 'AdjustmentType': 'PercentChangeInCapacity',
|
| - 'ScalingAdjustment': 50,
|
| - 'MinAdjustmentStep': 30
|
| - }, ignore_params_values=['Version'])
|
| -
|
| - def test_scaling_policy_with_wrong_adjustment_type(self):
|
| - self.set_http_response(status_code=200)
|
| -
|
| - policy = ScalingPolicy(
|
| - name='foo', as_name='bar',
|
| - adjustment_type='ChangeInCapacity', scaling_adjustment=50,
|
| - min_adjustment_step=30)
|
| - self.service_connection.create_scaling_policy(policy)
|
| -
|
| - self.assert_request_parameters({
|
| - 'Action': 'PutScalingPolicy',
|
| - 'PolicyName': 'foo',
|
| - 'AutoScalingGroupName': 'bar',
|
| - 'AdjustmentType': 'ChangeInCapacity',
|
| - 'ScalingAdjustment': 50
|
| - }, ignore_params_values=['Version'])
|
| -
|
| - def test_scaling_policy_without_min_adjustment_step(self):
|
| - self.set_http_response(status_code=200)
|
| -
|
| - policy = ScalingPolicy(
|
| - name='foo', as_name='bar',
|
| - adjustment_type='PercentChangeInCapacity', scaling_adjustment=50)
|
| - self.service_connection.create_scaling_policy(policy)
|
| -
|
| - self.assert_request_parameters({
|
| - 'Action': 'PutScalingPolicy',
|
| - 'PolicyName': 'foo',
|
| - 'AutoScalingGroupName': 'bar',
|
| - 'AdjustmentType': 'PercentChangeInCapacity',
|
| - 'ScalingAdjustment': 50
|
| - }, ignore_params_values=['Version'])
|
| -
|
| -
|
| -class TestPutNotificationConfiguration(AWSMockServiceTestCase):
|
| - connection_class = AutoScaleConnection
|
| -
|
| - def setUp(self):
|
| - super(TestPutNotificationConfiguration, self).setUp()
|
| -
|
| - def default_body(self):
|
| - return b"""
|
| - <PutNotificationConfigurationResponse>
|
| - <ResponseMetadata>
|
| - <RequestId>requestid</RequestId>
|
| - </ResponseMetadata>
|
| - </PutNotificationConfigurationResponse>
|
| - """
|
| -
|
| - def test_autoscaling_group_put_notification_configuration(self):
|
| - self.set_http_response(status_code=200)
|
| - autoscale = AutoScalingGroup(
|
| - name='ana', launch_config='lauch_config',
|
| - min_size=1, max_size=2,
|
| - termination_policies=['OldestInstance', 'OldestLaunchConfiguration'])
|
| - self.service_connection.put_notification_configuration(autoscale, 'arn:aws:sns:us-east-1:19890506:AutoScaling-Up', ['autoscaling:EC2_INSTANCE_LAUNCH'])
|
| - self.assert_request_parameters({
|
| - 'Action': 'PutNotificationConfiguration',
|
| - 'AutoScalingGroupName': 'ana',
|
| - 'NotificationTypes.member.1': 'autoscaling:EC2_INSTANCE_LAUNCH',
|
| - 'TopicARN': 'arn:aws:sns:us-east-1:19890506:AutoScaling-Up',
|
| - }, ignore_params_values=['Version'])
|
| -
|
| -
|
| -class TestDeleteNotificationConfiguration(AWSMockServiceTestCase):
|
| - connection_class = AutoScaleConnection
|
| -
|
| - def setUp(self):
|
| - super(TestDeleteNotificationConfiguration, self).setUp()
|
| -
|
| - def default_body(self):
|
| - return b"""
|
| - <DeleteNotificationConfigurationResponse>
|
| - <ResponseMetadata>
|
| - <RequestId>requestid</RequestId>
|
| - </ResponseMetadata>
|
| - </DeleteNotificationConfigurationResponse>
|
| - """
|
| -
|
| - def test_autoscaling_group_put_notification_configuration(self):
|
| - self.set_http_response(status_code=200)
|
| - autoscale = AutoScalingGroup(
|
| - name='ana', launch_config='lauch_config',
|
| - min_size=1, max_size=2,
|
| - termination_policies=['OldestInstance', 'OldestLaunchConfiguration'])
|
| - self.service_connection.delete_notification_configuration(autoscale, 'arn:aws:sns:us-east-1:19890506:AutoScaling-Up')
|
| - self.assert_request_parameters({
|
| - 'Action': 'DeleteNotificationConfiguration',
|
| - 'AutoScalingGroupName': 'ana',
|
| - 'TopicARN': 'arn:aws:sns:us-east-1:19890506:AutoScaling-Up',
|
| - }, ignore_params_values=['Version'])
|
| -
|
| -
|
| -class TestAutoScalingTag(AWSMockServiceTestCase):
|
| - connection_class = AutoScaleConnection
|
| -
|
| - def default_body(self):
|
| - return b"""
|
| - <CreateOrUpdateTagsResponse>
|
| - <ResponseMetadata>
|
| - <RequestId>requestId</RequestId>
|
| - </ResponseMetadata>
|
| - </CreateOrUpdateTagsResponse>
|
| - """
|
| -
|
| - def test_create_or_update_tags(self):
|
| - self.set_http_response(status_code=200)
|
| -
|
| - tags = [
|
| - Tag(
|
| - connection=self.service_connection,
|
| - key='alpha',
|
| - value='tango',
|
| - resource_id='sg-00000000',
|
| - resource_type='auto-scaling-group',
|
| - propagate_at_launch=True
|
| - ),
|
| - Tag(
|
| - connection=self.service_connection,
|
| - key='bravo',
|
| - value='sierra',
|
| - resource_id='sg-00000000',
|
| - resource_type='auto-scaling-group',
|
| - propagate_at_launch=False
|
| - )]
|
| -
|
| - response = self.service_connection.create_or_update_tags(tags)
|
| -
|
| - self.assert_request_parameters({
|
| - 'Action': 'CreateOrUpdateTags',
|
| - 'Tags.member.1.ResourceType': 'auto-scaling-group',
|
| - 'Tags.member.1.ResourceId': 'sg-00000000',
|
| - 'Tags.member.1.Key': 'alpha',
|
| - 'Tags.member.1.Value': 'tango',
|
| - 'Tags.member.1.PropagateAtLaunch': 'true',
|
| - 'Tags.member.2.ResourceType': 'auto-scaling-group',
|
| - 'Tags.member.2.ResourceId': 'sg-00000000',
|
| - 'Tags.member.2.Key': 'bravo',
|
| - 'Tags.member.2.Value': 'sierra',
|
| - 'Tags.member.2.PropagateAtLaunch': 'false'
|
| - }, ignore_params_values=['Version'])
|
| -
|
| - def test_endElement(self):
|
| - for i in [
|
| - ('Key', 'mykey', 'key'),
|
| - ('Value', 'myvalue', 'value'),
|
| - ('ResourceType', 'auto-scaling-group', 'resource_type'),
|
| - ('ResourceId', 'sg-01234567', 'resource_id'),
|
| - ('PropagateAtLaunch', 'true', 'propagate_at_launch')]:
|
| - self.check_tag_attributes_set(i[0], i[1], i[2])
|
| -
|
| - def check_tag_attributes_set(self, name, value, attr):
|
| - tag = Tag()
|
| - tag.endElement(name, value, None)
|
| - if value == 'true':
|
| - self.assertEqual(getattr(tag, attr), True)
|
| - else:
|
| - self.assertEqual(getattr(tag, attr), value)
|
| -
|
| -
|
| -class TestAttachInstances(AWSMockServiceTestCase):
|
| - connection_class = AutoScaleConnection
|
| -
|
| - def setUp(self):
|
| - super(TestAttachInstances, self).setUp()
|
| -
|
| - def default_body(self):
|
| - return b"""
|
| - <AttachInstancesResponse>
|
| - <ResponseMetadata>
|
| - <RequestId>requestid</RequestId>
|
| - </ResponseMetadata>
|
| - </AttachInstancesResponse>
|
| - """
|
| -
|
| - def test_attach_instances(self):
|
| - self.set_http_response(status_code=200)
|
| - self.service_connection.attach_instances(
|
| - 'autoscale',
|
| - ['inst2', 'inst1', 'inst4']
|
| - )
|
| - self.assert_request_parameters({
|
| - 'Action': 'AttachInstances',
|
| - 'AutoScalingGroupName': 'autoscale',
|
| - 'InstanceIds.member.1': 'inst2',
|
| - 'InstanceIds.member.2': 'inst1',
|
| - 'InstanceIds.member.3': 'inst4',
|
| - }, ignore_params_values=['Version'])
|
| -
|
| -
|
| -class TestDetachInstances(AWSMockServiceTestCase):
|
| - connection_class = AutoScaleConnection
|
| -
|
| - def setUp(self):
|
| - super(TestDetachInstances, self).setUp()
|
| -
|
| - def default_body(self):
|
| - return b"""
|
| - <DetachInstancesResponse>
|
| - <ResponseMetadata>
|
| - <RequestId>requestid</RequestId>
|
| - </ResponseMetadata>
|
| - </DetachInstancesResponse>
|
| - """
|
| -
|
| - def test_detach_instances(self):
|
| - self.set_http_response(status_code=200)
|
| - self.service_connection.detach_instances(
|
| - 'autoscale',
|
| - ['inst2', 'inst1', 'inst4']
|
| - )
|
| - self.assert_request_parameters({
|
| - 'Action': 'DetachInstances',
|
| - 'AutoScalingGroupName': 'autoscale',
|
| - 'InstanceIds.member.1': 'inst2',
|
| - 'InstanceIds.member.2': 'inst1',
|
| - 'InstanceIds.member.3': 'inst4',
|
| - 'ShouldDecrementDesiredCapacity': 'true',
|
| - }, ignore_params_values=['Version'])
|
| -
|
| - def test_detach_instances_with_decrement_desired_capacity(self):
|
| - self.set_http_response(status_code=200)
|
| - self.service_connection.detach_instances(
|
| - 'autoscale',
|
| - ['inst2', 'inst1', 'inst4'],
|
| - True
|
| - )
|
| - self.assert_request_parameters({
|
| - 'Action': 'DetachInstances',
|
| - 'AutoScalingGroupName': 'autoscale',
|
| - 'InstanceIds.member.1': 'inst2',
|
| - 'InstanceIds.member.2': 'inst1',
|
| - 'InstanceIds.member.3': 'inst4',
|
| - 'ShouldDecrementDesiredCapacity': 'true',
|
| - }, ignore_params_values=['Version'])
|
| -
|
| - def test_detach_instances_without_decrement_desired_capacity(self):
|
| - self.set_http_response(status_code=200)
|
| - self.service_connection.detach_instances(
|
| - 'autoscale',
|
| - ['inst2', 'inst1', 'inst4'],
|
| - False
|
| - )
|
| - self.assert_request_parameters({
|
| - 'Action': 'DetachInstances',
|
| - 'AutoScalingGroupName': 'autoscale',
|
| - 'InstanceIds.member.1': 'inst2',
|
| - 'InstanceIds.member.2': 'inst1',
|
| - 'InstanceIds.member.3': 'inst4',
|
| - 'ShouldDecrementDesiredCapacity': 'false',
|
| - }, ignore_params_values=['Version'])
|
| -
|
| -
|
| -class TestGetAccountLimits(AWSMockServiceTestCase):
|
| - connection_class = AutoScaleConnection
|
| -
|
| - def setUp(self):
|
| - super(TestGetAccountLimits, self).setUp()
|
| -
|
| - def default_body(self):
|
| - return b"""
|
| - <DescribeAccountLimitsAnswer>
|
| - <MaxNumberOfAutoScalingGroups>6</MaxNumberOfAutoScalingGroups>
|
| - <MaxNumberOfLaunchConfigurations>3</MaxNumberOfLaunchConfigurations>
|
| - <ResponseMetadata>
|
| - <RequestId>requestid</RequestId>
|
| - </ResponseMetadata>
|
| - </DescribeAccountLimitsAnswer>
|
| - """
|
| -
|
| - def test_autoscaling_group_put_notification_configuration(self):
|
| - self.set_http_response(status_code=200)
|
| - limits = self.service_connection.get_account_limits()
|
| - self.assert_request_parameters({
|
| - 'Action': 'DescribeAccountLimits',
|
| - }, ignore_params_values=['Version'])
|
| - self.assertEqual(limits.max_autoscaling_groups, 6)
|
| - self.assertEqual(limits.max_launch_configurations, 3)
|
| -
|
| -
|
| -class TestGetAdjustmentTypes(AWSMockServiceTestCase):
|
| - connection_class = AutoScaleConnection
|
| -
|
| - def setUp(self):
|
| - super(TestGetAdjustmentTypes, self).setUp()
|
| -
|
| - def default_body(self):
|
| - return b"""
|
| - <DescribeAdjustmentTypesResponse xmlns="http://autoscaling.amazonaws.com/doc/201-01-01/">
|
| - <DescribeAdjustmentTypesResult>
|
| - <AdjustmentTypes>
|
| - <member>
|
| - <AdjustmentType>ChangeInCapacity</AdjustmentType>
|
| - </member>
|
| - <member>
|
| - <AdjustmentType>ExactCapacity</AdjustmentType>
|
| - </member>
|
| - <member>
|
| - <AdjustmentType>PercentChangeInCapacity</AdjustmentType>
|
| - </member>
|
| - </AdjustmentTypes>
|
| - </DescribeAdjustmentTypesResult>
|
| - <ResponseMetadata>
|
| - <RequestId>requestId</RequestId>
|
| - </ResponseMetadata>
|
| - </DescribeAdjustmentTypesResponse>
|
| - """
|
| -
|
| - def test_autoscaling_adjustment_types(self):
|
| - self.set_http_response(status_code=200)
|
| - response = self.service_connection.get_all_adjustment_types()
|
| - self.assert_request_parameters({
|
| - 'Action': 'DescribeAdjustmentTypes'
|
| - }, ignore_params_values=['Version'])
|
| -
|
| - self.assertTrue(isinstance(response, list))
|
| - self.assertEqual(response[0].adjustment_type, "ChangeInCapacity")
|
| - self.assertEqual(response[1].adjustment_type, "ExactCapacity")
|
| - self.assertEqual(response[2].adjustment_type, "PercentChangeInCapacity")
|
| -
|
| -
|
| -class TestLaunchConfigurationDescribeWithBlockDeviceTypes(AWSMockServiceTestCase):
|
| - connection_class = AutoScaleConnection
|
| -
|
| - def default_body(self):
|
| - # This is a dummy response
|
| - return b"""
|
| - <DescribeLaunchConfigurationsResponse>
|
| - <DescribeLaunchConfigurationsResult>
|
| - <LaunchConfigurations>
|
| - <member>
|
| - <AssociatePublicIpAddress>true</AssociatePublicIpAddress>
|
| - <SecurityGroups/>
|
| - <CreatedTime>2013-01-21T23:04:42.200Z</CreatedTime>
|
| - <KernelId/>
|
| - <LaunchConfigurationName>my-test-lc</LaunchConfigurationName>
|
| - <UserData/>
|
| - <InstanceType>m1.small</InstanceType>
|
| - <LaunchConfigurationARN>arn:aws:autoscaling:us-east-1:803981987763:launchConfiguration:9dbbbf87-6141-428a-a409-0752edbe6cad:launchConfigurationName/my-test-lc</LaunchConfigurationARN>
|
| - <BlockDeviceMappings>
|
| - <member>
|
| - <DeviceName>/dev/xvdp</DeviceName>
|
| - <Ebs>
|
| - <SnapshotId>snap-1234abcd</SnapshotId>
|
| - <Iops>1000</Iops>
|
| - <DeleteOnTermination>true</DeleteOnTermination>
|
| - <VolumeType>io1</VolumeType>
|
| - <VolumeSize>100</VolumeSize>
|
| - </Ebs>
|
| - </member>
|
| - <member>
|
| - <VirtualName>ephemeral1</VirtualName>
|
| - <DeviceName>/dev/xvdc</DeviceName>
|
| - </member>
|
| - <member>
|
| - <VirtualName>ephemeral0</VirtualName>
|
| - <DeviceName>/dev/xvdb</DeviceName>
|
| - </member>
|
| - <member>
|
| - <DeviceName>/dev/xvdh</DeviceName>
|
| - <Ebs>
|
| - <Iops>2000</Iops>
|
| - <DeleteOnTermination>false</DeleteOnTermination>
|
| - <VolumeType>io1</VolumeType>
|
| - <VolumeSize>200</VolumeSize>
|
| - </Ebs>
|
| - </member>
|
| - </BlockDeviceMappings>
|
| - <ImageId>ami-514ac838</ImageId>
|
| - <KeyName/>
|
| - <RamdiskId/>
|
| - <InstanceMonitoring>
|
| - <Enabled>true</Enabled>
|
| - </InstanceMonitoring>
|
| - <EbsOptimized>false</EbsOptimized>
|
| - </member>
|
| - </LaunchConfigurations>
|
| - </DescribeLaunchConfigurationsResult>
|
| - <ResponseMetadata>
|
| - <RequestId>d05a22f8-b690-11e2-bf8e-2113fEXAMPLE</RequestId>
|
| - </ResponseMetadata>
|
| - </DescribeLaunchConfigurationsResponse>
|
| - """
|
| -
|
| - def test_get_all_launch_configurations_with_block_device_types(self):
|
| - self.set_http_response(status_code=200)
|
| - self.service_connection.use_block_device_types = True
|
| -
|
| - response = self.service_connection.get_all_launch_configurations()
|
| - self.assertTrue(isinstance(response, list))
|
| - self.assertEqual(len(response), 1)
|
| - self.assertTrue(isinstance(response[0], LaunchConfiguration))
|
| -
|
| - self.assertEqual(response[0].associate_public_ip_address, True)
|
| - self.assertEqual(response[0].name, "my-test-lc")
|
| - self.assertEqual(response[0].instance_type, "m1.small")
|
| - self.assertEqual(response[0].launch_configuration_arn, "arn:aws:autoscaling:us-east-1:803981987763:launchConfiguration:9dbbbf87-6141-428a-a409-0752edbe6cad:launchConfigurationName/my-test-lc")
|
| - self.assertEqual(response[0].image_id, "ami-514ac838")
|
| - self.assertTrue(isinstance(response[0].instance_monitoring, launchconfig.InstanceMonitoring))
|
| - self.assertEqual(response[0].instance_monitoring.enabled, 'true')
|
| - self.assertEqual(response[0].ebs_optimized, False)
|
| -
|
| - self.assertEqual(response[0].block_device_mappings['/dev/xvdb'].ephemeral_name, 'ephemeral0')
|
| -
|
| - self.assertEqual(response[0].block_device_mappings['/dev/xvdc'].ephemeral_name, 'ephemeral1')
|
| -
|
| - self.assertEqual(response[0].block_device_mappings['/dev/xvdp'].snapshot_id, 'snap-1234abcd')
|
| - self.assertEqual(response[0].block_device_mappings['/dev/xvdp'].delete_on_termination, True)
|
| - self.assertEqual(response[0].block_device_mappings['/dev/xvdp'].iops, 1000)
|
| - self.assertEqual(response[0].block_device_mappings['/dev/xvdp'].size, 100)
|
| - self.assertEqual(response[0].block_device_mappings['/dev/xvdp'].volume_type, 'io1')
|
| -
|
| - self.assertEqual(response[0].block_device_mappings['/dev/xvdh'].delete_on_termination, False)
|
| - self.assertEqual(response[0].block_device_mappings['/dev/xvdh'].iops, 2000)
|
| - self.assertEqual(response[0].block_device_mappings['/dev/xvdh'].size, 200)
|
| - self.assertEqual(response[0].block_device_mappings['/dev/xvdh'].volume_type, 'io1')
|
| -
|
| - self.assert_request_parameters({
|
| - 'Action': 'DescribeLaunchConfigurations',
|
| - }, ignore_params_values=['Version'])
|
| -
|
| - def test_get_all_configuration_limited(self):
|
| - self.set_http_response(status_code=200)
|
| -
|
| - response = self.service_connection.get_all_launch_configurations(max_records=10, names=["my-test1", "my-test2"])
|
| - self.assert_request_parameters({
|
| - 'Action': 'DescribeLaunchConfigurations',
|
| - 'MaxRecords': 10,
|
| - 'LaunchConfigurationNames.member.1': 'my-test1',
|
| - 'LaunchConfigurationNames.member.2': 'my-test2'
|
| - }, ignore_params_values=['Version'])
|
| -
|
| -
|
| -if __name__ == '__main__':
|
| - unittest.main()
|
|
|