103
105
self.assertTrue(self.log.called)
104
106
_exit.assert_called_with(1)
106
def test_config_changed(self):
108
@patch.object(utils, 'git_install_requested')
109
def test_install_hook_git(self, git_requested):
110
git_requested.return_value = True
111
self.valid_plugin.return_value = True
112
_pkgs = ['foo', 'bar']
113
self.filter_installed_packages.return_value = _pkgs
114
repo = 'cloud:trusty-juno'
115
openstack_origin_git = {
117
{'name': 'requirements',
118
'repository': 'git://git.openstack.org/openstack/requirements', # noqa
119
'branch': 'stable/juno'},
121
'repository': 'git://git.openstack.org/openstack/neutron',
122
'branch': 'stable/juno'}
124
'directory': '/mnt/openstack-git',
126
projects_yaml = yaml.dump(openstack_origin_git)
127
self.test_config.set('openstack-origin', repo)
128
self.test_config.set('openstack-origin-git', projects_yaml)
129
self._call_hook('install')
130
self.configure_installation_source.assert_called_with(
133
self.apt_update.assert_called_with(fatal=True)
134
self.apt_install.assert_has_calls([
135
call(_pkgs, fatal=True),
136
call(_pkgs, fatal=True),
138
self.assertTrue(self.get_early_packages.called)
139
self.assertTrue(self.get_packages.called)
140
self.git_install.assert_called_with(projects_yaml)
141
self.assertTrue(self.execd_preinstall.called)
143
@patch.object(hooks, 'git_install_requested')
144
def test_config_changed(self, git_requested):
107
145
def mock_relids(rel):
147
git_requested.return_value = False
109
148
self.test_config.set('sysctl', '{ kernel.max_pid: "1337"}')
110
149
self.openstack_upgrade_available.return_value = True
111
150
self.valid_plugin.return_value = True
125
164
self.assertTrue(_zmq_joined.called)
126
165
self.create_sysctl.assert_called()
128
def test_config_changed_upgrade(self):
167
@patch.object(hooks, 'git_install_requested')
168
def test_config_changed_upgrade(self, git_requested):
169
git_requested.return_value = False
129
170
self.openstack_upgrade_available.return_value = True
130
171
self.valid_plugin.return_value = True
131
172
self._call_hook('config-changed')
132
173
self.assertTrue(self.do_openstack_upgrade.called)
133
174
self.assertTrue(self.configure_ovs.called)
135
def test_config_changed_n1kv(self):
176
@patch.object(hooks, 'git_install_requested')
177
def test_config_changed_n1kv(self, git_requested):
178
git_requested.return_value = False
136
179
self.openstack_upgrade_available.return_value = False
137
180
self.valid_plugin.return_value = True
138
181
self.filter_installed_packages.side_effect = lambda p: p
144
187
self.apt_purge.assert_called_with('neutron-l3-agent')
146
189
@patch('sys.exit')
147
def test_config_changed_invalid_plugin(self, _exit):
190
@patch.object(hooks, 'git_install_requested')
191
def test_config_changed_invalid_plugin(self, git_requested, _exit):
192
git_requested.return_value = False
148
193
self.valid_plugin.return_value = False
149
194
self._call_hook('config-changed')
150
195
self.assertTrue(self.log.called)
151
196
_exit.assert_called_with(1)
198
@patch.object(hooks, 'git_install_requested')
199
@patch.object(hooks, 'config_value_changed')
200
def test_config_changed_git(self, config_val_changed, git_requested):
201
def mock_relids(rel):
203
git_requested.return_value = True
204
self.test_config.set('sysctl', '{ kernel.max_pid: "1337"}')
205
self.openstack_upgrade_available.return_value = True
206
self.valid_plugin.return_value = True
207
self.relation_ids.side_effect = mock_relids
208
_db_joined = self.patch('db_joined')
209
_pgsql_db_joined = self.patch('pgsql_db_joined')
210
_amqp_joined = self.patch('amqp_joined')
211
_amqp_nova_joined = self.patch('amqp_nova_joined')
212
_zmq_joined = self.patch('zeromq_configuration_relation_joined')
213
repo = 'cloud:trusty-juno'
214
openstack_origin_git = {
216
{'name': 'requirements',
218
'git://git.openstack.org/openstack/requirements',
219
'branch': 'stable/juno'},
221
'repository': 'git://git.openstack.org/openstack/neutron',
222
'branch': 'stable/juno'}
224
'directory': '/mnt/openstack-git',
226
projects_yaml = yaml.dump(openstack_origin_git)
227
self.test_config.set('openstack-origin', repo)
228
self.test_config.set('openstack-origin-git', projects_yaml)
229
self._call_hook('config-changed')
230
self.git_install.assert_called_with(projects_yaml)
231
self.assertFalse(self.do_openstack_upgrade.called)
232
self.assertTrue(self.configure_ovs.called)
233
self.assertTrue(_db_joined.called)
234
self.assertTrue(_pgsql_db_joined.called)
235
self.assertTrue(_amqp_joined.called)
236
self.assertTrue(_amqp_nova_joined.called)
237
self.assertTrue(_zmq_joined.called)
238
self.create_sysctl.assert_called()
153
240
def test_upgrade_charm(self):
154
241
_install = self.patch('install')
155
242
_config_changed = self.patch('config_changed')