Juju daemons remain up after pre-series-upgrade

The latest edge version of juju has the juju daemons remain up after
the completion of the pre-series-upgrade hook. This is a slight change
in behavior which requires a change to the zaza process. But it also
allows us to test for model idleness which we could not do when the
agents were down. This should avoid more race conditions.
This commit is contained in:
David Ames
2018-10-05 11:03:25 -07:00
parent d60699ca6c
commit 06f181beaa
+16 -6
View File
@@ -237,8 +237,12 @@ def series_upgrade_application(application, pause_non_leader_primary=True,
files=files)
completed_machines.append(machine)
else:
logging.info("Skipping unit: {}. Machine: {} already upgraded"
.format(unit, machine))
logging.info("Skipping unit: {}. Machine: {} already upgraded."
"But setting origin on the application {}"
.format(unit, machine, application))
logging.info("Set origin on {}".format(application))
set_origin(application, origin)
model.block_until_all_units_idle()
# Series upgrade the non-leaders
for unit in non_leaders:
@@ -252,8 +256,12 @@ def series_upgrade_application(application, pause_non_leader_primary=True,
files=files)
completed_machines.append(machine)
else:
logging.info("Skipping unit: {}. Machine: {} already upgraded"
.format(unit, machine))
logging.info("Skipping unit: {}. Machine: {} already upgraded. "
"But setting origin on the application {}"
.format(unit, machine, application))
logging.info("Set origin on {}".format(application))
set_origin(application, origin)
model.block_until_all_units_idle()
def series_upgrade(unit_name, machine_num,
@@ -285,9 +293,11 @@ def series_upgrade(unit_name, machine_num,
set_dpkg_non_interactive_on_unit(unit_name)
logging.info("Prepare series upgrade on {}".format(machine_num))
model.prepare_series_upgrade(machine_num, to_series=to_series)
logging.info("Watiing for workload status 'unknown' on {}"
logging.info("Watiing for workload status 'blocked' on {}"
.format(unit_name))
model.block_until_unit_wl_status(unit_name, "unknown")
model.block_until_unit_wl_status(unit_name, "blocked")
logging.info("Watiing for model idleness")
model.block_until_all_units_idle()
wrap_do_release_upgrade(unit_name, from_series=from_series,
to_series=to_series, files=files,
workaround_script=workaround_script)