コード例 #1
0
    def test_upgrade_charm_leader(self, ssh_authorized_peers,
                                  mock_synchronize_ca,
                                  mock_update_hash_from_path,
                                  mock_ensure_ssl_cert_master,
                                  mock_is_elected_leader,
                                  mock_relation_ids,
                                  mock_log,
                                  mock_is_db_initialised,
                                  mock_is_db_ready,
                                  git_requested,
                                  os_release):
        mock_is_db_initialised.return_value = True
        mock_is_db_ready.return_value = True
        mock_is_elected_leader.return_value = False
        mock_relation_ids.return_value = []
        mock_ensure_ssl_cert_master.return_value = True
        # Ensure always returns diff
        mock_update_hash_from_path.side_effect = \
            lambda hash, *args, **kwargs: hash.update(str(uuid.uuid4()))

        self.is_elected_leader.return_value = True
        self.filter_installed_packages.return_value = []
        git_requested.return_value = False
        hooks.upgrade_charm()
        self.assertTrue(self.apt_install.called)
        ssh_authorized_peers.assert_called_with(
            user=self.ssh_user, group='juju_keystone',
            peer_interface='cluster', ensure_local_user=True)
        self.assertTrue(mock_synchronize_ca.called)
        self.log.assert_called_with(
            'Firing identity_changed hook for all related services.')
        self.assertTrue(self.ensure_initial_admin.called)
コード例 #2
0
    def test_upgrade_charm_not_leader_no_packages(
        self,
        mock_stop_manager_instance,
        mock_relation_ids,
        mock_log,
        os_release,
        update,
        mock_maybe_do_policyd_overrides,
        mock_bootstrap_keystone,
        mock_get_subordinate_release_packages,
    ):
        os_release.return_value = 'havana'

        self.filter_installed_packages.return_value = []
        self.is_elected_leader.return_value = False
        mock_get_subordinate_release_packages.return_value = \
            os_utils.SubordinatePackages(set(), set())
        hooks.upgrade_charm()
        self.assertFalse(self.apt_install.called)
        self.assertTrue(self.log.called)
        self.assertFalse(update.called)
        mock_bootstrap_keystone.assert_called_once_with(configs=ANY)
        mock_stop_manager_instance.assert_called_once()
        mock_maybe_do_policyd_overrides.assert_called_once_with(
            ANY, "keystone", restart_handler=ANY)
コード例 #3
0
    def test_upgrade_charm_leader(self, ssh_authorized_peers,
                                  mock_synchronize_ca,
                                  mock_update_hash_from_path,
                                  mock_ensure_ssl_cert_master,
                                  mock_is_elected_leader,
                                  mock_relation_ids,
                                  mock_log,
                                  mock_is_db_initialised,
                                  mock_is_db_ready,
                                  git_requested):
        mock_is_db_initialised.return_value = True
        mock_is_db_ready.return_value = True
        mock_is_elected_leader.return_value = False
        mock_relation_ids.return_value = []
        mock_ensure_ssl_cert_master.return_value = True
        # Ensure always returns diff
        mock_update_hash_from_path.side_effect = \
            lambda hash, *args, **kwargs: hash.update(str(uuid.uuid4()))

        self.is_elected_leader.return_value = True
        self.filter_installed_packages.return_value = []
        git_requested.return_value = False
        hooks.upgrade_charm()
        self.assertTrue(self.apt_install.called)
        ssh_authorized_peers.assert_called_with(
            user=self.ssh_user, group='juju_keystone',
            peer_interface='cluster', ensure_local_user=True)
        self.assertTrue(mock_synchronize_ca.called)
        self.log.assert_called_with(
            'Firing identity_changed hook for all related services.')
        self.assertTrue(self.ensure_initial_admin.called)
コード例 #4
0
    def test_upgrade_charm_leader_no_packages(
            self, mock_stop_manager_instance, mock_relation_ids, mock_log,
            mock_is_db_initialised, mock_is_db_ready, os_release, update,
            mock_maybe_do_policyd_overrides, mock_protect_service_accounts,
            mock_bootstrap_keystone, mock_get_subordinate_release_packages):
        os_release.return_value = 'havana'
        mock_is_db_initialised.return_value = True
        mock_is_db_ready.return_value = True
        mock_relation_ids.return_value = []
        self.remove_old_packages.return_value = True
        self.services.return_value = ['apache2']

        self.filter_installed_packages.return_value = []
        mock_get_subordinate_release_packages.return_value = \
            os_utils.SubordinatePackages(set(), set())
        hooks.upgrade_charm()
        self.assertFalse(self.apt_install.called)
        self.assertTrue(update.called)
        self.remove_old_packages.assert_called_once_with()
        self.service_restart.assert_called_with('apache2')
        mock_bootstrap_keystone.assert_called_once_with(configs=ANY)
        mock_stop_manager_instance.assert_called_once_with()
        mock_maybe_do_policyd_overrides.assert_called_once_with(
            ANY, "keystone", restart_handler=ANY)
        mock_protect_service_accounts.assert_called_once_with()
コード例 #5
0
    def test_upgrade_charm_not_leader(self, mock_relation_ids, mock_log,
                                      os_release, update):
        os_release.return_value = 'havana'

        self.filter_installed_packages.return_value = []
        self.is_elected_leader.return_value = False
        hooks.upgrade_charm()
        self.assertTrue(self.apt_install.called)
        self.assertTrue(self.log.called)
        self.assertFalse(update.called)
コード例 #6
0
    def test_upgrade_charm_leader(self, mock_relation_ids, mock_log,
                                  mock_is_db_initialised, mock_is_db_ready,
                                  os_release, update):
        os_release.return_value = 'havana'
        mock_is_db_initialised.return_value = True
        mock_is_db_ready.return_value = True
        mock_relation_ids.return_value = []

        self.filter_installed_packages.return_value = []
        hooks.upgrade_charm()
        self.assertTrue(self.apt_install.called)
        self.assertTrue(update.called)
コード例 #7
0
    def test_upgrade_charm_not_leader_no_packages(self,
                                                  mock_stop_manager_instance,
                                                  mock_relation_ids,
                                                  mock_log,
                                                  os_release, update):
        os_release.return_value = 'havana'

        self.filter_installed_packages.return_value = []
        self.is_elected_leader.return_value = False
        hooks.upgrade_charm()
        self.assertFalse(self.apt_install.called)
        self.assertTrue(self.log.called)
        self.assertFalse(update.called)
        mock_stop_manager_instance.assert_called_once()
コード例 #8
0
    def test_upgrade_charm_not_leader_no_packages(
            self, mock_stop_manager_instance, mock_relation_ids, mock_log,
            os_release, update, mock_maybe_do_policyd_overrides):
        os_release.return_value = 'havana'

        self.filter_installed_packages.return_value = []
        self.is_elected_leader.return_value = False
        hooks.upgrade_charm()
        self.assertFalse(self.apt_install.called)
        self.assertTrue(self.log.called)
        self.assertFalse(update.called)
        mock_stop_manager_instance.assert_called_once()
        mock_maybe_do_policyd_overrides.assert_called_once_with(
            ANY, "keystone")
コード例 #9
0
    def test_upgrade_charm_leader(self,
                                  mock_relation_ids,
                                  mock_log,
                                  mock_is_db_initialised,
                                  mock_is_db_ready,
                                  os_release,
                                  update):
        os_release.return_value = 'havana'
        mock_is_db_initialised.return_value = True
        mock_is_db_ready.return_value = True
        mock_relation_ids.return_value = []
        self.remove_old_packages.return_value = True
        self.services.return_value = ['apache2']

        self.filter_installed_packages.return_value = []
        hooks.upgrade_charm()
        self.assertTrue(self.apt_install.called)
        self.assertTrue(update.called)
        self.remove_old_packages.assert_called_once_with()
        self.service_restart.assert_called_with('apache2')
コード例 #10
0
    def test_upgrade_charm_not_leader(self, ssh_authorized_peers,
                                      mock_update_hash_from_path,
                                      mock_ensure_ssl_cert_master,
                                      mock_relation_ids,
                                      mock_log, git_requested):
        mock_relation_ids.return_value = []
        mock_ensure_ssl_cert_master.return_value = False
        # Ensure always returns diff
        mock_update_hash_from_path.side_effect = \
            lambda hash, *args, **kwargs: hash.update(str(uuid.uuid4()))

        self.is_elected_leader.return_value = False
        self.filter_installed_packages.return_value = []
        git_requested.return_value = False
        hooks.upgrade_charm()
        self.assertTrue(self.apt_install.called)
        ssh_authorized_peers.assert_called_with(
            user=self.ssh_user, group='juju_keystone',
            peer_interface='cluster', ensure_local_user=True)
        self.assertTrue(self.log.called)
        self.assertFalse(self.ensure_initial_admin.called)
コード例 #11
0
    def test_upgrade_charm_leader(self, mock_stop_manager_instance,
                                  mock_relation_ids, mock_log,
                                  mock_is_db_initialised, mock_is_db_ready,
                                  os_release, update,
                                  mock_maybe_do_policyd_overrides):
        os_release.return_value = 'havana'
        mock_is_db_initialised.return_value = True
        mock_is_db_ready.return_value = True
        mock_relation_ids.return_value = []
        self.remove_old_packages.return_value = True
        self.services.return_value = ['apache2']

        self.filter_installed_packages.return_value = ['something']
        hooks.upgrade_charm()
        self.assertTrue(self.apt_install.called)
        self.assertTrue(update.called)
        self.remove_old_packages.assert_called_once_with()
        self.service_restart.assert_called_with('apache2')
        mock_stop_manager_instance.assert_called_once_with()
        mock_maybe_do_policyd_overrides.assert_called_once_with(
            ANY, "keystone")
コード例 #12
0
    def test_upgrade_charm_not_leader(self, ssh_authorized_peers,
                                      mock_update_hash_from_path,
                                      mock_ensure_ssl_cert_master,
                                      mock_relation_ids,
                                      mock_log, git_requested,
                                      os_release, update):
        mock_relation_ids.return_value = []
        mock_ensure_ssl_cert_master.return_value = False
        # Ensure always returns diff
        mock_update_hash_from_path.side_effect = \
            lambda hash, *args, **kwargs: hash.update(str(uuid.uuid4()))

        self.is_elected_leader.return_value = False
        self.filter_installed_packages.return_value = []
        git_requested.return_value = False
        hooks.upgrade_charm()
        self.assertTrue(self.apt_install.called)
        ssh_authorized_peers.assert_called_with(
            user=self.ssh_user, group='juju_keystone',
            peer_interface='cluster', ensure_local_user=True)
        self.assertTrue(self.log.called)
        self.assertFalse(update.called)
コード例 #13
0
    def test_upgrade_charm_leader_no_packages(self,
                                              mock_stop_manager_instance,
                                              mock_relation_ids,
                                              mock_log,
                                              mock_is_db_initialised,
                                              mock_is_db_ready,
                                              os_release,
                                              update):
        os_release.return_value = 'havana'
        mock_is_db_initialised.return_value = True
        mock_is_db_ready.return_value = True
        mock_relation_ids.return_value = []
        self.remove_old_packages.return_value = True
        self.services.return_value = ['apache2']

        self.filter_installed_packages.return_value = []
        hooks.upgrade_charm()
        self.assertFalse(self.apt_install.called)
        self.assertTrue(update.called)
        self.remove_old_packages.assert_called_once_with()
        self.service_restart.assert_called_with('apache2')
        mock_stop_manager_instance.assert_called_once_with()