246
245
configs.write = MagicMock()
247
246
hooks.pgsql_db_changed()
248
@patch('keystone_utils.relation_ids')
249
@patch('keystone_utils.peer_retrieve')
250
@patch('keystone_utils.peer_store')
249
251
@patch('keystone_utils.log')
250
252
@patch('keystone_utils.ensure_ssl_cert_master')
251
253
@patch.object(hooks, 'CONFIGS')
252
254
@patch.object(hooks, 'identity_changed')
253
255
def test_db_changed_allowed(self, identity_changed, configs,
254
mock_ensure_ssl_cert_master,
256
self.is_db_initialised.return_value = True
256
mock_ensure_ssl_cert_master, mock_log,
258
mock_peer_retrieve, mock_relation_ids):
259
mock_relation_ids.return_value = ['peer/0']
262
def fake_peer_store(key, val):
263
peer_settings[key] = val
266
fake_peer_store('db-initialised', 'True')
268
self.migrate_database.side_effect = fake_migrate
269
mock_peer_store.side_effect = fake_peer_store
270
mock_peer_retrieve.side_effect = lambda key: peer_settings.get(key)
257
272
self.is_db_ready.return_value = True
258
273
mock_ensure_ssl_cert_master.return_value = False
259
274
self.relation_ids.return_value = ['identity-service:0']
268
283
relation_id='identity-service:0',
269
284
remote_unit='unit/0')
286
@patch('keystone_utils.relation_ids')
271
287
@patch('keystone_utils.log')
272
288
@patch('keystone_utils.ensure_ssl_cert_master')
273
289
@patch.object(hooks, 'CONFIGS')
274
290
@patch.object(hooks, 'identity_changed')
275
291
def test_db_changed_not_allowed(self, identity_changed, configs,
276
mock_ensure_ssl_cert_master, mock_log):
292
mock_ensure_ssl_cert_master, mock_log,
294
mock_relation_ids.return_value = []
277
295
self.is_db_ready.return_value = False
278
296
mock_ensure_ssl_cert_master.return_value = False
279
297
self.relation_ids.return_value = ['identity-service:0']
286
304
self.assertFalse(self.ensure_initial_admin.called)
287
305
self.assertFalse(identity_changed.called)
307
@patch('keystone_utils.relation_ids')
308
@patch('keystone_utils.peer_retrieve')
309
@patch('keystone_utils.peer_store')
289
310
@patch('keystone_utils.log')
290
311
@patch('keystone_utils.ensure_ssl_cert_master')
291
312
@patch.object(hooks, 'CONFIGS')
292
313
@patch.object(hooks, 'identity_changed')
293
314
def test_postgresql_db_changed(self, identity_changed, configs,
294
mock_ensure_ssl_cert_master, mock_log):
295
self.is_db_initialised.return_value = True
315
mock_ensure_ssl_cert_master, mock_log,
316
mock_peer_store, mock_peer_retrieve,
318
mock_relation_ids.return_value = ['peer/0']
322
def fake_peer_store(key, val):
323
peer_settings[key] = val
326
fake_peer_store('db-initialised', 'True')
328
self.migrate_database.side_effect = fake_migrate
329
mock_peer_store.side_effect = fake_peer_store
330
mock_peer_retrieve.side_effect = lambda key: peer_settings.get(key)
296
332
self.is_db_ready.return_value = True
297
333
mock_ensure_ssl_cert_master.return_value = False
298
334
self.relation_ids.return_value = ['identity-service:0']
307
343
relation_id='identity-service:0',
308
344
remote_unit='unit/0')
346
@patch.object(hooks, 'is_db_initialised')
310
347
@patch.object(hooks, 'git_install_requested')
311
348
@patch('keystone_utils.log')
312
349
@patch('keystone_utils.ensure_ssl_cert_master')
340
377
mock_ensure_pki_dir_permissions,
341
378
mock_ensure_ssl_dirs,
342
379
mock_ensure_ssl_cert_master,
343
mock_log, git_requested):
380
mock_log, git_requested,
381
mock_is_db_initialised):
344
382
git_requested.return_value = False
345
383
mock_is_ssl_cert_master.return_value = True
346
self.is_db_initialised.return_value = True
384
mock_is_db_initialised.return_value = True
347
385
self.is_db_ready.return_value = True
348
386
self.openstack_upgrade_available.return_value = False
349
387
self.is_elected_leader.return_value = True
419
457
self.assertFalse(self.ensure_initial_admin.called)
420
458
self.assertFalse(identity_changed.called)
460
@patch.object(hooks, 'is_db_initialised')
422
461
@patch.object(hooks, 'git_install_requested')
423
462
@patch('keystone_utils.log')
424
463
@patch('keystone_utils.ensure_ssl_cert_master')
451
490
mock_ensure_pki_permissions,
452
491
mock_ensure_ssl_dirs,
453
492
mock_ensure_ssl_cert_master,
454
mock_log, git_requested):
493
mock_log, git_requested,
494
mock_is_db_initialised):
455
495
git_requested.return_value = False
456
496
mock_is_ssl_cert_master.return_value = True
457
497
self.is_db_ready.return_value = True
458
self.is_db_initialised.return_value = True
498
mock_is_db_initialised.return_value = True
459
499
self.openstack_upgrade_available.return_value = True
460
500
self.is_elected_leader.return_value = True
461
501
# avoid having to mock syncer
541
581
self.assertFalse(self.do_openstack_upgrade_reexec.called)
543
583
@patch.object(hooks, 'initialise_pki')
584
@patch.object(hooks, 'is_db_initialised')
544
585
@patch.object(hooks, 'git_install_requested')
545
586
@patch.object(hooks, 'config_value_changed')
546
587
@patch.object(hooks, 'ensure_ssl_dir')
572
614
self.assertFalse(self.do_openstack_upgrade_reexec.called)
616
@patch.object(hooks, 'is_db_initialised')
574
617
@patch('keystone_utils.log')
575
618
@patch('keystone_utils.ensure_ssl_cert_master')
576
619
@patch.object(hooks, 'hashlib')
577
620
@patch.object(hooks, 'send_notifications')
578
621
def test_identity_changed_leader(self, mock_send_notifications,
579
622
mock_hashlib, mock_ensure_ssl_cert_master,
581
self.is_db_initialised.return_value = True
623
mock_log, mock_is_db_initialised):
624
mock_is_db_initialised.return_value = True
582
625
self.is_db_ready.return_value = True
583
626
mock_ensure_ssl_cert_master.return_value = False
584
627
hooks.identity_changed(
782
825
self.assertTrue(configs.write_all.called)
783
826
self.assertFalse(mock_synchronize_ca.called)
828
@patch.object(hooks, 'is_db_initialised')
785
829
@patch('keystone_utils.log')
786
830
@patch('keystone_utils.ensure_ssl_cert_master')
787
831
@patch.object(hooks, 'identity_changed')
789
833
def test_ha_relation_changed_clustered_leader(self, configs,
790
834
identity_changed,
791
835
mock_ensure_ssl_cert_master,
793
self.is_db_initialised.return_value = True
837
mock_is_db_initialised):
838
mock_is_db_initialised.return_value = True
794
839
self.is_db_ready.return_value = True
795
840
mock_ensure_ssl_cert_master.return_value = False
796
841
self.relation_get.return_value = True
904
949
ssh_authorized_peers.assert_called_with(
905
950
user=self.ssh_user, group='juju_keystone',
906
951
peer_interface='cluster', ensure_local_user=True)
907
self.assertFalse(self.log.called)
952
self.assertTrue(self.log.called)
908
953
self.assertFalse(self.ensure_initial_admin.called)