def config_changed():
    if config('prefer-ipv6'):
        status_set('maintenance', 'Configuring ipv6')
        assert_charm_supports_ipv6()

    ensure_swift_directories()
    setup_rsync()

    if not config('action-managed-upgrade') and \
            openstack_upgrade_available('swift'):
        status_set('maintenance', 'Running openstack upgrade')
        do_openstack_upgrade(configs=CONFIGS)

    setup_storage()

    for rid in relation_ids('swift-storage'):
        swift_storage_relation_joined(rid=rid)

    CONFIGS.write_all()

    save_script_rc()
    if relations_of_type('nrpe-external-master'):
        update_nrpe_config()

    sysctl_dict = config('sysctl')
    if sysctl_dict:
        create_sysctl(sysctl_dict, '/etc/sysctl.d/50-swift-storage-charm.conf')

    add_to_updatedb_prunepath(STORAGE_MOUNT_PATH)
 def test_do_upgrade_train(self, mock_remove_old_packages):
     self.is_paused.return_value = False
     self.test_config.set('openstack-origin', 'cloud:bionic-train')
     self.get_os_codename_install_source.return_value = 'train'
     self.CompareOpenStackReleases.return_value = 'train'
     swift_utils.do_openstack_upgrade(MagicMock())
     self.configure_installation_source.assert_called_with(
         'cloud:bionic-train')
     dpkg_opts = [
         '--option',
         'Dpkg::Options::=--force-confnew',
         '--option',
         'Dpkg::Options::=--force-confdef',
     ]
     self.assertTrue(self.apt_update.called)
     self.apt_upgrade.assert_called_with(options=dpkg_opts,
                                         fatal=True,
                                         dist=True)
     self.apt_install.assert_called_with(
         options=dpkg_opts,
         packages=[
             'gdisk', 'lvm2', 'swift', 'swift-account', 'swift-container',
             'swift-object', 'ufw', 'xfsprogs', 'python3-jinja2',
             'python3-psutil', 'python3-six', 'python3-swift'
         ],
         fatal=True)
     self.assertTrue(mock_remove_old_packages.called)
     self.assertTrue(self.reset_os_release.called)
     services = (swift_utils.ACCOUNT_SVCS + swift_utils.CONTAINER_SVCS +
                 swift_utils.OBJECT_SVCS)
     for service in services:
         self.assertIn(call(service), self.service_restart.call_args_list)
Ejemplo n.º 3
0
 def test_do_upgrade(self):
     self.is_paused.return_value = False
     self.test_config.set('openstack-origin', 'cloud:precise-grizzly')
     self.get_os_codename_install_source.return_value = 'grizzly'
     swift_utils.do_openstack_upgrade(MagicMock())
     self.configure_installation_source.assert_called_with(
         'cloud:precise-grizzly')
     dpkg_opts = [
         '--option',
         'Dpkg::Options::=--force-confnew',
         '--option',
         'Dpkg::Options::=--force-confdef',
     ]
     self.assertTrue(self.apt_update.called)
     self.apt_upgrade.assert_called_with(options=dpkg_opts,
                                         fatal=True,
                                         dist=True)
     services = (swift_utils.ACCOUNT_SVCS + swift_utils.CONTAINER_SVCS +
                 swift_utils.OBJECT_SVCS)
     for service in services:
         self.assertIn(call(service), self.service_restart.call_args_list)
 def test_do_upgrade(self):
     self.is_paused.return_value = False
     self.test_config.set('openstack-origin', 'cloud:precise-grizzly')
     self.get_os_codename_install_source.return_value = 'grizzly'
     swift_utils.do_openstack_upgrade(MagicMock())
     self.configure_installation_source.assert_called_with(
         'cloud:precise-grizzly'
     )
     dpkg_opts = [
         '--option', 'Dpkg::Options::=--force-confnew',
         '--option', 'Dpkg::Options::=--force-confdef',
     ]
     self.assertTrue(self.apt_update.called)
     self.apt_upgrade.assert_called_with(
         options=dpkg_opts,
         fatal=True, dist=True
     )
     services = (swift_utils.ACCOUNT_SVCS + swift_utils.CONTAINER_SVCS +
                 swift_utils.OBJECT_SVCS)
     for service in services:
         self.assertIn(call(service), self.service_restart.call_args_list)
Ejemplo n.º 5
0
def config_changed():
    if config('enable-firewall'):
        initialize_ufw()
    else:
        ufw.disable()

    if config('ephemeral-unmount'):
        umount(config('ephemeral-unmount'), persist=True)

    if config('prefer-ipv6'):
        status_set('maintenance', 'Configuring ipv6')
        assert_charm_supports_ipv6()

    ensure_swift_directories()
    setup_rsync()

    if not config('action-managed-upgrade') and \
            openstack_upgrade_available('swift'):
        status_set('maintenance', 'Running openstack upgrade')
        do_openstack_upgrade(configs=CONFIGS)

    install_vaultlocker()

    configure_storage()

    CONFIGS.write_all()

    save_script_rc()
    if relations_of_type('nrpe-external-master'):
        update_nrpe_config()

    sysctl_dict = config('sysctl')
    if sysctl_dict:
        create_sysctl(sysctl_dict, '/etc/sysctl.d/50-swift-storage-charm.conf')

    add_to_updatedb_prunepath(STORAGE_MOUNT_PATH)