diff --git a/unit_tests/utilities/test_zaza_utilities_series_upgrade.py b/unit_tests/utilities/test_zaza_utilities_series_upgrade.py index b6f21e9..340fc59 100644 --- a/unit_tests/utilities/test_zaza_utilities_series_upgrade.py +++ b/unit_tests/utilities/test_zaza_utilities_series_upgrade.py @@ -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) diff --git a/zaza/openstack/utilities/series_upgrade.py b/zaza/openstack/utilities/series_upgrade.py index 866e019..7f3efa3 100644 --- a/zaza/openstack/utilities/series_upgrade.py +++ b/zaza/openstack/utilities/series_upgrade.py @@ -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: