-From a62cd977bcf59cfd6b40cfc607364ab698443b85 Mon Sep 17 00:00:00 2001
+From 1e3dd04afbfa4f29b2a43acf4075117b12fcad5e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?P=C3=A1draig=20Brady?= <P@draigBrady.com>
Date: Fri, 13 Apr 2012 17:24:40 +0100
Subject: [PATCH] use parallel installed versions in RHEL6
Change-Id: I290f56eae61c87893639a9e5d29f7fff760452cf
---
- quantum/__init__.py | 30 ++++++++++++++++++++++++++++++
- 1 files changed, 30 insertions(+), 0 deletions(-)
+ neutron/__init__.py | 30 ++++++++++++++++++++++++++++++
+ 1 file changed, 30 insertions(+)
-diff --git a/quantum/__init__.py b/quantum/__init__.py
-index 25ce3af..eb5a3fa 100644
---- a/quantum/__init__.py
-+++ b/quantum/__init__.py
+diff --git a/neutron/__init__.py b/neutron/__init__.py
+index b2c81bd..764eee4 100644
+--- a/neutron/__init__.py
++++ b/neutron/__init__.py
@@ -15,6 +15,36 @@
# License for the specific language governing permissions and limitations
# under the License.
+++ /dev/null
-From 1357576ab6f40a6bc9674d64355843cc9408d9cd Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?P=C3=A1draig=20Brady?= <pbrady@redhat.com>
-Date: Wed, 17 Jul 2013 16:27:31 +0100
-Subject: [PATCH] avoid code path causing qpid exchange leaks
-
-Always assume amqp_rpc_single_reply_queue is True,
-so that the problematic code path is ignored.
-The issue is discussed at https://pad.lv/1178375
----
- quantum/openstack/common/rpc/amqp.py | 3 ++-
- 1 files changed, 2 insertions(+), 1 deletions(-)
-
-diff --git a/quantum/openstack/common/rpc/amqp.py b/quantum/openstack/common/rpc/amqp.py
-index dbfc790..c7ce7c7 100644
---- a/quantum/openstack/common/rpc/amqp.py
-+++ b/quantum/openstack/common/rpc/amqp.py
-@@ -590,7 +590,8 @@ def multicall(conf, context, topic, msg, timeout, connection_pool):
-
- # TODO(pekowski): Remove this flag and the code under the if clause
- # in Havana.
-- if not conf.amqp_rpc_single_reply_queue:
-+ # (p-draigbrady): This clause is disabled to avoid qpid exchange leaks
-+ if False and not conf.amqp_rpc_single_reply_queue:
- conn = ConnectionContext(conf, connection_pool)
- wait_msg = MulticallWaiter(conf, conn, timeout)
- conn.declare_direct_consumer(msg_id, wait_msg)
+++ /dev/null
-From 0c1e1a1d753bb822d3783778f94878a9ef390dd2 Mon Sep 17 00:00:00 2001
-From: Chris Wright <chrisw@sous-sol.org>
-Date: Mon, 7 Jan 2013 18:21:20 -0800
-Subject: [PATCH] dhcp agent: make dnsmasq tags work with RHEL 6
-
-rhbz 887369
-
-RHEL 6 has dnsmasq-2.48 which has a different syntax for tags compared
-with newer (>= dnsmasq-2.53). This patch updates command line and
-options file contents to work with dnsmasq-2.48.
-
-Change-Id: Ibf9309007fbf62f1f176737f2a5d179eabcf89dc
-Signed-off-by: Chris Wright <chrisw@redhat.com>
----
- quantum/agent/linux/dhcp.py | 4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/quantum/agent/linux/dhcp.py b/quantum/agent/linux/dhcp.py
-index 709d7da..20752e3 100644
---- a/quantum/agent/linux/dhcp.py
-+++ b/quantum/agent/linux/dhcp.py
-@@ -273,7 +273,7 @@ class Dnsmasq(DhcpLocalProcess):
- # TODO (mark): how do we indicate other options
- # ra-only, slaac, ra-nameservers, and ra-stateless.
- mode = 'static'
-- cmd.append('--dhcp-range=set:%s,%s,%s,%ss' %
-+ cmd.append('--dhcp-range=%s,%s,%s,%ss' %
- (self._TAG_PREFIX % i,
- netaddr.IPNetwork(subnet.cidr).network,
- mode,
-@@ -404,7 +404,7 @@ class Dnsmasq(DhcpLocalProcess):
- 'quantum-dhcp-agent-dnsmasq-lease-update')
-
- def _format_option(self, index, option_name, *args):
-- return ','.join(('tag:' + self._TAG_PREFIX % index,
-+ return ','.join((self._TAG_PREFIX % index,
- 'option:%s' % option_name) + args)
-
- @classmethod
+++ /dev/null
-From edd624ef23d7e6e410aaaf356765c2568e46247d Mon Sep 17 00:00:00 2001
-From: Maru Newby <marun@redhat.com>
-Date: Tue, 2 Apr 2013 22:43:37 +0000
-Subject: [PATCH] Create veth peer in namespace.
-
- * Update veth pair creation to set the namespace of the peer
- device on creation rather than subsequently adding it to the
- namespace.
- * This change supports kernels with limited namespace support
- (e.g. RHEL 6.5) so long as ovs_use_veth is set to True.
- * Addresses bug 1171727
-
-Change-Id: I1885acc9934e7627bb9872703df7f5edf2980722
----
- quantum/agent/linux/interface.py | 19 +++++++++++--------
- quantum/agent/linux/ip_lib.py | 15 +++++++++++----
- quantum/tests/unit/test_linux_interface.py | 22 ++++++----------------
- quantum/tests/unit/test_linux_ip_lib.py | 11 +++++++++++
- 4 files changed, 39 insertions(+), 28 deletions(-)
-
-diff --git a/quantum/agent/linux/interface.py b/quantum/agent/linux/interface.py
-index e057b24..c0305a2 100644
---- a/quantum/agent/linux/interface.py
-+++ b/quantum/agent/linux/interface.py
-@@ -167,13 +167,17 @@ class OVSInterfaceDriver(LinuxInterfaceDriver):
- tap_name = self._get_tap_name(device_name, prefix)
-
- if self.conf.ovs_use_veth:
-- root_dev, ns_dev = ip.add_veth(tap_name, device_name)
-+ # Create ns_dev in a namespace if one is configured.
-+ root_dev, ns_dev = ip.add_veth(tap_name,
-+ device_name,
-+ namespace2=namespace)
-+ else:
-+ ns_dev = ip.device(device_name)
-
- internal = not self.conf.ovs_use_veth
- self._ovs_add_port(bridge, tap_name, port_id, mac_address,
- internal=internal)
-
-- ns_dev = ip.device(device_name)
- ns_dev.link.set_address(mac_address)
-
- if self.conf.network_device_mtu:
-@@ -181,7 +185,8 @@ class OVSInterfaceDriver(LinuxInterfaceDriver):
- if self.conf.ovs_use_veth:
- root_dev.link.set_mtu(self.conf.network_device_mtu)
-
-- if namespace:
-+ # Add an interface created by ovs to the namespace.
-+ if not self.conf.ovs_use_veth and namespace:
- namespace_obj = ip.ensure_namespace(namespace)
- namespace_obj.add_device_to_namespace(ns_dev)
-
-@@ -231,17 +236,15 @@ class BridgeInterfaceDriver(LinuxInterfaceDriver):
- tap_name = device_name.replace(prefix, 'tap')
- else:
- tap_name = device_name.replace(self.DEV_NAME_PREFIX, 'tap')
-- root_veth, ns_veth = ip.add_veth(tap_name, device_name)
-+ # Create ns_veth in a namespace if one is configured.
-+ root_veth, ns_veth = ip.add_veth(tap_name, device_name,
-+ namespace2=namespace)
- ns_veth.link.set_address(mac_address)
-
- if self.conf.network_device_mtu:
- root_veth.link.set_mtu(self.conf.network_device_mtu)
- ns_veth.link.set_mtu(self.conf.network_device_mtu)
-
-- if namespace:
-- namespace_obj = ip.ensure_namespace(namespace)
-- namespace_obj.add_device_to_namespace(ns_veth)
--
- root_veth.link.set_up()
- ns_veth.link.set_up()
-
-diff --git a/quantum/agent/linux/ip_lib.py b/quantum/agent/linux/ip_lib.py
-index 5207c23..2f56672 100644
---- a/quantum/agent/linux/ip_lib.py
-+++ b/quantum/agent/linux/ip_lib.py
-@@ -90,12 +90,19 @@ class IPWrapper(SubProcessBase):
- self._as_root('', 'tuntap', ('add', name, 'mode', mode))
- return IPDevice(name, self.root_helper, self.namespace)
-
-- def add_veth(self, name1, name2):
-- self._as_root('', 'link',
-- ('add', name1, 'type', 'veth', 'peer', 'name', name2))
-+ def add_veth(self, name1, name2, namespace2=None):
-+ args = ['add', name1, 'type', 'veth', 'peer', 'name', name2]
-+
-+ if namespace2 is None:
-+ namespace2 = self.namespace
-+ else:
-+ self.ensure_namespace(namespace2)
-+ args += ['netns', namespace2]
-+
-+ self._as_root('', 'link', tuple(args))
-
- return (IPDevice(name1, self.root_helper, self.namespace),
-- IPDevice(name2, self.root_helper, self.namespace))
-+ IPDevice(name2, self.root_helper, namespace2))
-
- def ensure_namespace(self, name):
- if not self.netns.exists(name):
-diff --git a/quantum/tests/unit/test_linux_interface.py b/quantum/tests/unit/test_linux_interface.py
-index a386f93..dc1e464 100644
---- a/quantum/tests/unit/test_linux_interface.py
-+++ b/quantum/tests/unit/test_linux_interface.py
-@@ -199,12 +199,11 @@ class TestOVSInterfaceDriverWithVeth(TestOVSInterfaceDriver):
- self.device_exists.side_effect = device_exists
-
- root_dev = mock.Mock()
-- _ns_dev = mock.Mock()
- ns_dev = mock.Mock()
-- self.ip().add_veth = mock.Mock(return_value=(root_dev, _ns_dev))
-- self.ip().device = mock.Mock(return_value=(ns_dev))
-- expected = [mock.call('sudo'), mock.call().add_veth('tap0', devname),
-- mock.call().device(devname)]
-+ self.ip().add_veth = mock.Mock(return_value=(root_dev, ns_dev))
-+ expected = [mock.call('sudo'),
-+ mock.call().add_veth('tap0', devname,
-+ namespace2=namespace)]
-
- vsctl_cmd = ['ovs-vsctl', '--', '--may-exist', 'add-port',
- bridge, 'tap0', '--', 'set', 'Interface', 'tap0',
-@@ -228,11 +227,6 @@ class TestOVSInterfaceDriverWithVeth(TestOVSInterfaceDriver):
- if mtu:
- ns_dev.assert_has_calls([mock.call.link.set_mtu(mtu)])
- root_dev.assert_has_calls([mock.call.link.set_mtu(mtu)])
-- if namespace:
-- expected.extend(
-- [mock.call().ensure_namespace(namespace),
-- mock.call().ensure_namespace().add_device_to_namespace(
-- mock.ANY)])
-
- self.ip.assert_has_calls(expected)
- root_dev.assert_has_calls([mock.call.link.set_up()])
-@@ -284,13 +278,9 @@ class TestBridgeInterfaceDriver(TestBase):
- mac_address,
- namespace=namespace)
-
-- ip_calls = [mock.call('sudo'), mock.call().add_veth('tap0', 'ns-0')]
-+ ip_calls = [mock.call('sudo'),
-+ mock.call().add_veth('tap0', 'ns-0', namespace2=namespace)]
- ns_veth.assert_has_calls([mock.call.link.set_address(mac_address)])
-- if namespace:
-- ip_calls.extend([
-- mock.call().ensure_namespace('01234567-1234-1234-99'),
-- mock.call().ensure_namespace().add_device_to_namespace(
-- ns_veth)])
- if mtu:
- ns_veth.assert_has_calls([mock.call.link.set_mtu(mtu)])
- root_veth.assert_has_calls([mock.call.link.set_mtu(mtu)])
-diff --git a/quantum/tests/unit/test_linux_ip_lib.py b/quantum/tests/unit/test_linux_ip_lib.py
-index 47b4063..e477f2f 100644
---- a/quantum/tests/unit/test_linux_ip_lib.py
-+++ b/quantum/tests/unit/test_linux_ip_lib.py
-@@ -205,6 +205,17 @@ class TestIpWrapper(base.BaseTestCase):
- 'peer', 'name', 'tap1'),
- 'sudo', None)
-
-+ def test_add_veth_with_namespaces(self):
-+ ns2 = 'ns2'
-+ with mock.patch.object(ip_lib.IPWrapper, 'ensure_namespace') as en:
-+ ip_lib.IPWrapper('sudo').add_veth('tap0', 'tap1', namespace2=ns2)
-+ en.assert_has_calls([mock.call(ns2)])
-+ self.execute.assert_called_once_with('', 'link',
-+ ('add', 'tap0', 'type', 'veth',
-+ 'peer', 'name', 'tap1',
-+ 'netns', ns2),
-+ 'sudo', None)
-+
- def test_get_device(self):
- dev = ip_lib.IPWrapper('sudo', 'ns').device('eth0')
- self.assertEqual(dev.root_helper, 'sudo')
+++ /dev/null
-From 8240ad0e64f0a58601906f628ad24a8ee1bc8b1e Mon Sep 17 00:00:00 2001
-From: Maru Newby <marun@redhat.com>
-Date: Thu, 9 May 2013 21:04:44 +0000
-Subject: [PATCH] Add kill-metadata rootwrap filter to support RHEL.
-
- * Fixes bug 1178419
-
-Change-Id: I9c1cf0d19d1134ec3b85c905c6c8bb7145847ce7
----
- etc/quantum/rootwrap.d/dhcp.filters | 2 ++
- etc/quantum/rootwrap.d/l3.filters | 2 ++
- 2 files changed, 4 insertions(+), 0 deletions(-)
-
-diff --git a/etc/quantum/rootwrap.d/dhcp.filters b/etc/quantum/rootwrap.d/dhcp.filters
-index 89abb02..4a4635a 100644
---- a/etc/quantum/rootwrap.d/dhcp.filters
-+++ b/etc/quantum/rootwrap.d/dhcp.filters
-@@ -30,6 +30,8 @@ metadata_proxy: CommandFilter, /usr/bin/quantum-ns-metadata-proxy, root
- # If installed from source (say, by devstack), the prefix will be
- # /usr/local instead of /usr/bin.
- metadata_proxy_local: CommandFilter, /usr/local/bin/quantum-ns-metadata-proxy, root
-+# RHEL invocation of the metadata proxy will report /usr/bin/python
-+kill_metadata: KillFilter, root, /usr/bin/python, -9
- kill_metadata7: KillFilter, root, /usr/bin/python2.7, -9
- kill_metadata6: KillFilter, root, /usr/bin/python2.6, -9
-
-diff --git a/etc/quantum/rootwrap.d/l3.filters b/etc/quantum/rootwrap.d/l3.filters
-index ec08d59..480a77b 100644
---- a/etc/quantum/rootwrap.d/l3.filters
-+++ b/etc/quantum/rootwrap.d/l3.filters
-@@ -21,6 +21,8 @@ metadata_proxy: CommandFilter, /usr/bin/quantum-ns-metadata-proxy, root
- # If installed from source (say, by devstack), the prefix will be
- # /usr/local instead of /usr/bin.
- metadata_proxy_local: CommandFilter, /usr/local/bin/quantum-ns-metadata-proxy, root
-+# RHEL invocation of the metadata proxy will report /usr/bin/python
-+kill_metadata: KillFilter, root, /usr/bin/python, -9
- kill_metadata7: KillFilter, root, /usr/bin/python2.7, -9
- kill_metadata6: KillFilter, root, /usr/bin/python2.6, -9
-
#!/bin/sh
#
-# quantum-dhcp-agent OpenStack Quantum DHCP Agent
+# neutron-dhcp-agent OpenStack Neutron DHCP Agent
#
# chkconfig: - 98 02
-# description: OpenStack Quantum DHCP Agent
+# description: OpenStack Neutron DHCP Agent
### END INIT INFO
. /etc/rc.d/init.d/functions
-proj=quantum
+proj=neutron
plugin=dhcp-agent
prog=$proj-$plugin
exec="/usr/bin/$prog"
[ -x $exec ] || exit 5
[ -f $config ] || exit 6
echo -n $"Starting $prog: "
- daemon --user quantum --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 --config-file /etc/$proj/$proj.conf --config-file $config &>/dev/null & echo \$! > $pidfile"
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
--- /dev/null
+description "OpenStack Neutron DHCP Agent"
+
+start on stopped rc RUNLEVEL=[2345]
+stop on runlevel [S016]
+
+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
cat << EOF
The helper script will install the necessary support for the DHCP agent.
-Usage: quantum-dhcp-setup [options]
+Usage: neutron-dhcp-setup [options]
Options:
--help | -h
Print usage information.
--plugin | -p
- The quantum plugin. Supported plugins:-
+ The neutron plugin. Supported plugins:-
${SUPPORTED_PLUGINS[*]}
--qhost | -q
- The Quantum hostname (assumes that this is also the QPID host).
+ The Neutron hostname (assumes that this is also the QPID host).
EOF
exit 0
return 1
}
-DHCP_CONF=/etc/quantum/dhcp_agent.ini
+DHCP_CONF=/etc/neutron/dhcp_agent.ini
while [ $# -gt 0 ]
do
;;
-p|--plugin)
shift
- QUANTUM_PLUGIN=${1}
+ NEUTRON_PLUGIN=${1}
;;
-q|--qhost)
shift
done
# if the plugin is not defined
-if [ -z ${QUANTUM_PLUGIN} ] ; then
+if [ -z ${NEUTRON_PLUGIN} ] ; then
echo "Please select a plugin from: ${SUPPORTED_PLUGINS[*]}"
echo "Choice:"
- read QUANTUM_PLUGIN
+ read NEUTRON_PLUGIN
fi
# check that the plugin is valid
-is_valid_plugin ${QUANTUM_PLUGIN}
+is_valid_plugin ${NEUTRON_PLUGIN}
if [ $? -ne 0 ]; then
- echo "Plugin '${QUANTUM_PLUGIN}' not supported. Supported plugins:-"
+ echo "Plugin '${NEUTRON_PLUGIN}' not supported. Supported plugins:-"
echo " ${SUPPORTED_PLUGINS[*]}"
exit 0
fi
-echo "Quantum plugin: ${QUANTUM_PLUGIN}"
+echo "Neutron plugin: ${NEUTRON_PLUGIN}"
if [ -z ${Q_HOST} ] ; then
- echo "Please enter the Quantum hostname:"
+ echo "Please enter the Neutron hostname:"
read Q_HOST
fi
Q_PORT=9696
-Q_CONF=/etc/quantum/quantum.conf
+Q_CONF=/etc/neutron/neutron.conf
# QPID
-openstack-config --set ${Q_CONF} DEFAULT rpc_backend quantum.openstack.common.rpc.impl_qpid
+openstack-config --set ${Q_CONF} DEFAULT rpc_backend neutron.openstack.common.rpc.impl_qpid
openstack-config --set ${Q_CONF} DEFAULT qpid_hostname ${Q_HOST}
-case "${QUANTUM_PLUGIN}" in
+case "${NEUTRON_PLUGIN}" in
"linuxbridge")
- LINUX_INTERFACE_DRIVER=quantum.agent.linux.interface.BridgeInterfaceDriver
+ LINUX_INTERFACE_DRIVER=neutron.agent.linux.interface.BridgeInterfaceDriver
;;
"openvswitch")
echo "Please install openvswitch"
exit 0
fi
- LINUX_INTERFACE_DRIVER=quantum.agent.linux.interface.OVSInterfaceDriver
+ LINUX_INTERFACE_DRIVER=neutron.agent.linux.interface.OVSInterfaceDriver
;;
esac
# Keystone specific
-OS_USERNAME=${OS_USERNAME:-quantum}
+OS_USERNAME=${OS_USERNAME:-neutron}
OS_PASSWORD=${OS_PASSWORD:-servicepass}
OS_AUTH_URL=${OS_AUTH_URL:-http://localhost:35357/v2.0/}
OS_TENANT_NAME=${OS_TENANT_NAME:-service}
#!/bin/sh
#
-# quantum-l3-agent OpenStack Quantum Layer 3 Agent
+# neutron-l3-agent OpenStack Neutron Layer 3 Agent
#
# chkconfig: - 98 02
-# description: OpenStack Quantum Layer 3 Agent
+# description: OpenStack Neutron Layer 3 Agent
### END INIT INFO
. /etc/rc.d/init.d/functions
-proj=quantum
+proj=neutron
plugin=l3-agent
prog=$proj-$plugin
exec="/usr/bin/$prog"
[ -x $exec ] || exit 5
[ -f $config ] || exit 6
echo -n $"Starting $prog: "
- daemon --user quantum --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 --config-file /etc/$proj/$proj.conf --config-file $config &>/dev/null & echo \$! > $pidfile"
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
--- /dev/null
+description "OpenStack Neutron Layer 3 Agent"
+
+start on stopped rc RUNLEVEL=[2345]
+stop on runlevel [S016]
+
+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
cat << EOF
The helper script will install the necessary support for the L3 agent.
-Usage: quantum-l3-setup [options]
+Usage: neutron-l3-setup [options]
Options:
--help | -h
Print usage information.
--plugin | -p
- The quantum plugin. Supported plugins:-
+ The neutron plugin. Supported plugins:-
${SUPPORTED_PLUGINS[*]}
--qhost | -q
- The Quantum hostname (assumes that this is also the QPID host).
+ The Neutron hostname (assumes that this is also the QPID host).
EOF
exit 0
return 1
}
-L3_CONF=/etc/quantum/l3_agent.ini
-L3_META_CONF=/etc/quantum/metadata_agent.ini
+L3_CONF=/etc/neutron/l3_agent.ini
+L3_META_CONF=/etc/neutron/metadata_agent.ini
while [ $# -gt 0 ]
do
;;
-p|--plugin)
shift
- QUANTUM_PLUGIN=${1}
+ NEUTRON_PLUGIN=${1}
;;
-q|--qhost)
shift
done
# if the plugin is not defined
-if [ -z ${QUANTUM_PLUGIN} ] ; then
+if [ -z ${NEUTRON_PLUGIN} ] ; then
echo "Please select a plugin from: ${SUPPORTED_PLUGINS[*]}"
echo "Choice:"
- read QUANTUM_PLUGIN
+ read NEUTRON_PLUGIN
fi
# check that the plugin is valid
-is_valid_plugin ${QUANTUM_PLUGIN}
+is_valid_plugin ${NEUTRON_PLUGIN}
if [ $? -ne 0 ]; then
- echo "Plugin '${QUANTUM_PLUGIN}' not supported. Supported plugins:-"
+ echo "Plugin '${NEUTRON_PLUGIN}' not supported. Supported plugins:-"
echo " ${SUPPORTED_PLUGINS[*]}"
exit 0
fi
-echo "Quantum plugin: ${QUANTUM_PLUGIN}"
+echo "Neutron plugin: ${NEUTRON_PLUGIN}"
if [ -z ${Q_HOST} ] ; then
- echo "Please enter the Quantum hostname:"
+ echo "Please enter the Neutron hostname:"
read Q_HOST
fi
Q_PORT=9696
-Q_CONF=/etc/quantum/quantum.conf
+Q_CONF=/etc/neutron/neutron.conf
# QPID
-openstack-config --set ${Q_CONF} DEFAULT rpc_backend quantum.openstack.common.rpc.impl_qpid
+openstack-config --set ${Q_CONF} DEFAULT rpc_backend neutron.openstack.common.rpc.impl_qpid
openstack-config --set ${Q_CONF} DEFAULT qpid_hostname ${Q_HOST}
-case "${QUANTUM_PLUGIN}" in
+case "${NEUTRON_PLUGIN}" in
"linuxbridge")
- LINUX_INTERFACE_DRIVER=quantum.agent.linux.interface.BridgeInterfaceDriver
+ LINUX_INTERFACE_DRIVER=neutron.agent.linux.interface.BridgeInterfaceDriver
openstack-config --set ${L3_CONF} DEFAULT external_network_bridge ''
;;
echo "Please install openvswitch"
exit 0
fi
- LINUX_INTERFACE_DRIVER=quantum.agent.linux.interface.OVSInterfaceDriver
+ LINUX_INTERFACE_DRIVER=neutron.agent.linux.interface.OVSInterfaceDriver
;;
esac
# Keystone specific
-OS_USERNAME=${OS_USERNAME:-quantum}
+OS_USERNAME=${OS_USERNAME:-neutron}
OS_PASSWORD=${OS_PASSWORD:-servicepass}
OS_AUTH_URL=${OS_AUTH_URL:-http://localhost:35357/v2.0/}
OS_TENANT_NAME=${OS_TENANT_NAME:-service}
#!/bin/sh
#
-# quantum-lbaas-agent OpenStack Quantum LBaaS Agent
+# neutron-lbaas-agent OpenStack Neutron LBaaS Agent
#
# chkconfig: - 98 02
-# description: OpenStack Quantum LBaaS Agent
+# description: OpenStack Neutron LBaaS Agent
### END INIT INFO
. /etc/rc.d/init.d/functions
-proj=quantum
+proj=neutron
plugin=lbaas-agent
prog=$proj-$plugin
exec="/usr/bin/$prog"
[ -x $exec ] || exit 5
[ -f $config ] || exit 6
echo -n $"Starting $prog: "
- daemon --user quantum --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 --config-file /etc/$proj/$proj.conf --config-file $config &>/dev/null & echo \$! > $pidfile"
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
--- /dev/null
+description "OpenStack Neutron LBaaS Agent"
+
+start on stopped rc RUNLEVEL=[2345]
+stop on runlevel [S016]
+
+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
#!/bin/sh
#
-# quantum-linuxbridge-agent OpenStack linuxbridge plugin
+# neutron-linuxbridge-agent OpenStack linuxbridge plugin
#
# chkconfig: - 98 02
# description: Support VLANs using Linux bridging
. /etc/rc.d/init.d/functions
-proj=quantum
+proj=neutron
plugin=linuxbridge-agent
prog=$proj-$plugin
exec="/usr/bin/$prog"
[ -x $exec ] || exit 5
[ -f $config ] || exit 6
echo -n $"Starting $prog: "
- daemon --user quantum --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 --config-file /etc/$proj/$proj.conf --config-file $config &>/dev/null & echo \$! > $pidfile"
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
--- /dev/null
+description "OpenStack Neutron Linux Bridge Agent"
+
+start on stopped rc RUNLEVEL=[2345]
+stop on runlevel [S016]
+
+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
#!/bin/sh
#
-# quantum-metadata-agent OpenStack Quantum Metadata Agent
+# neutron-metadata-agent OpenStack Neutron Metadata Agent
#
# chkconfig: - 98 02
-# description: OpenStack Quantum Metadata Agent
+# description: OpenStack Neutron Metadata Agent
### END INIT INFO
. /etc/rc.d/init.d/functions
-proj=quantum
+proj=neutron
plugin=metadata-agent
prog=$proj-$plugin
exec="/usr/bin/$prog"
[ -x $exec ] || exit 5
[ -f $config ] || exit 6
echo -n $"Starting $prog: "
- daemon --user quantum --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 --config-file /etc/$proj/$proj.conf --config-file $config &>/dev/null & echo \$! > $pidfile"
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
--- /dev/null
+description "OpenStack Neutron Layer 3 Agent"
+description "OpenStack Neutron Metadata Agent"
+
+start on stopped rc RUNLEVEL=[2345]
+stop on runlevel [S016]
+
+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
--- /dev/null
+#!/bin/sh
+#
+# neutron-mlnx-agent OpenStack Neutron Mellanox Agent
+#
+# chkconfig: - 98 02
+# description: OpenStack Neutron Mellanox Agent
+### END INIT INFO
+
+. /etc/rc.d/init.d/functions
+
+proj=neutron
+plugin=mlnx-agent
+prog=$proj-$plugin
+exec="/usr/bin/$prog"
+config="/etc/$proj/plugins/mlnx/mlnx_conf.ini"
+pidfile="/var/run/$proj/$prog.pid"
+
+[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
+
+lockfile=/var/lock/subsys/$prog
+
+start() {
+ [ -x $exec ] || exit 5
+ [ -f $config ] || exit 6
+ 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"
+ 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 Mellanox Agent"
+
+start on stopped rc RUNLEVEL=[2345]
+stop on runlevel [S016]
+
+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
#!/bin/sh
#
-# quantum-nec-agent OpenStack Quantum NEC OpenFlow Agent
+# neutron-nec-agent OpenStack Neutron NEC OpenFlow Agent
#
# chkconfig: - 98 02
-# description: OpenStack Quantum NEC OpenFlow Agent
+# description: OpenStack Neutron NEC OpenFlow Agent
### END INIT INFO
. /etc/rc.d/init.d/functions
-proj=quantum
+proj=neutron
plugin=nec-agent
prog=$proj-$plugin
exec="/usr/bin/$prog"
[ -x $exec ] || exit 5
[ -f $config ] || exit 6
echo -n $"Starting $prog: "
- daemon --user quantum --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 --config-file /etc/$proj/$proj.conf --config-file $config &>/dev/null & echo \$! > $pidfile"
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
--- /dev/null
+description "OpenStack Neutron NEC OpenFlow Agent"
+
+start on stopped rc RUNLEVEL=[2345]
+stop on runlevel [S016]
+
+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
cat << EOF
The helper script will install the necessary support for the selected plugin.
-Usage: quantum-node-setup [options]
+Usage: neutron-node-setup [options]
Options:
--help | -h
Print usage information.
--plugin | -p
- The quantum plugin. Supported plugins:-
+ The neutron plugin. Supported plugins:-
${SUPPORTED_PLUGINS[*]}
--qhost | -q
- The Quantum hostname (assumes that this is also the QPID host).
+ The Neutron hostname (assumes that this is also the QPID host).
EOF
exit 0
return 1
}
-QUANTUM_USER=quantum
-LB_CONF=/etc/quantum/plugins/linuxbridge/linuxbridge_conf.ini
-OVS_CONF=/etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini
+NEUTRON_USER=neutron
+LB_CONF=/etc/neutron/plugins/linuxbridge/linuxbridge_conf.ini
+OVS_CONF=/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini
# Nova specific
NOVA_CONF=/etc/nova/nova.conf
;;
-p|--plugin)
shift
- QUANTUM_PLUGIN=${1}
+ NEUTRON_PLUGIN=${1}
;;
-q|--qhost)
shift
done
# if the plugin is not defined
-if [ -z ${QUANTUM_PLUGIN} ] ; then
+if [ -z ${NEUTRON_PLUGIN} ] ; then
echo "Please select a plugin from: ${SUPPORTED_PLUGINS[*]}"
echo "Choice:"
- read QUANTUM_PLUGIN
+ read NEUTRON_PLUGIN
fi
# check that the plugin is valid
-is_valid_plugin ${QUANTUM_PLUGIN}
+is_valid_plugin ${NEUTRON_PLUGIN}
if [ $? -ne 0 ]; then
- echo "Plugin '${QUANTUM_PLUGIN}' not supported. Supported plugins:-"
+ echo "Plugin '${NEUTRON_PLUGIN}' not supported. Supported plugins:-"
echo " ${SUPPORTED_PLUGINS[*]}"
exit 0
fi
-echo "Quantum plugin: ${QUANTUM_PLUGIN}"
+echo "Neutron plugin: ${NEUTRON_PLUGIN}"
-if ! [ -e "/etc/quantum/plugins/${QUANTUM_PLUGIN}" ]; then
- echo "Please install the ${QUANTUM_PLUGIN} quantum plugin"
+if ! [ -e "/etc/neutron/plugins/${NEUTRON_PLUGIN}" ]; then
+ echo "Please install the ${NEUTRON_PLUGIN} neutron plugin"
exit 0
fi
#if the database hostname and is not defined and is required
if [ -z ${Q_HOST} ] ; then
- echo "Please enter the Quantum hostname:"
+ echo "Please enter the Neutron hostname:"
read Q_HOST
fi
Q_PORT=9696
-Q_CONF=/etc/quantum/quantum.conf
+Q_CONF=/etc/neutron/neutron.conf
# QPID
-openstack-config --set ${Q_CONF} DEFAULT rpc_backend quantum.openstack.common.rpc.impl_qpid
+openstack-config --set ${Q_CONF} DEFAULT rpc_backend neutron.openstack.common.rpc.impl_qpid
openstack-config --set ${Q_CONF} DEFAULT qpid_hostname ${Q_HOST}
-case "${QUANTUM_PLUGIN}" in
+case "${NEUTRON_PLUGIN}" in
"linuxbridge")
;;
echo "Please install openvswitch"
exit 0
fi
- OVS_CONF=/etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini
- openstack-config --set ${OVS_CONF} SECURITYGROUP firewall_driver quantum.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
+ OVS_CONF=/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini
+ openstack-config --set ${OVS_CONF} SECURITYGROUP firewall_driver neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
;;
esac
esac
# Keystone specific
-OS_USERNAME=${OS_USERNAME:-quantum}
+OS_USERNAME=${OS_USERNAME:-neutron}
OS_PASSWORD=${OS_PASSWORD:-servicepass}
OS_AUTH_URL=${OS_AUTH_URL:-http://127.0.0.1:35357/v2.0/}
OS_TENANT_NAME=${OS_TENANT_NAME:-service}
if ! [ -e "${NOVA_CONF}" ]; then
echo "Please install OpenStack compute and then set the values"
echo "in /etc/nova/nova.conf DEFAULT section"
- echo " network_api_class=nova.network.quantumv2.api.API"
- echo " quantum_admin_username=${OS_USERNAME}"
- echo " quantum_admin_password=${OS_PASSWORD}"
- echo " quantum_admin_auth_url=${OS_AUTH_URL}"
- echo " quantum_auth_strategy=keystone"
- echo " quantum_admin_tenant_name=${OS_TENANT_NAME}"
- echo " quantum_url=http://${Q_HOST}:${Q_PORT}/"
+ echo " network_api_class=nova.network.neutronv2.api.API"
+ echo " neutron_admin_username=${OS_USERNAME}"
+ echo " neutron_admin_password=${OS_PASSWORD}"
+ echo " neutron_admin_auth_url=${OS_AUTH_URL}"
+ echo " neutron_auth_strategy=keystone"
+ echo " neutron_admin_tenant_name=${OS_TENANT_NAME}"
+ echo " neutron_url=http://${Q_HOST}:${Q_PORT}/"
echo " firewall_driver=nova.virt.firewall.NoopFirewallDriver"
- echo " security_group_api=quantum"
+ echo " security_group_api=neutron"
else
- openstack-config --set ${NOVA_CONF} DEFAULT network_api_class nova.network.quantumv2.api.API
- openstack-config --set ${NOVA_CONF} DEFAULT quantum_admin_username ${OS_USERNAME}
- openstack-config --set ${NOVA_CONF} DEFAULT quantum_admin_password ${OS_PASSWORD}
- openstack-config --set ${NOVA_CONF} DEFAULT quantum_admin_auth_url ${OS_AUTH_URL}
- openstack-config --set ${NOVA_CONF} DEFAULT quantum_auth_strategy keystone
- openstack-config --set ${NOVA_CONF} DEFAULT quantum_admin_tenant_name ${OS_TENANT_NAME}
- openstack-config --set ${NOVA_CONF} DEFAULT quantum_url http://${Q_HOST}:${Q_PORT}/
+ openstack-config --set ${NOVA_CONF} DEFAULT network_api_class nova.network.neutronv2.api.API
+ openstack-config --set ${NOVA_CONF} DEFAULT neutron_admin_username ${OS_USERNAME}
+ openstack-config --set ${NOVA_CONF} DEFAULT neutron_admin_password ${OS_PASSWORD}
+ openstack-config --set ${NOVA_CONF} DEFAULT neutron_admin_auth_url ${OS_AUTH_URL}
+ openstack-config --set ${NOVA_CONF} DEFAULT neutron_auth_strategy keystone
+ openstack-config --set ${NOVA_CONF} DEFAULT neutron_admin_tenant_name ${OS_TENANT_NAME}
+ openstack-config --set ${NOVA_CONF} DEFAULT neutron_url http://${Q_HOST}:${Q_PORT}/
openstack-config --set ${NOVA_CONF} DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver
- openstack-config --set ${NOVA_CONF} DEFAULT security_group_api quantum
+ openstack-config --set ${NOVA_CONF} DEFAULT security_group_api neutron
fi
echo "Configuration updates complete!"
#!/bin/sh
#
-# quantum-openvswitch-agent OpenStack Open vSwitch plugin
+# neutron-openvswitch-agent OpenStack Open vSwitch plugin
#
# chkconfig: - 98 02
# description: Support virtual networks using Open vSwitch
. /etc/rc.d/init.d/functions
-proj=quantum
+proj=neutron
plugin=openvswitch-agent
prog=$proj-$plugin
exec="/usr/bin/$prog"
-config="/etc/$proj/plugins/openvswitch/ovs_quantum_plugin.ini"
+config="/etc/$proj/plugins/openvswitch/ovs_neutron_plugin.ini"
pidfile="/var/run/$proj/$prog.pid"
[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
[ -x $exec ] || exit 5
[ -f $config ] || exit 6
echo -n $"Starting $prog: "
- daemon --user quantum --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 --config-file /etc/$proj/$proj.conf --config-file $config &>/dev/null & echo \$! > $pidfile"
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
--- /dev/null
+description "OpenStack Neutron Open vSwitch Agent"
+
+start on stopped rc RUNLEVEL=[2345]
+stop on runlevel [S016]
+
+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
#!/bin/sh
#
-# quantum-ovs-cleanup OpenStack Open vSwitch cleanup utility
+# neutron-ovs-cleanup OpenStack Open vSwitch cleanup utility
#
# chkconfig: - 97 02
-# description: Purge Open vSwitch of the Quantum devices
+# description: Purge Open vSwitch of the Neutron devices
### END INIT INFO
. /etc/rc.d/init.d/functions
-proj=quantum
+proj=neutron
prog=$proj-ovs-cleanup
exec="/usr/bin/$prog"
pidfile="/var/run/$proj/$prog.pid"
-config="/etc/$proj/plugins/openvswitch/ovs_quantum_plugin.ini"
+config="/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 quantum $exec --log-file /var/log/$proj/ovs-cleanup.log --config-file /etc/$proj/$proj.conf --config-file $config &>/dev/null
+ daemon --user neutron $exec --log-file /var/log/$proj/ovs-cleanup.log --config-file /etc/$proj/$proj.conf --config-file $config &>/dev/null
retval=$?
[ $retval -eq 0 ] && touch $lockfile
return $retval
--- /dev/null
+description "OpenStack Neutron Open vSwitch cleanup utility"
+
+start on stopped rc RUNLEVEL=[2345]
+
+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
#!/bin/sh
#
-# quantum-ryu-agent OpenStack Ryu Network OS plugin
+# neutron-ryu-agent OpenStack Ryu Network OS plugin
#
# chkconfig: - 98 02
# description: Support virtual networks using Ryu Network OS
. /etc/rc.d/init.d/functions
-proj=quantum
+proj=neutron
plugin=ryu-agent
prog=$proj-$plugin
exec="/usr/bin/$prog"
[ -x $exec ] || exit 5
[ -f $config ] || exit 6
echo -n $"Starting $prog: "
- daemon --user quantum --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 --config-file /etc/$proj/$proj.conf --config-file $config &>/dev/null & echo \$! > $pidfile"
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
--- /dev/null
+description "OpenStack Neutron Ryu Network Operating System Agent"
+
+start on stopped rc RUNLEVEL=[2345]
+stop on runlevel [S016]
+
+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
The setup of MySQL with a multi-server OpenStack installation is outside of the scope of
this simple helper script.
-Usage: quantum-server-setup [options]
+Usage: neutron-server-setup [options]
Options:
--help | -h
Print usage information.
--qpw <pw> | -q <pw>
- Specify the password for the 'quantum' MySQL user that quantum will
- use to connect to the 'quantum' MySQL database. By default,
- the password 'quantum' will be used.
+ Specify the password for the 'neutron' MySQL user that neutron will
+ use to connect to the 'neutron' MySQL database. By default,
+ the password 'neutron' will be used.
--rootpw <pw> | -r <pw>
Specify the root MySQL password. If the script installs
just assume yes. This is useful if you want to run the script
non-interactively.
--user | -u
- The quantum user.
+ The neutron user.
--plugin | -p
- The quantum plugin. Supported plugins:-
+ The neutron plugin. Supported plugins:-
${SUPPORTED_PLUGINS[*]}
EOF
}
ASSUME_YES=""
-QUANTUM_USER=quantum
-MYSQL_Q_PW=quantum
-Q_CONF=/etc/quantum/quantum.conf
-LB_CONF=/etc/quantum/plugins/linuxbridge/linuxbridge_conf.ini
-OVS_CONF=/etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini
+NEUTRON_USER=neutron
+MYSQL_Q_PW=neutron
+Q_CONF=/etc/neutron/neutron.conf
+LB_CONF=/etc/neutron/plugins/linuxbridge/linuxbridge_conf.ini
+OVS_CONF=/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini
Q_HOST='localhost'
Q_PORT=9696
# Keystone specific
-OS_USERNAME=${OS_USERNAME:-quantum}
+OS_USERNAME=${OS_USERNAME:-neutron}
OS_PASSWORD=${OS_PASSWORD:-servicepass}
OS_AUTH_URL=${OS_AUTH_URL:-http://127.0.0.1:35357/v2.0/}
OS_TENANT_NAME=${OS_TENANT_NAME:-service}
;;
-u|--user)
shift
- QUANTUM_USER=${1}
+ NEUTRON_USER=${1}
;;
-p|--plugin)
shift
- QUANTUM_PLUGIN=${1}
+ NEUTRON_PLUGIN=${1}
;;
*)
# ignore
done
# if the plugin is not defined
-if [ -z ${QUANTUM_PLUGIN} ] ; then
+if [ -z ${NEUTRON_PLUGIN} ] ; then
echo "Please select a plugin from: ${SUPPORTED_PLUGINS[*]}"
echo "Choice:"
- read QUANTUM_PLUGIN
+ read NEUTRON_PLUGIN
fi
# check that the plugin is valid
-is_valid_plugin ${QUANTUM_PLUGIN}
+is_valid_plugin ${NEUTRON_PLUGIN}
if [ $? -ne 0 ]; then
- echo "Plugin '${QUANTUM_PLUGIN}' not supported. Supported plugins:-"
+ echo "Plugin '${NEUTRON_PLUGIN}' not supported. Supported plugins:-"
echo " ${SUPPORTED_PLUGINS[*]}"
exit 0
fi
-echo "Quantum plugin: ${QUANTUM_PLUGIN}"
+echo "Neutron plugin: ${NEUTRON_PLUGIN}"
if ! [ -e "${Q_CONF}" ]; then
- echo "Please install the quantum package"
+ echo "Please install the neutron package"
exit 0
fi
-if ! [ -e "/etc/quantum/plugins/${QUANTUM_PLUGIN}" ]; then
- echo "Please install the ${QUANTUM_PLUGIN} quantum plugin"
+if ! [ -e "/etc/neutron/plugins/${NEUTRON_PLUGIN}" ]; then
+ echo "Please install the ${NEUTRON_PLUGIN} neutron plugin"
exit 0
fi
-case "${QUANTUM_PLUGIN}" in
+case "${NEUTRON_PLUGIN}" in
"linuxbridge")
- DB_NAME="quantum_linux_bridge"
- Q_PLUGIN_CLASS="quantum.plugins.linuxbridge.lb_quantum_plugin.LinuxBridgePluginV2"
+ DB_NAME="neutron_linux_bridge"
+ Q_PLUGIN_CLASS="neutron.plugins.linuxbridge.lb_neutron_plugin.LinuxBridgePluginV2"
;;
"openvswitch")
echo "Please install openvswitch"
exit 0
fi
- DB_NAME="ovs_quantum"
- Q_PLUGIN_CLASS="quantum.plugins.openvswitch.ovs_quantum_plugin.OVSQuantumPluginV2"
+ DB_NAME="ovs_neutron"
+ Q_PLUGIN_CLASS="neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2"
;;
esac
-# Update quantum.conf
+# Update neutron.conf
# Plugin
openstack-config --set ${Q_CONF} DEFAULT core_plugin $Q_PLUGIN_CLASS
# QPID
-openstack-config --set ${Q_CONF} DEFAULT rpc_backend quantum.openstack.common.rpc.impl_qpid
+openstack-config --set ${Q_CONF} DEFAULT rpc_backend neutron.openstack.common.rpc.impl_qpid
openstack-config --set ${Q_CONF} DEFAULT qpid_hostname localhost
# Authentication
openstack-config --set ${Q_CONF} DEFAULT auth_strategy keystone
openstack-config --set ${Q_CONF} keystone_authtoken admin_user ${OS_USERNAME}
openstack-config --set ${Q_CONF} keystone_authtoken admin_password ${OS_PASSWORD}
-echo "Plugin: ${QUANTUM_PLUGIN} => Database: ${DB_NAME}"
+echo "Plugin: ${NEUTRON_PLUGIN} => Database: ${DB_NAME}"
# Make sure MySQL is installed.
echo "Verified connectivity to MySQL."
# Create a database user - check if it does not exist prior
-USER_EXISTS=$(mysql -u root ${MYSQL_ROOT_PW_ARG} -e "SELECT user FROM mysql.user WHERE user='${QUANTUM_USER}'"|grep ${QUANTUM_USER} | wc -l)
+USER_EXISTS=$(mysql -u root ${MYSQL_ROOT_PW_ARG} -e "SELECT user FROM mysql.user WHERE user='${NEUTRON_USER}'"|grep ${NEUTRON_USER} | wc -l)
if [ ${USER_EXISTS} -ne 0 ]; then
- echo "User ${QUANTUM_USER} already exists"
+ echo "User ${NEUTRON_USER} already exists"
else
- mysql -u root ${MYSQL_ROOT_PW_ARG} -e "create user '${QUANTUM_USER}'@'%' identified by '${MYSQL_Q_PW}'"
- mysql -u root ${MYSQL_ROOT_PW_ARG} -e "create user '${QUANTUM_USER}'@'localhost' identified by '${MYSQL_Q_PW}'"
+ mysql -u root ${MYSQL_ROOT_PW_ARG} -e "create user '${NEUTRON_USER}'@'%' identified by '${MYSQL_Q_PW}'"
+ mysql -u root ${MYSQL_ROOT_PW_ARG} -e "create user '${NEUTRON_USER}'@'localhost' identified by '${MYSQL_Q_PW}'"
fi
#create database
mysql -u root ${MYSQL_ROOT_PW_ARG} -e "create database ${DB_NAME}"
# Configure database specifics
-case "${QUANTUM_PLUGIN}" in
+case "${NEUTRON_PLUGIN}" in
"linuxbridge")
- mysql -u root ${MYSQL_ROOT_PW_ARG} -e "grant all on quantum_linux_bridge.* to '${QUANTUM_USER}'@'%'"
- mysql -u root ${MYSQL_ROOT_PW_ARG} -e "grant all on quantum_linux_bridge.* to '${QUANTUM_USER}'@'localhost'"
- openstack-config --set ${LB_CONF} DATABASE sql_connection mysql://${QUANTUM_USER}:${MYSQL_Q_PW}@`hostname`/quantum_linux_bridge
+ mysql -u root ${MYSQL_ROOT_PW_ARG} -e "grant all on neutron_linux_bridge.* to '${NEUTRON_USER}'@'%'"
+ mysql -u root ${MYSQL_ROOT_PW_ARG} -e "grant all on neutron_linux_bridge.* to '${NEUTRON_USER}'@'localhost'"
+ openstack-config --set ${LB_CONF} DATABASE sql_connection mysql://${NEUTRON_USER}:${MYSQL_Q_PW}@`hostname`/neutron_linux_bridge
echo "Please enter network device for VLAN trunking:"
read NETWORK_DEVICE
openstack-config --set ${LB_CONF} LINUX_BRIDGE physical_interface ${NETWORK_DEVICE}
- ln -s ${LB_CONF} /etc/quantum/plugin.ini
+ ln -s ${LB_CONF} /etc/neutron/plugin.ini
;;
"openvswitch")
- mysql -u root ${MYSQL_ROOT_PW_ARG} -e "grant all on ovs_quantum.* to '${QUANTUM_USER}'@'%'"
- mysql -u root ${MYSQL_ROOT_PW_ARG} -e "grant all on ovs_quantum.* to '${QUANTUM_USER}'@'localhost'"
- openstack-config --set ${OVS_CONF} DATABASE sql_connection mysql://${QUANTUM_USER}:${MYSQL_Q_PW}@`hostname`/ovs_quantum
- openstack-config --set ${OVS_CONF} SECURITYGROUP firewall_driver quantum.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
- ln -s ${OVS_CONF} /etc/quantum/plugin.ini
+ mysql -u root ${MYSQL_ROOT_PW_ARG} -e "grant all on ovs_neutron.* to '${NEUTRON_USER}'@'%'"
+ mysql -u root ${MYSQL_ROOT_PW_ARG} -e "grant all on ovs_neutron.* to '${NEUTRON_USER}'@'localhost'"
+ openstack-config --set ${OVS_CONF} DATABASE sql_connection mysql://${NEUTRON_USER}:${MYSQL_Q_PW}@`hostname`/ovs_neutron
+ openstack-config --set ${OVS_CONF} SECURITYGROUP firewall_driver neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
+ ln -s ${OVS_CONF} /etc/neutron/plugin.ini
;;
esac
if ! [ -e "${NOVA_CONF}" ]; then
echo "Please install OpenStack compute and then set the values"
echo "in /etc/nova/nova.conf DEFAULT section"
- echo " network_api_classi=nova.network.quantumv2.api.API"
- echo " quantum_admin_username=${OS_USERNAME}"
- echo " quantum_admin_password=${OS_PASSWORD}"
- echo " quantum_admin_auth_url=${OS_AUTH_URL}"
- echo " quantum_auth_strategy=keystone"
- echo " quantum_admin_tenant_name=${OS_TENANT_NAME}"
- echo " quantum_url=http://${Q_HOST}:${Q_PORT}/"
+ echo " network_api_classi=nova.network.neutronv2.api.API"
+ echo " neutron_admin_username=${OS_USERNAME}"
+ echo " neutron_admin_password=${OS_PASSWORD}"
+ echo " neutron_admin_auth_url=${OS_AUTH_URL}"
+ echo " neutron_auth_strategy=keystone"
+ echo " neutron_admin_tenant_name=${OS_TENANT_NAME}"
+ echo " neutron_url=http://${Q_HOST}:${Q_PORT}/"
echo " firewall_driver=nova.virt.firewall.NoopFirewallDriver"
- echo " security_group_api=quantum"
+ echo " security_group_api=neutron"
else
- openstack-config --set ${NOVA_CONF} DEFAULT network_api_class nova.network.quantumv2.api.API
- openstack-config --set ${NOVA_CONF} DEFAULT quantum_admin_username ${OS_USERNAME}
- openstack-config --set ${NOVA_CONF} DEFAULT quantum_admin_password ${OS_PASSWORD}
- openstack-config --set ${NOVA_CONF} DEFAULT quantum_admin_auth_url ${OS_AUTH_URL}
- openstack-config --set ${NOVA_CONF} DEFAULT quantum_auth_strategy keystone
- openstack-config --set ${NOVA_CONF} DEFAULT quantum_admin_tenant_name ${OS_TENANT_NAME}
- openstack-config --set ${NOVA_CONF} DEFAULT quantum_url http://${Q_HOST}:${Q_PORT}/
+ openstack-config --set ${NOVA_CONF} DEFAULT network_api_class nova.network.neutronv2.api.API
+ openstack-config --set ${NOVA_CONF} DEFAULT neutron_admin_username ${OS_USERNAME}
+ openstack-config --set ${NOVA_CONF} DEFAULT neutron_admin_password ${OS_PASSWORD}
+ openstack-config --set ${NOVA_CONF} DEFAULT neutron_admin_auth_url ${OS_AUTH_URL}
+ openstack-config --set ${NOVA_CONF} DEFAULT neutron_auth_strategy keystone
+ openstack-config --set ${NOVA_CONF} DEFAULT neutron_admin_tenant_name ${OS_TENANT_NAME}
+ openstack-config --set ${NOVA_CONF} DEFAULT neutron_url http://${Q_HOST}:${Q_PORT}/
openstack-config --set ${NOVA_CONF} DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver
- openstack-config --set ${NOVA_CONF} DEFAULT security_group_api quantum
+ openstack-config --set ${NOVA_CONF} DEFAULT security_group_api neutron
fi
echo "Configuration updates complete!"
#!/bin/sh
#
-# quantum OpenStack Software Defined Networking Service
+# neutron OpenStack Software Defined Networking Service
#
# chkconfig: - 98 02
-# description: quantum provides an API to \
+# description: neutron provides an API to \
# * request and configure virtual networks
### END INIT INFO
. /etc/rc.d/init.d/functions
-prog=quantum
+prog=neutron
exec="/usr/bin/$prog-server"
config="/etc/$prog/$prog.conf"
pidfile="/var/run/$prog/$prog.pid"
[ -x $exec ] || exit 5
[ -f $config ] || exit 6
echo -n $"Starting $prog: "
- daemon --user quantum --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 --config-file $config --config-file /etc/$prog/plugin.ini --log-file $logfile &>/dev/null & echo \$! > $pidfile"
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
--- /dev/null
+description "OpenStack Neutron Server"
+
+start on stopped rc RUNLEVEL=[2345]
+stop on runlevel [S016]
+
+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
--- /dev/null
+Defaults:neutron !requiretty
+
+neutron ALL = (root) NOPASSWD: SETENV: /usr/bin/neutron-rootwrap
compress
-/var/log/quantum/*.log {
+/var/log/neutron/*.log {
weekly
rotate 4
missingok
+++ /dev/null
---- quantum-2012.2/quantum/__init__.py.orig 2012-09-25 21:44:21.000000000 +0200
-+++ quantum-2012.2/quantum/__init__.py 2012-10-23 15:11:27.629591625 +0200
-@@ -15,6 +15,36 @@
- # License for the specific language governing permissions and limitations
- # under the License.
-
-+import sys
-+import pkg_resources
-+
-+# If there is a conflicting non egg module,
-+# i.e. an older standard system module installed,
-+# then replace it with this requirement
-+def replace_dist(requirement):
-+ try:
-+ return pkg_resources.require(requirement)
-+ except pkg_resources.VersionConflict:
-+ e = sys.exc_info()[1]
-+ dist=e.args[0]
-+ req=e.args[1]
-+ if dist.key == req.key and not dist.location.endswith('.egg'):
-+ del pkg_resources.working_set.by_key[dist.key]
-+ # We assume there is no need to adjust sys.path
-+ # and the associated pkg_resources.working_set.entries
-+ return pkg_resources.require(requirement)
-+
-+replace_dist("WebOb >= 1.0")
-+replace_dist("SQLAlchemy >= 0.6.3")
-+replace_dist("Routes >= 1.12.3")
-+
-+replace_dist("PasteDeploy >= 1.5.0")
-+# This hack is needed because replace_dist() results in
-+# the standard paste module path being at the start of __path__.
-+# TODO: See can we get pkg_resources to do the right thing directly
-+import paste
-+paste.__path__.insert(0, paste.__path__.pop(-1))
-+
- import gettext
-
-
+++ /dev/null
-description "OpenStack Quantum DHCP Agent"
-
-start on stopped rc RUNLEVEL=[2345]
-stop on runlevel [S016]
-
-respawn
-
-exec su -s /bin/sh -c "exec /usr/bin/quantum-dhcp-agent --log-file /var/log/quantum/dhcp-agent.log --config-file /etc/quantum/quantum.conf --config-file /etc/quantum/dhcp_agent.ini" quantum
+++ /dev/null
-description "OpenStack Quantum Layer 3 Agent"
-
-start on stopped rc RUNLEVEL=[2345]
-stop on runlevel [S016]
-
-respawn
-
-exec su -s /bin/sh -c "exec /usr/bin/quantum-l3-agent --log-file /var/log/quantum/l3-agent.log --config-file /etc/quantum/quantum.conf --config-file /etc/quantum/l3_agent.ini" quantum
+++ /dev/null
-description "OpenStack Quantum LBaaS Agent"
-
-start on stopped rc RUNLEVEL=[2345]
-stop on runlevel [S016]
-
-respawn
-
-exec su -s /bin/sh -c "exec /usr/bin/quantum-lbaas-agent --log-file /var/log/quantum/lbaas-agent.log --config-file /etc/quantum/quantum.conf --config-file /etc/quantum/lbaas_agent.ini" quantum
+++ /dev/null
-description "OpenStack Quantum Linux Bridge Agent"
-
-start on stopped rc RUNLEVEL=[2345]
-stop on runlevel [S016]
-
-respawn
-
-exec su -s /bin/sh -c "exec /usr/bin/quantum-linuxbridge-agent --log-file /var/log/quantum/linuxbridge-agent.log --config-file /etc/quantum/quantum.conf --config-file /etc/quantum/plugins/linuxbridge/linuxbridge_conf.ini" quantum
+++ /dev/null
-description "OpenStack Quantum Layer 3 Agent"
-description "OpenStack Quantum Metadata Agent"
-
-start on stopped rc RUNLEVEL=[2345]
-stop on runlevel [S016]
-
-respawn
-
-exec su -s /bin/sh -c "exec /usr/bin/quantum-metadata-agent --config-file /etc/quantum/quantum.conf --config-file /etc/quantum/metadata_agent.ini --log-file /var/log/quantum/metadata-agent.log" quantum
+++ /dev/null
-description "OpenStack Quantum NEC OpenFlow Agent"
-
-start on stopped rc RUNLEVEL=[2345]
-stop on runlevel [S016]
-
-respawn
-
-exec su -s /bin/sh -c "exec /usr/bin/quantum-nec-agent --log-file /var/log/quantum/nec-agent.log --config-file /etc/quantum/quantum.conf --config-file /etc/quantum/plugins/nec/nec.ini" quantum
+++ /dev/null
-description "OpenStack Quantum Open vSwitch Agent"
-
-start on stopped rc RUNLEVEL=[2345]
-stop on runlevel [S016]
-
-respawn
-
-exec su -s /bin/sh -c "exec /usr/bin/quantum-openvswitch-agent --log-file /var/log/quantum/openvswitch-agent.log --config-file /etc/quantum/quantum.conf --config-file /etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini" quantum
+++ /dev/null
-description "OpenStack Quantum Open vSwitch cleanup utility"
-
-start on stopped rc RUNLEVEL=[2345]
-
-task
-
-exec su -s /bin/sh -c "exec /usr/bin/quantum-ovs-cleanup --log-file /var/log/quantum/ovs-cleanup.log --config-file /etc/quantum/quantum.conf --config-file /etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini" quantum
+++ /dev/null
-description "OpenStack Quantum Ryu Network Operating System Agent"
-
-start on stopped rc RUNLEVEL=[2345]
-stop on runlevel [S016]
-
-respawn
-
-exec su -s /bin/sh -c "exec /usr/bin/quantum-ryu-agent --config-file /etc/quantum/quantum.conf --config-file /etc/quantum/plugins/ryu/ryu.ini --log-file /var/log/quantum/ryu-agent.log" quantum
+++ /dev/null
-description "OpenStack Quantum Server"
-
-start on stopped rc RUNLEVEL=[2345]
-stop on runlevel [S016]
-
-respawn
-
-exec su -s /bin/sh -c "exec /usr/bin/quantum-server --config-file /etc/quantum/quantum.conf --config-file /etc/quantum/plugin.ini --log-file /var/log/quantum/server.log" quantum
+++ /dev/null
-Defaults:quantum !requiretty
-
-quantum ALL = (root) NOPASSWD: SETENV: /usr/bin/quantum-rootwrap
--- /dev/null
+#
+# This is 2013.1.2 release
+#
+%global release_name havana
+
+Name: openstack-neutron
+Version: 2013.2
+Release: 0.4.b3%{?dist}
+Provides: openstack-quantum = %{version}-%{release}
+Obsoletes: openstack-quantum < 2013.2-0.3.b3
+
+Summary: OpenStack Networking Service
+
+Group: Applications/System
+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
+Source1: neutron.logrotate
+Source2: neutron-sudoers
+Source4: neutron-server-setup
+Source5: neutron-node-setup
+Source6: neutron-dhcp-setup
+Source7: neutron-l3-setup
+
+Source10: neutron-server.init
+Source20: neutron-server.upstart
+Source11: neutron-linuxbridge-agent.init
+Source21: neutron-linuxbridge-agent.upstart
+Source12: neutron-openvswitch-agent.init
+Source22: neutron-openvswitch-agent.upstart
+Source13: neutron-ryu-agent.init
+Source23: neutron-ryu-agent.upstart
+Source14: neutron-nec-agent.init
+Source24: neutron-nec-agent.upstart
+Source15: neutron-dhcp-agent.init
+Source25: neutron-dhcp-agent.upstart
+Source16: neutron-l3-agent.init
+Source26: neutron-l3-agent.upstart
+Source17: neutron-metadata-agent.init
+Source27: neutron-metadata-agent.upstart
+Source18: neutron-ovs-cleanup.init
+Source28: neutron-ovs-cleanup.upstart
+Source19: neutron-lbaas-agent.init
+Source29: neutron-lbaas-agent.upstart
+Source30: neutron-mlnx-agent.init
+Source40: neutron-mlnx-agent.upstart
+
+#
+# patches_base=2013.2.b3
+#
+Patch0001: 0001-use-parallel-installed-versions-in-RHEL6.patch
+
+BuildArch: noarch
+
+BuildRequires: python2-devel
+BuildRequires: python-setuptools
+# Build require these parallel versions
+# as setup.py build imports neutron.openstack.common.setup
+# which will then check for these
+BuildRequires: python-sqlalchemy0.7
+BuildRequires: python-webob1.0
+BuildRequires: python-paste-deploy1.5
+BuildRequires: python-routes1.12
+BuildRequires: dos2unix
+BuildRequires: python-pbr
+BuildRequires: python-d2to1
+
+
+Requires: python-neutron = %{version}-%{release}
+Requires: openstack-utils
+Requires: python-keystone
+Requires: python-pbr
+
+Requires(post): chkconfig
+Requires(postun): initscripts
+Requires(preun): chkconfig
+Requires(preun): initscripts
+Requires(pre): shadow-utils
+
+# dnsmasq is not a hard requirement, but is currently the only option
+# when neutron-dhcp-agent is deployed.
+Requires: dnsmasq
+
+
+%description
+Quantum is a virtual network service for Openstack. Just like
+OpenStack Nova provides an API to dynamically request and configure
+virtual servers, Quantum provides an API to dynamically request and
+configure virtual networks. These networks connect "interfaces" from
+other OpenStack services (e.g., virtual NICs from Nova VMs). The
+Quantum API supports extensions to provide advanced network
+capabilities (e.g., QoS, ACLs, network monitoring, etc.)
+
+
+%package -n python-neutron
+Summary: Quantum Python libraries
+Group: Applications/System
+
+Provides: python-quantum = %{version}-%{release}
+Obsoletes: python-quantum < 2013.2-0.3.b3
+
+Requires: MySQL-python
+Requires: python-alembic
+Requires: python-amqplib
+Requires: python-anyjson
+Requires: python-eventlet
+Requires: python-greenlet
+Requires: python-httplib2
+Requires: python-iso8601
+Requires: python-kombu
+Requires: python-lxml
+Requires: python-paste-deploy1.5
+Requires: python-routes1.12
+Requires: python-sqlalchemy0.7
+Requires: python-webob1.0
+Requires: python-netaddr
+Requires: python-oslo-config
+Requires: python-qpid
+Requires: python-neutronclient
+Requires: sudo
+
+%description -n python-neutron
+Quantum provides an API to dynamically request and configure virtual
+networks.
+
+This package contains the neutron Python library.
+
+
+%package -n openstack-neutron-bigswitch
+Summary: Quantum Big Switch plugin
+Group: Applications/System
+
+Provides: openstack-quantum-bigswitch = %{version}-%{release}
+Obsoletes: openstack-quantum-bigswitch < 2013.2-0.3.b3
+
+Requires: openstack-neutron = %{version}-%{release}
+
+
+%description -n openstack-neutron-bigswitch
+Quantum provides an API to dynamically request and configure virtual
+networks.
+
+This package contains the neutron plugin that implements virtual
+networks using the FloodLight Openflow Controller or the Big Switch
+Networks Controller.
+
+
+%package -n openstack-neutron-brocade
+Summary: Quantum Brocade plugin
+Group: Applications/System
+
+Provides: openstack-quantum-brocade = %{version}-%{release}
+Obsoletes: openstack-quantum-brocade < 2013.2-0.3.b3
+
+Requires: openstack-neutron = %{version}-%{release}
+
+
+%description -n openstack-neutron-brocade
+Quantum provides an API to dynamically request and configure virtual
+networks.
+
+This package contains the neutron plugin that implements virtual
+networks using Brocade VCS switches running NOS.
+
+
+%package -n openstack-neutron-cisco
+Summary: Quantum Cisco plugin
+Group: Applications/System
+
+Provides: openstack-quantum-cisco = %{version}-%{release}
+Obsoletes: openstack-quantum-cisco < 2013.2-0.3.b3
+
+Requires: openstack-neutron = %{version}-%{release}
+Requires: python-configobj
+
+
+%description -n openstack-neutron-cisco
+Quantum provides an API to dynamically request and configure virtual
+networks.
+
+This package contains the neutron plugin that implements virtual
+networks using Cisco UCS and Nexus.
+
+
+%package -n openstack-neutron-hyperv
+Summary: Quantum Hyper-V plugin
+Group: Applications/System
+
+Provides: openstack-quantum-hyperv = %{version}-%{release}
+Obsoletes: openstack-quantum-hyperv < 2013.2-0.3.b3
+
+Requires: openstack-neutron = %{version}-%{release}
+
+
+%description -n openstack-neutron-hyperv
+Quantum provides an API to dynamically request and configure virtual
+networks.
+
+This package contains the neutron plugin that implements virtual
+networks using Microsoft Hyper-V.
+
+
+%package -n openstack-neutron-linuxbridge
+Summary: Quantum linuxbridge plugin
+Group: Applications/System
+
+Provides: openstack-quantum-linuxbridge = %{version}-%{release}
+Obsoletes: openstack-quantum-linuxbridge < 2013.2-0.3.b3
+
+Requires: bridge-utils
+Requires: openstack-neutron = %{version}-%{release}
+Requires: python-pyudev
+
+
+%description -n openstack-neutron-linuxbridge
+Quantum provides an API to dynamically request and configure virtual
+networks.
+
+This package contains the neutron plugin that implements virtual
+networks as VLANs using Linux bridging.
+
+
+%package -n openstack-neutron-midonet
+Summary: Quantum MidoNet plugin
+Group: Applications/System
+
+Provides: openstack-quantum-midonet = %{version}-%{release}
+Obsoletes: openstack-quantum-midonet < 2013.2-0.3.b3
+
+Requires: openstack-neutron = %{version}-%{release}
+
+
+%description -n openstack-neutron-midonet
+Quantum provides an API to dynamically request and configure virtual
+networks.
+
+This package contains the neutron plugin that implements virtual
+networks using MidoNet from Midokura.
+
+
+%package -n openstack-neutron-ml2
+Summary: Quantum ML2 plugin
+Group: Applications/System
+
+Provides: openstack-quantum-ml2 = %{version}-%{release}
+Obsoletes: openstack-quantum-ml2 < 2013.2-0.3.b3
+
+Requires: openstack-neutron = %{version}-%{release}
+
+
+%description -n openstack-neutron-ml2
+Quantum provides an API to dynamically request and configure virtual
+networks.
+
+This package contains a neutron plugin that allows the use of drivers
+to support separately extensible sets of network types and the mechanisms
+for accessing those types.
+
+
+%package -n openstack-neutron-mellanox
+Summary: Quantum Mellanox plugin
+Group: Applications/System
+
+Provides: openstack-quantum-mellanox = %{version}-%{release}
+Obsoletes: openstack-quantum-mellanox < 2013.2-0.3.b3
+
+Requires: openstack-neutron = %{version}-%{release}
+
+
+%description -n openstack-neutron-mellanox
+This plugin implements Quantum v2 APIs with support for Mellanox embedded
+switch functionality as part of the VPI (Ethernet/InfiniBand) HCA.
+
+
+%package -n openstack-neutron-nicira
+Summary: Quantum Nicira plugin
+Group: Applications/System
+
+Provides: openstack-quantum-nicira = %{version}-%{release}
+Obsoletes: openstack-quantum-nicira < 2013.2-0.3.b3
+
+Requires: openstack-neutron = %{version}-%{release}
+
+
+%description -n openstack-neutron-nicira
+Quantum provides an API to dynamically request and configure virtual
+networks.
+
+This package contains the neutron plugin that implements virtual
+networks using Nicira NVP.
+
+
+%package -n openstack-neutron-openvswitch
+Summary: Quantum openvswitch plugin
+Group: Applications/System
+
+Provides: openstack-quantum-openvswitch = %{version}-%{release}
+Obsoletes: openstack-quantum-openvswitch < 2013.2-0.3.b3
+
+Requires: openstack-neutron = %{version}-%{release}
+Requires: openvswitch
+
+
+%description -n openstack-neutron-openvswitch
+Quantum provides an API to dynamically request and configure virtual
+networks.
+
+This package contains the neutron plugin that implements virtual
+networks using Open vSwitch.
+
+
+%package -n openstack-neutron-plumgrid
+Summary: Quantum PLUMgrid plugin
+Group: Applications/System
+
+Provides: openstack-quantum-plumgrid = %{version}-%{release}
+Obsoletes: openstack-quantum-plumgrid < 2013.2-0.3.b3
+
+Requires: openstack-neutron = %{version}-%{release}
+
+
+%description -n openstack-neutron-plumgrid
+Quantum provides an API to dynamically request and configure virtual
+networks.
+
+This package contains the neutron plugin that implements virtual
+networks using the PLUMgrid platform.
+
+
+%package -n openstack-neutron-ryu
+Summary: Quantum Ryu plugin
+Group: Applications/System
+
+Provides: openstack-quantum-ryu = %{version}-%{release}
+Obsoletes: openstack-quantum-ryu < 2013.2-0.3.b3
+
+Requires: openstack-neutron = %{version}-%{release}
+
+
+%description -n openstack-neutron-ryu
+Quantum provides an API to dynamically request and configure virtual
+networks.
+
+This package contains the neutron plugin that implements virtual
+networks using the Ryu Network Operating System.
+
+
+%package -n openstack-neutron-nec
+Summary: Quantum NEC plugin
+Group: Applications/System
+
+Provides: openstack-quantum-nec = %{version}-%{release}
+Obsoletes: openstack-quantum-nec < 2013.2-0.3.b3
+
+Requires: openstack-neutron = %{version}-%{release}
+
+
+%description -n openstack-neutron-nec
+Quantum provides an API to dynamically request and configure virtual
+networks.
+
+This package contains the neutron plugin that implements virtual
+networks using the NEC OpenFlow controller.
+
+
+%package -n openstack-neutron-metaplugin
+Summary: Quantum meta plugin
+Group: Applications/System
+
+Provides: openstack-quantum-metaplugin = %{version}-%{release}
+Obsoletes: openstack-quantum-metaplugin < 2013.2-0.3.b3
+
+Requires: openstack-neutron = %{version}-%{release}
+
+
+%description -n openstack-neutron-metaplugin
+Quantum provides an API to dynamically request and configure virtual
+networks.
+
+This package contains the neutron plugin that implements virtual
+networks using multiple other neutron plugins.
+
+
+%package -n openstack-neutron-meetering-agent
+Summary: Neutron bandwidth metering agent
+Group: Applications/System
+
+Requires: openstack-neutron = %{version}-%{release}
+
+%description -n openstack-neutron-meetering-agent
+Neutron provides an API to measure bandwidth utilization
+
+This package contains the neutron agent responsible for generating bandwidth
+utilization notifications.
+
+%package -n openstack-neutron-vpn-agent
+Summary: Neutron VPNaaS agent
+Group: Applications/System
+
+Requires: openstack-neutron = %{version}-%{release}
+
+%description -n openstack-neutron-vpn-agent
+Neutron provides an API to implement VPN as a service
+
+This package contains the neutron agent responsible for implenting VPNaaS with
+IPSec.
+
+
+%prep
+%setup -q -n neutron-%{version}
+
+%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
+
+
+%install
+%{__python} setup.py install -O1 --skip-build --root %{buildroot}
+
+# Remove unused files
+rm -rf %{buildroot}%{python_sitelib}/bin
+rm -rf %{buildroot}%{python_sitelib}/doc
+rm -rf %{buildroot}%{python_sitelib}/tools
+rm -rf %{buildroot}%{python_sitelib}/neutron/tests
+rm -rf %{buildroot}%{python_sitelib}/neutron/plugins/*/tests
+rm -f %{buildroot}%{python_sitelib}/neutron/plugins/*/run_tests.*
+rm %{buildroot}/usr/etc/init.d/neutron-server
+
+# Move rootwrap files to proper location
+install -d -m 755 %{buildroot}%{_datarootdir}/neutron/rootwrap
+mv %{buildroot}/usr/etc/neutron/rootwrap.d/*.filters %{buildroot}%{_datarootdir}/neutron/rootwrap
+
+# Move config files to proper location
+install -d -m 755 %{buildroot}%{_sysconfdir}/neutron
+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 sudoers
+install -p -D -m 440 %{SOURCE2} %{buildroot}%{_sysconfdir}/sudoers.d/neutron
+
+# Install sysv init scripts
+install -p -D -m 755 %{SOURCE10} %{buildroot}%{_initrddir}/neutron-server
+install -p -D -m 755 %{SOURCE11} %{buildroot}%{_initrddir}/neutron-linuxbridge-agent
+install -p -D -m 755 %{SOURCE12} %{buildroot}%{_initrddir}/neutron-openvswitch-agent
+install -p -D -m 755 %{SOURCE13} %{buildroot}%{_initrddir}/neutron-ryu-agent
+install -p -D -m 755 %{SOURCE14} %{buildroot}%{_initrddir}/neutron-nec-agent
+install -p -D -m 755 %{SOURCE15} %{buildroot}%{_initrddir}/neutron-dhcp-agent
+install -p -D -m 755 %{SOURCE16} %{buildroot}%{_initrddir}/neutron-l3-agent
+install -p -D -m 755 %{SOURCE17} %{buildroot}%{_initrddir}/neutron-metadata-agent
+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
+
+# Setup directories
+install -d -m 755 %{buildroot}%{_datadir}/neutron
+install -d -m 755 %{buildroot}%{_sharedstatedir}/neutron
+install -d -m 755 %{buildroot}%{_localstatedir}/log/neutron
+install -d -m 755 %{buildroot}%{_localstatedir}/run/neutron
+
+# Install setup helper scripts
+install -p -D -m 755 %{SOURCE4} %{buildroot}%{_bindir}/neutron-server-setup
+install -p -D -m 755 %{SOURCE5} %{buildroot}%{_bindir}/neutron-node-setup
+install -p -D -m 755 %{SOURCE6} %{buildroot}%{_bindir}/neutron-dhcp-setup
+install -p -D -m 755 %{SOURCE7} %{buildroot}%{_bindir}/neutron-l3-setup
+
+# Install upstart jobs examples
+install -p -m 644 %{SOURCE20} %{buildroot}%{_datadir}/neutron/
+install -p -m 644 %{SOURCE21} %{buildroot}%{_datadir}/neutron/
+install -p -m 644 %{SOURCE22} %{buildroot}%{_datadir}/neutron/
+install -p -m 644 %{SOURCE23} %{buildroot}%{_datadir}/neutron/
+install -p -m 644 %{SOURCE24} %{buildroot}%{_datadir}/neutron/
+install -p -m 644 %{SOURCE25} %{buildroot}%{_datadir}/neutron/
+install -p -m 644 %{SOURCE26} %{buildroot}%{_datadir}/neutron/
+install -p -m 644 %{SOURCE27} %{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 version info file
+cat > %{buildroot}%{_sysconfdir}/neutron/release <<EOF
+[Quantum]
+vendor = Fedora Project
+product = OpenStack Quantum
+package = %{release}
+EOF
+
+%pre
+getent group neutron >/dev/null || groupadd -o -r neutron --gid 164
+getent passwd neutron >/dev/null || \
+ useradd -o --uid 164 -r -g neutron -d %{_sharedstatedir}/neutron -s /sbin/nologin \
+ -c "OpenStack Quantum Daemons" neutron
+exit 0
+
+
+%post
+if [ $1 -eq 1 ] ; then
+ # Initial installation
+ /sbin/chkconfig --add neutron-server
+fi
+
+%preun
+if [ $1 -eq 0 ] ; then
+ # 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
+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 || :
+fi
+
+
+%post -n openstack-neutron-linuxbridge
+if [ $1 -eq 1 ] ; then
+ # Initial installation
+ /sbin/chkconfig --add neutron-linuxbridge-agent
+fi
+
+%preun -n openstack-neutron-linuxbridge
+if [ $1 -eq 0 ] ; then
+ # Package removal, not upgrade
+ /sbin/service neutron-linuxbridge-agent stop >/dev/null 2>&1
+ /sbin/chkconfig --del neutron-linuxbridge-agent
+fi
+
+%postun -n openstack-neutron-linuxbridge
+if [ $1 -ge 1 ] ; then
+ # Package upgrade, not uninstall
+ /sbin/service neutron-linuxbridge-agent condrestart >/dev/null 2>&1 || :
+fi
+
+
+%post -n openstack-neutron-openvswitch
+if [ $1 -eq 1 ] ; then
+ # Initial installation
+ /sbin/chkconfig --add neutron-openvswitch-agent
+fi
+
+%preun -n openstack-neutron-openvswitch
+if [ $1 -eq 0 ] ; then
+ # Package removal, not upgrade
+ /sbin/service neutron-openvswitch-agent stop >/dev/null 2>&1
+ /sbin/chkconfig --del neutron-openvswitch-agent
+fi
+
+%postun -n openstack-neutron-openvswitch
+if [ $1 -ge 1 ] ; then
+ # Package upgrade, not uninstall
+ /sbin/service neutron-openvswitch-agent condrestart >/dev/null 2>&1 || :
+fi
+
+
+%post -n openstack-neutron-ryu
+if [ $1 -eq 1 ] ; then
+ # Initial installation
+ /sbin/chkconfig --add neutron-ryu-agent
+fi
+
+%preun -n openstack-neutron-ryu
+if [ $1 -eq 0 ] ; then
+ # Package removal, not upgrade
+ /sbin/service neutron-ryu-agent stop >/dev/null 2>&1
+ /sbin/chkconfig --del neutron-ryu-agent
+fi
+
+%postun -n openstack-neutron-ryu
+if [ $1 -ge 1 ] ; then
+ # Package upgrade, not uninstall
+ /sbin/service neutron-ryu-agent condrestart >/dev/null 2>&1 || :
+fi
+
+
+%preun -n openstack-neutron-nec
+if [ $1 -eq 0 ] ; then
+ # Package removal, not upgrade
+ /sbin/service neutron-nec-agent stop >/dev/null 2>&1
+ /sbin/chkconfig --del neutron-nec-agent
+fi
+
+
+%postun -n openstack-neutron-nec
+/bin/systemctl daemon-reload >/dev/null 2>&1 || :
+if [ $1 -ge 1 ] ; then
+ # Package upgrade, not uninstall
+ /sbin/service neutron-nec-agent condrestart >/dev/null 2>&1 || :
+fi
+
+
+%post -n openstack-neutron-mellanox
+if [ $1 -eq 1 ] ; then
+ # Initial installation
+ /sbin/chkconfig --add neutron-mlnx-agent
+fi
+
+%preun -n openstack-neutron-mellanox
+if [ $1 -eq 0 ] ; then
+ # Package removal, not upgrade
+ /sbin/service neutron-mlnx-agent stop >/dev/null 2>&1
+ /sbin/chkconfig --del neutron-mlnx-agent
+fi
+
+%postun -n openstack-neutron-mellanox
+if [ $1 -ge 1 ] ; then
+ # Package upgrade, not uninstall
+ /sbin/service neutron-mlnx-agent condrestart >/dev/null 2>&1 || :
+fi
+
+
+%files
+%doc LICENSE
+%doc README.rst
+%{_bindir}/quantum-db-manage
+%{_bindir}/quantum-debug
+%{_bindir}/quantum-dhcp-agent
+%{_bindir}/quantum-l3-agent
+%{_bindir}/quantum-lbaas-agent
+%{_bindir}/quantum-metadata-agent
+%{_bindir}/quantum-netns-cleanup
+%{_bindir}/quantum-ns-metadata-proxy
+%{_bindir}/quantum-rootwrap
+%{_bindir}/quantum-rootwrap-xen-dom0
+%{_bindir}/quantum-server
+%{_bindir}/quantum-usage-audit
+
+%{_bindir}/neutron-db-manage
+%{_bindir}/neutron-debug
+%{_bindir}/neutron-dhcp-agent
+%{_bindir}/neutron-dhcp-setup
+%{_bindir}/neutron-l3-agent
+%{_bindir}/neutron-l3-setup
+%{_bindir}/neutron-lbaas-agent
+%{_bindir}/neutron-metadata-agent
+%{_bindir}/neutron-netns-cleanup
+%{_bindir}/neutron-node-setup
+%{_bindir}/neutron-ns-metadata-proxy
+%{_bindir}/neutron-rootwrap
+%{_bindir}/neutron-rootwrap-xen-dom0
+%{_bindir}/neutron-server
+%{_bindir}/neutron-server-setup
+%{_bindir}/neutron-usage-audit
+
+%{_initrddir}/neutron-server
+%{_initrddir}/neutron-dhcp-agent
+%{_initrddir}/neutron-l3-agent
+%{_initrddir}/neutron-metadata-agent
+%{_initrddir}/neutron-ovs-cleanup
+%{_initrddir}/neutron-lbaas-agent
+%dir %{_datadir}/neutron
+%{_datadir}/neutron/neutron-server.upstart
+%{_datadir}/neutron/neutron-dhcp-agent.upstart
+%{_datadir}/neutron/neutron-metadata-agent.upstart
+%{_datadir}/neutron/neutron-l3-agent.upstart
+%{_datadir}/neutron/neutron-lbaas-agent.upstart
+%dir %{_sysconfdir}/neutron
+%{_sysconfdir}/neutron/release
+%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/metadata_agent.ini
+%config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/lbaas_agent.ini
+%config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/policy.json
+%config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/neutron.conf
+%config(noreplace) %{_sysconfdir}/neutron/rootwrap.conf
+%dir %{_sysconfdir}/neutron/plugins
+%config(noreplace) %{_sysconfdir}/logrotate.d/*
+%config(noreplace) %{_sysconfdir}/sudoers.d/neutron
+%dir %attr(0755, neutron, neutron) %{_sharedstatedir}/neutron
+%dir %attr(0755, neutron, neutron) %{_localstatedir}/log/neutron
+%dir %attr(0755, neutron, neutron) %{_localstatedir}/run/neutron
+%dir %{_datarootdir}/neutron/rootwrap
+%{_datarootdir}/neutron/rootwrap/dhcp.filters
+%{_datarootdir}/neutron/rootwrap/iptables-firewall.filters
+%{_datarootdir}/neutron/rootwrap/l3.filters
+%{_datarootdir}/neutron/rootwrap/lbaas-haproxy.filters
+
+
+%files -n python-neutron
+%doc LICENSE
+%doc README.rst
+%{python_sitelib}/neutron
+%{python_sitelib}/quantum
+%exclude %{python_sitelib}/neutron/plugins/bigswitch
+%exclude %{python_sitelib}/neutron/plugins/brocade
+%exclude %{python_sitelib}/neutron/plugins/cisco
+%exclude %{python_sitelib}/neutron/plugins/hyperv
+%exclude %{python_sitelib}/neutron/plugins/linuxbridge
+%exclude %{python_sitelib}/neutron/plugins/metaplugin
+%exclude %{python_sitelib}/neutron/plugins/midonet
+%exclude %{python_sitelib}/neutron/plugins/ml2
+%exclude %{python_sitelib}/neutron/plugins/mlnx
+%exclude %{python_sitelib}/neutron/plugins/nec
+%exclude %{python_sitelib}/neutron/plugins/nicira
+%exclude %{python_sitelib}/neutron/plugins/openvswitch
+%exclude %{python_sitelib}/neutron/plugins/plumgrid
+%exclude %{python_sitelib}/neutron/plugins/ryu
+%{python_sitelib}/neutron-%%{version}*.egg-info
+
+
+%files -n openstack-neutron-bigswitch
+%doc LICENSE
+%doc neutron/plugins/bigswitch/README
+%{python_sitelib}/neutron/plugins/bigswitch
+%dir %{_sysconfdir}/neutron/plugins/bigswitch
+%config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/plugins/bigswitch/*.ini
+
+
+%files -n openstack-neutron-brocade
+%doc LICENSE
+%doc neutron/plugins/brocade/README.md
+%{python_sitelib}/neutron/plugins/brocade
+%dir %{_sysconfdir}/neutron/plugins/brocade
+%config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/plugins/brocade/*.ini
+
+
+%files -n openstack-neutron-cisco
+%doc LICENSE
+%doc neutron/plugins/cisco/README
+%{python_sitelib}/neutron/plugins/cisco
+%dir %{_sysconfdir}/neutron/plugins/cisco
+%config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/plugins/cisco/*.ini
+
+
+%files -n openstack-neutron-hyperv
+%doc LICENSE
+#%%doc neutron/plugins/hyperv/README
+%{_bindir}/neutron-hyperv-agent
+%{_bindir}/quantum-hyperv-agent
+%{python_sitelib}/neutron/plugins/hyperv
+%dir %{_sysconfdir}/neutron/plugins/hyperv
+%exclude %{python_sitelib}/neutron/plugins/hyperv/agent
+%config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/plugins/hyperv/*.ini
+
+
+%files -n openstack-neutron-linuxbridge
+%doc LICENSE
+%doc neutron/plugins/linuxbridge/README
+%{_bindir}/neutron-linuxbridge-agent
+%{_bindir}/quantum-linuxbridge-agent
+%{_initrddir}/neutron-linuxbridge-agent
+%{_datadir}/neutron/neutron-linuxbridge-agent.upstart
+%{python_sitelib}/neutron/plugins/linuxbridge
+%{_datarootdir}/neutron/rootwrap/linuxbridge-plugin.filters
+%dir %{_sysconfdir}/neutron/plugins/linuxbridge
+%config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/plugins/linuxbridge/*.ini
+
+
+%files -n openstack-neutron-midonet
+%doc LICENSE
+#%%doc neutron/plugins/midonet/README
+%{python_sitelib}/neutron/plugins/midonet
+%dir %{_sysconfdir}/neutron/plugins/midonet
+%config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/plugins/midonet/*.ini
+
+
+%files -n openstack-neutron-ml2
+%doc neutron/plugins/ml2/README
+%{python_sitelib}/neutron/plugins/ml2
+%dir %{_sysconfdir}/neutron/plugins/ml2
+%config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/plugins/ml2/*.ini
+
+
+%files -n openstack-neutron-mellanox
+%doc neutron/plugins/mlnx/README
+%{_bindir}/neutron-mlnx-agent
+%{_bindir}/quantum-mlnx-agent
+%{python_sitelib}/neutron/plugins/mlnx
+%{_initrddir}/neutron-mlnx-agent
+%{_datadir}/neutron/neutron-mlnx-agent.upstart
+%dir %{_sysconfdir}/neutron/plugins/mlnx
+%config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/plugins/mlnx/*.ini
+
+
+%files -n openstack-neutron-nicira
+%doc LICENSE
+%doc neutron/plugins/nicira/README
+%{_bindir}/neutron-check-nvp-config
+%{_bindir}/quantum-check-nvp-config
+%{python_sitelib}/neutron/plugins/nicira
+%dir %{_sysconfdir}/neutron/plugins/nicira
+%config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/plugins/nicira/*.ini
+
+
+%files -n openstack-neutron-openvswitch
+%doc LICENSE
+%doc neutron/plugins/openvswitch/README
+%{_bindir}/neutron-openvswitch-agent
+%{_bindir}/quantum-openvswitch-agent
+%{_bindir}/neutron-ovs-cleanup
+%{_bindir}/quantum-ovs-cleanup
+%{_initrddir}/neutron-openvswitch-agent
+%{_datadir}/neutron/neutron-openvswitch-agent.upstart
+%{_initrddir}/neutron-ovs-cleanup
+%{_datadir}/neutron/neutron-ovs-cleanup.upstart
+%{python_sitelib}/neutron/plugins/openvswitch
+%{_datarootdir}/neutron/rootwrap/openvswitch-plugin.filters
+%dir %{_sysconfdir}/neutron/plugins/openvswitch
+%config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/plugins/openvswitch/*.ini
+
+
+%files -n openstack-neutron-plumgrid
+%doc LICENSE
+%doc neutron/plugins/plumgrid/README
+%{python_sitelib}/neutron/plugins/plumgrid
+%dir %{_sysconfdir}/neutron/plugins/plumgrid
+%config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/plugins/plumgrid/*.ini
+
+
+%files -n openstack-neutron-ryu
+%doc LICENSE
+%doc neutron/plugins/ryu/README
+%{_bindir}/neutron-ryu-agent
+%{_bindir}/quantum-ryu-agent
+%{_initrddir}/neutron-ryu-agent
+%{_datadir}/neutron/neutron-ryu-agent.upstart
+%{python_sitelib}/neutron/plugins/ryu
+%{_datarootdir}/neutron/rootwrap/ryu-plugin.filters
+%dir %{_sysconfdir}/neutron/plugins/ryu
+%config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/plugins/ryu/*.ini
+
+
+%files -n openstack-neutron-nec
+%doc LICENSE
+%doc neutron/plugins/nec/README
+%{_bindir}/neutron-nec-agent
+%{_bindir}/quantum-nec-agent
+%{_initrddir}/neutron-nec-agent
+%{_datadir}/neutron/neutron-nec-agent.upstart
+%{python_sitelib}/neutron/plugins/nec
+%{_datarootdir}/neutron/rootwrap/nec-plugin.filters
+%dir %{_sysconfdir}/neutron/plugins/nec
+%config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/plugins/nec/*.ini
+
+
+%files -n openstack-neutron-metaplugin
+%doc LICENSE
+%doc neutron/plugins/metaplugin/README
+%{python_sitelib}/neutron/plugins/metaplugin
+%dir %{_sysconfdir}/neutron/plugins/metaplugin
+%config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/plugins/metaplugin/*.ini
+
+
+%files -n openstack-neutron-meetering-agent
+%doc LICENSE
+%config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/metering_agent.ini
+%{_bindir}/neutron-metering-agent
+
+
+%files -n openstack-neutron-vpn-agent
+%doc LICENSE
+%config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/vpn_agent.ini
+%{_bindir}/neutron-vpn-agent
+
+
+%changelog
+* Mon Sep 09 2013 Terry Wilson <twilson@rehdat.com> - 2013.2-0.4.b3
+- Update to havana milestone 3 release
+
+* Thu Jul 25 2013 Terry Wilson <twilson@redhat.com> - 2013.2-0.3.b2
+- Update to havana milestone 2 release
+- Rename quantum to neutron
+
+* Mon Jun 17 2013 Terry Wilson <twilson@redhat.com> - 2013.2-0.2.b1
+- Update to havana milestone 1 release
+
+* Fri Jun 07 2013 Terry Wilson <twilson@redhat.com> - 2013.1.2-1
+- Update to grizzly 2013.1.2 release
+
+* Sun May 26 2013 Gary Kotton <gkotton@redhat.com> - 2013.1.1-6
+- Fixes rootwarp path
+
+* Fri May 24 2013 Pádraig Brady <P@draigBrady.com> - 2013.1.1-5
+- Fix inclusion of db migrations
+
+* Wed May 22 2013 Gary Kotton <gkotton@redhat.com> - 2013.1.1-3
+- Updates to work with namespaces
+- Fix kill-metadata rootwrap filter
+
+* Mon May 13 2013 Gary Kotton <gkotton@redhat.com> - 2013.1.1-2
+- Update to grizzly stable release 2013.1.1
+- Update install scripts to configure security groups
+- Update install scripts to remove virtual interface configurations
+
+* Mon Apr 29 2013 Pádraig Brady <pbrady@redhat.com> 2013.1-3
+- Fix quantum-ovs-cleanup.init to reference the correct config files
+
+* Thu Apr 4 2013 Gary Kotton <gkotton@redhat.com> - 2013.1-1
+- Update to grizzly release
+
+* Thu Apr 4 2013 Gary Kotton <gkotton@redhat.com> - 2013.1-0.7.rc3
+- Update to grizzly rc3
+- Update rootwrap (bug 947793)
+- Update l3-agent-setup to support qpid (bug 947532)
+- Update l3-agent-setup to support metadata-agent credentials
+- Update keystone authentication details (bug 947776)
+
+* Tue Mar 26 2013 Terry Wilson <twilson@redhat.com> - 2013.1-0.6.rc2
+- Update to grizzly rc2
+
+* Tue Mar 12 2013 Pádraig Brady <P@draigBrady.Com> - 2013.1-0.5.g3
+- Relax the dependency requirements on sqlalchemy
+
+* Mon Feb 25 2013 Robert Kukura <rkukura@redhat.com> - 2013.1-0.4.g3
+- Update to grizzly milestone 3
+- Add brocade, hyperv, midonet, and plumgrid plugins as sub-packages
+- Remove cisco files that were eliminated
+- Add quantum-check-nvp-config
+- Include patch for https://code.launchpad.net/bugs/1132889
+- Require python-oslo-config
+- Require compatible version of python-sqlalchemy
+- Various spec file improvements
+
+* Thu Feb 14 2013 Robert Kukura <rkukura@redhat.com> - 2013.1-0.3.g2
+- Update to grizzly milestone 2
+- Add quantum-db-manage, quantum-metadata-agent,
+ quantum-ns-metadata-proxy, quantum-ovs-cleanup, and
+ quantum-usage-audit executables
+- Add systemd units for quantum-metadata-agent and quantum-ovs-cleanup
+- Fix /etc/quantum/policy.json permissions (bug 877600)
+- Require dnsmasq (bug 890041)
+- Add the version info file
+- Remove python-lxml dependency
+- Add python-alembic dependency
+
+* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2013.1-0.2.g1
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
+
+* Wed Jan 23 2013 Martin Magr <mmagr@redhat.com> - 2012.2.1-1
+- Added python-keystone requirement
+
+* Wed Dec 5 2012 Robert Kukura <rkukura@redhat.com> - 2013.1-0.1.g1
+- Update to grizzly milestone 1
+- Require python-quantumclient >= 1:2.1.10
+- Remove unneeded rpc control_exchange patch
+- Add bigswitch plugin as sub-package
+- Work around bigswitch conf file missing from setup.py
+
+* Mon Dec 3 2012 Robert Kukura <rkukura@redhat.com> - 2012.2.1-1
+- Update to folsom stable 2012.2.1
+- Add upstream patch: Fix rpc control_exchange regression.
+- Remove workaround for missing l3_agent.ini
+
+* Thu Nov 01 2012 Alan Pevec <apevec@redhat.com> 2012.2-2
+- l3_agent not disabling namespace use lp#1060559
+
+* Fri Sep 28 2012 Robert Kukura <rkukura@redhat.com> - 2012.2-1
+- Update to folsom final
+- Require python-quantumclient >= 1:2.1.1
+
+* Tue Aug 21 2012 Robert Kukura <rkukura@redhat.com> - 2012.1-8
+- fix database config generated by install scripts (#847785)
+
+* Wed Jul 25 2012 Robert Kukura <rkukura@redhat.com> - 2012.1-6
+- Update to 20120715 essex stable branch snapshot
+
+* Mon May 28 2012 Pádraig Brady <P@draigBrady.com> - 2012.1-5
+- Fix helper scripts to use the always available openstack-config util
+
+* Mon May 07 2012 Pádraig Brady <P@draigBrady.com> - 2012.1-4
+- Fix handling of the mysql service in quantum-server-setup
+
+* Tue May 01 2012 Pádraig Brady <P@draigBrady.com> - 2012.1-3
+- Start the services later in the boot sequence
+
+* Wed Apr 25 2012 Pádraig Brady <P@draigBrady.com> - 2012.1-2
+- Use parallel installed versions of python-routes and python-paste-deploy
+
+* Thu Apr 12 2012 Pádraig Brady <pbrady@redhat.com> - 2012.1-1
+- Initial essex release
+++ /dev/null
-#
-# This is 2013.1.2 release
-#
-%global release_name grizzly
-
-Name: openstack-quantum
-Version: 2013.1.2
-Release: 2%{?dist}
-Summary: OpenStack Networking Service
-
-Group: Applications/System
-License: ASL 2.0
-URL: http://launchpad.net/quantum/
-
-Source0: quantum-%{version}.tar.gz
-Source1: quantum.logrotate
-Source2: quantum-sudoers
-Source4: quantum-server-setup
-Source5: quantum-node-setup
-Source6: quantum-dhcp-setup
-Source7: quantum-l3-setup
-
-Source10: quantum-server.init
-Source20: quantum-server.upstart
-Source11: quantum-linuxbridge-agent.init
-Source21: quantum-linuxbridge-agent.upstart
-Source12: quantum-openvswitch-agent.init
-Source22: quantum-openvswitch-agent.upstart
-Source13: quantum-ryu-agent.init
-Source23: quantum-ryu-agent.upstart
-Source14: quantum-nec-agent.init
-Source24: quantum-nec-agent.upstart
-Source15: quantum-dhcp-agent.init
-Source25: quantum-dhcp-agent.upstart
-Source16: quantum-l3-agent.init
-Source26: quantum-l3-agent.upstart
-Source17: quantum-metadata-agent.init
-Source27: quantum-metadata-agent.upstart
-Source18: quantum-ovs-cleanup.init
-Source28: quantum-ovs-cleanup.upstart
-Source19: quantum-lbaas-agent.init
-Source29: quantum-lbaas-agent.upstart
-
-#
-# patches_base=2013.1.2
-#
-Patch0001: 0001-use-parallel-installed-versions-in-RHEL6.patch
-Patch0002: 0002-avoid-code-path-causing-qpid-exchange-leaks.patch
-
-BuildArch: noarch
-
-BuildRequires: python2-devel
-BuildRequires: python-setuptools
-# Build require these parallel versions
-# as setup.py build imports quantum.openstack.common.setup
-# which will then check for these
-BuildRequires: python-sqlalchemy0.7
-BuildRequires: python-webob1.0
-BuildRequires: python-paste-deploy1.5
-BuildRequires: python-routes1.12
-BuildRequires: dos2unix
-
-Requires: python-quantum = %{version}-%{release}
-Requires: openstack-utils
-Requires: python-keystone
-
-Requires(post): chkconfig
-Requires(postun): initscripts
-Requires(preun): chkconfig
-Requires(preun): initscripts
-Requires(pre): shadow-utils
-
-# dnsmasq is not a hard requirement, but is currently the only option
-# when quantum-dhcp-agent is deployed.
-Requires: dnsmasq
-
-
-%description
-Quantum is a virtual network service for Openstack. Just like
-OpenStack Nova provides an API to dynamically request and configure
-virtual servers, Quantum provides an API to dynamically request and
-configure virtual networks. These networks connect "interfaces" from
-other OpenStack services (e.g., virtual NICs from Nova VMs). The
-Quantum API supports extensions to provide advanced network
-capabilities (e.g., QoS, ACLs, network monitoring, etc.)
-
-
-%package -n python-quantum
-Summary: Quantum Python libraries
-Group: Applications/System
-
-Requires: MySQL-python
-Requires: python-alembic
-Requires: python-amqplib
-Requires: python-anyjson
-Requires: python-eventlet
-Requires: python-greenlet
-Requires: python-httplib2
-Requires: python-iso8601
-Requires: python-kombu
-Requires: python-lxml
-Requires: python-paste-deploy1.5
-Requires: python-routes1.12
-Requires: python-sqlalchemy0.7
-Requires: python-webob1.0
-Requires: python-netaddr
-Requires: python-oslo-config
-Requires: python-qpid
-Requires: python-quantumclient >= 1:2.1.10
-Requires: sudo
-
-%description -n python-quantum
-Quantum provides an API to dynamically request and configure virtual
-networks.
-
-This package contains the quantum Python library.
-
-
-%package -n openstack-quantum-bigswitch
-Summary: Quantum Big Switch plugin
-Group: Applications/System
-
-Requires: openstack-quantum = %{version}-%{release}
-
-
-%description -n openstack-quantum-bigswitch
-Quantum provides an API to dynamically request and configure virtual
-networks.
-
-This package contains the quantum plugin that implements virtual
-networks using the FloodLight Openflow Controller or the Big Switch
-Networks Controller.
-
-
-%package -n openstack-quantum-brocade
-Summary: Quantum Brocade plugin
-Group: Applications/System
-
-Requires: openstack-quantum = %{version}-%{release}
-
-
-%description -n openstack-quantum-brocade
-Quantum provides an API to dynamically request and configure virtual
-networks.
-
-This package contains the quantum plugin that implements virtual
-networks using Brocade VCS switches running NOS.
-
-
-%package -n openstack-quantum-cisco
-Summary: Quantum Cisco plugin
-Group: Applications/System
-
-Requires: openstack-quantum = %{version}-%{release}
-Requires: python-configobj
-
-
-%description -n openstack-quantum-cisco
-Quantum provides an API to dynamically request and configure virtual
-networks.
-
-This package contains the quantum plugin that implements virtual
-networks using Cisco UCS and Nexus.
-
-
-%package -n openstack-quantum-hyperv
-Summary: Quantum Hyper-V plugin
-Group: Applications/System
-
-Requires: openstack-quantum = %{version}-%{release}
-
-
-%description -n openstack-quantum-hyperv
-Quantum provides an API to dynamically request and configure virtual
-networks.
-
-This package contains the quantum plugin that implements virtual
-networks using Microsoft Hyper-V.
-
-
-%package -n openstack-quantum-linuxbridge
-Summary: Quantum linuxbridge plugin
-Group: Applications/System
-
-Requires: bridge-utils
-Requires: openstack-quantum = %{version}-%{release}
-Requires: python-pyudev
-
-
-%description -n openstack-quantum-linuxbridge
-Quantum provides an API to dynamically request and configure virtual
-networks.
-
-This package contains the quantum plugin that implements virtual
-networks as VLANs using Linux bridging.
-
-
-%package -n openstack-quantum-midonet
-Summary: Quantum MidoNet plugin
-Group: Applications/System
-
-Requires: openstack-quantum = %{version}-%{release}
-
-
-%description -n openstack-quantum-midonet
-Quantum provides an API to dynamically request and configure virtual
-networks.
-
-This package contains the quantum plugin that implements virtual
-networks using MidoNet from Midokura.
-
-
-%package -n openstack-quantum-nicira
-Summary: Quantum Nicira plugin
-Group: Applications/System
-
-Requires: openstack-quantum = %{version}-%{release}
-
-
-%description -n openstack-quantum-nicira
-Quantum provides an API to dynamically request and configure virtual
-networks.
-
-This package contains the quantum plugin that implements virtual
-networks using Nicira NVP.
-
-
-%package -n openstack-quantum-openvswitch
-Summary: Quantum openvswitch plugin
-Group: Applications/System
-
-Requires: openstack-quantum = %{version}-%{release}
-Requires: openvswitch
-
-
-%description -n openstack-quantum-openvswitch
-Quantum provides an API to dynamically request and configure virtual
-networks.
-
-This package contains the quantum plugin that implements virtual
-networks using Open vSwitch.
-
-
-%package -n openstack-quantum-plumgrid
-Summary: Quantum PLUMgrid plugin
-Group: Applications/System
-
-Requires: openstack-quantum = %{version}-%{release}
-
-
-%description -n openstack-quantum-plumgrid
-Quantum provides an API to dynamically request and configure virtual
-networks.
-
-This package contains the quantum plugin that implements virtual
-networks using the PLUMgrid platform.
-
-
-%package -n openstack-quantum-ryu
-Summary: Quantum Ryu plugin
-Group: Applications/System
-
-Requires: openstack-quantum = %{version}-%{release}
-
-
-%description -n openstack-quantum-ryu
-Quantum provides an API to dynamically request and configure virtual
-networks.
-
-This package contains the quantum plugin that implements virtual
-networks using the Ryu Network Operating System.
-
-
-%package -n openstack-quantum-nec
-Summary: Quantum NEC plugin
-Group: Applications/System
-
-Requires: openstack-quantum = %{version}-%{release}
-
-
-%description -n openstack-quantum-nec
-Quantum provides an API to dynamically request and configure virtual
-networks.
-
-This package contains the quantum plugin that implements virtual
-networks using the NEC OpenFlow controller.
-
-
-%package -n openstack-quantum-metaplugin
-Summary: Quantum meta plugin
-Group: Applications/System
-
-Requires: openstack-quantum = %{version}-%{release}
-
-
-%description -n openstack-quantum-metaplugin
-Quantum provides an API to dynamically request and configure virtual
-networks.
-
-This package contains the quantum plugin that implements virtual
-networks using multiple other quantum plugins.
-
-
-%prep
-%setup -q -n quantum-%{version}
-
-%patch0001 -p1
-%patch0002 -p1
-
-sed -i 's/%{version}/%{version}/' PKG-INFO
-
-find quantum -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 quantum/plugins/cisco/README
-
-# Adjust configuration file content
-sed -i 's/debug = True/debug = False/' etc/quantum.conf
-sed -i 's/\# auth_strategy = keystone/auth_strategy = noauth/' etc/quantum.conf
-
-
-%build
-%{__python} setup.py build
-
-
-%install
-%{__python} setup.py install -O1 --skip-build --root %{buildroot}
-
-# Remove unused files
-rm -rf %{buildroot}%{python_sitelib}/bin
-rm -rf %{buildroot}%{python_sitelib}/doc
-rm -rf %{buildroot}%{python_sitelib}/tools
-rm -rf %{buildroot}%{python_sitelib}/quantum/tests
-rm -rf %{buildroot}%{python_sitelib}/quantum/plugins/*/tests
-rm -f %{buildroot}%{python_sitelib}/quantum/plugins/*/run_tests.*
-rm %{buildroot}/usr/etc/init.d/quantum-server
-
-# Install execs (using hand-coded rather than generated versions)
-install -p -D -m 755 bin/quantum-check-nvp-config %{buildroot}%{_bindir}/quantum-check-nvp-config
-install -p -D -m 755 bin/quantum-db-manage %{buildroot}%{_bindir}/quantum-db-manage
-install -p -D -m 755 bin/quantum-debug %{buildroot}%{_bindir}/quantum-debug
-install -p -D -m 755 bin/quantum-dhcp-agent %{buildroot}%{_bindir}/quantum-dhcp-agent
-install -p -D -m 755 bin/quantum-dhcp-agent-dnsmasq-lease-update %{buildroot}%{_bindir}/quantum-dhcp-agent-dnsmasq-lease-update
-install -p -D -m 755 bin/quantum-l3-agent %{buildroot}%{_bindir}/quantum-l3-agent
-install -p -D -m 755 bin/quantum-lbaas-agent %{buildroot}%{_bindir}/quantum-lbaas-agent
-install -p -D -m 755 bin/quantum-linuxbridge-agent %{buildroot}%{_bindir}/quantum-linuxbridge-agent
-install -p -D -m 755 bin/quantum-metadata-agent %{buildroot}%{_bindir}/quantum-metadata-agent
-install -p -D -m 755 bin/quantum-nec-agent %{buildroot}%{_bindir}/quantum-nec-agent
-install -p -D -m 755 bin/quantum-netns-cleanup %{buildroot}%{_bindir}/quantum-netns-cleanup
-install -p -D -m 755 bin/quantum-ns-metadata-proxy %{buildroot}%{_bindir}/quantum-ns-metadata-proxy
-install -p -D -m 755 bin/quantum-openvswitch-agent %{buildroot}%{_bindir}/quantum-openvswitch-agent
-install -p -D -m 755 bin/quantum-ovs-cleanup %{buildroot}%{_bindir}/quantum-ovs-cleanup
-install -p -D -m 755 bin/quantum-rootwrap %{buildroot}%{_bindir}/quantum-rootwrap
-install -p -D -m 755 bin/quantum-ryu-agent %{buildroot}%{_bindir}/quantum-ryu-agent
-install -p -D -m 755 bin/quantum-server %{buildroot}%{_bindir}/quantum-server
-install -p -D -m 755 bin/quantum-usage-audit %{buildroot}%{_bindir}/quantum-usage-audit
-
-# Move rootwrap files to proper location
-install -d -m 755 %{buildroot}%{_datarootdir}/quantum/rootwrap
-mv %{buildroot}/usr/etc/quantum/rootwrap.d/*.filters %{buildroot}%{_datarootdir}/quantum/rootwrap
-
-# Move config files to proper location
-install -d -m 755 %{buildroot}%{_sysconfdir}/quantum
-mv %{buildroot}/usr/etc/quantum/* %{buildroot}%{_sysconfdir}/quantum
-chmod 640 %{buildroot}%{_sysconfdir}/quantum/plugins/*/*.ini
-
-# Configure agents to use quantum-rootwrap
-sed -i 's/^# root_helper.*/root_helper = sudo quantum-rootwrap \/etc\/quantum\/rootwrap.conf/g' %{buildroot}%{_sysconfdir}/quantum/quantum.conf
-
-# Configure quantum-dhcp-agent state_path
-sed -i 's/state_path = \/opt\/stack\/data/state_path = \/var\/lib\/quantum/' %{buildroot}%{_sysconfdir}/quantum/dhcp_agent.ini
-
-# Install logrotate
-install -p -D -m 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/logrotate.d/openstack-quantum
-
-# Install sudoers
-install -p -D -m 440 %{SOURCE2} %{buildroot}%{_sysconfdir}/sudoers.d/quantum
-
-# Install sysv init scripts
-install -p -D -m 755 %{SOURCE10} %{buildroot}%{_initrddir}/quantum-server
-install -p -D -m 755 %{SOURCE11} %{buildroot}%{_initrddir}/quantum-linuxbridge-agent
-install -p -D -m 755 %{SOURCE12} %{buildroot}%{_initrddir}/quantum-openvswitch-agent
-install -p -D -m 755 %{SOURCE13} %{buildroot}%{_initrddir}/quantum-ryu-agent
-install -p -D -m 755 %{SOURCE14} %{buildroot}%{_initrddir}/quantum-nec-agent
-install -p -D -m 755 %{SOURCE15} %{buildroot}%{_initrddir}/quantum-dhcp-agent
-install -p -D -m 755 %{SOURCE16} %{buildroot}%{_initrddir}/quantum-l3-agent
-install -p -D -m 755 %{SOURCE17} %{buildroot}%{_initrddir}/quantum-metadata-agent
-install -p -D -m 755 %{SOURCE18} %{buildroot}%{_initrddir}/quantum-ovs-cleanup
-install -p -D -m 755 %{SOURCE19} %{buildroot}%{_initrddir}/quantum-lbaas-agent
-
-# Setup directories
-install -d -m 755 %{buildroot}%{_datadir}/quantum
-install -d -m 755 %{buildroot}%{_sharedstatedir}/quantum
-install -d -m 755 %{buildroot}%{_localstatedir}/log/quantum
-install -d -m 755 %{buildroot}%{_localstatedir}/run/quantum
-
-# Install setup helper scripts
-install -p -D -m 755 %{SOURCE4} %{buildroot}%{_bindir}/quantum-server-setup
-install -p -D -m 755 %{SOURCE5} %{buildroot}%{_bindir}/quantum-node-setup
-install -p -D -m 755 %{SOURCE6} %{buildroot}%{_bindir}/quantum-dhcp-setup
-install -p -D -m 755 %{SOURCE7} %{buildroot}%{_bindir}/quantum-l3-setup
-
-# Install upstart jobs examples
-install -p -m 644 %{SOURCE20} %{buildroot}%{_datadir}/quantum/
-install -p -m 644 %{SOURCE21} %{buildroot}%{_datadir}/quantum/
-install -p -m 644 %{SOURCE22} %{buildroot}%{_datadir}/quantum/
-install -p -m 644 %{SOURCE23} %{buildroot}%{_datadir}/quantum/
-install -p -m 644 %{SOURCE24} %{buildroot}%{_datadir}/quantum/
-install -p -m 644 %{SOURCE25} %{buildroot}%{_datadir}/quantum/
-install -p -m 644 %{SOURCE26} %{buildroot}%{_datadir}/quantum/
-install -p -m 644 %{SOURCE27} %{buildroot}%{_datadir}/quantum/
-install -p -m 644 %{SOURCE28} %{buildroot}%{_datadir}/quantum/
-install -p -m 644 %{SOURCE29} %{buildroot}%{_datadir}/quantum/
-
-# Install version info file
-cat > %{buildroot}%{_sysconfdir}/quantum/release <<EOF
-[Quantum]
-vendor = Fedora Project
-product = OpenStack Quantum
-package = %{release}
-EOF
-
-%pre
-getent group quantum >/dev/null || groupadd -r quantum --gid 164
-getent passwd quantum >/dev/null || \
- useradd --uid 164 -r -g quantum -d %{_sharedstatedir}/quantum -s /sbin/nologin \
- -c "OpenStack Quantum Daemons" quantum
-exit 0
-
-
-%post
-if [ $1 -eq 1 ] ; then
- # Initial installation
- /sbin/chkconfig --add quantum-server
-fi
-
-%preun
-if [ $1 -eq 0 ] ; then
- # Package removal, not upgrade
- /sbin/service quantum-server stop >/dev/null 2>&1
- /sbin/chkconfig --del quantum-server
- /sbin/service quantum-dhcp-agent stop >/dev/null 2>&1
- /sbin/chkconfig --del quantum-dhcp-agent
- /sbin/service quantum-l3-agent stop >/dev/null 2>&1
- /sbin/chkconfig --del quantum-l3-agent
- /sbin/service quantum-metadata-agent stop >/dev/null 2>&1
- /sbin/chkconfig --del quantum-metadata-agent
- /sbin/service quantum-lbaas-agent stop >/dev/null 2>&1
- /sbin/chkconfig --del quantum-lbaas-agent
-fi
-
-%postun
-if [ $1 -ge 1 ] ; then
- # Package upgrade, not uninstall
- /sbin/service quantum-server condrestart >/dev/null 2>&1 || :
- /sbin/service quantum-dhcp-agent condrestart >/dev/null 2>&1 || :
- /sbin/service quantum-l3-agent condrestart >/dev/null 2>&1 || :
- /sbin/service quantum-metadata-agent condrestart >/dev/null 2>&1 || :
- /sbin/service quantum-lbaas-agent condrestart >/dev/null 2>&1 || :
-fi
-
-
-%post -n openstack-quantum-linuxbridge
-if [ $1 -eq 1 ] ; then
- # Initial installation
- /sbin/chkconfig --add quantum-linuxbridge-agent
-fi
-
-%preun -n openstack-quantum-linuxbridge
-if [ $1 -eq 0 ] ; then
- # Package removal, not upgrade
- /sbin/service quantum-linuxbridge-agent stop >/dev/null 2>&1
- /sbin/chkconfig --del quantum-linuxbridge-agent
-fi
-
-%postun -n openstack-quantum-linuxbridge
-if [ $1 -ge 1 ] ; then
- # Package upgrade, not uninstall
- /sbin/service quantum-linuxbridge-agent condrestart >/dev/null 2>&1 || :
-fi
-
-
-%post -n openstack-quantum-openvswitch
-if [ $1 -eq 1 ] ; then
- # Initial installation
- /sbin/chkconfig --add quantum-openvswitch-agent
-fi
-
-%preun -n openstack-quantum-openvswitch
-if [ $1 -eq 0 ] ; then
- # Package removal, not upgrade
- /sbin/service quantum-openvswitch-agent stop >/dev/null 2>&1
- /sbin/chkconfig --del quantum-openvswitch-agent
-fi
-
-%postun -n openstack-quantum-openvswitch
-if [ $1 -ge 1 ] ; then
- # Package upgrade, not uninstall
- /sbin/service quantum-openvswitch-agent condrestart >/dev/null 2>&1 || :
-fi
-
-
-%post -n openstack-quantum-ryu
-if [ $1 -eq 1 ] ; then
- # Initial installation
- /sbin/chkconfig --add quantum-ryu-agent
-fi
-
-%preun -n openstack-quantum-ryu
-if [ $1 -eq 0 ] ; then
- # Package removal, not upgrade
- /sbin/service quantum-ryu-agent stop >/dev/null 2>&1
- /sbin/chkconfig --del quantum-ryu-agent
-fi
-
-%postun -n openstack-quantum-ryu
-if [ $1 -ge 1 ] ; then
- # Package upgrade, not uninstall
- /sbin/service quantum-ryu-agent condrestart >/dev/null 2>&1 || :
-fi
-
-
-%preun -n openstack-quantum-nec
-if [ $1 -eq 0 ] ; then
- # Package removal, not upgrade
- /sbin/service quantum-nec-agent stop >/dev/null 2>&1
- /sbin/chkconfig --del quantum-nec-agent
-fi
-
-
-%postun -n openstack-quantum-nec
-/bin/systemctl daemon-reload >/dev/null 2>&1 || :
-if [ $1 -ge 1 ] ; then
- # Package upgrade, not uninstall
- /sbin/service quantum-nec-agent condrestart >/dev/null 2>&1 || :
-fi
-
-
-%files
-%doc LICENSE
-%doc README
-%{_bindir}/quantum-db-manage
-%{_bindir}/quantum-debug
-%{_bindir}/quantum-dhcp-agent
-%{_bindir}/quantum-dhcp-agent-dnsmasq-lease-update
-%{_bindir}/quantum-dhcp-setup
-%{_bindir}/quantum-l3-agent
-%{_bindir}/quantum-l3-setup
-%{_bindir}/quantum-lbaas-agent
-%{_bindir}/quantum-metadata-agent
-%{_bindir}/quantum-netns-cleanup
-%{_bindir}/quantum-node-setup
-%{_bindir}/quantum-ns-metadata-proxy
-%{_bindir}/quantum-rootwrap
-%{_bindir}/quantum-server
-%{_bindir}/quantum-server-setup
-%{_bindir}/quantum-usage-audit
-%{_initrddir}/quantum-server
-%{_initrddir}/quantum-dhcp-agent
-%{_initrddir}/quantum-l3-agent
-%{_initrddir}/quantum-metadata-agent
-%{_initrddir}/quantum-ovs-cleanup
-%{_initrddir}/quantum-lbaas-agent
-%dir %{_datadir}/quantum
-%{_datadir}/quantum/quantum-server.upstart
-%{_datadir}/quantum/quantum-dhcp-agent.upstart
-%{_datadir}/quantum/quantum-metadata-agent.upstart
-%{_datadir}/quantum/quantum-l3-agent.upstart
-%{_datadir}/quantum/quantum-lbaas-agent.upstart
-%dir %{_sysconfdir}/quantum
-%{_sysconfdir}/quantum/release
-%config(noreplace) %attr(0640, root, quantum) %{_sysconfdir}/quantum/api-paste.ini
-%config(noreplace) %attr(0640, root, quantum) %{_sysconfdir}/quantum/dhcp_agent.ini
-%config(noreplace) %attr(0640, root, quantum) %{_sysconfdir}/quantum/l3_agent.ini
-%config(noreplace) %attr(0640, root, quantum) %{_sysconfdir}/quantum/metadata_agent.ini
-%config(noreplace) %attr(0640, root, quantum) %{_sysconfdir}/quantum/lbaas_agent.ini
-%config(noreplace) %attr(0640, root, quantum) %{_sysconfdir}/quantum/policy.json
-%config(noreplace) %attr(0640, root, quantum) %{_sysconfdir}/quantum/quantum.conf
-%config(noreplace) %{_sysconfdir}/quantum/rootwrap.conf
-%dir %{_sysconfdir}/quantum/plugins
-%config(noreplace) %{_sysconfdir}/logrotate.d/*
-%config(noreplace) %{_sysconfdir}/sudoers.d/quantum
-%dir %attr(0755, quantum, quantum) %{_sharedstatedir}/quantum
-%dir %attr(0755, quantum, quantum) %{_localstatedir}/log/quantum
-%dir %attr(0755, quantum, quantum) %{_localstatedir}/run/quantum
-%dir %{_datarootdir}/quantum/rootwrap
-%{_datarootdir}/quantum/rootwrap/dhcp.filters
-%{_datarootdir}/quantum/rootwrap/iptables-firewall.filters
-%{_datarootdir}/quantum/rootwrap/l3.filters
-%{_datarootdir}/quantum/rootwrap/lbaas-haproxy.filters
-
-
-%files -n python-quantum
-%doc LICENSE
-%doc README
-%{python_sitelib}/quantum
-%exclude %{python_sitelib}/quantum/plugins/bigswitch
-%exclude %{python_sitelib}/quantum/plugins/brocade
-%exclude %{python_sitelib}/quantum/plugins/cisco
-%exclude %{python_sitelib}/quantum/plugins/hyperv
-%exclude %{python_sitelib}/quantum/plugins/linuxbridge
-%exclude %{python_sitelib}/quantum/plugins/metaplugin
-%exclude %{python_sitelib}/quantum/plugins/midonet
-%exclude %{python_sitelib}/quantum/plugins/nec
-%exclude %{python_sitelib}/quantum/plugins/nicira
-%exclude %{python_sitelib}/quantum/plugins/openvswitch
-%exclude %{python_sitelib}/quantum/plugins/plumgrid
-%exclude %{python_sitelib}/quantum/plugins/ryu
-%{python_sitelib}/quantum-%%{version}-*.egg-info
-
-
-%files -n openstack-quantum-bigswitch
-%doc LICENSE
-%doc quantum/plugins/bigswitch/README
-%{python_sitelib}/quantum/plugins/bigswitch
-%dir %{_sysconfdir}/quantum/plugins/bigswitch
-%config(noreplace) %attr(0640, root, quantum) %{_sysconfdir}/quantum/plugins/bigswitch/*.ini
-
-
-%files -n openstack-quantum-brocade
-%doc LICENSE
-%doc quantum/plugins/brocade/README.md
-%{python_sitelib}/quantum/plugins/brocade
-%dir %{_sysconfdir}/quantum/plugins/brocade
-%config(noreplace) %attr(0640, root, quantum) %{_sysconfdir}/quantum/plugins/brocade/*.ini
-
-
-%files -n openstack-quantum-cisco
-%doc LICENSE
-%doc quantum/plugins/cisco/README
-%{python_sitelib}/quantum/plugins/cisco
-%dir %{_sysconfdir}/quantum/plugins/cisco
-%config(noreplace) %attr(0640, root, quantum) %{_sysconfdir}/quantum/plugins/cisco/*.ini
-
-
-%files -n openstack-quantum-hyperv
-%doc LICENSE
-#%%doc quantum/plugins/hyperv/README
-%{python_sitelib}/quantum/plugins/hyperv
-%dir %{_sysconfdir}/quantum/plugins/hyperv
-%exclude %{python_sitelib}/quantum/plugins/hyperv/agent
-%config(noreplace) %attr(0640, root, quantum) %{_sysconfdir}/quantum/plugins/hyperv/*.ini
-
-
-%files -n openstack-quantum-linuxbridge
-%doc LICENSE
-%doc quantum/plugins/linuxbridge/README
-%{_bindir}/quantum-linuxbridge-agent
-%{_initrddir}/quantum-linuxbridge-agent
-%{_datadir}/quantum/quantum-linuxbridge-agent.upstart
-%{python_sitelib}/quantum/plugins/linuxbridge
-%{_datarootdir}/quantum/rootwrap/linuxbridge-plugin.filters
-%dir %{_sysconfdir}/quantum/plugins/linuxbridge
-%config(noreplace) %attr(0640, root, quantum) %{_sysconfdir}/quantum/plugins/linuxbridge/*.ini
-
-
-%files -n openstack-quantum-midonet
-%doc LICENSE
-#%%doc quantum/plugins/midonet/README
-%{python_sitelib}/quantum/plugins/midonet
-%dir %{_sysconfdir}/quantum/plugins/midonet
-%config(noreplace) %attr(0640, root, quantum) %{_sysconfdir}/quantum/plugins/midonet/*.ini
-
-
-%files -n openstack-quantum-nicira
-%doc LICENSE
-%doc quantum/plugins/nicira/nicira_nvp_plugin/README
-%{_bindir}/quantum-check-nvp-config
-%{python_sitelib}/quantum/plugins/nicira
-%dir %{_sysconfdir}/quantum/plugins/nicira
-%config(noreplace) %attr(0640, root, quantum) %{_sysconfdir}/quantum/plugins/nicira/*.ini
-
-
-%files -n openstack-quantum-openvswitch
-%doc LICENSE
-%doc quantum/plugins/openvswitch/README
-%{_bindir}/quantum-openvswitch-agent
-%{_bindir}/quantum-ovs-cleanup
-%{_initrddir}/quantum-openvswitch-agent
-%{_datadir}/quantum/quantum-openvswitch-agent.upstart
-%{_initrddir}/quantum-ovs-cleanup
-%{_datadir}/quantum/quantum-ovs-cleanup.upstart
-%{python_sitelib}/quantum/plugins/openvswitch
-%{_datarootdir}/quantum/rootwrap/openvswitch-plugin.filters
-%dir %{_sysconfdir}/quantum/plugins/openvswitch
-%config(noreplace) %attr(0640, root, quantum) %{_sysconfdir}/quantum/plugins/openvswitch/*.ini
-
-
-%files -n openstack-quantum-plumgrid
-%doc LICENSE
-%doc quantum/plugins/plumgrid/README
-%{python_sitelib}/quantum/plugins/plumgrid
-%dir %{_sysconfdir}/quantum/plugins/plumgrid
-%config(noreplace) %attr(0640, root, quantum) %{_sysconfdir}/quantum/plugins/plumgrid/*.ini
-
-
-%files -n openstack-quantum-ryu
-%doc LICENSE
-%doc quantum/plugins/ryu/README
-%{_bindir}/quantum-ryu-agent
-%{_initrddir}/quantum-ryu-agent
-%{_datadir}/quantum/quantum-ryu-agent.upstart
-%{python_sitelib}/quantum/plugins/ryu
-%{_datarootdir}/quantum/rootwrap/ryu-plugin.filters
-%dir %{_sysconfdir}/quantum/plugins/ryu
-%config(noreplace) %attr(0640, root, quantum) %{_sysconfdir}/quantum/plugins/ryu/*.ini
-
-
-%files -n openstack-quantum-nec
-%doc LICENSE
-%doc quantum/plugins/nec/README
-%{_bindir}/quantum-nec-agent
-%{_initrddir}/quantum-nec-agent
-%{_datadir}/quantum/quantum-nec-agent.upstart
-%{python_sitelib}/quantum/plugins/nec
-%{_datarootdir}/quantum/rootwrap/nec-plugin.filters
-%dir %{_sysconfdir}/quantum/plugins/nec
-%config(noreplace) %attr(0640, root, quantum) %{_sysconfdir}/quantum/plugins/nec/*.ini
-
-
-%files -n openstack-quantum-metaplugin
-%doc LICENSE
-%doc quantum/plugins/metaplugin/README
-%{python_sitelib}/quantum/plugins/metaplugin
-%dir %{_sysconfdir}/quantum/plugins/metaplugin
-%config(noreplace) %attr(0640, root, quantum) %{_sysconfdir}/quantum/plugins/metaplugin/*.ini
-
-
-%changelog
-* Wed Jul 17 2013 Pádraig Brady <pbrady@redhat.com> - 2013.1.2-2
-- Avoid qpid exchange leaks
-
-* Fri Jun 07 2013 Terry Wilson <twilson@redhat.com> - 2013.1.2-1
-- Update to grizzly 2013.1.2 release
-
-* Sun May 26 2013 Gary Kotton <gkotton@redhat.com> - 2013.1.1-6
-- Fixes rootwarp path
-
-* Fri May 24 2013 Pádraig Brady <P@draigBrady.com> - 2013.1.1-5
-- Fix inclusion of db migrations
-
-* Tue May 22 2013 Gary Kotton <gkotton@redhat.com> - 2013.1.1-3
-- Updates to work with namespaces
-- Fix kill-metadata rootwrap filter
-
-* Mon May 13 2013 Gary Kotton <gkotton@redhat.com> - 2013.1.1-2
-- Update to grizzly stable release 2013.1.1
-- Update install scripts to configure security groups
-- Update install scripts to remove virtual interface configurations
-
-* Mon Apr 29 2013 Pádraig Brady <pbrady@redhat.com> 2013.1-3
-- Fix quantum-ovs-cleanup.init to reference the correct config files
-
-* Wed Apr 4 2013 Gary Kotton <gkotton@redhat.com> - 2013.1-1
-- Update to grizzly release
-
-* Wed Apr 4 2013 Gary Kotton <gkotton@redhat.com> - 2013.1-0.7.rc3
-- Update to grizzly rc3
-- Update rootwrap (bug 947793)
-- Update l3-agent-setup to support qpid (bug 947532)
-- Update l3-agent-setup to support metadata-agent credentials
-- Update keystone authentication details (bug 947776)
-
-* Tue Mar 26 2013 Terry Wilson <twilson@redhat.com> - 2013.1-0.6.rc2
-- Update to grizzly rc2
-
-* Tue Mar 12 2013 Pádraig Brady <P@draigBrady.Com> - 2013.1-0.5.g3
-- Relax the dependency requirements on sqlalchemy
-
-* Mon Feb 25 2013 Robert Kukura <rkukura@redhat.com> - 2013.1-0.4.g3
-- Update to grizzly milestone 3
-- Add brocade, hyperv, midonet, and plumgrid plugins as sub-packages
-- Remove cisco files that were eliminated
-- Add quantum-check-nvp-config
-- Include patch for https://code.launchpad.net/bugs/1132889
-- Require python-oslo-config
-- Require compatible version of python-sqlalchemy
-- Various spec file improvements
-
-* Thu Feb 14 2013 Robert Kukura <rkukura@redhat.com> - 2013.1-0.3.g2
-- Update to grizzly milestone 2
-- Add quantum-db-manage, quantum-metadata-agent,
- quantum-ns-metadata-proxy, quantum-ovs-cleanup, and
- quantum-usage-audit executables
-- Add systemd units for quantum-metadata-agent and quantum-ovs-cleanup
-- Fix /etc/quantum/policy.json permissions (bug 877600)
-- Require dnsmasq (bug 890041)
-- Add the version info file
-- Remove python-lxml dependency
-- Add python-alembic dependency
-
-* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2013.1-0.2.g1
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
-
-* Wed Jan 23 2013 Martin Magr <mmagr@redhat.com> - 2012.2.1-1
-- Added python-keystone requirement
-
-* Wed Dec 5 2012 Robert Kukura <rkukura@redhat.com> - 2013.1-0.1.g1
-- Update to grizzly milestone 1
-- Require python-quantumclient >= 1:2.1.10
-- Remove unneeded rpc control_exchange patch
-- Add bigswitch plugin as sub-package
-- Work around bigswitch conf file missing from setup.py
-
-* Mon Dec 3 2012 Robert Kukura <rkukura@redhat.com> - 2012.2.1-1
-- Update to folsom stable 2012.2.1
-- Add upstream patch: Fix rpc control_exchange regression.
-- Remove workaround for missing l3_agent.ini
-
-* Thu Nov 01 2012 Alan Pevec <apevec@redhat.com> 2012.2-2
-- l3_agent not disabling namespace use lp#1060559
-
-* Fri Sep 28 2012 Robert Kukura <rkukura@redhat.com> - 2012.2-1
-- Update to folsom final
-- Require python-quantumclient >= 1:2.1.1
-
-* Tue Aug 21 2012 Robert Kukura <rkukura@redhat.com> - 2012.1-8
-- fix database config generated by install scripts (#847785)
-
-* Wed Jul 25 2012 Robert Kukura <rkukura@redhat.com> - 2012.1-6
-- Update to 20120715 essex stable branch snapshot
-
-* Mon May 28 2012 Pádraig Brady <P@draigBrady.com> - 2012.1-5
-- Fix helper scripts to use the always available openstack-config util
-
-* Mon May 07 2012 Pádraig Brady <P@draigBrady.com> - 2012.1-4
-- Fix handling of the mysql service in quantum-server-setup
-
-* Tue May 01 2012 Pádraig Brady <P@draigBrady.com> - 2012.1-3
-- Start the services later in the boot sequence
-
-* Wed Apr 25 2012 Pádraig Brady <P@draigBrady.com> - 2012.1-2
-- Use parallel installed versions of python-routes and python-paste-deploy
-
-* Thu Apr 12 2012 Pádraig Brady <pbrady@redhat.com> - 2012.1-1
-- Initial essex release