Merge lp:~gnuoy/charms/trusty/keystone/lp1506397 into lp:~openstack-charmers-archive/charms/trusty/keystone/next

Proposed by Liam Young on 2015-10-19
Status: Merged
Merged at revision: 189
Proposed branch: lp:~gnuoy/charms/trusty/keystone/lp1506397
Merge into: lp:~openstack-charmers-archive/charms/trusty/keystone/next
Diff against target: 165 lines (+29/-16)
5 files modified
actions/openstack_upgrade.py (+2/-2)
hooks/keystone_hooks.py (+10/-3)
hooks/keystone_utils.py (+6/-1)
unit_tests/test_actions_openstack_upgrade.py (+7/-6)
unit_tests/test_keystone_hooks.py (+4/-4)
To merge this branch: bzr merge lp:~gnuoy/charms/trusty/keystone/lp1506397
Reviewer Review Type Date Requested Status
James Page 2015-10-19 Approve on 2015-10-20
Review via email: mp+274856@code.launchpad.net
To post a comment you must log in.

charm_lint_check #12158 keystone-next for gnuoy mp274856
    LINT OK: passed

Build: http://10.245.162.77:8080/job/charm_lint_check/12158/

charm_unit_test #11289 keystone-next for gnuoy mp274856
    UNIT FAIL: unit-test failed

UNIT Results (max last 2 lines):
make: *** [test] Error 1
ERROR:root:Make target returned non-zero.

Full unit test output: http://paste.ubuntu.com/12859915/
Build: http://10.245.162.77:8080/job/charm_unit_test/11289/

charm_amulet_test #7428 keystone-next for gnuoy mp274856
    AMULET OK: passed

Build: http://10.245.162.77:8080/job/charm_amulet_test/7428/

charm_lint_check #12161 keystone-next for gnuoy mp274856
    LINT OK: passed

Build: http://10.245.162.77:8080/job/charm_lint_check/12161/

charm_unit_test #11292 keystone-next for gnuoy mp274856
    UNIT OK: passed

Build: http://10.245.162.77:8080/job/charm_unit_test/11292/

charm_amulet_test #7431 keystone-next for gnuoy mp274856
    AMULET OK: passed

Build: http://10.245.162.77:8080/job/charm_amulet_test/7431/

James Page (james-page) wrote :

I think this is fine as a short-term fix to get us to release; however I'd like for us to stand back as a dev team early next cycle and see how we can de-couple the codebase we're managing from the code we're using to manage it with, as I think that is where this problem arises.

Only three charms do this afaik; keystone, swift-proxy and neutron-api.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'actions/openstack_upgrade.py'
2--- actions/openstack_upgrade.py 2015-10-08 22:30:32 +0000
3+++ actions/openstack_upgrade.py 2015-10-19 13:34:22 +0000
4@@ -1,4 +1,5 @@
5 #!/usr/bin/python
6+import os
7 import sys
8
9 sys.path.append('hooks/')
10@@ -8,7 +9,6 @@
11 )
12
13 from keystone_hooks import (
14- config_changed,
15 CONFIGS,
16 )
17
18@@ -31,7 +31,7 @@
19 if (do_action_openstack_upgrade('keystone',
20 do_openstack_upgrade,
21 CONFIGS)):
22- config_changed()
23+ os.execl('./hooks/config-changed-postupgrade', '')
24
25 if __name__ == '__main__':
26 openstack_upgrade()
27
28=== added symlink 'hooks/config-changed-postupgrade'
29=== target is u'keystone_hooks.py'
30=== modified file 'hooks/keystone_hooks.py'
31--- hooks/keystone_hooks.py 2015-10-08 22:29:33 +0000
32+++ hooks/keystone_hooks.py 2015-10-19 13:34:22 +0000
33@@ -53,7 +53,7 @@
34 from keystone_utils import (
35 add_service_to_keystone,
36 determine_packages,
37- do_openstack_upgrade,
38+ do_openstack_upgrade_reexec,
39 ensure_initial_admin,
40 get_admin_passwd,
41 git_install,
42@@ -152,8 +152,15 @@
43 elif not config('action-managed-upgrade'):
44 if openstack_upgrade_available('keystone'):
45 status_set('maintenance', 'Running openstack upgrade')
46- do_openstack_upgrade(configs=CONFIGS)
47-
48+ do_openstack_upgrade_reexec(configs=CONFIGS)
49+
50+ config_changed_postupgrade()
51+
52+
53+@hooks.hook('config-changed-postupgrade')
54+@restart_on_change(restart_map())
55+@synchronize_ca_if_changed(fatal=True)
56+def config_changed_postupgrade():
57 # Ensure ssl dir exists and is unison-accessible
58 ensure_ssl_dir()
59
60
61=== modified file 'hooks/keystone_utils.py'
62--- hooks/keystone_utils.py 2015-10-06 19:19:34 +0000
63+++ hooks/keystone_utils.py 2015-10-19 13:34:22 +0000
64@@ -370,6 +370,12 @@
65 _save_script_rc(**env_vars)
66
67
68+def do_openstack_upgrade_reexec(configs):
69+ do_openstack_upgrade(configs)
70+ log("Re-execing hook to pickup upgraded packages", level=INFO)
71+ os.execl('./hooks/config-changed-postupgrade', '')
72+
73+
74 def do_openstack_upgrade(configs):
75 new_src = config('openstack-origin')
76 new_os_rel = get_os_codename_install_source(new_src)
77@@ -395,7 +401,6 @@
78 else:
79 log("Database not ready - deferring to shared-db relation",
80 level=INFO)
81- return
82
83
84 def is_db_initialised():
85
86=== modified file 'unit_tests/test_actions_openstack_upgrade.py'
87--- unit_tests/test_actions_openstack_upgrade.py 2015-10-07 16:20:36 +0000
88+++ unit_tests/test_actions_openstack_upgrade.py 2015-10-19 13:34:22 +0000
89@@ -12,16 +12,16 @@
90 )
91
92 TO_PATCH = [
93- 'config_changed',
94 'do_openstack_upgrade',
95+ 'os',
96 ]
97
98
99-class TestCinderUpgradeActions(CharmTestCase):
100+class TestKeystoneUpgradeActions(CharmTestCase):
101
102 def setUp(self):
103- super(TestCinderUpgradeActions, self).setUp(openstack_upgrade,
104- TO_PATCH)
105+ super(TestKeystoneUpgradeActions, self).setUp(openstack_upgrade,
106+ TO_PATCH)
107
108 @patch.object(hooks, 'register_configs')
109 @patch('charmhelpers.contrib.openstack.utils.config')
110@@ -37,7 +37,8 @@
111 openstack_upgrade.openstack_upgrade()
112
113 self.assertTrue(self.do_openstack_upgrade.called)
114- self.assertTrue(self.config_changed.called)
115+ self.os.execl.assert_called_with('./hooks/config-changed-postupgrade',
116+ '')
117
118 @patch.object(hooks, 'register_configs')
119 @patch('charmhelpers.contrib.openstack.utils.config')
120@@ -53,4 +54,4 @@
121 openstack_upgrade.openstack_upgrade()
122
123 self.assertFalse(self.do_openstack_upgrade.called)
124- self.assertFalse(self.config_changed.called)
125+ self.assertFalse(self.os.execl.called)
126
127=== modified file 'unit_tests/test_keystone_hooks.py'
128--- unit_tests/test_keystone_hooks.py 2015-10-07 16:20:36 +0000
129+++ unit_tests/test_keystone_hooks.py 2015-10-19 13:34:22 +0000
130@@ -51,7 +51,7 @@
131 # keystone_utils
132 'restart_map',
133 'register_configs',
134- 'do_openstack_upgrade',
135+ 'do_openstack_upgrade_reexec',
136 'openstack_upgrade_available',
137 'save_script_rc',
138 'migrate_database',
139@@ -467,7 +467,7 @@
140 ensure_user.assert_called_with(user=self.ssh_user, group='keystone')
141 get_homedir.assert_called_with(self.ssh_user)
142
143- self.assertTrue(self.do_openstack_upgrade.called)
144+ self.assertTrue(self.do_openstack_upgrade_reexec.called)
145
146 self.save_script_rc.assert_called_with()
147 configure_https.assert_called_with()
148@@ -538,7 +538,7 @@
149 hooks.config_changed()
150 self.git_install.assert_called_with(projects_yaml)
151 self.assertFalse(self.openstack_upgrade_available.called)
152- self.assertFalse(self.do_openstack_upgrade.called)
153+ self.assertFalse(self.do_openstack_upgrade_reexec.called)
154
155 @patch.object(hooks, 'git_install_requested')
156 @patch.object(hooks, 'config_value_changed')
157@@ -569,7 +569,7 @@
158
159 hooks.config_changed()
160
161- self.assertFalse(self.do_openstack_upgrade.called)
162+ self.assertFalse(self.do_openstack_upgrade_reexec.called)
163
164 @patch('keystone_utils.log')
165 @patch('keystone_utils.ensure_ssl_cert_master')

Subscribers

People subscribed via source and target branches