Merge "Fix zone migration strategy scenario test"
This commit is contained in:
commit
e87a9f395e
@ -57,8 +57,13 @@ class TestExecuteZoneMigrationStrategy(base.BaseInfraOptimScenarioTest):
|
|||||||
def test_execute_zone_migration_live_migration(self):
|
def test_execute_zone_migration_live_migration(self):
|
||||||
"""Execute an action plan using the zone migration strategy"""
|
"""Execute an action plan using the zone migration strategy"""
|
||||||
self.addCleanup(self.rollback_compute_nodes_status)
|
self.addCleanup(self.rollback_compute_nodes_status)
|
||||||
instances = self._create_one_instance_per_host()
|
instance = self.create_server(image_id=CONF.compute.image_ref,
|
||||||
node = self._pack_all_created_instances_on_one_host(instances)
|
wait_until='ACTIVE',
|
||||||
|
clients=self.os_primary)
|
||||||
|
instance = self.mgr.servers_client.show_server(
|
||||||
|
instance['id'])['server']
|
||||||
|
node = instance.get('OS-EXT-SRV-ATTR:hypervisor_hostname')
|
||||||
|
|
||||||
vacant_node = [hyp['hypervisor_hostname'] for hyp
|
vacant_node = [hyp['hypervisor_hostname'] for hyp
|
||||||
in self.get_hypervisors_setup()
|
in self.get_hypervisors_setup()
|
||||||
if hyp['state'] == 'up'
|
if hyp['state'] == 'up'
|
||||||
@ -103,5 +108,26 @@ class TestExecuteZoneMigrationStrategy(base.BaseInfraOptimScenarioTest):
|
|||||||
action_plan = action_plans['action_plans'][0]
|
action_plan = action_plans['action_plans'][0]
|
||||||
|
|
||||||
_, action_plan = self.client.show_action_plan(action_plan['uuid'])
|
_, action_plan = self.client.show_action_plan(action_plan['uuid'])
|
||||||
|
|
||||||
|
if action_plan['state'] in ('SUPERSEDED', 'SUCCEEDED'):
|
||||||
|
# This means the action plan is superseded so we cannot trigger it,
|
||||||
|
# or it is empty.
|
||||||
|
return
|
||||||
|
|
||||||
|
# Execute the action by changing its state to PENDING
|
||||||
|
_, updated_ap = self.client.start_action_plan(action_plan['uuid'])
|
||||||
|
|
||||||
|
self.assertTrue(test_utils.call_until_true(
|
||||||
|
func=functools.partial(
|
||||||
|
self.has_action_plan_finished, action_plan['uuid']),
|
||||||
|
duration=600,
|
||||||
|
sleep_for=2
|
||||||
|
))
|
||||||
|
_, finished_ap = self.client.show_action_plan(action_plan['uuid'])
|
||||||
_, action_list = self.client.list_actions(
|
_, action_list = self.client.list_actions(
|
||||||
action_plan_uuid=action_plan["uuid"])
|
action_plan_uuid=finished_ap["uuid"])
|
||||||
|
self.assertIn(updated_ap['state'], ('PENDING', 'ONGOING'))
|
||||||
|
self.assertIn(finished_ap['state'], ('SUCCEEDED', 'SUPERSEDED'))
|
||||||
|
|
||||||
|
for action in action_list['actions']:
|
||||||
|
self.assertEqual('SUCCEEDED', action.get('state'))
|
||||||
|
Loading…
Reference in New Issue
Block a user