|
...
|
...
|
@@ -85,6 +85,20 @@ NEUTRON_CONF_DIR=/etc/neutron
|
|
85
|
85
|
NEUTRON_CONF=$NEUTRON_CONF_DIR/neutron.conf
|
|
86
|
86
|
export NEUTRON_TEST_CONFIG_FILE=${NEUTRON_TEST_CONFIG_FILE:-"$NEUTRON_CONF_DIR/debug.ini"}
|
|
87
|
87
|
|
|
|
88
|
+# Agent binaries. Note, binary paths for other agents are set in per-service
|
|
|
89
|
+# scripts in lib/neutron_plugins/services/
|
|
|
90
|
+AGENT_DHCP_BINARY="$NEUTRON_BIN_DIR/neutron-dhcp-agent"
|
|
|
91
|
+AGENT_L3_BINARY=${AGENT_L3_BINARY:-"$NEUTRON_BIN_DIR/neutron-l3-agent"}
|
|
|
92
|
+AGENT_META_BINARY="$NEUTRON_BIN_DIR/neutron-metadata-agent"
|
|
|
93
|
+
|
|
|
94
|
+# Agent config files. Note, plugin-specific Q_PLUGIN_CONF_FILE is set and
|
|
|
95
|
+# loaded from per-plugin scripts in lib/neutron_plugins/
|
|
|
96
|
+Q_DHCP_CONF_FILE=$NEUTRON_CONF_DIR/dhcp_agent.ini
|
|
|
97
|
+Q_L3_CONF_FILE=$NEUTRON_CONF_DIR/l3_agent.ini
|
|
|
98
|
+Q_FWAAS_CONF_FILE=$NEUTRON_CONF_DIR/fwaas_driver.ini
|
|
|
99
|
+Q_VPN_CONF_FILE=$NEUTRON_CONF_DIR/vpn_agent.ini
|
|
|
100
|
+Q_META_CONF_FILE=$NEUTRON_CONF_DIR/metadata_agent.ini
|
|
|
101
|
+
|
|
88
|
102
|
# Default name for Neutron database
|
|
89
|
103
|
Q_DB_NAME=${Q_DB_NAME:-neutron}
|
|
90
|
104
|
# Default Neutron Plugin
|
|
...
|
...
|
@@ -290,6 +304,51 @@ set +o xtrace
|
|
290
|
290
|
# Functions
|
|
291
|
291
|
# ---------
|
|
292
|
292
|
|
|
|
293
|
+function _determine_config_server {
|
|
|
294
|
+ local cfg_file
|
|
|
295
|
+ local opts="--config-file $NEUTRON_CONF --config-file /$Q_PLUGIN_CONF_FILE"
|
|
|
296
|
+ for cfg_file in ${Q_PLUGIN_EXTRA_CONF_FILES[@]}; do
|
|
|
297
|
+ opts+=" --config-file /$cfg_file"
|
|
|
298
|
+ done
|
|
|
299
|
+ echo "$opts"
|
|
|
300
|
+}
|
|
|
301
|
+
|
|
|
302
|
+function _determine_config_vpn {
|
|
|
303
|
+ local cfg_file
|
|
|
304
|
+ local opts="--config-file $NEUTRON_CONF --config-file=$Q_L3_CONF_FILE --config-file=$Q_VPN_CONF_FILE"
|
|
|
305
|
+ if is_service_enabled q-fwaas; then
|
|
|
306
|
+ opts+=" --config-file $Q_FWAAS_CONF_FILE"
|
|
|
307
|
+ fi
|
|
|
308
|
+ for cfg_file in ${Q_VPN_EXTRA_CONF_FILES[@]}; do
|
|
|
309
|
+ opts+=" --config-file $cfg_file"
|
|
|
310
|
+ done
|
|
|
311
|
+ echo "$opts"
|
|
|
312
|
+
|
|
|
313
|
+}
|
|
|
314
|
+
|
|
|
315
|
+function _determine_config_l3 {
|
|
|
316
|
+ local opts="--config-file $NEUTRON_CONF --config-file=$Q_L3_CONF_FILE"
|
|
|
317
|
+ if is_service_enabled q-fwaas; then
|
|
|
318
|
+ opts+=" --config-file $Q_FWAAS_CONF_FILE"
|
|
|
319
|
+ fi
|
|
|
320
|
+ echo "$opts"
|
|
|
321
|
+}
|
|
|
322
|
+
|
|
|
323
|
+# For services and agents that require it, dynamically construct a list of
|
|
|
324
|
+# --config-file arguments that are passed to the binary.
|
|
|
325
|
+function determine_config_files {
|
|
|
326
|
+ local opts=""
|
|
|
327
|
+ case "$1" in
|
|
|
328
|
+ "neutron-server") opts="$(_determine_config_server)" ;;
|
|
|
329
|
+ "neutron-vpn-agent") opts="$(_determine_config_vpn)" ;;
|
|
|
330
|
+ "neutron-l3-agent") opts="$(_determine_config_l3)" ;;
|
|
|
331
|
+ esac
|
|
|
332
|
+ if [ -z "$opts" ] ; then
|
|
|
333
|
+ die $LINENO "Could not determine config files for $1."
|
|
|
334
|
+ fi
|
|
|
335
|
+ echo "$opts"
|
|
|
336
|
+}
|
|
|
337
|
+
|
|
293
|
338
|
# Test if any Neutron services are enabled
|
|
294
|
339
|
# is_neutron_enabled
|
|
295
|
340
|
function is_neutron_enabled {
|
|
...
|
...
|
@@ -530,14 +589,9 @@ function install_neutron_agent_packages {
|
|
530
|
530
|
|
|
531
|
531
|
# Start running processes, including screen
|
|
532
|
532
|
function start_neutron_service_and_check {
|
|
533
|
|
- # build config-file options
|
|
534
|
|
- local cfg_file
|
|
535
|
|
- local CFG_FILE_OPTIONS="--config-file $NEUTRON_CONF --config-file /$Q_PLUGIN_CONF_FILE"
|
|
536
|
|
- for cfg_file in ${Q_PLUGIN_EXTRA_CONF_FILES[@]}; do
|
|
537
|
|
- CFG_FILE_OPTIONS+=" --config-file /$cfg_file"
|
|
538
|
|
- done
|
|
|
533
|
+ local cfg_file_options="$(determine_config_files neutron-server)"
|
|
539
|
534
|
# Start the Neutron service
|
|
540
|
|
- screen_it q-svc "cd $NEUTRON_DIR && python $NEUTRON_BIN_DIR/neutron-server $CFG_FILE_OPTIONS"
|
|
|
535
|
+ screen_it q-svc "cd $NEUTRON_DIR && python $NEUTRON_BIN_DIR/neutron-server $cfg_file_options"
|
|
541
|
536
|
echo "Waiting for Neutron to start..."
|
|
542
|
537
|
if ! timeout $SERVICE_TIMEOUT sh -c "while ! wget --no-proxy -q -O- http://$Q_HOST:$Q_PORT; do sleep 1; done"; then
|
|
543
|
538
|
die $LINENO "Neutron did not start"
|
|
...
|
...
|
@@ -550,8 +604,6 @@ function start_neutron_agents {
|
|
550
|
550
|
screen_it q-agt "cd $NEUTRON_DIR && python $AGENT_BINARY --config-file $NEUTRON_CONF --config-file /$Q_PLUGIN_CONF_FILE"
|
|
551
|
551
|
screen_it q-dhcp "cd $NEUTRON_DIR && python $AGENT_DHCP_BINARY --config-file $NEUTRON_CONF --config-file=$Q_DHCP_CONF_FILE"
|
|
552
|
552
|
|
|
553
|
|
- L3_CONF_FILES="--config-file $NEUTRON_CONF --config-file=$Q_L3_CONF_FILE"
|
|
554
|
|
-
|
|
555
|
553
|
if is_provider_network; then
|
|
556
|
554
|
sudo ovs-vsctl add-port $OVS_PHYSICAL_BRIDGE $PUBLIC_INTERFACE
|
|
557
|
555
|
sudo ip link set $OVS_PHYSICAL_BRIDGE up
|
|
...
|
...
|
@@ -559,14 +611,10 @@ function start_neutron_agents {
|
|
559
|
559
|
sudo ip link set $PUBLIC_INTERFACE up
|
|
560
|
560
|
fi
|
|
561
|
561
|
|
|
562
|
|
- if is_service_enabled q-fwaas; then
|
|
563
|
|
- L3_CONF_FILES="$L3_CONF_FILES --config-file $Q_FWAAS_CONF_FILE"
|
|
564
|
|
- VPN_CONF_FILES="$VPN_CONF_FILES --config-file $Q_FWAAS_CONF_FILE"
|
|
565
|
|
- fi
|
|
566
|
562
|
if is_service_enabled q-vpn; then
|
|
567
|
|
- screen_it q-vpn "cd $NEUTRON_DIR && $AGENT_VPN_BINARY $VPN_CONF_FILES"
|
|
|
563
|
+ screen_it q-vpn "cd $NEUTRON_DIR && $AGENT_VPN_BINARY $(determine_config_files neutron-vpn-agent)"
|
|
568
|
564
|
else
|
|
569
|
|
- screen_it q-l3 "cd $NEUTRON_DIR && python $AGENT_L3_BINARY $L3_CONF_FILES"
|
|
|
565
|
+ screen_it q-l3 "cd $NEUTRON_DIR && python $AGENT_L3_BINARY $(determine_config_files neutron-l3-agent)"
|
|
570
|
566
|
fi
|
|
571
|
567
|
|
|
572
|
568
|
screen_it q-meta "cd $NEUTRON_DIR && python $AGENT_META_BINARY --config-file $NEUTRON_CONF --config-file=$Q_META_CONF_FILE"
|
|
...
|
...
|
@@ -703,8 +751,6 @@ function _configure_neutron_debug_command {
|
|
703
|
703
|
}
|
|
704
|
704
|
|
|
705
|
705
|
function _configure_neutron_dhcp_agent {
|
|
706
|
|
- AGENT_DHCP_BINARY="$NEUTRON_BIN_DIR/neutron-dhcp-agent"
|
|
707
|
|
- Q_DHCP_CONF_FILE=$NEUTRON_CONF_DIR/dhcp_agent.ini
|
|
708
|
706
|
|
|
709
|
707
|
cp $NEUTRON_DIR/etc/dhcp_agent.ini $Q_DHCP_CONF_FILE
|
|
710
|
708
|
|
|
...
|
...
|
@@ -724,20 +770,8 @@ function _configure_neutron_l3_agent {
|
|
724
|
724
|
# for l3-agent, only use per tenant router if we have namespaces
|
|
725
|
725
|
Q_L3_ROUTER_PER_TENANT=$Q_USE_NAMESPACE
|
|
726
|
726
|
|
|
727
|
|
- AGENT_L3_BINARY=${AGENT_L3_BINARY:-"$NEUTRON_BIN_DIR/neutron-l3-agent"}
|
|
728
|
|
- Q_L3_CONF_FILE=$NEUTRON_CONF_DIR/l3_agent.ini
|
|
729
|
|
-
|
|
730
|
|
- if is_service_enabled q-fwaas; then
|
|
731
|
|
- Q_FWAAS_CONF_FILE=$NEUTRON_CONF_DIR/fwaas_driver.ini
|
|
732
|
|
- fi
|
|
733
|
|
-
|
|
734
|
727
|
if is_service_enabled q-vpn; then
|
|
735
|
|
- Q_VPN_CONF_FILE=$NEUTRON_CONF_DIR/vpn_agent.ini
|
|
736
|
728
|
cp $NEUTRON_DIR/etc/vpn_agent.ini $Q_VPN_CONF_FILE
|
|
737
|
|
- VPN_CONF_FILES="--config-file $NEUTRON_CONF --config-file=$Q_L3_CONF_FILE --config-file=$Q_VPN_CONF_FILE"
|
|
738
|
|
- for cfg_file in ${Q_VPN_EXTRA_CONF_FILES[@]}; do
|
|
739
|
|
- VPN_CONF_FILES+=" --config-file $cfg_file"
|
|
740
|
|
- done
|
|
741
|
729
|
fi
|
|
742
|
730
|
|
|
743
|
731
|
cp $NEUTRON_DIR/etc/l3_agent.ini $Q_L3_CONF_FILE
|
|
...
|
...
|
@@ -753,9 +787,6 @@ function _configure_neutron_l3_agent {
|
|
753
|
753
|
}
|
|
754
|
754
|
|
|
755
|
755
|
function _configure_neutron_metadata_agent {
|
|
756
|
|
- AGENT_META_BINARY="$NEUTRON_BIN_DIR/neutron-metadata-agent"
|
|
757
|
|
- Q_META_CONF_FILE=$NEUTRON_CONF_DIR/metadata_agent.ini
|
|
758
|
|
-
|
|
759
|
756
|
cp $NEUTRON_DIR/etc/metadata_agent.ini $Q_META_CONF_FILE
|
|
760
|
757
|
|
|
761
|
758
|
iniset $Q_META_CONF_FILE DEFAULT verbose True
|