#!/bin/bash

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

# Save trace setting
FW_XTRACE=$(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 {
    FWAAS_DRIVER_CONF_FILENAME=/etc/neutron/fwaas_driver.ini
    cp $NEUTRON_FWAAS_DIR/etc/fwaas_driver.ini $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
$FW_XTRACE
