Commit Graph

18 Commits

Author SHA1 Message Date
Bas de Bruijne 9fb488efef Update series upgrade automation (#952)
* update series upgrade test

* bug fixes

* bug fixes
2023-01-23 12:39:10 +00:00
Alex Kavanagh 7ced54b382 Concurrent series upgrade updates (#466)
* Updates to concurrent series upgrade

Updates to make it run more in parallel and spend less time waiting on
the whole model when updating machines.

* Make the concurrent series upgrade tests work

This is a number of changes to get the concurrent (here called
'parallel' historically) series upgrade tests to work.  A number of
changes were required which included limiting the number of concurrent
async co-routines (futures) that could be run as with large models it
hits the limits of the Py3 runtime.

* Fix the tests and change pause order in maybe_pause_things

Due to an additional model helper call, an additional model AsyncMock is
required.  Also the pause order had changed, and this is restored to
ensure the original design is retained (for pause order).

Clean up some commented out code and sort out a few PEP8 errors.

* Update comment to reflect code (3 -> 4)

* Fix tests that fail on bionic but pass on focal

Essentially, asyncio.gather has different behaviour on bionic that
focal.  Although this doesn't affect testing, it does affect the unit
tests.  These changes are simply to normalise the behaviour of unit
tests on focal and bionic.
2020-12-02 11:22:00 +01:00
Alex Kavanagh 66d95d65d7 Fix series-upgrade tests (#406)
A couple of changes here:

 * Ensure that the post-upgrade-hook runs BEFORE the config-changed to
   set the openstack-origin/source back to distro.  The former behaviour
   breaks keystone quite badly.
 * Ensure that the charm name is used, as discovered from the model, for
   rabbitmq-server and percona-cluster to cope with different names for
   the application in the model vs the charm name from the charm-store.
 * Check whether the machine needs to be rebooted after the dist-upgrade
   (before the do-release-upgrade), and reboot the machine first.
   Otherwise, do-release-upgrade will fail.
2020-09-04 13:33:42 +02:00
Chris MacNaughton 19fd66a178 Fix new lint errors 2020-05-12 14:22:16 +02:00
Chris MacNaughton 695fbd85da Ensure the secondary-first function takes the same arguments 2020-05-12 14:12:35 +02:00
Liam Young 185b7907d7 Merge pull request #227 from ChrisMacNaughton/bug/non-leader-upgrade-fail
Ensure that upgrading non-leader first can handle pause arguments
2020-05-12 09:14:18 +01:00
Chris MacNaughton 592622935c tidy up and add more debugability 2020-04-15 10:06:41 +02:00
Chris MacNaughton 1538db58ff Ensure that upgrading non-leader first can handle pause arguments 2020-04-14 12:45:37 +02:00
Chris MacNaughton 42b0f5fcb1 Secondary first upgrades should also support the origin argument
Closes #210
2020-04-01 09:31:03 +02:00
Chris MacNaughton d7f7134e58 tidy up some waiting 2020-03-26 14:34:14 +01:00
Chris MacNaughton 71b9d5a6fb lint fixes 2020-03-25 15:26:08 +01:00
Chris MacNaughton a1e5649d12 Refactor if-statement into upgrade config generator 2020-03-25 08:44:41 +01:00
Chris MacNaughton 540e0ea4fc tidy up style things, add docstring 2020-03-25 08:44:41 +01:00
Chris MacNaughton d4ee838d4b some refactoring and updates from review 2020-03-25 08:44:41 +01:00
Chris MacNaughton 0a94b97cf4 update for style bits 2020-03-25 08:44:41 +01:00
Chris MacNaughton 0b92a15da7 raise exceptions in the upgrade process 2020-03-25 08:44:41 +01:00
Chris MacNaughton 8450216f72 Create parallel (async) series upgrade 2020-03-25 08:44:41 +01:00
Chris MacNaughton 93fd631b1a Split up and re-organize upgrade helpers 2020-03-25 08:44:41 +01:00