From 8450a92a4d0299fff89717e665ce31d54731d3f0 Mon Sep 17 00:00:00 2001 From: Paul Michali Date: Wed, 2 Apr 2014 19:12:22 +0000 Subject: [PATCH] Devstack support for Neutron VPNaaS Includes two enhancements to support VPNaaS and allow other vendor implementation support. Goal is to provide a solution for VPN .ini files until a more general solution can be defined to handle all reference and vendor .ini files. First, the /opt/stack/neutron/etc/vpn_agent.ini file is copied to /etc/neutron, to allow the selected device drivers for agent to be specified. Both reference and vendor implementations can be uncommented in this file, prior to stacking. Second, to allow vendor VPN implementations to provide an .ini file to the agent at start-up time, an environment variable is defined and can be set in the localrc to specify one or more .ini files. The desire is NOT to include vendor settings in the global vpn_agent.ini. Change-Id: I5370ee57bbe326eff505a53055da4fddc0838de4 Closes-Bug: 1301552 --- lib/neutron | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/neutron b/lib/neutron index 294fface3d..f110d9eff6 100644 --- a/lib/neutron +++ b/lib/neutron @@ -495,7 +495,7 @@ function start_neutron_agents { L3_CONF_FILES="$L3_CONF_FILES --config-file $Q_FWAAS_CONF_FILE" fi if is_service_enabled q-vpn; then - screen_it q-vpn "cd $NEUTRON_DIR && $AGENT_VPN_BINARY $L3_CONF_FILES" + screen_it q-vpn "cd $NEUTRON_DIR && $AGENT_VPN_BINARY $VPN_CONF_FILES" else screen_it q-l3 "cd $NEUTRON_DIR && python $AGENT_L3_BINARY $L3_CONF_FILES" fi @@ -658,6 +658,7 @@ function _configure_neutron_dhcp_agent { } function _configure_neutron_l3_agent { + local cfg_file Q_L3_ENABLED=True # for l3-agent, only use per tenant router if we have namespaces Q_L3_ROUTER_PER_TENANT=$Q_USE_NAMESPACE @@ -669,6 +670,15 @@ function _configure_neutron_l3_agent { Q_FWAAS_CONF_FILE=$NEUTRON_CONF_DIR/fwaas_driver.ini fi + if is_service_enabled q-vpn; then + Q_VPN_CONF_FILE=$NEUTRON_CONF_DIR/vpn_agent.ini + cp $NEUTRON_DIR/etc/vpn_agent.ini $Q_VPN_CONF_FILE + VPN_CONF_FILES="--config-file $NEUTRON_CONF --config-file=$Q_L3_CONF_FILE --config-file=$Q_VPN_CONF_FILE" + for cfg_file in ${Q_VPN_EXTRA_CONF_FILES[@]}; do + VPN_CONF_FILES+=" --config-file $cfg_file" + done + fi + cp $NEUTRON_DIR/etc/l3_agent.ini $Q_L3_CONF_FILE iniset $Q_L3_CONF_FILE DEFAULT verbose True