#!/bin/bash

# Neutron firewall plugin
# ---------------------------

# Save trace setting
_XTRACE_NEUTRON_FIREWALL=$(set +o | grep xtrace)
set +o xtrace

FWAAS_PLUGIN=neutron_fwaas.services.firewall.fwaas_plugin.FirewallPlugin

function neutron_fwaas_configure_common {
    _neutron_service_plugin_class_add $FWAAS_PLUGIN
}

function neutron_fwaas_configure_driver {
    # Uses oslo config generator to generate FWaaS sample configuration files
    (cd $NEUTRON_FWAAS_DIR && exec ./tools/generate_config_file_samples.sh)

    FWAAS_DRIVER_CONF_FILENAME=/etc/neutron/fwaas_driver.ini
    cp $NEUTRON_FWAAS_DIR/etc/fwaas_driver.ini.sample $FWAAS_DRIVER_CONF_FILENAME

    iniset_multiline $FWAAS_DRIVER_CONF_FILENAME fwaas enabled True
    iniset_multiline $FWAAS_DRIVER_CONF_FILENAME fwaas driver "neutron_fwaas.services.firewall.drivers.linux.iptables_fwaas.IptablesFwaasDriver"
}

function neutron_fwaas_stop {
    :
}

# Restore xtrace
$_XTRACE_NEUTRON_FIREWALL
