From 28e1ce2d3f5d71a2a26cc8e1cad465d0b08e1b18 Mon Sep 17 00:00:00 2001 From: Chris MacNaughton Date: Fri, 17 Apr 2020 16:42:19 +0200 Subject: [PATCH] Add check to include subordinates for idleness Depends-On: https://github.com/openstack-charmers/zaza/pull/346 --- zaza/openstack/utilities/parallel_series_upgrade.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/zaza/openstack/utilities/parallel_series_upgrade.py b/zaza/openstack/utilities/parallel_series_upgrade.py index 9c49d15..c366846 100755 --- a/zaza/openstack/utilities/parallel_series_upgrade.py +++ b/zaza/openstack/utilities/parallel_series_upgrade.py @@ -207,7 +207,8 @@ async def parallel_series_upgrade( await series_upgrade_utils.async_set_series( application, to_series=to_series) app_idle = [ - model.async_wait_for_unit_idle(unit) for unit in status["units"] + model.async_wait_for_unit_idle(unit, include_subordinates=True) + for unit in status["units"] ] await asyncio.gather(*app_idle) prepare_group = [ @@ -308,7 +309,7 @@ async def serial_series_upgrade( await series_upgrade_utils.async_set_series( application, to_series=to_series) if not follower_first and leader_machine not in completed_machines: - await model.async_wait_for_unit_idle(leader) + await model.async_wait_for_unit_idle(leader, include_subordinates=True) await prepare_series_upgrade(leader_machine, to_series=to_series) logging.info("About to upgrade leader of {}: {}" .format(application, leader_machine)) @@ -325,7 +326,8 @@ async def serial_series_upgrade( machine = unit['machine'] if machine in completed_machines: continue - await model.async_wait_for_unit_idle(unit_name) + await model.async_wait_for_unit_idle( + unit_name, include_subordinates=True) await prepare_series_upgrade(machine, to_series=to_series) logging.info("About to upgrade follower of {}: {}" .format(application, machine)) @@ -338,7 +340,7 @@ async def serial_series_upgrade( completed_machines.append(machine) if follower_first and leader_machine not in completed_machines: - await model.async_wait_for_unit_idle(leader) + await model.async_wait_for_unit_idle(leader, include_subordinates=True) await prepare_series_upgrade(leader_machine, to_series=to_series) logging.info("About to upgrade leader of {}: {}" .format(application, leader_machine))