Merge ~pjdc/interface-pgsql/+git/operator:fixes into ~stub/interface-pgsql/+git/operator:master

Proposed by Paul Collins
Status: Merged
Merged at revision: a6325a2820bbe9afb8fbf7c22b5374bdee55e9b5
Proposed branch: ~pjdc/interface-pgsql/+git/operator:fixes
Merge into: ~stub/interface-pgsql/+git/operator:master
Diff against target: 58 lines (+6/-6)
2 files modified
README.md (+4/-4)
pgsql/pgsql.py (+2/-2)
Reviewer Review Type Date Requested Status
Stuart Bishop Pending
Review via email: mp+384313@code.launchpad.net

Commit message

code fixes: EventSetBase was renamed to ObjectEvents, return value of _standbys needs to be marashallable for StoredStateData; doc fixes: it's DatabaseRelationJoinedEvent, not DatabaseJoinedEvent, db relation count check off-by-one

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/README.md b/README.md
index 9e74611..72d8939 100644
--- a/README.md
+++ b/README.md
@@ -26,11 +26,11 @@ class MyCharm(ops.charm.CharmBase):
26 super().__init__(*args)26 super().__init__(*args)
27 self.state.set_default(db_conn_str=None, db_uri=None, db_ro_uris=[])27 self.state.set_default(db_conn_str=None, db_uri=None, db_ro_uris=[])
28 self.db = pgsql.PostgreSQLClient(self, 'db') # 'db' relation required in metadata.yaml28 self.db = pgsql.PostgreSQLClient(self, 'db') # 'db' relation required in metadata.yaml
29 self.framework.observe(self.db.on.database_joined, self.on_database_joined)29 self.framework.observe(self.db.on.database_joined, self.on_database_relation_joined)
30 self.framework.observe(self.db.on.master_changed, self.on_master_changed)30 self.framework.observe(self.db.on.master_changed, self.on_master_changed)
31 self.framework.observe(self.db.on.standby_changed, self.on_standby_changed)31 self.framework.observe(self.db.on.standby_changed, self.on_standby_changed)
3232
33 def on_database_joined(self, event: pgsql.DatabaseJoinedEvent):33 def on_database_joined(self, event: pgsql.DatabaseRelationJoinedEvent):
34 if self.model.unit.is_leader():34 if self.model.unit.is_leader():
35 # Provide requirements to the PostgreSQL server.35 # Provide requirements to the PostgreSQL server.
36 event.database = 'mydbname' # Request database named mydbname36 event.database = 'mydbname' # Request database named mydbname
@@ -45,7 +45,7 @@ class MyCharm(ops.charm.CharmBase):
45 # Enforce a single 'db' relation, or else we risk directing writes to45 # Enforce a single 'db' relation, or else we risk directing writes to
46 # an the wrong backend. This can happen via user error, or redeploying46 # an the wrong backend. This can happen via user error, or redeploying
47 # the PostgreSQL backend.47 # the PostgreSQL backend.
48 if len(self.model.relations['db']) > 0:48 if len(self.model.relations['db']) > 1:
49 self.unit.status = ops.model.BlockedStatus("Too many db relations!")49 self.unit.status = ops.model.BlockedStatus("Too many db relations!")
50 event.defer()50 event.defer()
51 return51 return
@@ -71,7 +71,7 @@ class MyCharm(ops.charm.CharmBase):
71 # are available.71 # are available.
7272
73 def on_standby_changed(self, event: pgsql.StandbyChangedEvent):73 def on_standby_changed(self, event: pgsql.StandbyChangedEvent):
74 if len(self.model.relations['db']) > 0:74 if len(self.model.relations['db']) > 1:
75 self.unit.status = ops.model.BlockedStatus("Too many db relations!")75 self.unit.status = ops.model.BlockedStatus("Too many db relations!")
76 event.defer()76 event.defer()
77 return77 return
diff --git a/pgsql/pgsql.py b/pgsql/pgsql.py
index 83d4444..82835cf 100644
--- a/pgsql/pgsql.py
+++ b/pgsql/pgsql.py
@@ -285,7 +285,7 @@ class StandbyGoneEvent(PostgreSQLRelationEvent):
285 pass285 pass
286286
287287
288class PostgreSQLClientEvents(ops.framework.EventSetBase):288class PostgreSQLClientEvents(ops.framework.ObjectEvents):
289 database_relation_joined = ops.framework.EventSource(DatabaseRelationJoinedEvent)289 database_relation_joined = ops.framework.EventSource(DatabaseRelationJoinedEvent)
290 database_relation_broken = ops.framework.EventSource(DatabaseRelationBrokenEvent)290 database_relation_broken = ops.framework.EventSource(DatabaseRelationBrokenEvent)
291 database_available = ops.framework.EventSource(DatabaseAvailableEvent)291 database_available = ops.framework.EventSource(DatabaseAvailableEvent)
@@ -578,7 +578,7 @@ def _standbys(log: logging.Logger, relation: ops.model.Relation, local_unit: ops
578 if raw:578 if raw:
579 if _is_ready(log, appdata, locdata, reldata):579 if _is_ready(log, appdata, locdata, reldata):
580 log.debug('ready standbys found on relation %s', relation.id)580 log.debug('ready standbys found on relation %s', relation.id)
581 return (conn_str for conn_str in raw.splitlines() if conn_str)581 return [conn_str for conn_str in raw.splitlines() if conn_str]
582 log.debug('unready standbys found on relation %s', relation.id)582 log.debug('unready standbys found on relation %s', relation.id)
583 log.debug('no ready standbys found on relation %s', relation.id)583 log.debug('no ready standbys found on relation %s', relation.id)
584 return []584 return []

Subscribers

People subscribed via source and target branches

to all changes: