From 7b3f84dd773b23d749cfcc6a228c7e32751a45df Mon Sep 17 00:00:00 2001 From: Thomas Goirand Date: Tue, 24 Sep 2013 23:59:40 +0800 Subject: [PATCH] Added metering and vpn binaries, fixed the neutron-server init script. --- debian/control | 40 +++++++++++ debian/neutron-metering-agent.init | 90 ++++++++++++++++++++++++ debian/neutron-metering-agent.install | 1 + debian/neutron-metering-agent.logrotate | 7 ++ debian/neutron-metering-agent.upstart.in | 16 +++++ debian/neutron-server.init | 2 +- debian/neutron-server.upstart.in | 2 +- debian/neutron-vpn-agent.init | 90 ++++++++++++++++++++++++ debian/neutron-vpn-agent.install | 1 + debian/neutron-vpn-agent.logrotate | 7 ++ debian/neutron-vpn-agent.upstart.in | 16 +++++ 11 files changed, 270 insertions(+), 2 deletions(-) create mode 100644 debian/neutron-metering-agent.init create mode 100644 debian/neutron-metering-agent.install create mode 100644 debian/neutron-metering-agent.logrotate create mode 100644 debian/neutron-metering-agent.upstart.in create mode 100644 debian/neutron-vpn-agent.init create mode 100644 debian/neutron-vpn-agent.install create mode 100644 debian/neutron-vpn-agent.logrotate create mode 100644 debian/neutron-vpn-agent.upstart.in diff --git a/debian/control b/debian/control index 868a6483d..09caca274 100644 --- a/debian/control +++ b/debian/control @@ -291,6 +291,46 @@ Description: OpenStack virtual network service - metadata agent . This package provides the metadata proxy agent. +Package: neutron-metering-agent +Architecture: all +Pre-Depends: dpkg (>= 1.15.6~) +Depends: adduser, + debconf, + lsb-base, + neutron-common (= ${source:Version}), + ${misc:Depends}, + ${python:Depends}, + ${shlibs:Depends} +Breaks: quantum-server (<< 2013.2~) +Replaces: quantum-server (<< 2013.2~) +Description: OpenStack virtual network service - metering agent + Neutron provides an API to dynamically request and configure virtual networks. + These networks connect "interfaces" from other OpenStack services (such as + vNICs from Nova VMs). The Neutron API supports extensions to provide advanced + network capabilities, including QoS, ACLs, and network monitoring. + . + This package provides the Neutron metering agent. + +Package: neutron-vpn-agent +Architecture: all +Pre-Depends: dpkg (>= 1.15.6~) +Depends: adduser, + debconf, + lsb-base, + neutron-common (= ${source:Version}), + ${misc:Depends}, + ${python:Depends}, + ${shlibs:Depends} +Breaks: quantum-server (<< 2013.2~) +Replaces: quantum-server (<< 2013.2~) +Description: OpenStack virtual network service - VPN agent + Neutron provides an API to dynamically request and configure virtual networks. + These networks connect "interfaces" from other OpenStack services (such as + vNICs from Nova VMs). The Neutron API supports extensions to provide advanced + network capabilities, including QoS, ACLs, and network monitoring. + . + This package provides the Neutron VPN agent. + Package: neutron-lbaas-agent Architecture: all Pre-Depends: dpkg (>= 1.15.6~) diff --git a/debian/neutron-metering-agent.init b/debian/neutron-metering-agent.init new file mode 100644 index 000000000..120f7ef7d --- /dev/null +++ b/debian/neutron-metering-agent.init @@ -0,0 +1,90 @@ +#!/bin/sh +### BEGIN INIT INFO +# Provides: neutron-metering-agent +# Required-Start: $network $local_fs $remote_fs $syslog +# Required-Stop: $remote_fs +# Should-Start: mysql postgresql rabbitmq-server keystone openvswitch-switch +# Should-Stop: mysql postgresql rabbitmq-server keystone openvswitch-switch +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Neutron Metering Agent agent +# Description: Provides Metering agent for neutron +### END INIT INFO + +# Author: Thomas Goirand + +# PATH should only include /usr/* if it runs after the mountnfs.sh script +PATH=/sbin:/usr/sbin:/bin:/usr/bin +DESC="OpenStack Neutron Metering Agent" +NAME=neutron-metering-agent +DAEMON=/usr/bin/${NAME} +DAEMON_ARGS="--config-file=/etc/neutron/neutron.conf --config-file=/etc/neutron/metering_agent.ini --log-file=/var/log/neutron/metering-agent.log" +PIDFILE=/var/run/$NAME.pid +SCRIPTNAME=/etc/init.d/$NAME + +# Exit if the package is not installed +[ -x $DAEMON ] || exit 0 + +. /lib/lsb/init-functions + +do_start() +{ + start-stop-daemon --start --quiet --background --chuid neutron:neutron --make-pidfile --pidfile $PIDFILE --startas $DAEMON --test > /dev/null \ + || return 1 + start-stop-daemon --start --quiet --background --chuid neutron:neutron --make-pidfile --pidfile $PIDFILE --startas $DAEMON -- \ + $DAEMON_ARGS \ + || return 2 +} + +do_stop() +{ + start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE + RETVAL="$?" + rm -f $PIDFILE + return "$RETVAL" +} + +case "$1" in + start) + log_daemon_msg "Starting $DESC" "$NAME" + do_start + case "$?" in + 0|1) log_end_msg 0 ;; + 2) log_end_msg 1 ;; + esac + ;; + stop) + log_daemon_msg "Stopping $DESC" "$NAME" + do_stop + case "$?" in + 0|1) log_end_msg 0 ;; + 2) log_end_msg 1 ;; + esac + ;; + status) + status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? + ;; + restart|force-reload) + log_daemon_msg "Restarting $DESC" "$NAME" + do_stop + case "$?" in + 0|1) + do_start + case "$?" in + 0) log_end_msg 0 ;; + 1) log_end_msg 1 ;; # Old process is still running + *) log_end_msg 1 ;; # Failed to start + esac + ;; + *) + # Failed to stop + log_end_msg 1 + ;; + esac + ;; + + *) + echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 + exit 3 + ;; +esac diff --git a/debian/neutron-metering-agent.install b/debian/neutron-metering-agent.install new file mode 100644 index 000000000..da7be40f4 --- /dev/null +++ b/debian/neutron-metering-agent.install @@ -0,0 +1 @@ +etc/metering_agent.ini etc/neutron diff --git a/debian/neutron-metering-agent.logrotate b/debian/neutron-metering-agent.logrotate new file mode 100644 index 000000000..4516cf8e1 --- /dev/null +++ b/debian/neutron-metering-agent.logrotate @@ -0,0 +1,7 @@ +/var/log/neutron/metering-agent.log { + daily + missingok + compress + delaycompress + notifempty +} diff --git a/debian/neutron-metering-agent.upstart.in b/debian/neutron-metering-agent.upstart.in new file mode 100644 index 000000000..f233be996 --- /dev/null +++ b/debian/neutron-metering-agent.upstart.in @@ -0,0 +1,16 @@ +description "Neutron Metering plugin agent" +author "Thomas Goirand " + +start on runlevel [2345] +stop on runlevel [016] + +chdir /var/run + +pre-start script + mkdir -p /var/run/neutron + chown neutron:root /var/run/neutron +end script + +exec start-stop-daemon --start --chuid neutron:neutron --exec /usr/bin/neutron-metering-agent -- \ + --config-file=/etc/neutron/neutron.conf --config-file=/etc/neutron/metering_agent.ini \ + --log-file=/var/log/neutron/metering-agent.log diff --git a/debian/neutron-server.init b/debian/neutron-server.init index 3beb8ec1c..67d352015 100644 --- a/debian/neutron-server.init +++ b/debian/neutron-server.init @@ -26,7 +26,7 @@ DAEMON_ARGS="--config-file=/etc/neutron/neutron.conf --log-file=$LOGFILE" . /lib/lsb/init-functions -[ -x /usr/share/neutron-common/plugin_guess_func ] || exit 0 +[ -r /usr/share/neutron-common/plugin_guess_func ] || exit 0 . /usr/share/neutron-common/plugin_guess_func ### Maintain the plugin selection so that we can load the corresponding .ini file ### diff --git a/debian/neutron-server.upstart.in b/debian/neutron-server.upstart.in index d4b62a1aa..5ed83cc2b 100644 --- a/debian/neutron-server.upstart.in +++ b/debian/neutron-server.upstart.in @@ -12,7 +12,7 @@ pre-start script end script script - [ -x /usr/share/neutron-common/plugin_guess_func ] || exit 0 + [ -r /usr/share/neutron-common/plugin_guess_func ] || exit 0 . /usr/share/neutron-common/plugin_guess_func if ! [ -r /etc/neutron/neutron.conf ] ; then diff --git a/debian/neutron-vpn-agent.init b/debian/neutron-vpn-agent.init new file mode 100644 index 000000000..d0980cb39 --- /dev/null +++ b/debian/neutron-vpn-agent.init @@ -0,0 +1,90 @@ +#!/bin/sh +### BEGIN INIT INFO +# Provides: neutron-vpn-agent +# Required-Start: $network $local_fs $remote_fs $syslog +# Required-Stop: $remote_fs +# Should-Start: mysql postgresql rabbitmq-server keystone openvswitch-switch +# Should-Stop: mysql postgresql rabbitmq-server keystone openvswitch-switch +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Neutron VPN Agent agent +# Description: Provides VPN agent for neutron +### END INIT INFO + +# Author: Thomas Goirand + +# PATH should only include /usr/* if it runs after the mountnfs.sh script +PATH=/sbin:/usr/sbin:/bin:/usr/bin +DESC="OpenStack Neutron VPN Agent" +NAME=neutron-vpn-agent +DAEMON=/usr/bin/${NAME} +DAEMON_ARGS="--config-file=/etc/neutron/neutron.conf --config-file=/etc/neutron/vpn_agent.ini --log-file=/var/log/neutron/vpn-agent.log" +PIDFILE=/var/run/$NAME.pid +SCRIPTNAME=/etc/init.d/$NAME + +# Exit if the package is not installed +[ -x $DAEMON ] || exit 0 + +. /lib/lsb/init-functions + +do_start() +{ + start-stop-daemon --start --quiet --background --chuid neutron:neutron --make-pidfile --pidfile $PIDFILE --startas $DAEMON --test > /dev/null \ + || return 1 + start-stop-daemon --start --quiet --background --chuid neutron:neutron --make-pidfile --pidfile $PIDFILE --startas $DAEMON -- \ + $DAEMON_ARGS \ + || return 2 +} + +do_stop() +{ + start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE + RETVAL="$?" + rm -f $PIDFILE + return "$RETVAL" +} + +case "$1" in + start) + log_daemon_msg "Starting $DESC" "$NAME" + do_start + case "$?" in + 0|1) log_end_msg 0 ;; + 2) log_end_msg 1 ;; + esac + ;; + stop) + log_daemon_msg "Stopping $DESC" "$NAME" + do_stop + case "$?" in + 0|1) log_end_msg 0 ;; + 2) log_end_msg 1 ;; + esac + ;; + status) + status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? + ;; + restart|force-reload) + log_daemon_msg "Restarting $DESC" "$NAME" + do_stop + case "$?" in + 0|1) + do_start + case "$?" in + 0) log_end_msg 0 ;; + 1) log_end_msg 1 ;; # Old process is still running + *) log_end_msg 1 ;; # Failed to start + esac + ;; + *) + # Failed to stop + log_end_msg 1 + ;; + esac + ;; + + *) + echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 + exit 3 + ;; +esac diff --git a/debian/neutron-vpn-agent.install b/debian/neutron-vpn-agent.install new file mode 100644 index 000000000..6cdb8e71a --- /dev/null +++ b/debian/neutron-vpn-agent.install @@ -0,0 +1 @@ +etc/vpn_agent.ini etc/neutron diff --git a/debian/neutron-vpn-agent.logrotate b/debian/neutron-vpn-agent.logrotate new file mode 100644 index 000000000..ac7a112f7 --- /dev/null +++ b/debian/neutron-vpn-agent.logrotate @@ -0,0 +1,7 @@ +/var/log/neutron/vpn-agent.log { + daily + missingok + compress + delaycompress + notifempty +} diff --git a/debian/neutron-vpn-agent.upstart.in b/debian/neutron-vpn-agent.upstart.in new file mode 100644 index 000000000..888fa3011 --- /dev/null +++ b/debian/neutron-vpn-agent.upstart.in @@ -0,0 +1,16 @@ +description "Neutron VPN plugin agent" +author "Thomas Goirand " + +start on runlevel [2345] +stop on runlevel [016] + +chdir /var/run + +pre-start script + mkdir -p /var/run/neutron + chown neutron:root /var/run/neutron +end script + +exec start-stop-daemon --start --chuid neutron:neutron --exec /usr/bin/neutron-vpn-agent -- \ + --config-file=/etc/neutron/neutron.conf --config-file=/etc/neutron/vpn_agent.ini \ + --log-file=/var/log/neutron/vpn-agent.log -- 2.45.2