Series Upgrade
Implement the series-upgrade feature allowing to move between Ubuntu series. Change-Id: I68ba3ac518406c61ba1a6c61fd3236a0d8cb5d16
This commit is contained in:
parent
04606d8b67
commit
5019cca86d
|
@ -584,6 +584,12 @@ def _assess_status():
|
|||
'vip and dns-ha-access-record configured')
|
||||
return
|
||||
|
||||
if unitdata.kv().get('charm.vault.series-upgrading'):
|
||||
status_set("blocked",
|
||||
"Ready for do-release-upgrade and reboot. "
|
||||
"Set complete when finished.")
|
||||
return
|
||||
|
||||
health = None
|
||||
if service_running('vault'):
|
||||
health = vault.get_vault_health()
|
||||
|
@ -721,3 +727,19 @@ def create_certs():
|
|||
log(str(e), level=ERROR)
|
||||
continue # TODO: report failure back to client
|
||||
clear_flag('certificates.reissue.requested')
|
||||
|
||||
|
||||
# Series upgrade hooks are a special case and reacting to the hook directly
|
||||
# makes sense as we may not want other charm code to run
|
||||
@hook('pre-series-upgrade')
|
||||
def pre_series_upgrade():
|
||||
"""Handler for pre-series-upgrade.
|
||||
"""
|
||||
unitdata.kv().set('charm.vault.series-upgrading', True)
|
||||
|
||||
|
||||
@hook('post-series-upgrade')
|
||||
def post_series_upgrade():
|
||||
"""Handler for post-series-upgrade.
|
||||
"""
|
||||
unitdata.kv().set('charm.vault.series-upgrading', False)
|
||||
|
|
|
@ -74,6 +74,9 @@ class TestHandlers(unit_tests.test_utils.CharmTestCase):
|
|||
]
|
||||
self.patch_all()
|
||||
self.is_container.return_value = False
|
||||
self.kv = mock.MagicMock()
|
||||
self.kv.get.return_value = False
|
||||
self.unitdata.kv.return_value = self.kv
|
||||
|
||||
def test_ssl_available(self):
|
||||
self.assertFalse(handlers.ssl_available({
|
||||
|
@ -563,8 +566,8 @@ class TestHandlers(unit_tests.test_utils.CharmTestCase):
|
|||
hvac_client.auth_approle.assert_called_once_with('local-approle')
|
||||
_vault.configure_secret_backend.assert_has_calls([
|
||||
mock.call(hvac_client, name='charm-vaultlocker'),
|
||||
mock.call(hvac_client, name='charm-supersecrets')
|
||||
])
|
||||
mock.call(hvac_client, name='charm-supersecrets'),
|
||||
], any_order=True)
|
||||
|
||||
_vault.configure_policy.assert_has_calls([
|
||||
mock.call(hvac_client, name='charm-ceph-osd-0', hcl=mock.ANY),
|
||||
|
|
Loading…
Reference in New Issue