Handle change of ASG desired capacity on min and max size update
A change in UpdateAutoScalingGroup: * if a value for MinSize is specified without specifying a value for DesiredCapacity, and the new MinSize is larger than the current size of the group, set the group's DesiredCapacity to the new MinSize value * if a value for MaxSize is specified without specifying a value for DesiredCapacity, and the new MaxSize is smaller than the current size of the group, set the group's DesiredCapacity to the new MaxSize value
This commit is contained in:
parent
9acdc59aa4
commit
1b3157ced0
@ -279,6 +279,12 @@ class FakeAutoScalingGroup(BaseModel):
|
|||||||
if min_size is not None:
|
if min_size is not None:
|
||||||
self.min_size = min_size
|
self.min_size = min_size
|
||||||
|
|
||||||
|
if desired_capacity is None:
|
||||||
|
if min_size is not None and min_size > len(self.instance_states):
|
||||||
|
desired_capacity = min_size
|
||||||
|
if max_size is not None and max_size < len(self.instance_states):
|
||||||
|
desired_capacity = max_size
|
||||||
|
|
||||||
if launch_config_name:
|
if launch_config_name:
|
||||||
self.launch_config = self.autoscaling_backend.launch_configurations[
|
self.launch_config = self.autoscaling_backend.launch_configurations[
|
||||||
launch_config_name]
|
launch_config_name]
|
||||||
|
@ -823,6 +823,62 @@ def test_update_autoscaling_group_boto3():
|
|||||||
group['NewInstancesProtectedFromScaleIn'].should.equal(False)
|
group['NewInstancesProtectedFromScaleIn'].should.equal(False)
|
||||||
|
|
||||||
|
|
||||||
|
@mock_autoscaling
|
||||||
|
def test_update_autoscaling_group_min_size_desired_capacity_change():
|
||||||
|
mocked_networking = setup_networking()
|
||||||
|
client = boto3.client('autoscaling', region_name='us-east-1')
|
||||||
|
|
||||||
|
client.create_launch_configuration(
|
||||||
|
LaunchConfigurationName='test_launch_configuration'
|
||||||
|
)
|
||||||
|
client.create_auto_scaling_group(
|
||||||
|
AutoScalingGroupName='test_asg',
|
||||||
|
LaunchConfigurationName='test_launch_configuration',
|
||||||
|
MinSize=2,
|
||||||
|
MaxSize=20,
|
||||||
|
DesiredCapacity=3,
|
||||||
|
VPCZoneIdentifier=mocked_networking['subnet1'],
|
||||||
|
)
|
||||||
|
client.update_auto_scaling_group(
|
||||||
|
AutoScalingGroupName='test_asg',
|
||||||
|
MinSize=5,
|
||||||
|
)
|
||||||
|
response = client.describe_auto_scaling_groups(
|
||||||
|
AutoScalingGroupNames=['test_asg'])
|
||||||
|
group = response['AutoScalingGroups'][0]
|
||||||
|
group['DesiredCapacity'].should.equal(5)
|
||||||
|
group['MinSize'].should.equal(5)
|
||||||
|
group['Instances'].should.have.length_of(5)
|
||||||
|
|
||||||
|
|
||||||
|
@mock_autoscaling
|
||||||
|
def test_update_autoscaling_group_max_size_desired_capacity_change():
|
||||||
|
mocked_networking = setup_networking()
|
||||||
|
client = boto3.client('autoscaling', region_name='us-east-1')
|
||||||
|
|
||||||
|
client.create_launch_configuration(
|
||||||
|
LaunchConfigurationName='test_launch_configuration'
|
||||||
|
)
|
||||||
|
client.create_auto_scaling_group(
|
||||||
|
AutoScalingGroupName='test_asg',
|
||||||
|
LaunchConfigurationName='test_launch_configuration',
|
||||||
|
MinSize=2,
|
||||||
|
MaxSize=20,
|
||||||
|
DesiredCapacity=10,
|
||||||
|
VPCZoneIdentifier=mocked_networking['subnet1'],
|
||||||
|
)
|
||||||
|
client.update_auto_scaling_group(
|
||||||
|
AutoScalingGroupName='test_asg',
|
||||||
|
MaxSize=5,
|
||||||
|
)
|
||||||
|
response = client.describe_auto_scaling_groups(
|
||||||
|
AutoScalingGroupNames=['test_asg'])
|
||||||
|
group = response['AutoScalingGroups'][0]
|
||||||
|
group['DesiredCapacity'].should.equal(5)
|
||||||
|
group['MaxSize'].should.equal(5)
|
||||||
|
group['Instances'].should.have.length_of(5)
|
||||||
|
|
||||||
|
|
||||||
@mock_autoscaling
|
@mock_autoscaling
|
||||||
def test_autoscaling_taqs_update_boto3():
|
def test_autoscaling_taqs_update_boto3():
|
||||||
mocked_networking = setup_networking()
|
mocked_networking = setup_networking()
|
||||||
|
Loading…
Reference in New Issue
Block a user