Wait for the policy to be done in tests
As observed in the amqp job, we sometimes signal scale policy too fast, without waiting for the medata to be set. It creates a timeout. We can check the metadata of the policy before signaling again, to make sure that we can move forward. Change-Id: I9857803ef960efbd034f05985ec8fcc7272e2f70
This commit is contained in:
parent
ffc1412ed5
commit
7109468b2f
@ -655,10 +655,14 @@ class HeatIntegrationTest(testscenarios.WithScenarios,
|
||||
return matched
|
||||
time.sleep(build_interval)
|
||||
|
||||
def check_autoscale_complete(self, stack_id, expected_num):
|
||||
def check_autoscale_complete(self, stack_id, expected_num, parent_stack,
|
||||
policy):
|
||||
res_list = self.client.resources.list(stack_id)
|
||||
all_res_complete = all(res.resource_status in ('UPDATE_COMPLETE',
|
||||
'CREATE_COMPLETE')
|
||||
for res in res_list)
|
||||
all_res = len(res_list) == expected_num
|
||||
return all_res and all_res_complete
|
||||
if all_res and all_res_complete:
|
||||
metadata = self.client.resources.metadata(parent_stack, policy)
|
||||
return not metadata.get('scaling_in_progress')
|
||||
return False
|
||||
|
@ -119,7 +119,8 @@ outputs:
|
||||
self.conf.build_interval,
|
||||
self.check_autoscale_complete,
|
||||
asg.physical_resource_id,
|
||||
expected_resources))
|
||||
expected_resources, stack_id,
|
||||
'scale_up_policy'))
|
||||
|
||||
def test_asg_scale_down_min_size(self):
|
||||
stack_id = self.stack_create(template=self.template,
|
||||
@ -140,7 +141,8 @@ outputs:
|
||||
self.conf.build_interval,
|
||||
self.check_autoscale_complete,
|
||||
asg.physical_resource_id,
|
||||
expected_resources))
|
||||
expected_resources, stack_id,
|
||||
'scale_down_policy'))
|
||||
|
||||
def test_asg_cooldown(self):
|
||||
cooldown_tmpl = self.template.replace('cooldown: 0',
|
||||
@ -162,7 +164,8 @@ outputs:
|
||||
self.conf.build_interval,
|
||||
self.check_autoscale_complete,
|
||||
asg.physical_resource_id,
|
||||
expected_resources))
|
||||
expected_resources, stack_id,
|
||||
'scale_up_policy'))
|
||||
|
||||
def test_path_attrs(self):
|
||||
stack_id = self.stack_create(template=self.template)
|
||||
|
@ -104,7 +104,7 @@ class AutoscalingLoadBalancerTest(scenario_base.ScenarioTestsBase):
|
||||
test.call_until_true(self.conf.build_timeout,
|
||||
self.conf.build_interval,
|
||||
self.check_autoscale_complete,
|
||||
asg.physical_resource_id, 2)
|
||||
asg.physical_resource_id, 2, sid, 'scale_up')
|
||||
|
||||
# Check number of distinctive responses, must now be 2
|
||||
self.check_num_responses(lb_url, 2)
|
||||
|
@ -104,7 +104,7 @@ class AutoscalingLoadBalancerv2Test(scenario_base.ScenarioTestsBase):
|
||||
test.call_until_true(self.conf.build_timeout,
|
||||
self.conf.build_interval,
|
||||
self.check_autoscale_complete,
|
||||
asg.physical_resource_id, 2)
|
||||
asg.physical_resource_id, 2, sid, 'scale_up')
|
||||
|
||||
# Check number of distinctive responses, must now be 2
|
||||
self.check_num_responses(lb_url, 2)
|
||||
|
Loading…
x
Reference in New Issue
Block a user