-#!/bin/sh
+#!/bin/bash
#
# neutron-dhcp-agent OpenStack Neutron DHCP Agent
#
plugin=dhcp-agent
prog=$proj-$plugin
exec="/usr/bin/$prog"
-config="/etc/$proj/dhcp_agent.ini"
+configs=(
+ "/usr/share/$proj/$proj-dist.conf" \
+ "/etc/$proj/$proj.conf" \
+ "/etc/$proj/dhcp_agent.ini" \
+)
pidfile="/var/run/$proj/$prog.pid"
[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
start() {
[ -x $exec ] || exit 5
- [ -f $config ] || exit 6
+ for config in ${configs[@]}; do
+ [ -f $config ] || exit 6
+ done
echo -n $"Starting $prog: "
- daemon --user neutron --pidfile $pidfile "$exec --log-file /var/log/$proj/$plugin.log --config-file /etc/$proj/$proj.conf --config-file $config &>/dev/null & echo \$! > $pidfile"
+ daemon --user neutron --pidfile $pidfile "$exec --log-file /var/log/$proj/$plugin.log ${configs[@]/#/--config-file } &>/dev/null & echo \$! > $pidfile"
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
respawn
-exec su -s /bin/sh -c "exec /usr/bin/neutron-dhcp-agent --log-file /var/log/neutron/dhcp-agent.log --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/dhcp_agent.ini" neutron
+exec su -s /bin/sh -c "exec /usr/bin/neutron-dhcp-agent --log-file /var/log/neutron/dhcp-agent.log --config-file /usr/share/neutron/neutron-dist.conf --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/dhcp_agent.ini" neutron
--- /dev/null
+[DEFAULT]
+verbose = True
+lock_path = $state_path/lock
+auth_strategy = noauth
+notification_driver = neutron.openstack.common.notifier.rpc_notifier
+rpc_backend = quantum.openstack.common.rpc.impl_qpid
+allow_overlapping_ips = True
+
+[quotas]
+
+[agent]
+root_helper = sudo quantum-rootwrap /etc/quantum/rootwrap.conf
+
+[keystone_authtoken]
+auth_host = 127.0.0.1
+auth_port = 35357
+auth_protocol = http
+admin_tenant_name = %SERVICE_TENANT_NAME%
+admin_user = %SERVICE_USER%
+admin_password = %SERVICE_PASSWORD%
+signing_dir = $state_path/keystone-signing
+
+[database]
+max_pool_size = 10
+max_overflow = 20
+pool_timeout = 10
+
+[service_providers]
+service_provider = LOADBALANCER:Haproxy:neutron.services.loadbalancer.drivers.haproxy.plugin_driver.HaproxyOnHostPluginDriver:default
-#!/bin/sh
+#!/bin/bash
#
# neutron-l3-agent OpenStack Neutron Layer 3 Agent
#
plugin=l3-agent
prog=$proj-$plugin
exec="/usr/bin/$prog"
-config="/etc/$proj/l3_agent.ini"
+configs=(
+ "/usr/share/$proj/$proj-dist.conf" \
+ "/etc/$proj/$proj.conf" \
+ "/etc/$proj/l3_agent.ini" \
+)
pidfile="/var/run/$proj/$prog.pid"
[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
start() {
[ -x $exec ] || exit 5
- [ -f $config ] || exit 6
+ for config in ${configs[@]}; do
+ [ -f $config ] || exit 6
+ done
echo -n $"Starting $prog: "
- daemon --user neutron --pidfile $pidfile "$exec --log-file /var/log/$proj/$plugin.log --config-file /etc/$proj/$proj.conf --config-file $config &>/dev/null & echo \$! > $pidfile"
+ daemon --user neutron --pidfile $pidfile "$exec --log-file /var/log/$proj/$plugin.log ${configs[@]/#/--config-file } &>/dev/null & echo \$! > $pidfile"
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
respawn
-exec su -s /bin/sh -c "exec /usr/bin/neutron-l3-agent --log-file /var/log/neutron/l3-agent.log --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/l3_agent.ini" neutron
+exec su -s /bin/sh -c "exec /usr/bin/neutron-l3-agent --log-file /var/log/neutron/l3-agent.log --config-file /usr/share/neutron/neutron-dist.conf --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/l3_agent.ini" neutron
-#!/bin/sh
+#!/bin/bash
#
# neutron-lbaas-agent OpenStack Neutron LBaaS Agent
#
plugin=lbaas-agent
prog=$proj-$plugin
exec="/usr/bin/$prog"
-config="/etc/$proj/lbaas_agent.ini"
+configs=(
+ "/usr/share/$proj/$proj-dist.conf" \
+ "/etc/$proj/$proj.conf" \
+ "/etc/$proj/lbaas_agent.ini" \
+)
pidfile="/var/run/$proj/$prog.pid"
[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
start() {
[ -x $exec ] || exit 5
- [ -f $config ] || exit 6
+ for config in ${configs[@]}; do
+ [ -f $config ] || exit 6
+ done
echo -n $"Starting $prog: "
- daemon --user neutron --pidfile $pidfile "$exec --log-file /var/log/$proj/$plugin.log --config-file /etc/$proj/$proj.conf --config-file $config &>/dev/null & echo \$! > $pidfile"
+ daemon --user neutron --pidfile $pidfile "$exec --log-file /var/log/$proj/$plugin.log ${configs[@]/#/--config-file } &>/dev/null & echo \$! > $pidfile"
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
respawn
-exec su -s /bin/sh -c "exec /usr/bin/neutron-lbaas-agent --log-file /var/log/neutron/lbaas-agent.log --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/lbaas_agent.ini" neutron
+exec su -s /bin/sh -c "exec /usr/bin/neutron-lbaas-agent --log-file /var/log/neutron/lbaas-agent.log --config-file /usr/share/neutron/neutron-dist.conf --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/lbaas_agent.ini" neutron
-#!/bin/sh
+#!/bin/bash
#
# neutron-linuxbridge-agent OpenStack linuxbridge plugin
#
plugin=linuxbridge-agent
prog=$proj-$plugin
exec="/usr/bin/$prog"
-config="/etc/$proj/plugins/linuxbridge/linuxbridge_conf.ini"
+configs=(
+ "/usr/share/$proj/$proj-dist.conf" \
+ "/etc/$proj/$proj.conf" \
+ "/etc/$proj/plugins/linuxbridge/linuxbridge_conf.ini" \
+)
pidfile="/var/run/$proj/$prog.pid"
[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
start() {
[ -x $exec ] || exit 5
- [ -f $config ] || exit 6
+ for config in ${configs[@]}; do
+ [ -f $config ] || exit 6
+ done
echo -n $"Starting $prog: "
- daemon --user neutron --pidfile $pidfile "$exec --log-file /var/log/$proj/$plugin.log --config-file /etc/$proj/$proj.conf --config-file $config &>/dev/null & echo \$! > $pidfile"
+ daemon --user neutron --pidfile $pidfile "$exec --log-file /var/log/$proj/$plugin.log ${configs[@]/#/--config-file } &>/dev/null & echo \$! > $pidfile"
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
respawn
-exec su -s /bin/sh -c "exec /usr/bin/neutron-linuxbridge-agent --log-file /var/log/neutron/linuxbridge-agent.log --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/linuxbridge/linuxbridge_conf.ini" neutron
+exec su -s /bin/sh -c "exec /usr/bin/neutron-linuxbridge-agent --log-file /var/log/neutron/linuxbridge-agent.log --config-file /usr/share/neutron/neutron-dist.conf --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/linuxbridge/linuxbridge_conf.ini" neutron
-#!/bin/sh
+#!/bin/bash
#
# neutron-metadata-agent OpenStack Neutron Metadata Agent
#
plugin=metadata-agent
prog=$proj-$plugin
exec="/usr/bin/$prog"
-config="/etc/$proj/metadata_agent.ini"
+configs=(
+ "/usr/share/$proj/$proj-dist.conf" \
+ "/etc/$proj/$proj.conf" \
+ "/etc/$proj/metadata_agent.ini" \
+)
pidfile="/var/run/$proj/$prog.pid"
[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
start() {
[ -x $exec ] || exit 5
- [ -f $config ] || exit 6
+ for config in ${configs[@]}; do
+ [ -f $config ] || exit 6
+ done
echo -n $"Starting $prog: "
- daemon --user neutron --pidfile $pidfile "$exec --log-file /var/log/$proj/$plugin.log --config-file /etc/$proj/$proj.conf --config-file $config &>/dev/null & echo \$! > $pidfile"
+ daemon --user neutron --pidfile $pidfile "$exec --log-file /var/log/$proj/$plugin.log ${configs[@]/#/--config-file } &>/dev/null & echo \$! > $pidfile"
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
respawn
-exec su -s /bin/sh -c "exec /usr/bin/neutron-metadata-agent --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/metadata_agent.ini --log-file /var/log/neutron/metadata-agent.log" neutron
+exec su -s /bin/sh -c "exec /usr/bin/neutron-metadata-agent --config-file /usr/share/neutron/neutron-dist.conf --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/metadata_agent.ini --log-file /var/log/neutron/metadata-agent.log" neutron
--- /dev/null
+#!/bin/bash
+#
+# neutron-metering-agent OpenStack Neutron Metering Agent
+#
+# chkconfig: - 98 02
+# description: OpenStack Neutron Metering Agent
+### END INIT INFO
+
+. /etc/rc.d/init.d/functions
+
+proj=neutron
+plugin=metering-agent
+prog=$proj-$plugin
+exec="/usr/bin/$prog"
+configs=(
+ "/usr/share/$proj/$proj-dist.conf" \
+ "/etc/$proj/$proj.conf" \
+ "/etc/$proj/metering_agent.ini" \
+)
+pidfile="/var/run/$proj/$prog.pid"
+
+[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
+
+lockfile=/var/lock/subsys/$prog
+
+start() {
+ [ -x $exec ] || exit 5
+ for config in ${configs[@]}; do
+ [ -f $config ] || exit 6
+ done
+ echo -n $"Starting $prog: "
+ daemon --user neutron --pidfile $pidfile "$exec --log-file /var/log/$proj/$plugin.log ${configs[@]/#/--config-file } &>/dev/null & echo \$! > $pidfile"
+ retval=$?
+ echo
+ [ $retval -eq 0 ] && touch $lockfile
+ return $retval
+}
+
+stop() {
+ echo -n $"Stopping $prog: "
+ killproc -p $pidfile $prog
+ retval=$?
+ echo
+ [ $retval -eq 0 ] && rm -f $lockfile
+ return $retval
+}
+
+restart() {
+ stop
+ start
+}
+
+reload() {
+ restart
+}
+
+force_reload() {
+ restart
+}
+
+rh_status() {
+ status -p $pidfile $prog
+}
+
+rh_status_q() {
+ rh_status >/dev/null 2>&1
+}
+
+
+case "$1" in
+ start)
+ rh_status_q && exit 0
+ $1
+ ;;
+ stop)
+ rh_status_q || exit 0
+ $1
+ ;;
+ restart)
+ $1
+ ;;
+ reload)
+ rh_status_q || exit 7
+ $1
+ ;;
+ force-reload)
+ force_reload
+ ;;
+ status)
+ rh_status
+ ;;
+ condrestart|try-restart)
+ rh_status_q || exit 0
+ restart
+ ;;
+ *)
+ echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
+ exit 2
+esac
+exit $?
--- /dev/null
+description "OpenStack Neutron Metering Agent"
+
+start on stopped rc RUNLEVEL=[2345]
+stop on runlevel [S016]
+
+respawn
+
+exec su -s /bin/sh -c "exec /usr/bin/neutron-metering-agent --log-file /var/log/neutron/metering-agent.log --config-file /usr/share/neutron/neutron-dist.conf --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/metering_agent.ini" neutron
-#!/bin/sh
+#!/bin/bash
#
# neutron-mlnx-agent OpenStack Neutron Mellanox Agent
#
plugin=mlnx-agent
prog=$proj-$plugin
exec="/usr/bin/$prog"
-config="/etc/$proj/plugins/mlnx/mlnx_conf.ini"
+configs=(
+ "/usr/share/$proj/$proj-dist.conf" \
+ "/etc/$proj/$proj.conf" \
+ "/etc/$proj/plugins/mlnx/mlnx_conf.ini" \
+)
pidfile="/var/run/$proj/$prog.pid"
[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
start() {
[ -x $exec ] || exit 5
- [ -f $config ] || exit 6
+ for config in ${configs[@]}; do
+ [ -f $config ] || exit 6
+ done
echo -n $"Starting $prog: "
- daemon --user neutron --pidfile $pidfile "$exec --log-file /var/log/$proj/$plugin.log --config-file /etc/$proj/$proj.conf --config-file $config &>/dev/null & echo \$! > $pidfile"
+ daemon --user neutron --pidfile $pidfile "$exec --log-file /var/log/$proj/$plugin.log ${configs[@]/#/--config-file } &>/dev/null & echo \$! > $pidfile"
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
respawn
-exec su -s /bin/sh -c "exec /usr/bin/neutron-mlnx-agent --log-file /var/log/neutron/mlnx-agent.log --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/mlnx/mlnx_conf.ini" neutron
+exec su -s /bin/sh -c "exec /usr/bin/neutron-mlnx-agent --log-file /var/log/neutron/mlnx-agent.log --config-file /usr/share/neutron/neutron-dist.conf --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/mlnx/mlnx_conf.ini" neutron
-#!/bin/sh
+#!/bin/bash
#
# neutron-nec-agent OpenStack Neutron NEC OpenFlow Agent
#
plugin=nec-agent
prog=$proj-$plugin
exec="/usr/bin/$prog"
-config="/etc/$proj/plugins/nec/nec.ini"
+configs=(
+ "/usr/share/$proj/$proj-dist.conf" \
+ "/etc/$proj/$proj.conf" \
+ "/etc/$proj/plugins/nec/nec.ini" \
+)
pidfile="/var/run/$proj/$prog.pid"
[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
start() {
[ -x $exec ] || exit 5
- [ -f $config ] || exit 6
+ for config in ${configs[@]}; do
+ [ -f $config ] || exit 6
+ done
echo -n $"Starting $prog: "
- daemon --user neutron --pidfile $pidfile "$exec --log-file /var/log/$proj/$plugin.log --config-file /etc/$proj/$proj.conf --config-file $config &>/dev/null & echo \$! > $pidfile"
+ daemon --user neutron --pidfile $pidfile "$exec --log-file /var/log/$proj/$plugin.log ${configs[@]/#/--config-file } &>/dev/null & echo \$! > $pidfile"
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
respawn
-exec su -s /bin/sh -c "exec /usr/bin/neutron-nec-agent --log-file /var/log/neutron/nec-agent.log --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/nec/nec.ini" neutron
+exec su -s /bin/sh -c "exec /usr/bin/neutron-nec-agent --log-file /var/log/neutron/nec-agent.log --config-file /usr/share/neutron/neutron-dist.conf --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/nec/nec.ini" neutron
-#!/bin/sh
+#!/bin/bash
#
# neutron-openvswitch-agent OpenStack Open vSwitch plugin
#
plugin=openvswitch-agent
prog=$proj-$plugin
exec="/usr/bin/$prog"
-config="/etc/$proj/plugins/openvswitch/ovs_neutron_plugin.ini"
+configs=(
+ "/usr/share/$proj/$proj-dist.conf" \
+ "/etc/$proj/$proj.conf" \
+ "/etc/$proj/plugins/openvswitch/ovs_neutron_plugin.ini" \
+)
pidfile="/var/run/$proj/$prog.pid"
[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
start() {
[ -x $exec ] || exit 5
- [ -f $config ] || exit 6
+ for config in ${configs[@]}; do
+ [ -f $config ] || exit 6
+ done
echo -n $"Starting $prog: "
- daemon --user neutron --pidfile $pidfile "$exec --log-file /var/log/$proj/$plugin.log --config-file /etc/$proj/$proj.conf --config-file $config &>/dev/null & echo \$! > $pidfile"
+ daemon --user neutron --pidfile $pidfile "$exec --log-file /var/log/$proj/$plugin.log ${configs[@]/#/--config-file } &>/dev/null & echo \$! > $pidfile"
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
respawn
-exec su -s /bin/sh -c "exec /usr/bin/neutron-openvswitch-agent --log-file /var/log/neutron/openvswitch-agent.log --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini" neutron
+exec su -s /bin/sh -c "exec /usr/bin/neutron-openvswitch-agent --log-file /var/log/neutron/openvswitch-agent.log --config-file /usr/share/neutron/neutron-dist.conf --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini" neutron
-#!/bin/sh
+#!/bin/bash
#
# neutron-ovs-cleanup OpenStack Open vSwitch cleanup utility
#
prog=$proj-ovs-cleanup
exec="/usr/bin/$prog"
pidfile="/var/run/$proj/$prog.pid"
-config="/etc/$proj/plugins/openvswitch/ovs_neutron_plugin.ini"
+configs=(
+ "/usr/share/$proj/$proj-dist.conf" \
+ "/etc/$proj/$proj.conf" \
+ "/etc/$proj/plugins/openvswitch/ovs_neutron_plugin.ini" \
+)
[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
start() {
[ -x $exec ] || exit 5
- [ -f $config ] || exit 6
- daemon --user neutron $exec --log-file /var/log/$proj/ovs-cleanup.log --config-file /etc/$proj/$proj.conf --config-file $config &>/dev/null
+ for config in ${configs[@]}; do
+ [ -f $config ] || exit 6
+ done
+ daemon --user neutron $exec --log-file /var/log/$proj/ovs-cleanup.log ${configs[@]/#/--config-file } &>/dev/null
retval=$?
[ $retval -eq 0 ] && touch $lockfile
return $retval
task
-exec su -s /bin/sh -c "exec /usr/bin/neutron-ovs-cleanup --log-file /var/log/neutron/ovs-cleanup.log --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini" neutron
+exec su -s /bin/sh -c "exec /usr/bin/neutron-ovs-cleanup --log-file /var/log/neutron/ovs-cleanup.log --config-file /usr/share/neutron/neutron-dist.conf --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini" neutron
-#!/bin/sh
+#!/bin/bash
#
# neutron-ryu-agent OpenStack Ryu Network OS plugin
#
plugin=ryu-agent
prog=$proj-$plugin
exec="/usr/bin/$prog"
-config="/etc/$proj/plugins/ryu/ryu.ini"
+configs=(
+ "/usr/share/$proj/$proj-dist.conf" \
+ "/etc/$proj/$proj.conf" \
+ "/etc/$proj/plugins/ryu/ryu.ini" \
+)
pidfile="/var/run/$proj/$prog.pid"
[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
start() {
[ -x $exec ] || exit 5
- [ -f $config ] || exit 6
+ for config in ${configs[@]}; do
+ [ -f $config ] || exit 6
+ done
echo -n $"Starting $prog: "
- daemon --user neutron --pidfile $pidfile "$exec --log-file /var/log/$proj/$plugin.log --config-file /etc/$proj/$proj.conf --config-file $config &>/dev/null & echo \$! > $pidfile"
+ daemon --user neutron --pidfile $pidfile "$exec --log-file /var/log/$proj/$plugin.log ${configs[@]/#/--config-file } &>/dev/null & echo \$! > $pidfile"
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
respawn
-exec su -s /bin/sh -c "exec /usr/bin/neutron-ryu-agent --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ryu/ryu.ini --log-file /var/log/neutron/ryu-agent.log" neutron
+exec su -s /bin/sh -c "exec /usr/bin/neutron-ryu-agent --config-file /usr/share/neutron/neutron-dist.conf --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ryu/ryu.ini --log-file /var/log/neutron/ryu-agent.log" neutron
-#!/bin/sh
+#!/bin/bash
#
# neutron OpenStack Software Defined Networking Service
#
prog=neutron
exec="/usr/bin/$prog-server"
-config="/etc/$prog/$prog.conf"
+configs=(
+ "/usr/share/$prog/$prog-dist.conf" \
+ "/etc/$prog/$prog.conf" \
+ "/etc/$prog/plugin.ini" \
+)
pidfile="/var/run/$prog/$prog.pid"
logfile="/var/log/$prog/server.log"
start() {
[ -x $exec ] || exit 5
- [ -f $config ] || exit 6
+ for config in ${configs[@]}; do
+ [ -f $config ] || exit 6
+ done
echo -n $"Starting $prog: "
- daemon --user neutron --pidfile $pidfile "$exec --config-file $config --config-file /etc/$prog/plugin.ini --log-file $logfile &>/dev/null & echo \$! > $pidfile"
+ daemon --user neutron --pidfile $pidfile "$exec ${configs[@]/#/--config-file } --log-file $logfile &>/dev/null & echo \$! > $pidfile"
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
respawn
-exec su -s /bin/sh -c "exec /usr/bin/neutron-server --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugin.ini --log-file /var/log/neutron/server.log" neutron
+exec su -s /bin/sh -c "exec /usr/bin/neutron-server --config-file /usr/share/neutron/neutron-dist.conf --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugin.ini --log-file /var/log/neutron/server.log" neutron
--- /dev/null
+#!/bin/bash
+#
+# neutron-vpn-agent OpenStack Neutron VPN Agent
+#
+# chkconfig: - 98 02
+# description: OpenStack Neutron VPN Agent
+### END INIT INFO
+
+. /etc/rc.d/init.d/functions
+
+proj=neutron
+plugin=vpn-agent
+prog=$proj-$plugin
+exec="/usr/bin/$prog"
+configs=(
+ "/usr/share/$proj/$proj-dist.conf" \
+ "/etc/$proj/$proj.conf" \
+ "/etc/$proj/vpn_agent.ini" \
+)
+pidfile="/var/run/$proj/$prog.pid"
+
+[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
+
+lockfile=/var/lock/subsys/$prog
+
+start() {
+ [ -x $exec ] || exit 5
+ for config in ${configs[@]}; do
+ [ -f $config ] || exit 6
+ done
+ echo -n $"Starting $prog: "
+ daemon --user neutron --pidfile $pidfile "$exec --log-file /var/log/$proj/$plugin.log ${configs[@]/#/--config-file } &>/dev/null & echo \$! > $pidfile"
+ retval=$?
+ echo
+ [ $retval -eq 0 ] && touch $lockfile
+ return $retval
+}
+
+stop() {
+ echo -n $"Stopping $prog: "
+ killproc -p $pidfile $prog
+ retval=$?
+ echo
+ [ $retval -eq 0 ] && rm -f $lockfile
+ return $retval
+}
+
+restart() {
+ stop
+ start
+}
+
+reload() {
+ restart
+}
+
+force_reload() {
+ restart
+}
+
+rh_status() {
+ status -p $pidfile $prog
+}
+
+rh_status_q() {
+ rh_status >/dev/null 2>&1
+}
+
+
+case "$1" in
+ start)
+ rh_status_q && exit 0
+ $1
+ ;;
+ stop)
+ rh_status_q || exit 0
+ $1
+ ;;
+ restart)
+ $1
+ ;;
+ reload)
+ rh_status_q || exit 7
+ $1
+ ;;
+ force-reload)
+ force_reload
+ ;;
+ status)
+ rh_status
+ ;;
+ condrestart|try-restart)
+ rh_status_q || exit 0
+ restart
+ ;;
+ *)
+ echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
+ exit 2
+esac
+exit $?
--- /dev/null
+description "OpenStack Neutron VPN Agent"
+
+start on stopped rc RUNLEVEL=[2345]
+stop on runlevel [S016]
+
+respawn
+
+exec su -s /bin/sh -c "exec /usr/bin/neutron-vpn-agent --log-file /var/log/neutron/vpn-agent.log --config-file /usr/share/neutron/neutron-dist.conf --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/vpn_agent.ini" neutron
Name: openstack-neutron
Version: 2013.2
-Release: 0.4.b3%{?dist}
+Release: 1%{?dist}
Provides: openstack-quantum = %{version}-%{release}
Obsoletes: openstack-quantum < 2013.2-0.3.b3
License: ASL 2.0
URL: http://launchpad.net/neutron/
-#Source0: http://launchpad.net/neutron/%{release_name}/%{version}/+download/neutron-%{version}.tar.gz
-Source0: http://launchpad.net/neutron/%{release_name}/%{release_name}-2/+download/neutron-%{version}.b3.tar.gz
+Source0: http://launchpad.net/neutron/%{release_name}/%{version}/+download/neutron-%{version}.tar.gz
Source1: neutron.logrotate
Source2: neutron-sudoers
Source4: neutron-server-setup
Source29: neutron-lbaas-agent.upstart
Source30: neutron-mlnx-agent.init
Source40: neutron-mlnx-agent.upstart
+Source31: neutron-vpn-agent.init
+Source41: neutron-vpn-agent.upstart
+Source32: neutron-metering-agent.init
+Source42: neutron-metering-agent.upstart
+Source90: neutron-dist.conf
#
-# patches_base=2013.2.b3
+# patches_base=2013.2
#
Patch0001: 0001-use-parallel-installed-versions-in-RHEL6.patch
networks using multiple other neutron plugins.
-%package -n openstack-neutron-meetering-agent
+%package -n openstack-neutron-metering-agent
Summary: Neutron bandwidth metering agent
Group: Applications/System
Requires: openstack-neutron = %{version}-%{release}
-%description -n openstack-neutron-meetering-agent
+%description -n openstack-neutron-metering-agent
Neutron provides an API to measure bandwidth utilization
This package contains the neutron agent responsible for generating bandwidth
Group: Applications/System
Requires: openstack-neutron = %{version}-%{release}
+Requires: python-jinja2-26
%description -n openstack-neutron-vpn-agent
Neutron provides an API to implement VPN as a service
%patch0001 -p1
-sed -i 's/%{version}/%{version}/' PKG-INFO
-
find neutron -name \*.py -exec sed -i '/\/usr\/bin\/env python/d' {} \;
-# let RPM handle deps
-sed -i '/setup_requires/d; /install_requires/d; /dependency_links/d' setup.py
-
chmod 644 neutron/plugins/cisco/README
-# Adjust configuration file content
-sed -i 's/debug = True/debug = False/' etc/neutron.conf
-sed -i 's/\# auth_strategy = keystone/auth_strategy = noauth/' etc/neutron.conf
-
# Let's handle dependencies ourseleves
rm -f requirements.txt
%build
%{__python} setup.py build
+# Loop through values in neutron-dist.conf and make sure that the values
+# are substituted into the neutron.conf as comments. Some of these values
+# will have been uncommented as a way of upstream setting defaults outside
+# of the code. For service_provider and notification-driver, there are
+# commented examples above uncommented settings, so this specifically
+# skips those comments and instead comments out the actual settings and
+# substitutes the correct default values.
+while read name eq value; do
+ test "$name" && test "$value" || continue
+ if [ "$name" = "service_provider" -o "$name" = "notification_driver" ]; then
+ sed -ri "0,/^$name *=/{s!^$name *=.*!# $name = $value!}" etc/neutron.conf
+ else
+ sed -ri "0,/^(#)? *$name *=/{s!^(#)? *$name *=.*!# $name = $value!}" etc/neutron.conf
+ fi
+done < %{SOURCE90}
%install
%{__python} setup.py install -O1 --skip-build --root %{buildroot}
mv %{buildroot}/usr/etc/neutron/* %{buildroot}%{_sysconfdir}/neutron
chmod 640 %{buildroot}%{_sysconfdir}/neutron/plugins/*/*.ini
-# Configure agents to use neutron-rootwrap
-sed -i 's/^# root_helper.*/root_helper = sudo neutron-rootwrap \/etc\/neutron\/rootwrap.conf/g' %{buildroot}%{_sysconfdir}/neutron/neutron.conf
-
-# Configure neutron-dhcp-agent state_path
-sed -i 's/state_path = \/opt\/stack\/data/state_path = \/var\/lib\/neutron/' %{buildroot}%{_sysconfdir}/neutron/dhcp_agent.ini
-
# Install logrotate
install -p -D -m 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/logrotate.d/openstack-neutron
install -p -D -m 755 %{SOURCE18} %{buildroot}%{_initrddir}/neutron-ovs-cleanup
install -p -D -m 755 %{SOURCE19} %{buildroot}%{_initrddir}/neutron-lbaas-agent
install -p -D -m 755 %{SOURCE30} %{buildroot}%{_initrddir}/neutron-mlnx-agent
+install -p -D -m 755 %{SOURCE31} %{buildroot}%{_initrddir}/neutron-vpn-agent
+install -p -D -m 755 %{SOURCE32} %{buildroot}%{_initrddir}/neutron-metering-agent
# Setup directories
install -d -m 755 %{buildroot}%{_datadir}/neutron
install -p -m 644 %{SOURCE28} %{buildroot}%{_datadir}/neutron/
install -p -m 644 %{SOURCE29} %{buildroot}%{_datadir}/neutron/
install -p -m 644 %{SOURCE40} %{buildroot}%{_datadir}/neutron/
+install -p -m 644 %{SOURCE41} %{buildroot}%{_datadir}/neutron/
+install -p -m 644 %{SOURCE42} %{buildroot}%{_datadir}/neutron/
+
+# Install dist conf
+install -p -D -m 640 %{SOURCE90} %{buildroot}%{_datadir}/neutron/neutron-dist.conf
# Install version info file
cat > %{buildroot}%{_sysconfdir}/neutron/release <<EOF
if [ $1 -eq 1 ] ; then
# Initial installation
/sbin/chkconfig --add neutron-server
+ for agent in dhcp l3 metadata lbaas; do
+ /sbin/chkconfig --add neutron-$agent-agent
+ done
fi
%preun
# Package removal, not upgrade
/sbin/service neutron-server stop >/dev/null 2>&1
/sbin/chkconfig --del neutron-server
- /sbin/service neutron-dhcp-agent stop >/dev/null 2>&1
- /sbin/chkconfig --del neutron-dhcp-agent
- /sbin/service neutron-l3-agent stop >/dev/null 2>&1
- /sbin/chkconfig --del neutron-l3-agent
- /sbin/service neutron-metadata-agent stop >/dev/null 2>&1
- /sbin/chkconfig --del neutron-metadata-agent
- /sbin/service neutron-lbaas-agent stop >/dev/null 2>&1
- /sbin/chkconfig --del neutron-lbaas-agent
+ for agent in dhcp l3 metadata lbaas; do
+ /sbin/service neutron-$agent-agent stop >/dev/null 2>&1
+ /sbin/chkconfig --del neutron-$agent-agent
+ done
fi
%postun
if [ $1 -ge 1 ] ; then
# Package upgrade, not uninstall
/sbin/service neutron-server condrestart >/dev/null 2>&1 || :
- /sbin/service neutron-dhcp-agent condrestart >/dev/null 2>&1 || :
- /sbin/service neutron-l3-agent condrestart >/dev/null 2>&1 || :
- /sbin/service neutron-metadata-agent condrestart >/dev/null 2>&1 || :
- /sbin/service neutron-lbaas-agent condrestart >/dev/null 2>&1 || :
+ for agent in dhcp l3 metadata lbaas; do
+ /sbin/service neutron-$agent-agent condrestart >/dev/null 2>&1 || :
+ done
fi
fi
+%post -n openstack-neutron-nec
+if [ $1 -eq 1 ] ; then
+ # Initial installation
+ /sbin/chkconfig --add neutron-nec-agent
+fi
+
%preun -n openstack-neutron-nec
if [ $1 -eq 0 ] ; then
# Package removal, not upgrade
fi
+%post -n openstack-neutron-vpn-agent
+if [ $1 -eq 1 ] ; then
+ # Initial installation
+ /sbin/chkconfig --add neutron-vpn-agent
+fi
+
+%preun -n openstack-neutron-vpn-agent
+if [ $1 -eq 0 ] ; then
+ # Package removal, not upgrade
+ /sbin/service neutron-vpn-agent stop >/dev/null 2>&1
+ /sbin/chkconfig --del neutron-vpn-agent
+fi
+
+%postun -n openstack-neutron-vpn-agent
+if [ $1 -ge 1 ] ; then
+ # Package upgrade, not uninstall
+ /sbin/service neutron-vpn-agent condrestart >/dev/null 2>&1 || :
+fi
+
+
+%post -n openstack-neutron-metering-agent
+if [ $1 -eq 1 ] ; then
+ # Initial installation
+ /sbin/chkconfig --add neutron-metering-agent
+fi
+
+%preun -n openstack-neutron-metering-agent
+if [ $1 -eq 0 ] ; then
+ # Package removal, not upgrade
+ /sbin/service neutron-metering-agent stop >/dev/null 2>&1
+ /sbin/chkconfig --del neutron-metering-agent
+fi
+
+%postun -n openstack-neutron-metering-agent
+if [ $1 -ge 1 ] ; then
+ # Package upgrade, not uninstall
+ /sbin/service neutron-metering-agent condrestart >/dev/null 2>&1 || :
+fi
+
%files
%doc LICENSE
%doc README.rst
%{_datadir}/neutron/neutron-lbaas-agent.upstart
%dir %{_sysconfdir}/neutron
%{_sysconfdir}/neutron/release
+%attr(-, root, neutron) %{_datadir}/neutron/neutron-dist.conf
%config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/api-paste.ini
%config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/dhcp_agent.ini
%config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/l3_agent.ini
%config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/plugins/metaplugin/*.ini
-%files -n openstack-neutron-meetering-agent
+%files -n openstack-neutron-metering-agent
%doc LICENSE
%config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/metering_agent.ini
+%{_initrddir}/neutron-metering-agent
+%{_datadir}/neutron/neutron-metering-agent.upstart
%{_bindir}/neutron-metering-agent
%files -n openstack-neutron-vpn-agent
%doc LICENSE
%config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/vpn_agent.ini
+%{_initrddir}/neutron-vpn-agent
+%{_datadir}/neutron/neutron-vpn-agent.upstart
%{_bindir}/neutron-vpn-agent
%changelog
+* Fri Oct 18 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-1
+- Update to havana GA
+
+* Thu Oct 10 2013 Terry Wilson <twilson@redhat.com> - 2013.2-0.12.rc1
+- Update to havana rc1
+
+* Wed Oct 2 2013 Terry Wilson <twilson@redhat.com> - 2013.2-0.11.b3
+- Add python-jinja2 requires to VPN agent
+- Ad missing services for VPN and metering agent
+
+* Thu Sep 26 2013 Terry Wilson <twilson@redhat.com> - 2013.2-0.10.b3
+- Add support for neutron-dist.conf
+
+* Tue Sep 17 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.9.b3
+- Fix typo in openstack-neutron-meetering-agent package name
+- Register all agent services with chkconfig during installation
+
* Mon Sep 09 2013 Terry Wilson <twilson@rehdat.com> - 2013.2-0.4.b3
- Update to havana milestone 3 release