Merge ~cjwatson/launchpad:charm-db-changed into launchpad:master

Proposed by Colin Watson
Status: Merged
Approved by: Colin Watson
Approved revision: aeabe4068693bda7ebfeb47b4d1f35f4b50ac2c2
Merge reported by: Otto Co-Pilot
Merged at revision: not available
Proposed branch: ~cjwatson/launchpad:charm-db-changed
Merge into: launchpad:master
Diff against target: 104 lines (+41/-4)
5 files modified
charm/launchpad-admin/charmcraft.yaml (+1/-1)
charm/launchpad-admin/reactive/launchpad-admin.py (+26/-1)
charm/launchpad-appserver/charmcraft.yaml (+1/-1)
charm/launchpad-appserver/reactive/launchpad-appserver.py (+12/-0)
charm/launchpad/charmcraft.yaml (+1/-1)
Reviewer Review Type Date Requested Status
Guruprasad Approve
Review via email: mp+441261@code.launchpad.net

Commit message

charm: Clear configured states on DB relation changes

Description of the change

This mainly consists of pulling in a launchpad-layers change that does most of the work, but we also need to add a few handlers for charm-specific combinations of states.

To post a comment you must log in.
Revision history for this message
Guruprasad (lgp171188) wrote :

LGTM ๐Ÿ‘๐Ÿผ

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/charm/launchpad-admin/charmcraft.yaml b/charm/launchpad-admin/charmcraft.yaml
2index 2ce2b19..1f8a8e9 100644
3--- a/charm/launchpad-admin/charmcraft.yaml
4+++ b/charm/launchpad-admin/charmcraft.yaml
5@@ -35,7 +35,7 @@ parts:
6 after:
7 - ols-layers
8 source: https://git.launchpad.net/launchpad-layers
9- source-commit: "22811c726aca173d72ca94f83b35790474847106"
10+ source-commit: "0311e05ec2e856e61a2620f68aa3ea35c0a3029b"
11 source-submodules: []
12 source-type: git
13 plugin: dump
14diff --git a/charm/launchpad-admin/reactive/launchpad-admin.py b/charm/launchpad-admin/reactive/launchpad-admin.py
15index ff76afc..d00383a 100644
16--- a/charm/launchpad-admin/reactive/launchpad-admin.py
17+++ b/charm/launchpad-admin/reactive/launchpad-admin.py
18@@ -12,7 +12,14 @@ from charms.launchpad.base import (
19 strip_dsn_authentication,
20 update_pgpass,
21 )
22-from charms.reactive import endpoint_from_flag, set_state, when, when_not
23+from charms.reactive import (
24+ endpoint_from_flag,
25+ remove_state,
26+ set_state,
27+ when,
28+ when_not,
29+ when_not_all,
30+)
31 from ols import base, postgres
32 from psycopg2.extensions import make_dsn, parse_dsn
33
34@@ -133,3 +140,21 @@ def configure():
35
36 set_state("service.configured")
37 hookenv.status_set("active", "Ready")
38+
39+
40+@when("service.configured")
41+@when_not_all("db-admin.master.available", "session-db.master.available")
42+def deconfigure():
43+ remove_state("service.configured")
44+
45+
46+@when("db-admin.database.changed", "service.configured")
47+def db_admin_changed():
48+ remove_state("service.configured")
49+ remove_state("db-admin.database.changed")
50+
51+
52+@when("session-db.database.changed", "service.configured")
53+def session_db_changed():
54+ remove_state("service.configured")
55+ remove_state("session-db.database.changed")
56diff --git a/charm/launchpad-appserver/charmcraft.yaml b/charm/launchpad-appserver/charmcraft.yaml
57index 2fe4e10..47b8752 100644
58--- a/charm/launchpad-appserver/charmcraft.yaml
59+++ b/charm/launchpad-appserver/charmcraft.yaml
60@@ -35,7 +35,7 @@ parts:
61 after:
62 - ols-layers
63 source: https://git.launchpad.net/launchpad-layers
64- source-commit: "22811c726aca173d72ca94f83b35790474847106"
65+ source-commit: "0311e05ec2e856e61a2620f68aa3ea35c0a3029b"
66 source-submodules: []
67 source-type: git
68 plugin: dump
69diff --git a/charm/launchpad-appserver/reactive/launchpad-appserver.py b/charm/launchpad-appserver/reactive/launchpad-appserver.py
70index 1c32282..1edc216 100644
71--- a/charm/launchpad-appserver/reactive/launchpad-appserver.py
72+++ b/charm/launchpad-appserver/reactive/launchpad-appserver.py
73@@ -152,6 +152,18 @@ def check_is_running():
74 hookenv.status_set("active", "Ready")
75
76
77+@when("service.configured")
78+@when_not("session-db.master.available")
79+def deconfigure():
80+ remove_state("service.configured")
81+
82+
83+@when("session-db.database.changed", "service.configured")
84+def session_db_changed():
85+ remove_state("service.configured")
86+ remove_state("session-db.database.changed")
87+
88+
89 @hook("{requires:memcache}-relation-{joined,changed,broken,departed}")
90 def memcache_relation_changed(memcache):
91 remove_state("service.configured")
92diff --git a/charm/launchpad/charmcraft.yaml b/charm/launchpad/charmcraft.yaml
93index 54c5b16..cd51483 100644
94--- a/charm/launchpad/charmcraft.yaml
95+++ b/charm/launchpad/charmcraft.yaml
96@@ -35,7 +35,7 @@ parts:
97 after:
98 - ols-layers
99 source: https://git.launchpad.net/launchpad-layers
100- source-commit: "22811c726aca173d72ca94f83b35790474847106"
101+ source-commit: "0311e05ec2e856e61a2620f68aa3ea35c0a3029b"
102 source-submodules: []
103 source-type: git
104 plugin: dump

Subscribers

People subscribed via source and target branches

to status/vote changes: