#!/bin/bash
#
# Common functions for devstack
# -----------------------------

function create_nova_conf_midonet {
    if [[ "${MIDONET_USE_METADATA}" == "True" ]]; then
        iniset $NOVA_CONF neutron service_metadata_proxy "True"
        if is_service_enabled n-cells; then
            iniset $NOVA_CELLS_CONF neutron service_metadata_proxy "True"
        fi
    fi
}

function neutron_plugin_create_nova_conf {
    :
}

function is_neutron_ovs_base_plugin {
    # 0 means True here
    return 1
}

function neutron_plugin_configure_debug_command {
    :
}

function neutron_plugin_install_agent_packages {
    :
}

function neutron_plugin_configure_dhcp_agent {
    DHCP_DRIVER=${DHCP_DRIVER:-"midonet.neutron.agent.midonet_driver.DhcpNoOpDriver"}
    neutron_plugin_setup_interface_driver $Q_DHCP_CONF_FILE
    iniset $Q_DHCP_CONF_FILE DEFAULT dhcp_driver $DHCP_DRIVER
    iniset $Q_DHCP_CONF_FILE DEFAULT use_namespaces True
    iniset $Q_DHCP_CONF_FILE DEFAULT enable_isolated_metadata True
}

function configure_midonet_cli {
    local MIDONETRC_FILE="${HOME}/.midonetrc"

    iniset $MIDONETRC_FILE cli api_url $MIDONET_API_URL
    iniset $MIDONETRC_FILE cli username admin
    iniset $MIDONETRC_FILE cli password $ADMIN_PASSWORD
    iniset $MIDONETRC_FILE cli project_id admin
}

function tweak_neutron_initial_network_for_midonet {
    # Set up IPv6 public subnet for fip64

    # REVISIT(yamamoto): clear the gateway during subnet creation because
    # we don't support updating fixed-ips on the gw port.
    openstack --os-cloud devstack-admin \
        --os-region "$REGION_NAME" \
        router unset \
        --external-gateway \
        $ROUTER_ID

    source $TOP_DIR/lib/neutron_plugins/services/l3
    _neutron_create_public_subnet_v6 $EXT_NET_ID

    openstack --os-cloud devstack-admin \
        --os-region "$REGION_NAME" \
        router set \
        --external-gateway $EXT_NET_ID \
        $ROUTER_ID
}
