Merge pull request #211 from ChrisMacNaughton/bug/upgrade-non-leaders

Secondary first upgrades should also support the origin argument
This commit is contained in:
Liam Young
2020-04-01 09:03:19 +01:00
committed by GitHub
2 changed files with 49 additions and 5 deletions

View File

@@ -237,3 +237,39 @@ class TestSeriesUpgrade(ut_utils.BaseTestCase):
self.scp_to_unit.assert_has_calls(_scp_calls)
self.run_via_ssh.assert_has_calls(_run_calls)
self.do_release_upgrade.assert_called_once_with(_unit)
def test_app_config_openstack_charm(self):
upgrade = series_upgrade_utils.async_series_upgrade_application
expected = {
'origin': 'openstack-origin',
'pause_non_leader_subordinate': True,
'pause_non_leader_primary': True,
'upgrade_function': upgrade,
'post_upgrade_functions': [],
}
config = series_upgrade_utils.app_config('keystone')
self.assertEqual(expected, config)
def test_app_config_mongo(self):
upgrade = series_upgrade_utils.async_series_upgrade_non_leaders_first
expected = {
'origin': None,
'pause_non_leader_subordinate': True,
'pause_non_leader_primary': True,
'upgrade_function': upgrade,
'post_upgrade_functions': [],
}
config = series_upgrade_utils.app_config('mongodb')
self.assertEqual(expected, config)
def test_app_config_ceph(self):
upgrade = series_upgrade_utils.async_series_upgrade_application
expected = {
'origin': 'source',
'pause_non_leader_subordinate': False,
'pause_non_leader_primary': False,
'upgrade_function': upgrade,
'post_upgrade_functions': [],
}
config = series_upgrade_utils.app_config('ceph-mon')
self.assertEqual(expected, config)

View File

@@ -85,9 +85,9 @@ def app_config(charm_name, is_async=True):
'mojo_unseal_by_unit')]
},
'mongodb': {
'origin': None,
'upgrade_function': secondary_first_upgrade,
}
}
for key, value in exceptions.items():
_app_settings[key] = copy.deepcopy(default)
@@ -109,6 +109,7 @@ def run_post_upgrade_functions(post_upgrade_functions):
def series_upgrade_non_leaders_first(application, from_series="trusty",
to_series="xenial",
origin='openstack-origin',
completed_machines=[],
post_upgrade_functions=None):
"""Series upgrade non leaders first.
@@ -122,6 +123,9 @@ def series_upgrade_non_leaders_first(application, from_series="trusty",
:type from_series: str
:param to_series: The series to which to upgrade
:type to_series: str
:param origin: The configuration setting variable name for changing origin
source. (openstack-origin or source)
:type origin: str
:param completed_machines: List of completed machines which do no longer
require series upgrade.
:type completed_machines: list
@@ -145,7 +149,7 @@ def series_upgrade_non_leaders_first(application, from_series="trusty",
.format(unit))
series_upgrade(unit, machine,
from_series=from_series, to_series=to_series,
origin=None,
origin=origin,
post_upgrade_functions=post_upgrade_functions)
run_post_upgrade_functions(post_upgrade_functions)
completed_machines.append(machine)
@@ -160,7 +164,7 @@ def series_upgrade_non_leaders_first(application, from_series="trusty",
if machine not in completed_machines:
series_upgrade(leader, machine,
from_series=from_series, to_series=to_series,
origin=None,
origin=origin,
post_upgrade_functions=post_upgrade_functions)
completed_machines.append(machine)
else:
@@ -172,6 +176,7 @@ def series_upgrade_non_leaders_first(application, from_series="trusty",
async def async_series_upgrade_non_leaders_first(application,
from_series="trusty",
to_series="xenial",
origin='openstack-origin',
completed_machines=[],
post_upgrade_functions=None):
"""Series upgrade non leaders first.
@@ -185,6 +190,9 @@ async def async_series_upgrade_non_leaders_first(application,
:type from_series: str
:param to_series: The series to which to upgrade
:type to_series: str
:param origin: The configuration setting variable name for changing origin
source. (openstack-origin or source)
:type origin: str
:param completed_machines: List of completed machines which do no longer
require series upgrade.
:type completed_machines: list
@@ -209,7 +217,7 @@ async def async_series_upgrade_non_leaders_first(application,
await async_series_upgrade(
unit, machine,
from_series=from_series, to_series=to_series,
origin=None,
origin=origin,
post_upgrade_functions=post_upgrade_functions)
run_post_upgrade_functions(post_upgrade_functions)
completed_machines.append(machine)
@@ -225,7 +233,7 @@ async def async_series_upgrade_non_leaders_first(application,
await async_series_upgrade(
leader, machine,
from_series=from_series, to_series=to_series,
origin=None,
origin=origin,
post_upgrade_functions=post_upgrade_functions)
completed_machines.append(machine)
else: