Merge ~cjwatson/launchpad:charm-memcached-relation into launchpad:master

Proposed by Colin Watson
Status: Merged
Approved by: Colin Watson
Approved revision: 1cf731a8fccc468e14df81f1827b1ecec174a402
Merge reported by: Otto Co-Pilot
Merged at revision: not available
Proposed branch: ~cjwatson/launchpad:charm-memcached-relation
Merge into: launchpad:master
Prerequisite: ~cjwatson/launchpad:charm-appserver-more-config
Diff against target: 65 lines (+18/-2)
4 files modified
charm/launchpad-appserver/layer.yaml (+1/-0)
charm/launchpad-appserver/metadata.yaml (+2/-0)
charm/launchpad-appserver/reactive/launchpad-appserver.py (+12/-2)
charm/launchpad-appserver/templates/launchpad-appserver-lazr.conf (+3/-0)
Reviewer Review Type Date Requested Status
Jürgen Gmach Approve
Review via email: mp+430778@code.launchpad.net

Commit message

charm: Implement memcached relation

To post a comment you must log in.
Revision history for this message
Jürgen Gmach (jugmac00) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/charm/launchpad-appserver/layer.yaml b/charm/launchpad-appserver/layer.yaml
2index ae77d24..dae6f8a 100644
3--- a/charm/launchpad-appserver/layer.yaml
4+++ b/charm/launchpad-appserver/layer.yaml
5@@ -1,5 +1,6 @@
6 includes:
7 - layer:launchpad-base
8+ - interface:memcache
9 repo: https://git.launchpad.net/launchpad
10 options:
11 ols-pg:
12diff --git a/charm/launchpad-appserver/metadata.yaml b/charm/launchpad-appserver/metadata.yaml
13index 7f7b48e..755bcd3 100644
14--- a/charm/launchpad-appserver/metadata.yaml
15+++ b/charm/launchpad-appserver/metadata.yaml
16@@ -16,3 +16,5 @@ subordinate: false
17 requires:
18 session-db:
19 interface: pgsql
20+ memcache:
21+ interface: memcache
22diff --git a/charm/launchpad-appserver/reactive/launchpad-appserver.py b/charm/launchpad-appserver/reactive/launchpad-appserver.py
23index 3f68d99..2fcc9b6 100644
24--- a/charm/launchpad-appserver/reactive/launchpad-appserver.py
25+++ b/charm/launchpad-appserver/reactive/launchpad-appserver.py
26@@ -90,9 +90,13 @@ def config_files():
27 return files
28
29
30-@when("launchpad.base.configured", "session-db.master.available")
31+@when(
32+ "launchpad.base.configured",
33+ "session-db.master.available",
34+ "memcache.available",
35+)
36 @when_not("service.configured")
37-def configure(session_db):
38+def configure(session_db, memcache):
39 config = get_service_config()
40 session_db_primary, _ = postgres.get_db_uris(session_db)
41 # XXX cjwatson 2022-09-23: Mangle the connection string into a form
42@@ -101,6 +105,12 @@ def configure(session_db):
43 update_pgpass(session_db_primary)
44 config["db_session"] = strip_dsn_authentication(session_db_primary)
45 config["db_session_user"] = parse_dsn(session_db_primary)["user"]
46+ config["memcache_servers"] = ",".join(
47+ sorted(
48+ f"({host}:{port},1)"
49+ for host, port in memcache.memcache_hosts_ports()
50+ )
51+ )
52 configure_lazr(
53 config,
54 "launchpad-appserver-lazr.conf",
55diff --git a/charm/launchpad-appserver/templates/launchpad-appserver-lazr.conf b/charm/launchpad-appserver/templates/launchpad-appserver-lazr.conf
56index 7faa040..b549f1a 100644
57--- a/charm/launchpad-appserver/templates/launchpad-appserver-lazr.conf
58+++ b/charm/launchpad-appserver/templates/launchpad-appserver-lazr.conf
59@@ -27,3 +27,6 @@ cookie: {{ session_cookie_name }}
60 [mailman]
61 {{- opt("archive_url_template", mailman_archive_url_template) }}
62
63+[memcache]
64+servers: {{ memcache_servers }}
65+

Subscribers

People subscribed via source and target branches

to status/vote changes: