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
1diff --git a/README.md b/README.md
2index 9e74611..72d8939 100644
3--- a/README.md
4+++ b/README.md
5@@ -26,11 +26,11 @@ class MyCharm(ops.charm.CharmBase):
6 super().__init__(*args)
7 self.state.set_default(db_conn_str=None, db_uri=None, db_ro_uris=[])
8 self.db = pgsql.PostgreSQLClient(self, 'db') # 'db' relation required in metadata.yaml
9- self.framework.observe(self.db.on.database_joined, self.on_database_joined)
10+ self.framework.observe(self.db.on.database_joined, self.on_database_relation_joined)
11 self.framework.observe(self.db.on.master_changed, self.on_master_changed)
12 self.framework.observe(self.db.on.standby_changed, self.on_standby_changed)
13
14- def on_database_joined(self, event: pgsql.DatabaseJoinedEvent):
15+ def on_database_joined(self, event: pgsql.DatabaseRelationJoinedEvent):
16 if self.model.unit.is_leader():
17 # Provide requirements to the PostgreSQL server.
18 event.database = 'mydbname' # Request database named mydbname
19@@ -45,7 +45,7 @@ class MyCharm(ops.charm.CharmBase):
20 # Enforce a single 'db' relation, or else we risk directing writes to
21 # an the wrong backend. This can happen via user error, or redeploying
22 # the PostgreSQL backend.
23- if len(self.model.relations['db']) > 0:
24+ if len(self.model.relations['db']) > 1:
25 self.unit.status = ops.model.BlockedStatus("Too many db relations!")
26 event.defer()
27 return
28@@ -71,7 +71,7 @@ class MyCharm(ops.charm.CharmBase):
29 # are available.
30
31 def on_standby_changed(self, event: pgsql.StandbyChangedEvent):
32- if len(self.model.relations['db']) > 0:
33+ if len(self.model.relations['db']) > 1:
34 self.unit.status = ops.model.BlockedStatus("Too many db relations!")
35 event.defer()
36 return
37diff --git a/pgsql/pgsql.py b/pgsql/pgsql.py
38index 83d4444..82835cf 100644
39--- a/pgsql/pgsql.py
40+++ b/pgsql/pgsql.py
41@@ -285,7 +285,7 @@ class StandbyGoneEvent(PostgreSQLRelationEvent):
42 pass
43
44
45-class PostgreSQLClientEvents(ops.framework.EventSetBase):
46+class PostgreSQLClientEvents(ops.framework.ObjectEvents):
47 database_relation_joined = ops.framework.EventSource(DatabaseRelationJoinedEvent)
48 database_relation_broken = ops.framework.EventSource(DatabaseRelationBrokenEvent)
49 database_available = ops.framework.EventSource(DatabaseAvailableEvent)
50@@ -578,7 +578,7 @@ def _standbys(log: logging.Logger, relation: ops.model.Relation, local_unit: ops
51 if raw:
52 if _is_ready(log, appdata, locdata, reldata):
53 log.debug('ready standbys found on relation %s', relation.id)
54- return (conn_str for conn_str in raw.splitlines() if conn_str)
55+ return [conn_str for conn_str in raw.splitlines() if conn_str]
56 log.debug('unready standbys found on relation %s', relation.id)
57 log.debug('no ready standbys found on relation %s', relation.id)
58 return []

Subscribers

People subscribed via source and target branches

to all changes: