diff --git a/src/relations/postgresql_provider.py b/src/relations/postgresql_provider.py index 84ba570b3f..b0a44ac480 100644 --- a/src/relations/postgresql_provider.py +++ b/src/relations/postgresql_provider.py @@ -81,7 +81,7 @@ def _on_database_requested(self, event: DatabaseRequestedEvent) -> None: Generate password and handle user and database creation for the related application. """ # Check for some conditions before trying to access the PostgreSQL instance. - if not self.charm.is_cluster_initialised or not self.charm._patroni.member_started: + if not self.charm.is_cluster_initialised or not self.charm._patroni.primary_endpoint_ready: logger.debug( "Deferring on_database_requested: Cluster must be initialized before database can be requested" ) diff --git a/tests/unit/test_postgresql_provider.py b/tests/unit/test_postgresql_provider.py index b74463cabe..0a4c2522ff 100644 --- a/tests/unit/test_postgresql_provider.py +++ b/tests/unit/test_postgresql_provider.py @@ -78,14 +78,16 @@ def test_on_database_requested(harness): patch("charm.PostgresqlOperatorCharm.update_config"), patch.object(PostgresqlOperatorCharm, "postgresql", Mock()) as postgresql_mock, patch.object(EventBase, "defer") as _defer, - patch("charm.Patroni.member_started", new_callable=PropertyMock) as _member_started, + patch( + "charm.Patroni.primary_endpoint_ready", new_callable=PropertyMock + ) as _primary_endpoint_ready, patch( "relations.postgresql_provider.new_password", return_value="test-password" ) as _new_password, ): rel_id = harness.model.get_relation(RELATION_NAME).id # Set some side effects to test multiple situations. - _member_started.side_effect = [False, True, True, True, True, True] + _primary_endpoint_ready.side_effect = [False, True, True, True, True, True] postgresql_mock.create_user = PropertyMock( side_effect=[None, PostgreSQLCreateUserError, None, None] )