Remove DB available states if maintenance mode

If the DB is in maintance mode then remove the 'availble' states
to let the charms now the db cannot be accessed.

Depends-On: I5d8ed7d3935db5568c50f8d585e37a4d0cc6914f
Change-Id: If31eaad0b781d4250524335377152f3bd140f57b
This commit is contained in:
Liam Young 2020-01-30 19:37:45 +00:00
parent ceaffa0af6
commit 6c1b8d4192
1 changed files with 13 additions and 7 deletions

View File

@ -10,7 +10,8 @@ class MySQLSharedRequires(RelationBase):
# These remote data fields will be automatically mapped to accessors
# with a basic documentation string provided.
auto_accessors = ['access-network', 'db_host',
'ssl_ca', 'ssl_cert', 'ssl_key']
'ssl_ca', 'ssl_cert', 'ssl_key',
'cluster-series-upgrading']
@hook('{requires:mysql-shared}-relation-joined')
def joined(self):
@ -18,12 +19,17 @@ class MySQLSharedRequires(RelationBase):
@hook('{requires:mysql-shared}-relation-changed')
def changed(self):
if self.base_data_complete():
self.set_state('{relation_name}.available')
if self.access_network_data_complete():
self.set_state('{relation_name}.available.access_network')
if self.ssl_data_complete():
self.set_state('{relation_name}.available.ssl')
if self.cluster_series_upgrading() == 'True':
self.remove_state('{relation_name}.available')
self.remove_state('{relation_name}.available.access_network')
self.remove_state('{relation_name}.available.ssl')
else:
if self.base_data_complete():
self.set_state('{relation_name}.available')
if self.access_network_data_complete():
self.set_state('{relation_name}.available.access_network')
if self.ssl_data_complete():
self.set_state('{relation_name}.available.ssl')
@hook('{requires:mysql-shared}-relation-{broken,departed}')
def departed(self):