neutron-vpn-agent fails to start post-upgrade
Bug #1355429 reported by
Adam Gandelman
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
devstack |
Fix Released
|
Undecided
|
Adam Gandelman | ||
grenade |
Invalid
|
Undecided
|
Unassigned |
Bug Description
Attempting to run a grenade test against a neutron-enabled cloud, ends up with the neutron-vpn-agent failing to start on the target side:
$ cd /opt/stack/
2014-08-11 13:14:49.514 7949 ERROR neutron.
q-vpn failed to start
It appears the required '--config-file /etc/neutron/
Changed in devstack: | |
assignee: | nobody → Adam Gandelman (gandelman-a) |
status: | New → In Progress |
To post a comment you must log in.
This is similar to https:/ /bugs.launchpad .net/devstack/ +bug/1310858.
lib/neutron is a bit of a mess and the dependencies between the functions that start services and those that configure them is very unclear. Many of the files default config paths as well as the arguments that get passed to service binaries get set within configuration functions and later re-used by those that start functions. With grenade importing lib/neutron and only calling the latter start functions on the far side of the upgrade, it loses some required context. Ie, in the case of this bug the vpn agent must be passed '-$L3_CONF_FILES':
function start_neutron_ agents {
L3_CONF_ FILES=" $L3_CONF_ FILES --config-file $Q_FWAAS_CONF_FILE"
VPN_CONF_ FILES=" $VPN_CONF_ FILES --config-file $Q_FWAAS_CONF_FILE"
...
if is_service_enabled q-fwaas; then
fi
if is_service_enabled q-vpn; then
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
....
}
function _configure_ neutron_ l3_agent {
Q_VPN_ CONF_FILE= $NEUTRON_ CONF_DIR/ vpn_agent. ini 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" EXTRA_CONF_ FILES[@ ]}; do
VPN_ CONF_FILES+ =" --config-file $cfg_file"
...
if is_service_enabled q-vpn; then
cp $NEUTRON_
for cfg_file in ${Q_VPN_
done
}
grenade does not call the configure code as part of the upgrade, and hence the agent never receives proper arguments on post-upgrade restart.