Exemplo n.º 1
0
def enable_ovs_dpdk():
    '''Enables the DPDK variant of ovs-vswitchd and restarts it'''
    subprocess.check_call(UPDATE_ALTERNATIVES + [OVS_DPDK_BIN])
    values_changed = []
    if ovs_has_late_dpdk_init():
        dpdk_context = OVSDPDKDeviceContext()
        other_config = OrderedDict([
            ('dpdk-lcore-mask', dpdk_context.cpu_mask()),
            ('dpdk-socket-mem', dpdk_context.socket_memory()),
            ('dpdk-init', 'true'),
        ])
        if not ovs_vhostuser_client():
            other_config['dpdk-extra'] = (
                '--vhost-owner libvirt-qemu:kvm --vhost-perm 0660 ' +
                dpdk_context.pci_whitelist())
        else:
            other_config['dpdk-extra'] = (dpdk_context.pci_whitelist())
        other_config['dpdk-init'] = 'true'
        for column, value in other_config.items():
            values_changed.append(
                set_Open_vSwitch_column_value('other_config:{}'.format(column),
                                              value))
    if ((values_changed and any(values_changed)) and not is_unit_paused_set()):
        deferrable_svc_restart('openvswitch-switch',
                               reason='DPDK Config changed')
def nm_changed():
    CONFIGS.write_all()
    if relation_get('ca_cert'):
        ca_crt = b64decode(relation_get('ca_cert'))
        install_ca_cert(ca_crt)

    if config('ha-legacy-mode'):
        cache_env_data()

    # Disable nova metadata if possible,
    if disable_nova_metadata():
        remove_legacy_nova_metadata()
    else:
        # NOTE: nova-api-metadata needs to be restarted
        #       once the nova-conductor is up and running
        #       on the nova-cc units.
        restart_nonce = relation_get('restart_trigger')
        if restart_nonce is not None:
            db = kv()
            previous_nonce = db.get('restart_nonce')
            if previous_nonce != restart_nonce:
                if not is_unit_paused_set():
                    deferrable_svc_restart('nova-api-metadata',
                                           'Restart trigger received')
                db.set('restart_nonce', restart_nonce)
                db.flush()
    # LP: #1812813
    update_nrpe_config()
Exemplo n.º 3
0
def enable_hw_offload():
    '''Enable hardware offload support in Open vSwitch'''
    values_changed = [
        set_Open_vSwitch_column_value('other_config:hw-offload', 'true'),
        set_Open_vSwitch_column_value('other_config:max-idle', '30000')
    ]
    if ((values_changed and any(values_changed)) and not is_unit_paused_set()):
        deferrable_svc_restart('openvswitch-switch',
                               reason='Hardware offload config changed')
def upgrade_charm():
    install()
    packages_removed = remove_old_packages()
    if packages_removed and not is_unit_paused_set():
        log("Package purge detected, restarting services", "INFO")
        for s in services():
            deferrable_svc_restart(s, 'Package purge detected')
    config_changed()
    update_legacy_ha_files(force=True)

    # Install systemd overrides to remove service startup race between
    # n-gateway and n-cloud-controller services.
    install_systemd_override()
Exemplo n.º 5
0
 def test_deferrable_svc_restart(self, is_restart_permitted,
                                 service_restart, save_event, time):
     time.return_value = 123
     is_restart_permitted.return_value = True
     deferred_events.deferrable_svc_restart('svcA', reason='ReasonA')
     service_restart.assert_called_once_with('svcA')
     service_restart.reset_mock()
     is_restart_permitted.return_value = False
     deferred_events.deferrable_svc_restart('svcA', reason='ReasonA')
     self.assertFalse(service_restart.called)
     save_event.assert_called_once_with(
         deferred_events.ServiceEvent(timestamp=123,
                                      service='svcA',
                                      reason='ReasonA',
                                      action='restart'))