Merge ~pjdc/ubuntu-mirror-charm/+git/ubuntu-mirror-charm:empty-cdimage into ubuntu-mirror-charm:master

Proposed by Paul Collins
Status: Merged
Approved by: Haw Loeung
Approved revision: ec14f036e1d180cb6b219129847c0cfe2683d0a4
Merged at revision: 38b2b108002d328ad46dd59304e2309c723d4b76
Proposed branch: ~pjdc/ubuntu-mirror-charm/+git/ubuntu-mirror-charm:empty-cdimage
Merge into: ubuntu-mirror-charm:master
Diff against target: 57 lines (+26/-2)
2 files modified
hooks/hooks.py (+2/-2)
tests/unit/test_charm.py (+24/-0)
Reviewer Review Type Date Requested Status
Haw Loeung +1 Approve
Canonical IS Reviewers Pending
Review via email: mp+388785@code.launchpad.net

Commit message

handle non-existent triggers

To post a comment you must log in.
Revision history for this message
🤖 Canonical IS Merge Bot (canonical-is-mergebot) wrote :

This merge proposal is being monitored by mergebot. Change the status to Approved to merge.

Revision history for this message
Haw Loeung (hloeung) wrote :

LGTM

review: Approve (+1)
Revision history for this message
🤖 Canonical IS Merge Bot (canonical-is-mergebot) wrote :

Change successfully merged at revision 38b2b108002d328ad46dd59304e2309c723d4b76

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/hooks/hooks.py b/hooks/hooks.py
2index 877fa43..e01f266 100755
3--- a/hooks/hooks.py
4+++ b/hooks/hooks.py
5@@ -569,8 +569,8 @@ SSH_TRIGGER_TEMPLATE = 'no-port-forwarding,no-X11-forwarding,no-agent-forwarding
6 def merge_shared_key_triggers(conf, triggers):
7 """Merge (in place) triggers that use the same ssh key."""
8
9- cdimage_key = extract_ssh_public_key(triggers.get('cdimage'))
10- releases_key = extract_ssh_public_key(triggers.get('releases'))
11+ cdimage_key = extract_ssh_public_key(triggers.get('cdimage', ''))
12+ releases_key = extract_ssh_public_key(triggers.get('releases', ''))
13 if cdimage_key and releases_key and cdimage_key == releases_key:
14 releases = conf.mirror_map('releases')
15 cdimage = conf.mirror_map('cdimage')
16diff --git a/tests/unit/test_charm.py b/tests/unit/test_charm.py
17index 41508f6..02fb4f2 100644
18--- a/tests/unit/test_charm.py
19+++ b/tests/unit/test_charm.py
20@@ -25,6 +25,20 @@ BARE_RELEASES_SSH_KEY = "AAAAB3NzaC1yc2EAAAABIwAAAQEA7TIXsws/s48o4N1MA+TpaudHS8X
21 RELEASES_SSH_KEY = 'from="91.189.90.151,91.189.89.127,10.22.96.61,10.22.96.161" ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA7TIXsws/s48o4N1MA+TpaudHS8XVF79JujYQGTumroZZqbsr04lbg1FaJ9HyS9P31e8lP2bmB5rexJaMyfAxDTV+DtrHXmeLi/XcGSOXoliOa/j3eQmdZyYme9z+Tfp8s3S6nxuDP3BRKkOuIzOPgPO5fr8AH7y83v3fyHi+H0sbm6agX2b+xV9oP8+DEgSxPNfZEVTgpdJ7/ULwAl68mWQW0w6VTVx0CMYF+cvcorcZMGmy+THzk8WH2XRalA5HqeiBtS7vJ+yFHJ5WbQOEUeR6gHRcrogR4Yd10eFWUNAFyvt53zF7W91PEgnJWjcCUN/uctybAFSgDK1UB6TPkQ== cjwatson@little' # noqa: E501
22
23
24+RELEASES_TRIGGERS_CONFIG = {
25+ 'mirror_releases_trigger': b64encode(RELEASES_SSH_KEY),
26+ 'role_map': json.dumps({
27+ 'localhost': ['releases'],
28+ })
29+}
30+
31+RELEASES_TRIGGERS = {
32+ 'releases': SSH_TRIGGER_TEMPLATE.format(
33+ command='/srv/ubuntu-mirror/bin/mirror-1stage.sh releases &',
34+ trigger=RELEASES_SSH_KEY,
35+ ),
36+}
37+
38 MERGEABLE_TRIGGERS_CONFIG = {
39 'mirror_cdimage_trigger': b64encode(RELEASES_SSH_KEY),
40 'mirror_releases_trigger': b64encode(RELEASES_SSH_KEY),
41@@ -82,6 +96,16 @@ class TestUbuntuMirrorCharm(unittest.TestCase):
42 merge_shared_key_triggers(conf, triggers)
43 self.assertEqual(triggers, MERGED_TRIGGERS)
44
45+ @patch('Config.config')
46+ def test_merge_shared_key_triggers_releases_only(self, _config):
47+ config = CallableDict(self.default_config)
48+ config.update(RELEASES_TRIGGERS_CONFIG)
49+ _config.side_effect = config # i.e. we want our CallableDict to supply the charm config
50+ conf = Config.Config()
51+ triggers = deepcopy(RELEASES_TRIGGERS)
52+ merge_shared_key_triggers(conf, triggers)
53+ self.assertEqual(triggers, RELEASES_TRIGGERS)
54+
55 @patch('hooks.os.path.isdir')
56 @patch('hooks.get_ssh_keyfile')
57 @patch('hooks.write_file')

Subscribers

People subscribed via source and target branches