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.
After the series upgrade a config changed hook will fire with openstack
origin or source still set to ubuntu series n-1 which will Traceback.
It is necessary to pause all primary charms which will then allow the
setting of openstack-origin or source to distro after the first unit is
in progress with the series upgrade.
When Controller.add_model is called it returns a model, this model
should be disconnected from otherwise stack-traces like the one
reported in issue #135 occur.
It is useful to be able to test deployments which are not full OpenStack
deployments with all the required services to launch a VM.
This change creates variations that allow both the full stack tests and
ones that do not assume what has been deployed.
Python-libjuju does not update the local cache of juju models on model
create. If no juju switch command or juju models command is run juju
will report model not found.
Issue is being tracked by
https://github.com/juju/python-libjuju/issues/267
Add a juju models command to update the local cache and make the new
model available to the juju binary.
A number of packages were requiring interaction on upgrade even with
do-release-upgrade -f DistUpgradeViewNonInteractive. By setting DPkg
options in apt.conf upgraded packages do the right thing.
Set 'DPkg::options { "--force-confdef"; };' on hosts being upgraded.
The pre-series-upgrade hook stops the juju agent. This can cause the
juju wait for idleness to wait forever. Wait for the expected workload
status instead.
Remove all calls to time.sleep and use block_until_unit_wl_status to
manage the timing of the upgrade steps.
Also use run_via_ssh to execute commands while the juju agents are down
during a series upgrade.
unit.workload_status was actually reporting the application workload
status. Using the full status output from model.get_status() gives us
unit by unit workload status.
Updated block_until_unit_wl_status to use the full status output to
correctly block per unit.
Utilities for performing series upgrades.
Place holder for future stand alone series upgrade zaza test.
Small change to overlay template to allow stand alone zaza tests.