#!/bin/bash

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

# source $TOP_DIR/lib/neutron_plugins/ovs_base
source $TOP_DIR/lib/neutron_plugins/openvswitch_agent

# The followig functions are from the above openvswitch_agent.
# If some change is needed, let's redefine the function.
#
# neutron_plugin_create_nova_conf
# neutron_plugin_install_agent_packages
# neutron_plugin_configure_debug_command
# neutron_plugin_configure_dhcp_agent
# neutron_plugin_configure_l3_agent
# neutron_plugin_configure_plugin_agent
# neutron_plugin_setup_interface_driver
# neutron_plugin_check_adv_test_requirements

# Neutron-server functions required by devstack neutron plugin interfaces.

function neutron_plugin_configure_common {
    Q_PLUGIN_CONF_PATH=etc/neutron/plugins/nec
    Q_PLUGIN_CONF_FILENAME=necnwa.ini
    Q_PLUGIN_CLASS="necnwa"
    if [ -n "$NECNWA_L3_PLUGIN" ]; then
        _neutron_service_plugin_class_add $NECNWA_L3_PLUGIN
    fi
    local plugin_conf_src_abspath=${NETWORKING_NEC_DIR}/${Q_PLUGIN_CONF_PATH}
    local plugin_conf_sys_abspath=/${Q_PLUGIN_CONF_PATH}
    mkdir -p ${plugin_conf_sys_abspath}
    cp ${plugin_conf_src_abspath}/${Q_PLUGIN_CONF_FILENAME} ${plugin_conf_sys_abspath}/
    cp ${plugin_conf_src_abspath}/resource_group.json ${plugin_conf_sys_abspath}/
    chmod 0644 /${Q_PLUGIN_CONF_PATH}/${Q_PLUGIN_CONF_FILENAME}
}

function neutron_plugin_configure_service {
    iniset /$Q_PLUGIN_CONF_FILE NWA server_url $NECNWA_SERVER_URL
    iniset /$Q_PLUGIN_CONF_FILE NWA access_key_id $NECNWA_ACCESS_KEY_ID
    iniset /$Q_PLUGIN_CONF_FILE NWA secret_access_key $NECNWA_SECRET_ACCESS_KEY
    iniset /$Q_PLUGIN_CONF_FILE NWA use_necnwa_router $NECNWA_USE_NECNWA_ROUTER
}

# NEC plugin specific functions

function start_nwa_agent {
    run_process nwa-agt "$NEUTRON_BIN_DIR/neutron-necnwa-agent --config-file $NEUTRON_CONF --config-file /$Q_PLUGIN_CONF_FILE"
}

function populate_nwa_database {
    $NEUTRON_BIN_DIR/neutron-db-manage --subproject networking-nec --config-file $NEUTRON_CONF --config-file /$Q_PLUGIN_CONF_FILE upgrade head
}

# Restore xtrace
$NEC_XTRACE
