diff --git a/provides.py b/provides.py index eb054e2..9576f9f 100644 --- a/provides.py +++ b/provides.py @@ -64,9 +64,7 @@ class MySQLSharedProvides(reactive.Endpoint): else: reactive.clear_flag(self.expand_name('{endpoint_name}.available')) - @reactive.when_any('endpoint.{endpoint_name}.broken', - 'endpoint.{endpoint_name}.departed') - def departed(self): + def remove(self): flags = ( self.expand_name('{endpoint_name}.connected'), self.expand_name('{endpoint_name}.available'), @@ -74,6 +72,14 @@ class MySQLSharedProvides(reactive.Endpoint): for flag in flags: reactive.clear_flag(flag) + @reactive.when('endpoint.{endpoint_name}.broken') + def broken(self): + self.remove() + + @reactive.when('endpoint.{endpoint_name}.departed') + def departed(self): + self.remove() + def set_db_connection_info( self, relation_id, db_host, password, allowed_units=None, prefix=None, wait_timeout=None, db_port=3306, diff --git a/unit_tests/test_provides.py b/unit_tests/test_provides.py index d2ea914..2ce3c81 100644 --- a/unit_tests/test_provides.py +++ b/unit_tests/test_provides.py @@ -28,8 +28,9 @@ class TestRegisteredHooks(test_utils.TestRegisteredHooks): "changed": ( "endpoint.{endpoint_name}.changed",), - "departed": ("endpoint.{endpoint_name}.broken", - "endpoint.{endpoint_name}.departed",), + "departed": ("endpoint.{endpoint_name}.departed",), + + "broken": ("endpoint.{endpoint_name}.broken",), }, } # test that the hooks were registered