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)
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)
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)