Merge ~cjwatson/launchpad:charm-admin-lazr-admin-user into launchpad:master

Proposed by Colin Watson
Status: Merged
Approved by: Colin Watson
Approved revision: 7c131d74c9283f0cebcbf9d5c2f7fa40ded9427c
Merge reported by: Otto Co-Pilot
Merged at revision: not available
Proposed branch: ~cjwatson/launchpad:charm-admin-lazr-admin-user
Merge into: launchpad:master
Diff against target: 40 lines (+10/-2)
2 files modified
charm/launchpad-admin/reactive/launchpad-admin.py (+6/-2)
charm/launchpad-admin/templates/launchpad-admin-lazr.conf (+4/-0)
Reviewer Review Type Date Requested Status
Guruprasad Approve
Review via email: mp+439170@code.launchpad.net

Commit message

charm: Use admin credentials in launchpad-admin-lazr.conf

Description of the change

Part of the point of the `launchpad-admin` charm is to provide a context in which we can run Launchpad code with database superuser credentials, such as for database creation or schema upgrades. This works a lot better if we actually give it superuser credentials.

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/reactive/launchpad-admin.py b/charm/launchpad-admin/reactive/launchpad-admin.py
2index 6dad256..97d58c1 100644
3--- a/charm/launchpad-admin/reactive/launchpad-admin.py
4+++ b/charm/launchpad-admin/reactive/launchpad-admin.py
5@@ -38,14 +38,18 @@ def strip_password(dsn):
6 def configure(db, db_admin, session_db):
7 config = get_service_config()
8 db_primary, _ = postgres.get_db_uris(db)
9- db_admin_primary, _ = postgres.get_db_uris(db_admin)
10+ db_admin_primary, db_admin_standby = postgres.get_db_uris(db_admin)
11 session_db_primary, _ = postgres.get_db_uris(session_db)
12 # We assume that this admin user works for any database on this host,
13 # which seems to be true in practice.
14- update_pgpass(any_dbname(db_admin_primary))
15+ for dsn in [db_admin_primary] + db_admin_standby:
16+ update_pgpass(any_dbname(dsn))
17 update_pgpass(session_db_primary)
18 config["db_primary"] = strip_password(db_primary)
19 config["db_admin_primary"] = strip_password(db_admin_primary)
20+ config["db_admin_standby"] = ",".join(
21+ strip_password(dsn) for dsn in db_admin_standby
22+ )
23 config["db_session_primary"] = strip_password(session_db_primary)
24 config["db_session"] = strip_dsn_authentication(session_db_primary)
25 config["db_session_user"] = parse_dsn(session_db_primary)["user"]
26diff --git a/charm/launchpad-admin/templates/launchpad-admin-lazr.conf b/charm/launchpad-admin/templates/launchpad-admin-lazr.conf
27index b652e52..24a41f9 100644
28--- a/charm/launchpad-admin/templates/launchpad-admin-lazr.conf
29+++ b/charm/launchpad-admin/templates/launchpad-admin-lazr.conf
30@@ -11,6 +11,10 @@
31 [meta]
32 extends: ../launchpad-base-lazr.conf
33
34+[database]
35+rw_main_primary: {{ db_admin_primary }}
36+rw_main_standby: {{ db_admin_standby or db_admin_primary }}
37+
38 [launchpad_session]
39 database: {{ db_session }}
40 dbuser: {{ db_session_user }}

Subscribers

People subscribed via source and target branches

to status/vote changes: