Update RPM specs to v. 2014.1.1
authorDmitry Burmistrov <dburmistrov@mirantis.com>
Fri, 20 Jun 2014 13:50:40 +0000 (17:50 +0400)
committerDmitry Burmistrov <dburmistrov@mirantis.com>
Fri, 20 Jun 2014 13:50:40 +0000 (17:50 +0400)
15 files changed:
rpm/SOURCES/0001-use-parallel-installed-versions-in-RHEL6.patch
rpm/SOURCES/0002-Remove-dnsmasq-version-warning.patch
rpm/SOURCES/0003-remove-runtime-dependency-on-pbr.patch [new file with mode: 0644]
rpm/SOURCES/0004-Sync-service-and-systemd-modules-from-oslo-incubator.patch [new file with mode: 0644]
rpm/SOURCES/0005-Removed-signing_dir-from-neutron.conf.patch [new file with mode: 0644]
rpm/SOURCES/0006-Remove-kernel-version-check-for-OVS-VXLAN.patch [new file with mode: 0644]
rpm/SOURCES/0007-Ensure-routing-key-is-specified-in-the-address-for-a.patch [new file with mode: 0644]
rpm/SOURCES/neutron-dhcp-setup [deleted file]
rpm/SOURCES/neutron-dist.conf
rpm/SOURCES/neutron-l3-setup [deleted file]
rpm/SOURCES/neutron-node-setup [deleted file]
rpm/SOURCES/neutron-server-setup [deleted file]
rpm/SOURCES/neutron-vpn-agent.init
rpm/SOURCES/neutron-vpn-agent.upstart
rpm/SPECS/openstack-neutron.spec

index f52a583377f346a63bb3671326c2c0375fab1f56..0693890b35b74f5ef55735b236ffc4ec4b033da5 100644 (file)
@@ -1,4 +1,4 @@
-From 4cc2b00a93126c5da672514fad7e356e79f2b8e6 Mon Sep 17 00:00:00 2001
+From 51ccb186c88ad108eb5e9f808d987c068ac5ecc5 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
index 083a84d59a896da35570cc8320f221680a5a269d..bce91800852bc783c1e221b33d922bc2cbc77d98 100644 (file)
@@ -1,4 +1,4 @@
-From 268532256d701f2f9d7e10b01a65685e118800dc Mon Sep 17 00:00:00 2001
+From 9ca90822cdaef5ef102d953a5cc59c5ed1eb4aa6 Mon Sep 17 00:00:00 2001
 From: Terry Wilson <twilson@redhat.com>
 Date: Fri, 13 Dec 2013 09:41:43 -0600
 Subject: [PATCH] Remove dnsmasq version warning
diff --git a/rpm/SOURCES/0003-remove-runtime-dependency-on-pbr.patch b/rpm/SOURCES/0003-remove-runtime-dependency-on-pbr.patch
new file mode 100644 (file)
index 0000000..4ce10cd
--- /dev/null
@@ -0,0 +1,31 @@
+From 16c69ff1d86391ac97d2ed2bfc863513694655fd Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?P=C3=A1draig=20Brady?= <P@draigBrady.com>
+Date: Mon, 24 Mar 2014 14:50:23 +0000
+Subject: [PATCH] remove runtime dependency on pbr
+
+---
+ neutron/version.py | 13 +++++++++++--
+ 1 file changed, 11 insertions(+), 2 deletions(-)
+
+diff --git a/neutron/version.py b/neutron/version.py
+index 1819264..e5333c6 100644
+--- a/neutron/version.py
++++ b/neutron/version.py
+@@ -14,6 +14,15 @@
+ #    License for the specific language governing permissions and limitations
+ #    under the License.
+-import pbr.version
++class VersionInfo(object):
++    release = "RPMRELEASE"
++    version = "RPMVERSION"
+-version_info = pbr.version.VersionInfo('neutron')
++    def version_string(self):
++        return self.version
++
++    def release_string(self):
++        return self.release
++
++
++version_info = VersionInfo()
diff --git a/rpm/SOURCES/0004-Sync-service-and-systemd-modules-from-oslo-incubator.patch b/rpm/SOURCES/0004-Sync-service-and-systemd-modules-from-oslo-incubator.patch
new file mode 100644 (file)
index 0000000..1387f91
--- /dev/null
@@ -0,0 +1,328 @@
+From f0bbb2c80e84848967885599d8b57f0710d7d44c Mon Sep 17 00:00:00 2001
+From: Jakub Libosvar <libosvar@redhat.com>
+Date: Mon, 17 Mar 2014 16:36:01 +0100
+Subject: [PATCH] Sync service and systemd modules from oslo-incubator
+
+This patch make systemd know when neutron-service was started. This is
+needed in HA environment, previously systemd returned success even
+before neutron-server was able to handle requests.
+
+Current oslo-incubator commit on HEAD:
+b7ad6ddab8b1d61bf4f52ccaa461a9d68809747b
+
+Implements: blueprint service-readiness
+Change-Id: Ic9e4abd11b614a896fbd7454b9a604a69a248d0f
+---
+ neutron/openstack/common/service.py |  72 +++++++++++++------------
+ neutron/openstack/common/systemd.py | 104 ++++++++++++++++++++++++++++++++++++
+ openstack-common.conf               |   1 +
+ 3 files changed, 144 insertions(+), 33 deletions(-)
+ create mode 100644 neutron/openstack/common/systemd.py
+
+diff --git a/neutron/openstack/common/service.py b/neutron/openstack/common/service.py
+index b8144bb..627dda4 100644
+--- a/neutron/openstack/common/service.py
++++ b/neutron/openstack/common/service.py
+@@ -38,9 +38,10 @@ from eventlet import event
+ from oslo.config import cfg
+ from neutron.openstack.common import eventlet_backdoor
+-from neutron.openstack.common.gettextutils import _
++from neutron.openstack.common.gettextutils import _LE, _LI, _LW
+ from neutron.openstack.common import importutils
+ from neutron.openstack.common import log as logging
++from neutron.openstack.common import systemd
+ from neutron.openstack.common import threadgroup
+@@ -163,7 +164,7 @@ class ServiceLauncher(Launcher):
+         status = None
+         signo = 0
+-        LOG.debug(_('Full set of CONF:'))
++        LOG.debug('Full set of CONF:')
+         CONF.log_opt_values(LOG, std_logging.DEBUG)
+         try:
+@@ -172,7 +173,7 @@ class ServiceLauncher(Launcher):
+             super(ServiceLauncher, self).wait()
+         except SignalExit as exc:
+             signame = _signo_to_signame(exc.signo)
+-            LOG.info(_('Caught %s, exiting'), signame)
++            LOG.info(_LI('Caught %s, exiting'), signame)
+             status = exc.code
+             signo = exc.signo
+         except SystemExit as exc:
+@@ -184,7 +185,7 @@ class ServiceLauncher(Launcher):
+                     rpc.cleanup()
+                 except Exception:
+                     # We're shutting down, so it doesn't matter at this point.
+-                    LOG.exception(_('Exception during rpc cleanup.'))
++                    LOG.exception(_LE('Exception during rpc cleanup.'))
+         return status, signo
+@@ -235,7 +236,7 @@ class ProcessLauncher(object):
+         # dies unexpectedly
+         self.readpipe.read()
+-        LOG.info(_('Parent process has died unexpectedly, exiting'))
++        LOG.info(_LI('Parent process has died unexpectedly, exiting'))
+         sys.exit(1)
+@@ -266,13 +267,13 @@ class ProcessLauncher(object):
+             launcher.wait()
+         except SignalExit as exc:
+             signame = _signo_to_signame(exc.signo)
+-            LOG.info(_('Caught %s, exiting'), signame)
++            LOG.info(_LI('Caught %s, exiting'), signame)
+             status = exc.code
+             signo = exc.signo
+         except SystemExit as exc:
+             status = exc.code
+         except BaseException:
+-            LOG.exception(_('Unhandled exception'))
++            LOG.exception(_LE('Unhandled exception'))
+             status = 2
+         finally:
+             launcher.stop()
+@@ -305,7 +306,7 @@ class ProcessLauncher(object):
+             # start up quickly but ensure we don't fork off children that
+             # die instantly too quickly.
+             if time.time() - wrap.forktimes[0] < wrap.workers:
+-                LOG.info(_('Forking too fast, sleeping'))
++                LOG.info(_LI('Forking too fast, sleeping'))
+                 time.sleep(1)
+             wrap.forktimes.pop(0)
+@@ -324,7 +325,7 @@ class ProcessLauncher(object):
+             os._exit(status)
+-        LOG.info(_('Started child %d'), pid)
++        LOG.info(_LI('Started child %d'), pid)
+         wrap.children.add(pid)
+         self.children[pid] = wrap
+@@ -334,7 +335,7 @@ class ProcessLauncher(object):
+     def launch_service(self, service, workers=1):
+         wrap = ServiceWrapper(service, workers)
+-        LOG.info(_('Starting %d workers'), wrap.workers)
++        LOG.info(_LI('Starting %d workers'), wrap.workers)
+         while self.running and len(wrap.children) < wrap.workers:
+             self._start_child(wrap)
+@@ -351,15 +352,15 @@ class ProcessLauncher(object):
+         if os.WIFSIGNALED(status):
+             sig = os.WTERMSIG(status)
+-            LOG.info(_('Child %(pid)d killed by signal %(sig)d'),
++            LOG.info(_LI('Child %(pid)d killed by signal %(sig)d'),
+                      dict(pid=pid, sig=sig))
+         else:
+             code = os.WEXITSTATUS(status)
+-            LOG.info(_('Child %(pid)s exited with status %(code)d'),
++            LOG.info(_LI('Child %(pid)s exited with status %(code)d'),
+                      dict(pid=pid, code=code))
+         if pid not in self.children:
+-            LOG.warning(_('pid %d not in child list'), pid)
++            LOG.warning(_LW('pid %d not in child list'), pid)
+             return None
+         wrap = self.children.pop(pid)
+@@ -381,22 +382,25 @@ class ProcessLauncher(object):
+     def wait(self):
+         """Loop waiting on children to die and respawning as necessary."""
+-        LOG.debug(_('Full set of CONF:'))
++        LOG.debug('Full set of CONF:')
+         CONF.log_opt_values(LOG, std_logging.DEBUG)
+-        while True:
+-            self.handle_signal()
+-            self._respawn_children()
+-            if self.sigcaught:
+-                signame = _signo_to_signame(self.sigcaught)
+-                LOG.info(_('Caught %s, stopping children'), signame)
+-            if not _is_sighup_and_daemon(self.sigcaught):
+-                break
+-
+-            for pid in self.children:
+-                os.kill(pid, signal.SIGHUP)
+-            self.running = True
+-            self.sigcaught = None
++        try:
++            while True:
++                self.handle_signal()
++                self._respawn_children()
++                if self.sigcaught:
++                    signame = _signo_to_signame(self.sigcaught)
++                    LOG.info(_LI('Caught %s, stopping children'), signame)
++                if not _is_sighup_and_daemon(self.sigcaught):
++                    break
++
++                for pid in self.children:
++                    os.kill(pid, signal.SIGHUP)
++                self.running = True
++                self.sigcaught = None
++        except eventlet.greenlet.GreenletExit:
++            LOG.info(_LI("Wait called after thread killed.  Cleaning up."))
+         for pid in self.children:
+             try:
+@@ -407,7 +411,7 @@ class ProcessLauncher(object):
+         # Wait for children to die
+         if self.children:
+-            LOG.info(_('Waiting on %d children to exit'), len(self.children))
++            LOG.info(_LI('Waiting on %d children to exit'), len(self.children))
+             while self.children:
+                 self._wait_child()
+@@ -484,14 +488,16 @@ class Services(object):
+         """
+         service.start()
++        systemd.notify_once()
+         done.wait()
+-def launch(service, workers=None):
+-    if workers:
+-        launcher = ProcessLauncher()
+-        launcher.launch_service(service, workers=workers)
+-    else:
++def launch(service, workers=1):
++    if workers is None or workers == 1:
+         launcher = ServiceLauncher()
+         launcher.launch_service(service)
++    else:
++        launcher = ProcessLauncher()
++        launcher.launch_service(service, workers=workers)
++
+     return launcher
+diff --git a/neutron/openstack/common/systemd.py b/neutron/openstack/common/systemd.py
+new file mode 100644
+index 0000000..e1ba656
+--- /dev/null
++++ b/neutron/openstack/common/systemd.py
+@@ -0,0 +1,104 @@
++# Copyright 2012-2014 Red Hat, Inc.
++#
++#    Licensed under the Apache License, Version 2.0 (the "License"); you may
++#    not use this file except in compliance with the License. You may obtain
++#    a copy of the License at
++#
++#         http://www.apache.org/licenses/LICENSE-2.0
++#
++#    Unless required by applicable law or agreed to in writing, software
++#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
++#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
++#    License for the specific language governing permissions and limitations
++#    under the License.
++
++"""
++Helper module for systemd service readiness notification.
++"""
++
++import os
++import socket
++import sys
++
++from neutron.openstack.common import log as logging
++
++
++LOG = logging.getLogger(__name__)
++
++
++def _abstractify(socket_name):
++    if socket_name.startswith('@'):
++        # abstract namespace socket
++        socket_name = '\0%s' % socket_name[1:]
++    return socket_name
++
++
++def _sd_notify(unset_env, msg):
++    notify_socket = os.getenv('NOTIFY_SOCKET')
++    if notify_socket:
++        sock = socket.socket(socket.AF_UNIX, socket.SOCK_DGRAM)
++        try:
++            sock.connect(_abstractify(notify_socket))
++            sock.sendall(msg)
++            if unset_env:
++                del os.environ['NOTIFY_SOCKET']
++        except EnvironmentError:
++            LOG.debug("Systemd notification failed", exc_info=True)
++        finally:
++            sock.close()
++
++
++def notify():
++    """Send notification to Systemd that service is ready.
++    For details see
++      http://www.freedesktop.org/software/systemd/man/sd_notify.html
++    """
++    _sd_notify(False, 'READY=1')
++
++
++def notify_once():
++    """Send notification once to Systemd that service is ready.
++    Systemd sets NOTIFY_SOCKET environment variable with the name of the
++    socket listening for notifications from services.
++    This method removes the NOTIFY_SOCKET environment variable to ensure
++    notification is sent only once.
++    """
++    _sd_notify(True, 'READY=1')
++
++
++def onready(notify_socket, timeout):
++    """Wait for systemd style notification on the socket.
++
++    :param notify_socket: local socket address
++    :type notify_socket:  string
++    :param timeout:       socket timeout
++    :type timeout:        float
++    :returns:             0 service ready
++                          1 service not ready
++                          2 timeout occured
++    """
++    sock = socket.socket(socket.AF_UNIX, socket.SOCK_DGRAM)
++    sock.settimeout(timeout)
++    sock.bind(_abstractify(notify_socket))
++    try:
++        msg = sock.recv(512)
++    except socket.timeout:
++        return 2
++    finally:
++        sock.close()
++    if 'READY=1' in msg:
++        return 0
++    else:
++        return 1
++
++
++if __name__ == '__main__':
++    # simple CLI for testing
++    if len(sys.argv) == 1:
++        notify()
++    elif len(sys.argv) >= 2:
++        timeout = float(sys.argv[1])
++        notify_socket = os.getenv('NOTIFY_SOCKET')
++        if notify_socket:
++            retval = onready(notify_socket, timeout)
++            sys.exit(retval)
+diff --git a/openstack-common.conf b/openstack-common.conf
+index 9523f9c..395576f 100644
+--- a/openstack-common.conf
++++ b/openstack-common.conf
+@@ -26,6 +26,7 @@ module=processutils
+ module=rpc
+ module=service
+ module=sslutils
++module=systemd
+ module=threadgroup
+ module=timeutils
+ module=uuidutils
diff --git a/rpm/SOURCES/0005-Removed-signing_dir-from-neutron.conf.patch b/rpm/SOURCES/0005-Removed-signing_dir-from-neutron.conf.patch
new file mode 100644 (file)
index 0000000..69104b3
--- /dev/null
@@ -0,0 +1,27 @@
+From 1e61f12a0ccc0e4a876bbe3e3529f96a52c2f1d7 Mon Sep 17 00:00:00 2001
+From: Ihar Hrachyshka <ihrachys@redhat.com>
+Date: Mon, 28 Apr 2014 15:05:30 +0200
+Subject: [PATCH] Removed signing_dir from neutron.conf
+
+The default value from keystone middleware ($TMPDIR) is good enough,
+so stick to it.
+
+Closes-Bug: 1313780
+Change-Id: Ideb393f9010f4f1706392ccdfdd5fa7307bda070
+(cherry picked from commit e423126965fb79d35f5f2281974cee6a216af8d4)
+---
+ etc/neutron.conf | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/etc/neutron.conf b/etc/neutron.conf
+index e258720..ce95fc4 100644
+--- a/etc/neutron.conf
++++ b/etc/neutron.conf
+@@ -398,7 +398,6 @@ auth_protocol = http
+ admin_tenant_name = %SERVICE_TENANT_NAME%
+ admin_user = %SERVICE_USER%
+ admin_password = %SERVICE_PASSWORD%
+-signing_dir = $state_path/keystone-signing
+ [database]
+ # This line MUST be changed to actually run the plugin.
diff --git a/rpm/SOURCES/0006-Remove-kernel-version-check-for-OVS-VXLAN.patch b/rpm/SOURCES/0006-Remove-kernel-version-check-for-OVS-VXLAN.patch
new file mode 100644 (file)
index 0000000..5a91d5e
--- /dev/null
@@ -0,0 +1,196 @@
+From 6338796ad354f7e82945a52ab14914e1fc490ae3 Mon Sep 17 00:00:00 2001
+From: Miguel Angel Ajo <mangelajo@redhat.com>
+Date: Mon, 26 May 2014 15:56:23 +0200
+Subject: [PATCH] Remove kernel version check for OVS VXLAN
+
+Upstream kernel version check for OVS VXLAN doesn't work
+in RHEL, because we backport those features to our 2.6.x
+kernel branch. The check is removed downstream until
+a solution that works for everyone is available.
+
+Resolves rhbz: 1100164
+Downstream-Only
+Upstream-Juno: https://review.openstack.org/#/c/88121/
+
+Change-Id: Ica9188c624bf8f7ba91eee2537a2219a97017b54
+Reviewed-on: https://code.engineering.redhat.com/gerrit/25694
+Tested-by: RHOS Jenkins <apevec+rhosci@redhat.com>
+Reviewed-by: Miguel Angel Ajo Pelayo <majopela@redhat.com>
+Reviewed-by: Ihar Hrachyshka <ihrachys@redhat.com>
+Tested-by: Ihar Hrachyshka <ihrachys@redhat.com>
+---
+ neutron/plugins/ofagent/agent/ofa_neutron_agent.py       |  1 -
+ neutron/plugins/openvswitch/agent/ovs_neutron_agent.py   |  1 -
+ neutron/tests/unit/ofagent/test_ofa_neutron_agent.py     | 10 +++++-----
+ neutron/tests/unit/openvswitch/test_ovs_lib.py           | 12 ++++++------
+ neutron/tests/unit/openvswitch/test_ovs_neutron_agent.py | 10 +++++-----
+ neutron/tests/unit/openvswitch/test_ovs_tunnel.py        |  2 +-
+ 6 files changed, 17 insertions(+), 19 deletions(-)
+
+diff --git a/neutron/plugins/ofagent/agent/ofa_neutron_agent.py b/neutron/plugins/ofagent/agent/ofa_neutron_agent.py
+index c6e65e5..5caef4b 100644
+--- a/neutron/plugins/ofagent/agent/ofa_neutron_agent.py
++++ b/neutron/plugins/ofagent/agent/ofa_neutron_agent.py
+@@ -266,7 +266,6 @@ class OFANeutronAgent(sg_rpc.SecurityGroupAgentRpcCallbackMixin):
+         self.local_ip = local_ip
+         self.tunnel_count = 0
+         self.vxlan_udp_port = cfg.CONF.AGENT.vxlan_udp_port
+-        self._check_ovs_version()
+         if self.enable_tunneling:
+             self.setup_tunnel_br(tun_br)
+         # Collect additional bridges to monitor
+diff --git a/neutron/plugins/openvswitch/agent/ovs_neutron_agent.py b/neutron/plugins/openvswitch/agent/ovs_neutron_agent.py
+index 79c03f1..17906d0 100644
+--- a/neutron/plugins/openvswitch/agent/ovs_neutron_agent.py
++++ b/neutron/plugins/openvswitch/agent/ovs_neutron_agent.py
+@@ -212,7 +212,6 @@ class OVSNeutronAgent(sg_rpc.SecurityGroupAgentRpcCallbackMixin,
+         self.local_ip = local_ip
+         self.tunnel_count = 0
+         self.vxlan_udp_port = cfg.CONF.AGENT.vxlan_udp_port
+-        self._check_ovs_version()
+         self.tun_br = None
+         if self.enable_tunneling:
+             self.setup_tunnel_br(tun_br)
+diff --git a/neutron/tests/unit/ofagent/test_ofa_neutron_agent.py b/neutron/tests/unit/ofagent/test_ofa_neutron_agent.py
+index 71afcd2..9d8e83a 100644
+--- a/neutron/tests/unit/ofagent/test_ofa_neutron_agent.py
++++ b/neutron/tests/unit/ofagent/test_ofa_neutron_agent.py
+@@ -534,30 +534,30 @@ class TestOFANeutronAgent(OFAAgentTestCase):
+                         version_ok = False
+                 self.assertEqual(version_ok, expecting_ok)
+-    def test_check_minimum_version(self):
++    def _test_check_minimum_version(self):
+         min_vxlan_ver = constants.MINIMUM_OVS_VXLAN_VERSION
+         min_kernel_ver = constants.MINIMUM_LINUX_KERNEL_OVS_VXLAN
+         self._check_ovs_vxlan_version(min_vxlan_ver, min_vxlan_ver,
+                                       min_kernel_ver, expecting_ok=True)
+-    def test_check_future_version(self):
++    def _test_check_future_version(self):
+         install_ver = str(float(constants.MINIMUM_OVS_VXLAN_VERSION) + 0.01)
+         min_kernel_ver = constants.MINIMUM_LINUX_KERNEL_OVS_VXLAN
+         self._check_ovs_vxlan_version(install_ver, install_ver,
+                                       min_kernel_ver, expecting_ok=True)
+-    def test_check_fail_version(self):
++    def _test_check_fail_version(self):
+         install_ver = str(float(constants.MINIMUM_OVS_VXLAN_VERSION) - 0.01)
+         min_kernel_ver = constants.MINIMUM_LINUX_KERNEL_OVS_VXLAN
+         self._check_ovs_vxlan_version(install_ver, install_ver,
+                                       min_kernel_ver, expecting_ok=False)
+-    def test_check_fail_no_version(self):
++    def _test_check_fail_no_version(self):
+         min_kernel_ver = constants.MINIMUM_LINUX_KERNEL_OVS_VXLAN
+         self._check_ovs_vxlan_version(None, None,
+                                       min_kernel_ver, expecting_ok=False)
+-    def test_check_fail_klm_version(self):
++    def _test_check_fail_klm_version(self):
+         min_vxlan_ver = constants.MINIMUM_OVS_VXLAN_VERSION
+         min_kernel_ver = OVS_LINUX_KERN_VERS_WITHOUT_VXLAN
+         install_ver = str(float(min_vxlan_ver) - 0.01)
+diff --git a/neutron/tests/unit/openvswitch/test_ovs_lib.py b/neutron/tests/unit/openvswitch/test_ovs_lib.py
+index dbf155b..77e383a 100644
+--- a/neutron/tests/unit/openvswitch/test_ovs_lib.py
++++ b/neutron/tests/unit/openvswitch/test_ovs_lib.py
+@@ -899,31 +899,31 @@ class OVS_Lib_Test(base.BaseTestCase):
+                         version_ok = False
+                 self.assertEqual(version_ok, expecting_ok)
+-    def test_check_minimum_version(self):
++    def _test_check_minimum_version(self):
+         min_vxlan_ver = constants.MINIMUM_OVS_VXLAN_VERSION
+         min_kernel_ver = constants.MINIMUM_LINUX_KERNEL_OVS_VXLAN
+         self._check_ovs_vxlan_version(min_vxlan_ver, min_vxlan_ver,
+                                       min_kernel_ver, expecting_ok=True)
+-    def test_check_future_version(self):
++    def _test_check_future_version(self):
+         install_ver = str(float(constants.MINIMUM_OVS_VXLAN_VERSION) + 0.01)
+         min_kernel_ver = constants.MINIMUM_LINUX_KERNEL_OVS_VXLAN
+         self._check_ovs_vxlan_version(install_ver, install_ver,
+                                       min_kernel_ver, expecting_ok=True)
+-    def test_check_fail_version(self):
++    def _test_check_fail_version(self):
+         install_ver = str(float(constants.MINIMUM_OVS_VXLAN_VERSION) - 0.01)
+         min_kernel_ver = constants.MINIMUM_LINUX_KERNEL_OVS_VXLAN
+         self._check_ovs_vxlan_version(install_ver, install_ver,
+                                       min_kernel_ver, expecting_ok=False)
+-    def test_check_fail_no_version(self):
++    def _test_check_fail_no_version(self):
+         min_kernel_ver = constants.MINIMUM_LINUX_KERNEL_OVS_VXLAN
+         self._check_ovs_vxlan_version(None, None,
+                                       min_kernel_ver,
+                                       expecting_ok=False)
+-    def test_check_fail_klm_version(self):
++    def _test_check_fail_klm_version(self):
+         min_vxlan_ver = constants.MINIMUM_OVS_VXLAN_VERSION
+         min_kernel_ver = OVS_LINUX_KERN_VERS_WITHOUT_VXLAN
+         install_ver = str(float(min_vxlan_ver) - 0.01)
+@@ -932,7 +932,7 @@ class OVS_Lib_Test(base.BaseTestCase):
+                                       min_kernel_ver,
+                                       expecting_ok=False)
+-    def test_check_pass_kernel_version(self):
++    def _test_check_pass_kernel_version(self):
+         min_vxlan_ver = constants.MINIMUM_OVS_VXLAN_VERSION
+         min_kernel_ver = constants.MINIMUM_LINUX_KERNEL_OVS_VXLAN
+         self._check_ovs_vxlan_version(min_vxlan_ver, min_vxlan_ver,
+diff --git a/neutron/tests/unit/openvswitch/test_ovs_neutron_agent.py b/neutron/tests/unit/openvswitch/test_ovs_neutron_agent.py
+index 94d3c93..651c991 100644
+--- a/neutron/tests/unit/openvswitch/test_ovs_neutron_agent.py
++++ b/neutron/tests/unit/openvswitch/test_ovs_neutron_agent.py
+@@ -520,30 +520,30 @@ class TestOvsNeutronAgent(base.BaseTestCase):
+                         version_ok = False
+                 self.assertEqual(version_ok, expecting_ok)
+-    def test_check_minimum_version(self):
++    def _test_check_minimum_version(self):
+         min_vxlan_ver = constants.MINIMUM_OVS_VXLAN_VERSION
+         min_kernel_ver = constants.MINIMUM_LINUX_KERNEL_OVS_VXLAN
+         self._check_ovs_vxlan_version(min_vxlan_ver, min_vxlan_ver,
+                                       min_kernel_ver, expecting_ok=True)
+-    def test_check_future_version(self):
++    def _test_check_future_version(self):
+         install_ver = str(float(constants.MINIMUM_OVS_VXLAN_VERSION) + 0.01)
+         min_kernel_ver = constants.MINIMUM_LINUX_KERNEL_OVS_VXLAN
+         self._check_ovs_vxlan_version(install_ver, install_ver,
+                                       min_kernel_ver, expecting_ok=True)
+-    def test_check_fail_version(self):
++    def _test_check_fail_version(self):
+         install_ver = str(float(constants.MINIMUM_OVS_VXLAN_VERSION) - 0.01)
+         min_kernel_ver = constants.MINIMUM_LINUX_KERNEL_OVS_VXLAN
+         self._check_ovs_vxlan_version(install_ver, install_ver,
+                                       min_kernel_ver, expecting_ok=False)
+-    def test_check_fail_no_version(self):
++    def _test_check_fail_no_version(self):
+         min_kernel_ver = constants.MINIMUM_LINUX_KERNEL_OVS_VXLAN
+         self._check_ovs_vxlan_version(None, None,
+                                       min_kernel_ver, expecting_ok=False)
+-    def test_check_fail_klm_version(self):
++    def _test_check_fail_klm_version(self):
+         min_vxlan_ver = constants.MINIMUM_OVS_VXLAN_VERSION
+         min_kernel_ver = OVS_LINUX_KERN_VERS_WITHOUT_VXLAN
+         install_ver = str(float(min_vxlan_ver) - 0.01)
+diff --git a/neutron/tests/unit/openvswitch/test_ovs_tunnel.py b/neutron/tests/unit/openvswitch/test_ovs_tunnel.py
+index 126b9cc..2ae4fe8 100644
+--- a/neutron/tests/unit/openvswitch/test_ovs_tunnel.py
++++ b/neutron/tests/unit/openvswitch/test_ovs_tunnel.py
+@@ -249,7 +249,7 @@ class TunnelTest(base.BaseTestCase):
+                                           self.VETH_MTU)
+         self._verify_mock_calls()
+-    def test_construct_vxlan(self):
++    def _test_construct_vxlan(self):
+         with mock.patch.object(ovs_lib, 'get_installed_ovs_klm_version',
+                                return_value="1.10") as klm_ver:
+             with mock.patch.object(ovs_lib, 'get_installed_ovs_usr_version',
diff --git a/rpm/SOURCES/0007-Ensure-routing-key-is-specified-in-the-address-for-a.patch b/rpm/SOURCES/0007-Ensure-routing-key-is-specified-in-the-address-for-a.patch
new file mode 100644 (file)
index 0000000..c852a86
--- /dev/null
@@ -0,0 +1,35 @@
+From 9155f7bf00bb50e4988b047e311a2e089e8b8ac9 Mon Sep 17 00:00:00 2001
+From: Russell Bryant <rbryant@redhat.com>
+Date: Mon, 9 Jun 2014 16:53:21 -0400
+Subject: [PATCH] Ensure routing key is specified in the address for a direct
+ producer
+
+This change is already merged in oslo-incubator.  Original commit
+message body includes:
+
+    Porting this fix from oslo.messaging.  This fixes the impl_qpid.py
+    driver to allow it to work with the latest stable upstream QPID broker
+    (version 0.28).  See the Apache Qpid Jira bug
+    https://issues.apache.org/jira/browse/QPID-5557
+
+Change-Id: If71f78e50f8a9b3acfd1e9d02c8271f17c4ebee7
+Related-Bug: #1300318
+(cherry picked from commit 9b8e7362f564f622e765a6a9a14b23d87a50dac8)
+(cherry picked from commit cac3aa8dbd57dded631f54353e54f42b3911e45d)
+---
+ neutron/openstack/common/rpc/impl_qpid.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/neutron/openstack/common/rpc/impl_qpid.py b/neutron/openstack/common/rpc/impl_qpid.py
+index a7dcf29..5fb2c49 100644
+--- a/neutron/openstack/common/rpc/impl_qpid.py
++++ b/neutron/openstack/common/rpc/impl_qpid.py
+@@ -368,7 +368,7 @@ class DirectPublisher(Publisher):
+         """Init a 'direct' publisher."""
+         if conf.qpid_topology_version == 1:
+-            node_name = msg_id
++            node_name = "%s/%s" % (msg_id, msg_id)
+             node_opts = {"type": "direct"}
+         elif conf.qpid_topology_version == 2:
+             node_name = "amq.direct/%s" % msg_id
diff --git a/rpm/SOURCES/neutron-dhcp-setup b/rpm/SOURCES/neutron-dhcp-setup
deleted file mode 100755 (executable)
index 4055768..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-#!/bin/bash
-#
-# Copyright (C) 2012, Red Hat, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-
-# The script supports the plugins below
-declare -a SUPPORTED_PLUGINS=(linuxbridge openvswitch)
-
-#
-# Print --help output and exit.
-#
-usage() {
-
-cat << EOF
-The helper script will install the necessary support for the DHCP agent.
-
-Usage: neutron-dhcp-setup [options]
-Options:
-       --help        | -h
-               Print usage information.
-        --plugin      | -p
-                The neutron plugin. Supported plugins:-
-                    ${SUPPORTED_PLUGINS[*]}
-        --qhost       | -q
-                The Neutron hostname (assumes that this is also the QPID host).
-EOF
-
-       exit 0
-}
-
-is_valid_plugin() {
-       local i=
-       for i in "${SUPPORTED_PLUGINS[@]}"; do
-               if [ "$i" == "$1" ]; then
-                       return 0 
-               fi
-       done
-       return 1
-}
-
-DHCP_CONF=/etc/neutron/dhcp_agent.ini
-
-while [ $# -gt 0 ]
-do
-       case "$1" in
-               -h|--help)
-                       usage
-                       ;;
-                -p|--plugin)
-                        shift
-                        NEUTRON_PLUGIN=${1}
-                        ;;
-                -q|--qhost)
-                        shift
-                        Q_HOST=${1}
-                        ;;
-               *)
-                       # ignore
-                       shift
-                       ;;
-       esac
-       shift
-done
-
-# if the plugin is not defined
-if [ -z ${NEUTRON_PLUGIN} ] ; then
-        echo "Please select a plugin from: ${SUPPORTED_PLUGINS[*]}"
-        echo "Choice:"
-        read NEUTRON_PLUGIN
-fi
-
-# check that the plugin is valid
-is_valid_plugin ${NEUTRON_PLUGIN}
-if [ $? -ne 0 ]; then
-        echo "Plugin '${NEUTRON_PLUGIN}' not supported. Supported plugins:-"
-        echo "    ${SUPPORTED_PLUGINS[*]}"
-        exit 0
-fi
-
-echo "Neutron plugin: ${NEUTRON_PLUGIN}"
-
-if [ -z ${Q_HOST} ] ; then
-    echo "Please enter the Neutron hostname:"
-    read Q_HOST
-fi
-
-Q_PORT=9696
-Q_CONF=/etc/neutron/neutron.conf
-# 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 "${NEUTRON_PLUGIN}" in
-"linuxbridge")
-        LINUX_INTERFACE_DRIVER=neutron.agent.linux.interface.BridgeInterfaceDriver
-;;
-
-"openvswitch")
-        if ! rpm -q openvswitch > /dev/null
-        then
-                echo "Please install openvswitch"
-                exit 0
-        fi
-        LINUX_INTERFACE_DRIVER=neutron.agent.linux.interface.OVSInterfaceDriver
-;;
-
-esac
-
-# Keystone specific
-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}
-
-# Update Keystone
-openstack-config --set ${DHCP_CONF} DEFAULT auth_url ${OS_AUTH_URL}
-openstack-config --set ${DHCP_CONF} DEFAULT admin_username ${OS_USERNAME}
-openstack-config --set ${DHCP_CONF} DEFAULT admin_password ${OS_PASSWORD}
-openstack-config --set ${DHCP_CONF} DEFAULT admin_tenant_name ${OS_TENANT_NAME}
-
-# Update interface driver
-openstack-config --set ${DHCP_CONF} DEFAULT interface_driver ${LINUX_INTERFACE_DRIVER}
-
-echo "Configuration updates complete!"
index a4a55c8fe64c17042e7c2f22a7f02af49142691b..17882aca825bd51e6832121b71b56b38b35190ee 100644 (file)
@@ -3,8 +3,9 @@ verbose = True
 lock_path = $state_path/lock
 auth_strategy = noauth
 notification_driver = neutron.openstack.common.notifier.rpc_notifier
-rpc_backend = neutron.openstack.common.rpc.impl_qpid
 allow_overlapping_ips = True
+use_stderr = False
+api_paste_config = /usr/share/neutron/api-paste.ini
 
 [quotas]
 
@@ -18,7 +19,6 @@ auth_protocol = http
 admin_tenant_name = %SERVICE_TENANT_NAME%
 admin_user = %SERVICE_USER%
 admin_password = %SERVICE_PASSWORD%
-signing_dir = $state_path/keystone-signing
 
 [database]
 max_pool_size = 10
@@ -27,3 +27,4 @@ pool_timeout = 10
 
 [service_providers]
 service_provider = LOADBALANCER:Haproxy:neutron.services.loadbalancer.drivers.haproxy.plugin_driver.HaproxyOnHostPluginDriver:default
+
diff --git a/rpm/SOURCES/neutron-l3-setup b/rpm/SOURCES/neutron-l3-setup
deleted file mode 100755 (executable)
index 44cdf0e..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-#!/bin/bash
-#
-# Copyright (C) 2012, Red Hat, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-
-# The script supports the plugins below
-declare -a SUPPORTED_PLUGINS=(linuxbridge openvswitch)
-
-#
-# Print --help output and exit.
-#
-usage() {
-
-cat << EOF
-The helper script will install the necessary support for the L3 agent.
-
-Usage: neutron-l3-setup [options]
-Options:
-       --help        | -h
-               Print usage information.
-        --plugin      | -p
-                The neutron plugin. Supported plugins:-
-                    ${SUPPORTED_PLUGINS[*]}
-        --qhost       | -q
-                The Neutron hostname (assumes that this is also the QPID host).
-EOF
-
-       exit 0
-}
-
-is_valid_plugin() {
-       local i=
-       for i in "${SUPPORTED_PLUGINS[@]}"; do
-               if [ "$i" == "$1" ]; then
-                       return 0 
-               fi
-       done
-       return 1
-}
-
-L3_CONF=/etc/neutron/l3_agent.ini
-L3_META_CONF=/etc/neutron/metadata_agent.ini
-
-while [ $# -gt 0 ]
-do
-       case "$1" in
-               -h|--help)
-                       usage
-                       ;;
-                -p|--plugin)
-                        shift
-                        NEUTRON_PLUGIN=${1}
-                        ;;
-                -q|--qhost)
-                        shift
-                        Q_HOST=${1}
-                        ;;
-               *)
-                       # ignore
-                       shift
-                       ;;
-       esac
-       shift
-done
-
-# if the plugin is not defined
-if [ -z ${NEUTRON_PLUGIN} ] ; then
-        echo "Please select a plugin from: ${SUPPORTED_PLUGINS[*]}"
-        echo "Choice:"
-        read NEUTRON_PLUGIN
-fi
-
-# check that the plugin is valid
-is_valid_plugin ${NEUTRON_PLUGIN}
-if [ $? -ne 0 ]; then
-        echo "Plugin '${NEUTRON_PLUGIN}' not supported. Supported plugins:-"
-        echo "    ${SUPPORTED_PLUGINS[*]}"
-        exit 0
-fi
-
-echo "Neutron plugin: ${NEUTRON_PLUGIN}"
-
-if [ -z ${Q_HOST} ] ; then
-    echo "Please enter the Neutron hostname:"
-    read Q_HOST
-fi
-
-Q_PORT=9696
-Q_CONF=/etc/neutron/neutron.conf
-# 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 "${NEUTRON_PLUGIN}" in
-"linuxbridge")
-        LINUX_INTERFACE_DRIVER=neutron.agent.linux.interface.BridgeInterfaceDriver
-        openstack-config --set ${L3_CONF} DEFAULT external_network_bridge ''
-;;
-
-"openvswitch")
-        if ! rpm -q openvswitch > /dev/null
-        then
-                echo "Please install openvswitch"
-                exit 0
-        fi
-        LINUX_INTERFACE_DRIVER=neutron.agent.linux.interface.OVSInterfaceDriver
-;;
-
-esac
-
-# Keystone specific
-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}
-
-# Update Keystone
-openstack-config --set ${L3_META_CONF} DEFAULT auth_url ${OS_AUTH_URL}
-openstack-config --set ${L3_META_CONF} DEFAULT admin_user ${OS_USERNAME}
-openstack-config --set ${L3_META_CONF} DEFAULT admin_password ${OS_PASSWORD}
-openstack-config --set ${L3_META_CONF} DEFAULT admin_tenant_name ${OS_TENANT_NAME}
-
-# Update interface driver
-openstack-config --set ${L3_CONF} DEFAULT interface_driver ${LINUX_INTERFACE_DRIVER}
-
-echo "Configuration updates complete!"
diff --git a/rpm/SOURCES/neutron-node-setup b/rpm/SOURCES/neutron-node-setup
deleted file mode 100755 (executable)
index de051ad..0000000
+++ /dev/null
@@ -1,173 +0,0 @@
-#!/bin/bash
-#
-# Copyright (C) 2012, Red Hat, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-
-# The script supports the plugins below
-declare -a SUPPORTED_PLUGINS=(linuxbridge openvswitch)
-
-#
-# Print --help output and exit.
-#
-usage() {
-
-cat << EOF
-The helper script will install the necessary support for the selected plugin.
-
-Usage: neutron-node-setup [options]
-Options:
-       --help        | -h
-               Print usage information.
-        --plugin      | -p
-                The neutron plugin. Supported plugins:-
-                    ${SUPPORTED_PLUGINS[*]}
-        --qhost       | -q
-               The Neutron hostname (assumes that this is also the QPID host).
-EOF
-
-       exit 0
-}
-
-is_valid_plugin() {
-       local i=
-       for i in "${SUPPORTED_PLUGINS[@]}"; do
-               if [ "$i" == "$1" ]; then
-                       return 0 
-               fi
-       done
-       return 1
-}
-
-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
-
-while [ $# -gt 0 ]
-do
-       case "$1" in
-               -h|--help)
-                       usage
-                       ;;
-                -p|--plugin)
-                        shift
-                        NEUTRON_PLUGIN=${1}
-                        ;;
-                -q|--qhost)
-                        shift
-                        Q_HOST=${1}
-                        ;;
-               *)
-                       # ignore
-                       shift
-                       ;;
-       esac
-       shift
-done
-
-# if the plugin is not defined
-if [ -z ${NEUTRON_PLUGIN} ] ; then
-        echo "Please select a plugin from: ${SUPPORTED_PLUGINS[*]}"
-        echo "Choice:"
-        read NEUTRON_PLUGIN
-fi
-
-# check that the plugin is valid
-is_valid_plugin ${NEUTRON_PLUGIN}
-if [ $? -ne 0 ]; then
-        echo "Plugin '${NEUTRON_PLUGIN}' not supported. Supported plugins:-"
-        echo "    ${SUPPORTED_PLUGINS[*]}"
-        exit 0
-fi
-
-echo "Neutron plugin: ${NEUTRON_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 Neutron hostname:"
-    read Q_HOST
-fi
-
-Q_PORT=9696
-Q_CONF=/etc/neutron/neutron.conf
-# 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 "${NEUTRON_PLUGIN}" in
-"linuxbridge")
-;;
-
-"openvswitch")
-        if ! rpm -q openvswitch > /dev/null
-        then
-                echo "Please install openvswitch"
-                exit 0
-        fi
-        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
-
-echo "Would you like to update the nova configuration files? (y/n): "
-read response
-case "$response" in
-y|Y)
-        ;;
-*)
-        echo "Complete!"
-        exit 0
-esac
-
-# Keystone specific
-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 OpenStack is installed then configure nova.conf
-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.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=neutron"
-else
-        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 neutron
-fi
-
-echo "Configuration updates complete!"
diff --git a/rpm/SOURCES/neutron-server-setup b/rpm/SOURCES/neutron-server-setup
deleted file mode 100755 (executable)
index 268c64c..0000000
+++ /dev/null
@@ -1,376 +0,0 @@
-#!/bin/bash
-#
-# Copyright (C) 2012, Red Hat, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-
-# The script supports the plugins below
-declare -a SUPPORTED_PLUGINS=(linuxbridge openvswitch)
-
-#
-# Print --help output and exit.
-#
-usage() {
-
-cat << EOF
-The helper script will install the necessary database support for the selected plugin.
-Please note that some plugins do not require database support. These are addressed in the script.
-The setup of MySQL with a multi-server OpenStack installation is outside of the scope of 
-this simple helper script.
-
-Usage: neutron-server-setup [options]
-Options:
-       --help        | -h
-               Print usage information.
-        --qpw <pw>    | -q <pw>
-                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
-               the MySQL server, it will set the root password to this value
-               instead of prompting for a password.  If the MySQL server is
-               already installed, this password will be used to connect to the
-               database instead of having to prompt for it.
-       --yes         | -y
-               In cases where the script would normally ask for confirmation
-               before doing something, such as installing mysql-server,
-               just assume yes.  This is useful if you want to run the script
-               non-interactively.
-        --user        | -u
-               The neutron user. 
-        --plugin      | -p
-                The neutron plugin. Supported plugins:-
-                    ${SUPPORTED_PLUGINS[*]}
-EOF
-
-       exit 0
-}
-
-install_mysql_server() {
-       if [ -z "${ASSUME_YES}" ] ; then
-               yum install mysql-server
-       else
-               yum install -y mysql-server
-       fi
-}
-
-start_mysql_server() {
-       service mysqld start
-}
-
-is_valid_plugin() {
-       local i=
-       for i in "${SUPPORTED_PLUGINS[@]}"; do
-               if [ "$i" == "$1" ]; then
-                       return 0 
-               fi
-       done
-       return 1
-}
-
-ASSUME_YES=""
-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:-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}
-
-# Nova specific
-NOVA_CONF=/etc/nova/nova.conf
-SCHEDULER_DRIVER=""
-
-while [ $# -gt 0 ]
-do
-       case "$1" in
-               -h|--help)
-                       usage
-                       ;;
-               -q|--qpw)
-                       shift
-                       MYSQL_Q_PW==${1}
-                       ;;
-               -r|--rootpw)
-                       shift
-                       MYSQL_ROOT_PW=${1}
-                       ;;
-               -y|--yes)
-                       ASSUME_YES="yes"
-                       ;;
-                -u|--user)
-                        shift
-                        NEUTRON_USER=${1}
-                        ;;
-                -p|--plugin)
-                        shift
-                        NEUTRON_PLUGIN=${1}
-                        ;;
-               *)
-                       # ignore
-                       shift
-                       ;;
-       esac
-       shift
-done
-
-# if the plugin is not defined
-if [ -z ${NEUTRON_PLUGIN} ] ; then
-        echo "Please select a plugin from: ${SUPPORTED_PLUGINS[*]}"
-       echo "Choice:"
-        read NEUTRON_PLUGIN
-fi
-
-# check that the plugin is valid
-is_valid_plugin ${NEUTRON_PLUGIN}
-if [ $? -ne 0 ]; then
-       echo "Plugin '${NEUTRON_PLUGIN}' not supported. Supported plugins:-"
-       echo "    ${SUPPORTED_PLUGINS[*]}"
-       exit 0
-fi
-
-echo "Neutron plugin: ${NEUTRON_PLUGIN}"
-
-if ! [ -e "${Q_CONF}" ]; then
-       echo "Please install the neutron package"
-       exit 0
-fi
-
-if ! [ -e "/etc/neutron/plugins/${NEUTRON_PLUGIN}" ]; then
-       echo "Please install the ${NEUTRON_PLUGIN} neutron plugin"
-        exit 0
-fi
-
-case "${NEUTRON_PLUGIN}" in
-"linuxbridge")
-       DB_NAME="neutron_linux_bridge"
-        Q_PLUGIN_CLASS="neutron.plugins.linuxbridge.lb_neutron_plugin.LinuxBridgePluginV2"
-;;
-
-"openvswitch")
-       if ! rpm -q --whatprovides openvswitch > /dev/null 
-       then
-               echo "Please install openvswitch"
-               exit 0
-       fi
-       DB_NAME="ovs_neutron"
-        Q_PLUGIN_CLASS="neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2"
-;;
-esac
-
-# Update neutron.conf
-# Plugin
-openstack-config --set ${Q_CONF} DEFAULT core_plugin $Q_PLUGIN_CLASS
-# 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 --del ${Q_CONF} keystone_authtoken admin_tenant_name
-openstack-config --del ${Q_CONF} keystone_authtoken admin_user
-openstack-config --del ${Q_CONF} keystone_authtoken admin_password
-
-openstack-config --set ${Q_CONF} keystone_authtoken admin_tenant_name ${OS_TENANT_NAME}
-openstack-config --set ${Q_CONF} keystone_authtoken admin_user ${OS_USERNAME}
-openstack-config --set ${Q_CONF} keystone_authtoken admin_password ${OS_PASSWORD}
-
-echo "Plugin: ${NEUTRON_PLUGIN} => Database: ${DB_NAME}"
-
-# Make sure MySQL is installed.
-
-NEW_MYSQL_INSTALL=0
-if ! rpm -q --whatprovides mysql-server > /dev/null
-then
-       if [ -z "${ASSUME_YES}" ] ; then
-               printf "mysql-server is not installed.  Would you like to install it now? (y/n): "
-               read response
-               case "$response" in
-                       y|Y)
-                               ;;
-                       n|N)
-                               echo "mysql-server must be installed.  Please install it before proceeding."
-                               exit 0
-                               ;;
-                       *)
-                               echo "Invalid response."
-                               exit 1
-               esac
-       fi
-
-       NEW_MYSQL_INSTALL=1
-       install_mysql_server
-fi
-
-
-# Make sure mysqld is running.
-
-if ! service mysqld status > /dev/null
-then
-       if [ -z "${ASSUME_YES}" ] ; then
-               printf "mysqld is not running.  Would you like to start it now? (y/n): "
-               read response
-               case "$response" in
-                       y|Y)
-                               ;;
-                       n|N)
-                               echo "mysqld must be running.  Please start it before proceeding."
-                               exit 0
-                               ;;
-                       *)
-                               echo "Invalid response."
-                               exit 1
-               esac
-       fi
-
-       start_mysql_server
-
-       # If we both installed and started, ensure it starts at boot
-       [ $NEW_MYSQL_INSTALL -eq 1 ] && chkconfig mysqld on
-fi
-
-# Get MySQL root access.
-if [ $NEW_MYSQL_INSTALL -eq 1 ]
-then
-       if [ ! "${MYSQL_ROOT_PW+defined}" ] ; then
-               echo "Since this is a fresh installation of MySQL, please set a password for the 'root' mysql user."
-
-               PW_MATCH=0
-               while [ $PW_MATCH -eq 0 ]
-               do
-                       printf "Enter new password for 'root' mysql user: "
-                       read -s MYSQL_ROOT_PW
-                       echo
-                       printf "Enter new password again: "
-                       read -s PW2
-                       echo
-                       if [ "${MYSQL_ROOT_PW}" = "${PW2}" ] ; then
-                               PW_MATCH=1
-                       else
-                               echo "Passwords did not match."
-                       fi
-               done
-       fi
-
-       echo "UPDATE mysql.user SET password = password('${MYSQL_ROOT_PW}') WHERE user = 'root'; DELETE FROM mysql.user WHERE user = ''; flush privileges;" | mysql -u root
-       if ! [ $? -eq 0 ] ; then
-               echo "Failed to set password for 'root' MySQL user."
-               exit 1
-       fi
-elif [ ! "${MYSQL_ROOT_PW+defined}" ] ; then
-       printf "Please enter the password for the 'root' MySQL user: "
-       read -s MYSQL_ROOT_PW
-       echo
-fi
-
-# Sanity check MySQL credentials.
-
-MYSQL_ROOT_PW_ARG=""
-if [ "${MYSQL_ROOT_PW+defined}" ]
-then
-       MYSQL_ROOT_PW_ARG="--password=${MYSQL_ROOT_PW}"
-fi
-echo "SELECT 1;" | mysql -u root ${MYSQL_ROOT_PW_ARG} > /dev/null
-if ! [ $? -eq 0 ]
-then
-       echo "Failed to connect to the MySQL server.  Please check your root user credentials."
-       exit 1
-fi
-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='${NEUTRON_USER}'"|grep ${NEUTRON_USER} | wc -l)
-if [ ${USER_EXISTS} -ne 0 ]; then
-       echo "User ${NEUTRON_USER} already exists"
-else
-       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
-DB_EXISTS=$(mysql -u root ${MYSQL_ROOT_PW_ARG} -e "show databases"|grep ${DB_NAME}| wc -l)
-if [ ${DB_EXISTS} -ne 0 ]; then
-       mysql -u root ${MYSQL_ROOT_PW_ARG} -e "drop database ${DB_NAME}"
-fi
-mysql -u root ${MYSQL_ROOT_PW_ARG} -e "create database ${DB_NAME}"
-
-# Configure database specifics
-case "${NEUTRON_PLUGIN}" in
-"linuxbridge")
-       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/neutron/plugin.ini
-;;
-
-"openvswitch")
-       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 [ -z "${ASSUME_YES}" ] ; then
-    echo "Would you like to update the nova configuration files? (y/n): "
-    read response
-    case "$response" in
-    y|Y)
-       ;;
-    *)
-       echo "Complete!"
-       exit 0
-    esac
-fi
-
-# If OpenStack is installed then configure nova.conf
-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.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=neutron"
-else
-        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 neutron
-fi
-
-echo "Configuration updates complete!"
index 6140ece109d5b12d8c32999a082bcfd4f4ac31d5..feb4af521f19656034a418885a96afd0736005b5 100644 (file)
@@ -17,6 +17,7 @@ configs=(
     "/etc/$proj/$proj.conf" \
     "/etc/$proj/vpn_agent.ini" \
     "/etc/$proj/l3_agent.ini" \
+    "/etc/$proj/fwaas_driver.ini" \
 )
 pidfile="/var/run/$proj/$prog.pid"
 
index 94830d7db239c49b99587e39eda79d7bc9739f78..d31274d7fe169b23f5fe39f7a25b3bbf594618da 100644 (file)
@@ -5,4 +5,4 @@ stop on runlevel [S016]
 
 respawn
 
-exec su -s /bin/sh -c "exec /usr/bin/neutron-vpn-agent --log-file /var/log/neutron/vpn-agent.log --config-file /usr/share/neutron/neutron-dist.conf --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/vpn_agent.ini --config-file /etc/neutron/l3_agent.ini" neutron
+exec su -s /bin/sh -c "exec /usr/bin/neutron-vpn-agent --log-file /var/log/neutron/vpn-agent.log --config-file /usr/share/neutron/neutron-dist.conf --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/vpn_agent.ini --config-file /etc/neutron/l3_agent.ini --config-file /etc/neutron/fwaas_driver.ini" neutron
index 23fff013847863de4bfa36866bafd9c440be195d..02fb5b15726d0df25dfff13d45fe53b659f43231 100644 (file)
@@ -1,8 +1,8 @@
-%global release_name icehouse 
+%global release_name icehouse
 
 Name:          openstack-neutron
-Version:       2014.1
-Release:       0.9.rc1%{?dist}
+Version:       2014.1.1
+Release:       1%{?dist}
 Provides:      openstack-quantum = %{version}-%{release}
 Obsoletes:     openstack-quantum < 2013.2-0.3.b3
 
@@ -12,14 +12,9 @@ Group:               Applications/System
 License:       ASL 2.0
 URL:           http://launchpad.net/neutron/
 
-#Source0:      http://launchpad.net/neutron/%{release_name}/%{version}/+download/neutron-%{version}.rc1.tar.gz
-Source0:       http://launchpad.net/neutron/%{release_name}/%{release_name}-rc1/+download/neutron-%{version}.rc1.tar.gz
+Source0:       http://launchpad.net/neutron/%{release_name}/%{version}/+download/neutron-%{version}.tar.gz
 Source1:       neutron.logrotate
 Source2:       neutron-sudoers
-Source4:       neutron-server-setup
-Source5:       neutron-node-setup
-Source6:       neutron-dhcp-setup
-Source7:       neutron-l3-setup
 
 Source10:      neutron-server.init
 Source20:      neutron-server.upstart
@@ -50,10 +45,15 @@ Source42:   neutron-metering-agent.upstart
 
 Source90:      neutron-dist.conf
 #
-# patches_base=2014.1.rc1+1
+# patches_base=2014.1.1+1
 #
 Patch0001: 0001-use-parallel-installed-versions-in-RHEL6.patch
 Patch0002: 0002-Remove-dnsmasq-version-warning.patch
+Patch0003: 0003-remove-runtime-dependency-on-pbr.patch
+Patch0004: 0004-Sync-service-and-systemd-modules-from-oslo-incubator.patch
+Patch0005: 0005-Removed-signing_dir-from-neutron.conf.patch
+Patch0006: 0006-Remove-kernel-version-check-for-OVS-VXLAN.patch
+Patch0007: 0007-Ensure-routing-key-is-specified-in-the-address-for-a.patch
 
 BuildArch:     noarch
 
@@ -71,17 +71,10 @@ BuildRequires:      dos2unix
 BuildRequires: python-pbr
 BuildRequires: python-d2to1
 
-
 Requires:      dnsmasq-utils
 Requires:      python-neutron = %{version}-%{release}
+Requires:      python-oslo-rootwrap
 Requires:      openstack-utils
-Requires:      python-keystone
-Requires:      python-pbr
-
-# this require fixes bz#1019487 due to this patch 
-# https://review.openstack.org/#/c/61105/8/neutron/agent/linux/ovs_lib.py
-# which might need refactor to remove this dependency here
-Requires:       openstack-neutron-openvswitch
 
 Requires(post):                chkconfig
 Requires(postun):      initscripts
@@ -121,7 +114,7 @@ Requires:   python-greenlet
 Requires:      python-httplib2 >= 0.7.5
 Requires:      python-iso8601
 Requires:      python-jinja2-26
-Requires:      python-keystoneclient >= 0.6.0
+Requires:      python-keystoneclient >= 0.7.0
 Requires:      python-kombu
 Requires:      python-lxml
 Requires:      python-oslo-rootwrap
@@ -136,6 +129,7 @@ Requires:   python-neutronclient >= 2.3.4
 Requires:      python-stevedore
 Requires:      python-six >= 1.4.1
 # requires.txt six >=1.5.2 actually
+Requires:      python-novaclient >= 1:2.17.0
 Requires:      sudo
 
 %description -n python-neutron
@@ -145,7 +139,7 @@ networks.
 This package contains the neutron Python library.
 
 
-%package -n openstack-neutron-bigswitch
+%package bigswitch
 Summary:       Neutron Big Switch plugin
 Group:         Applications/System
 
@@ -155,7 +149,7 @@ Obsoletes:  openstack-quantum-bigswitch < 2013.2-0.3.b3
 Requires:      openstack-neutron = %{version}-%{release}
 
 
-%description -n openstack-neutron-bigswitch
+%description bigswitch
 Neutron provides an API to dynamically request and configure virtual
 networks.
 
@@ -164,7 +158,7 @@ networks using the FloodLight Openflow Controller or the Big Switch
 Networks Controller.
 
 
-%package -n openstack-neutron-brocade
+%package brocade
 Summary:       Neutron Brocade plugin
 Group:         Applications/System
 
@@ -174,7 +168,7 @@ Obsoletes:  openstack-quantum-brocade < 2013.2-0.3.b3
 Requires:      openstack-neutron = %{version}-%{release}
 
 
-%description -n openstack-neutron-brocade
+%description brocade
 Neutron provides an API to dynamically request and configure virtual
 networks.
 
@@ -182,7 +176,7 @@ This package contains the neutron plugin that implements virtual
 networks using Brocade VCS switches running NOS.
 
 
-%package -n openstack-neutron-cisco
+%package cisco
 Summary:       Neutron Cisco plugin
 Group:         Applications/System
 
@@ -193,7 +187,7 @@ Requires:   openstack-neutron = %{version}-%{release}
 Requires:      python-configobj
 
 
-%description -n openstack-neutron-cisco
+%description cisco
 Neutron provides an API to dynamically request and configure virtual
 networks.
 
@@ -201,7 +195,7 @@ This package contains the neutron plugin that implements virtual
 networks using Cisco UCS and Nexus.
 
 
-%package -n openstack-neutron-hyperv
+%package hyperv
 Summary:       Neutron Hyper-V plugin
 Group:         Applications/System
 
@@ -211,7 +205,7 @@ Obsoletes:  openstack-quantum-hyperv < 2013.2-0.3.b3
 Requires:      openstack-neutron = %{version}-%{release}
 
 
-%description -n openstack-neutron-hyperv
+%description hyperv
 Neutron provides an API to dynamically request and configure virtual
 networks.
 
@@ -219,14 +213,14 @@ This package contains the neutron plugin that implements virtual
 networks using Microsoft Hyper-V.
 
 
-%package -n openstack-neutron-ibm
+%package ibm
 Summary:       Neutron IBM plugin
 Group:         Applications/System
 
 Requires:      openstack-neutron = %{version}-%{release}
 
 
-%description -n openstack-neutron-ibm
+%description ibm
 Neutron provides an API to dynamically request and configure virtual
 networks.
 
@@ -234,7 +228,7 @@ This package contains the neutron plugin that implements virtual
 networks from IBM.
 
 
-%package -n openstack-neutron-linuxbridge
+%package linuxbridge
 Summary:       Neutron linuxbridge plugin
 Group:         Applications/System
 
@@ -243,10 +237,9 @@ 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
+%description linuxbridge
 Neutron provides an API to dynamically request and configure virtual
 networks.
 
@@ -254,7 +247,7 @@ This package contains the neutron plugin that implements virtual
 networks as VLANs using Linux bridging.
 
 
-%package -n openstack-neutron-midonet
+%package midonet
 Summary:       Neutron MidoNet plugin
 Group:         Applications/System
 
@@ -264,7 +257,7 @@ Obsoletes:  openstack-quantum-midonet < 2013.2-0.3.b3
 Requires:      openstack-neutron = %{version}-%{release}
 
 
-%description -n openstack-neutron-midonet
+%description midonet
 Neutron provides an API to dynamically request and configure virtual
 networks.
 
@@ -272,7 +265,7 @@ This package contains the neutron plugin that implements virtual
 networks using MidoNet from Midokura.
 
 
-%package -n openstack-neutron-ml2
+%package ml2
 Summary:       Neutron ML2 plugin
 Group:         Applications/System
 
@@ -282,7 +275,7 @@ Obsoletes:  openstack-quantum-ml2 < 2013.2-0.3.b3
 Requires:      openstack-neutron = %{version}-%{release}
 
 
-%description -n openstack-neutron-ml2
+%description ml2
 Neutron provides an API to dynamically request and configure virtual
 networks.
 
@@ -291,7 +284,7 @@ to support separately extensible sets of network types and the mechanisms
 for accessing those types.
 
 
-%package -n openstack-neutron-mellanox
+%package mellanox
 Summary:       Neutron Mellanox plugin
 Group:         Applications/System
 
@@ -301,48 +294,42 @@ Obsoletes:        openstack-quantum-mellanox < 2013.2-0.3.b3
 Requires:      openstack-neutron = %{version}-%{release}
 
 
-%description -n openstack-neutron-mellanox
+%description mellanox
 This plugin implements Neutron v2 APIs with support for Mellanox embedded
 switch functionality as part of the VPI (Ethernet/InfiniBand) HCA.
 
 
-%package -n openstack-neutron-ofagent
-Summary:       Neutron ofagent plugin from ryu project
-Group:         Applications/system
+%package nuage
+Summary:    Neutron Nuage plugin
+Group:      Applications/System
 
-Requires:      openstack-neutron = %{version}-%{release}
+Requires:   openstack-neutron = %{version}-%{release}
 
-%description -n openstack-neutron-ofagent
-This plugin implements Neutron v2 APIs with support for the ryu ofagent
-plugin.
 
+%description nuage
+This plugin implements Neutron v2 APIs with support for Nuage Networks
+Virtual Service Platform (VSP).
 
-%package -n openstack-neutron-nicira
-Summary:       Neutron Nicira plugin
-Group:         Applications/System
 
-Provides:      openstack-quantum-nicira = %{version}-%{release}
-Obsoletes:     openstack-quantum-nicira < 2013.2-0.3.b3
+%package ofagent
+Summary:       Neutron ofagent plugin from ryu project
+Group:         Applications/system
 
 Requires:      openstack-neutron = %{version}-%{release}
 
-
-%description -n openstack-neutron-nicira
-Neutron provides an API to dynamically request and configure virtual
-networks.
-
-This package contains the neutron plugin that implements virtual
-networks using Nicira NVP.
+%description ofagent
+This plugin implements Neutron v2 APIs with support for the ryu ofagent
+plugin.
 
 
-%package -n openstack-neutron-oneconvergence-nvsd
+%package oneconvergence-nvsd
 Summary:       Neutron One Convergence NVSD plugin
 Group:         Applications/System
 
 Requires:      openstack-neutron = %{version}-%{release}
 
 
-%description -n openstack-neutron-oneconvergence-nvsd
+%description oneconvergence-nvsd
 Neutron provides an API to dynamnically request and configure virtual
 networks.
 
@@ -350,7 +337,7 @@ This package contains the neutron plugin that implements virtual
 networks using One Convergence NVSD
 
 
-%package -n openstack-neutron-openvswitch
+%package openvswitch
 Summary:       Neutron openvswitch plugin
 Group:         Applications/System
 
@@ -361,7 +348,7 @@ Requires:   openstack-neutron = %{version}-%{release}
 Requires:      openvswitch
 
 
-%description -n openstack-neutron-openvswitch
+%description openvswitch
 Neutron provides an API to dynamically request and configure virtual
 networks.
 
@@ -369,7 +356,7 @@ This package contains the neutron plugin that implements virtual
 networks using Open vSwitch.
 
 
-%package -n openstack-neutron-plumgrid
+%package plumgrid
 Summary:       Neutron PLUMgrid plugin
 Group:         Applications/System
 
@@ -379,7 +366,7 @@ Obsoletes:  openstack-quantum-plumgrid < 2013.2-0.3.b3
 Requires:      openstack-neutron = %{version}-%{release}
 
 
-%description -n openstack-neutron-plumgrid
+%description plumgrid
 Neutron provides an API to dynamically request and configure virtual
 networks.
 
@@ -387,7 +374,7 @@ This package contains the neutron plugin that implements virtual
 networks using the PLUMgrid platform.
 
 
-%package -n openstack-neutron-ryu
+%package ryu
 Summary:       Neutron Ryu plugin
 Group:         Applications/System
 
@@ -397,7 +384,7 @@ Obsoletes:  openstack-quantum-ryu < 2013.2-0.3.b3
 Requires:      openstack-neutron = %{version}-%{release}
 
 
-%description -n openstack-neutron-ryu
+%description ryu
 Neutron provides an API to dynamically request and configure virtual
 networks.
 
@@ -405,7 +392,7 @@ This package contains the neutron plugin that implements virtual
 networks using the Ryu Network Operating System.
 
 
-%package -n openstack-neutron-nec
+%package nec
 Summary:       Neutron NEC plugin
 Group:         Applications/System
 
@@ -415,7 +402,7 @@ Obsoletes:  openstack-quantum-nec < 2013.2-0.3.b3
 Requires:      openstack-neutron = %{version}-%{release}
 
 
-%description -n openstack-neutron-nec
+%description nec
 Neutron provides an API to dynamically request and configure virtual
 networks.
 
@@ -423,7 +410,7 @@ This package contains the neutron plugin that implements virtual
 networks using the NEC OpenFlow controller.
 
 
-%package -n openstack-neutron-metaplugin
+%package metaplugin
 Summary:       Neutron meta plugin
 Group:         Applications/System
 
@@ -433,7 +420,7 @@ Obsoletes:  openstack-quantum-metaplugin < 2013.2-0.3.b3
 Requires:      openstack-neutron = %{version}-%{release}
 
 
-%description -n openstack-neutron-metaplugin
+%description metaplugin
 Neutron provides an API to dynamically request and configure virtual
 networks.
 
@@ -441,38 +428,38 @@ This package contains the neutron plugin that implements virtual
 networks using multiple other neutron plugins.
 
 
-%package -n openstack-neutron-vmware
+%package vmware
 Summary:       Neutron VMWare NSX support
 Group:         Applications/System
 
 Requires:      openstack-neutron = %{version}-%{release}
 Provides:      openstack-neutron-nicira = %{version}-%{release}
-Obsoletes:     openstack-neutron-nicira < 2014.1-0.5.b2
+Obsoletes:     openstack-neutron-nicira < 2014.1-4
 
-%description -n openstack-neutron-vmware
+%description vmware
 This package adds VMWare NSX support for neutron
 
 
-%package -n openstack-neutron-metering-agent
+%package metering-agent
 Summary:       Neutron bandwidth metering agent
 Group:         Applications/System
 
 Requires:      openstack-neutron = %{version}-%{release}
 
-%description -n openstack-neutron-metering-agent
+%description metering-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
+%package vpn-agent
 Summary:       Neutron VPNaaS agent
 Group:         Applications/System
 
 Requires:      openstack-neutron = %{version}-%{release}
 
-%description -n openstack-neutron-vpn-agent
+%description vpn-agent
 Neutron provides an API to implement VPN as a service
 
 This package contains the neutron agent responsible for implenting VPNaaS with
@@ -484,9 +471,22 @@ IPSec.
 
 %patch0001 -p1
 %patch0002 -p1
+%patch0003 -p1
+%patch0004 -p1
+%patch0005 -p1
+%patch0006 -p1
+%patch0007 -p1
 
 find neutron -name \*.py -exec sed -i '/\/usr\/bin\/env python/{d;q}' {} +
 
+# Ensure SOURCES.txt ends in a newline and if any patches have added files, append them to SOURCES.txt
+[ -n "$(tail -c 1 < neutron.egg-info/SOURCES.txt)" ] && echo >> neutron.egg-info/SOURCES.txt
+if ls %{_sourcedir}/*.patch >/dev/null 2>&1; then
+awk '/^new file/ {split(a,files," ");print substr(files[3],3)} {a = $0}' %{_sourcedir}/*.patch >> neutron.egg-info/SOURCES.txt
+fi
+
+sed -i 's/RPMVERSION/%{version}/; s/RPMRELEASE/%{release}/' neutron/version.py
+
 chmod 644 neutron/plugins/cisco/README
 
 # Let's handle dependencies ourseleves
@@ -530,8 +530,12 @@ mv %{buildroot}/usr/etc/neutron/rootwrap.d/*.filters %{buildroot}%{_datarootdir}
 # Move config files to proper location
 install -d -m 755 %{buildroot}%{_sysconfdir}/neutron
 mv %{buildroot}/usr/etc/neutron/* %{buildroot}%{_sysconfdir}/neutron
+mv %{buildroot}%{_sysconfdir}/neutron/api-paste.ini %{buildroot}%{_datadir}/neutron/api-paste.ini
 chmod 640  %{buildroot}%{_sysconfdir}/neutron/plugins/*/*.ini
 
+# TODO: remove this once the plugin is separately packaged
+rm %{buildroot}%{_sysconfdir}/neutron/plugins/embrane/heleos_conf.ini
+
 # Install logrotate
 install -p -D -m 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/logrotate.d/openstack-neutron
 
@@ -559,12 +563,6 @@ 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/
@@ -671,73 +669,73 @@ if [ -e %{_localstatedir}/lib/rpm-state/UPGRADE_FROM_QUANTUM ];then
 fi
 
 
-%post -n openstack-neutron-linuxbridge
+%post linuxbridge
 if [ $1 -eq 1 ] ; then
     # Initial installation
     /sbin/chkconfig --add neutron-linuxbridge-agent
 fi
 
-%preun -n openstack-neutron-linuxbridge
+%preun 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
+%postun 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
+%post openvswitch
 if [ $1 -eq 1 ] ; then
     # Initial installation
     /sbin/chkconfig --add neutron-openvswitch-agent
 fi
 
-%preun -n openstack-neutron-openvswitch
+%preun 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
+%postun 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
+%post ryu
 if [ $1 -eq 1 ] ; then
     # Initial installation
     /sbin/chkconfig --add neutron-ryu-agent
 fi
 
-%preun -n openstack-neutron-ryu
+%preun 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
+%postun ryu
 if [ $1 -ge 1 ] ; then
     # Package upgrade, not uninstall
     /sbin/service neutron-ryu-agent condrestart >/dev/null 2>&1 || :
 fi
 
 
-%post -n openstack-neutron-nec
+%post nec
 if [ $1 -eq 1 ] ; then
     # Initial installation
     /sbin/chkconfig --add neutron-nec-agent
 fi
 
-%preun -n openstack-neutron-nec
+%preun nec
 if [ $1 -eq 0 ] ; then
     # Package removal, not upgrade
     /sbin/service neutron-nec-agent stop >/dev/null 2>&1
@@ -745,7 +743,7 @@ if [ $1 -eq 0 ] ; then
 fi
 
 
-%postun -n openstack-neutron-nec
+%postun nec
 /bin/systemctl daemon-reload >/dev/null 2>&1 || :
 if [ $1 -ge 1 ] ; then
     # Package upgrade, not uninstall
@@ -753,60 +751,60 @@ if [ $1 -ge 1 ] ; then
 fi
 
 
-%post -n openstack-neutron-mellanox
+%post mellanox
 if [ $1 -eq 1 ] ; then
     # Initial installation
     /sbin/chkconfig --add neutron-mlnx-agent
 fi
 
-%preun -n openstack-neutron-mellanox
+%preun 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
+%postun mellanox
 if [ $1 -ge 1 ] ; then
     # Package upgrade, not uninstall
     /sbin/service neutron-mlnx-agent condrestart >/dev/null 2>&1 || :
 fi
 
 
-%post -n openstack-neutron-vpn-agent
+%post vpn-agent
 if [ $1 -eq 1 ] ; then
     # Initial installation
     /sbin/chkconfig --add neutron-vpn-agent
 fi
 
-%preun -n openstack-neutron-vpn-agent
+%preun vpn-agent
 if [ $1 -eq 0 ] ; then
     # Package removal, not upgrade
     /sbin/service neutron-vpn-agent stop >/dev/null 2>&1
     /sbin/chkconfig --del neutron-vpn-agent
 fi
 
-%postun -n openstack-neutron-vpn-agent
+%postun vpn-agent
 if [ $1 -ge 1 ] ; then
     # Package upgrade, not uninstall
     /sbin/service neutron-vpn-agent condrestart >/dev/null 2>&1 || :
 fi
 
 
-%post -n openstack-neutron-metering-agent
+%post metering-agent
 if [ $1 -eq 1 ] ; then
     # Initial installation
     /sbin/chkconfig --add neutron-metering-agent
 fi
 
-%preun -n openstack-neutron-metering-agent
+%preun metering-agent
 if [ $1 -eq 0 ] ; then
     # Package removal, not upgrade
     /sbin/service neutron-metering-agent stop >/dev/null 2>&1
     /sbin/chkconfig --del neutron-metering-agent
 fi
 
-%postun -n openstack-neutron-metering-agent
+%postun metering-agent
 if [ $1 -ge 1 ] ; then
     # Package upgrade, not uninstall
     /sbin/service neutron-metering-agent condrestart >/dev/null 2>&1 || :
@@ -831,18 +829,14 @@ fi
 %{_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
@@ -860,7 +854,7 @@ fi
 %dir %{_sysconfdir}/neutron
 %{_sysconfdir}/neutron/release
 %attr(-, root, neutron) %{_datadir}/neutron/neutron-dist.conf
-%config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/api-paste.ini
+%attr(-, root, neutron) %{_datadir}/neutron/api-paste.ini
 %config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/dhcp_agent.ini
 %config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/fwaas_driver.ini
 %config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/l3_agent.ini
@@ -898,6 +892,7 @@ fi
 %exclude %{python_sitelib}/neutron/plugins/midonet
 %exclude %{python_sitelib}/neutron/plugins/ml2
 %exclude %{python_sitelib}/neutron/plugins/mlnx
+%exclude %{python_sitelib}/neutron/plugins/nuage
 %exclude %{python_sitelib}/neutron/plugins/nec
 %exclude %{python_sitelib}/neutron/plugins/nicira
 %exclude %{python_sitelib}/neutron/plugins/ofagent
@@ -909,7 +904,7 @@ fi
 %{python_sitelib}/neutron-%%{version}*.egg-info
 
 
-%files -n openstack-neutron-bigswitch
+%files bigswitch
 %doc LICENSE
 %doc neutron/plugins/bigswitch/README
 %{_bindir}/neutron-restproxy-agent
@@ -919,7 +914,7 @@ fi
 %doc %{_sysconfdir}/neutron/plugins/bigswitch/README
 
 
-%files -n openstack-neutron-brocade
+%files brocade
 %doc LICENSE
 %doc neutron/plugins/brocade/README.md
 %{python_sitelib}/neutron/plugins/brocade
@@ -927,7 +922,7 @@ fi
 %config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/plugins/brocade/*.ini
 
 
-%files -n openstack-neutron-cisco
+%files cisco
 %doc LICENSE
 %doc neutron/plugins/cisco/README
 %{python_sitelib}/neutron/plugins/cisco
@@ -935,7 +930,7 @@ fi
 %config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/plugins/cisco/*.ini
 
 
-%files -n openstack-neutron-hyperv
+%files hyperv
 %doc LICENSE
 #%%doc neutron/plugins/hyperv/README
 %{_bindir}/neutron-hyperv-agent
@@ -946,7 +941,7 @@ fi
 %config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/plugins/hyperv/*.ini
 
 
-%files -n openstack-neutron-ibm
+%files ibm
 %doc LICENSE
 %{_bindir}/neutron-ibm-agent
 %{_bindir}/quantum-ibm-agent
@@ -956,7 +951,7 @@ fi
 %config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/plugins/ibm/*.ini
 
 
-%files -n openstack-neutron-linuxbridge
+%files linuxbridge
 %doc LICENSE
 %doc neutron/plugins/linuxbridge/README
 %{_bindir}/neutron-linuxbridge-agent
@@ -969,7 +964,7 @@ fi
 %config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/plugins/linuxbridge/*.ini
 
 
-%files -n openstack-neutron-midonet
+%files midonet
 %doc LICENSE
 #%%doc neutron/plugins/midonet/README
 %{python_sitelib}/neutron/plugins/midonet
@@ -977,14 +972,14 @@ fi
 %config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/plugins/midonet/*.ini
 
 
-%files -n openstack-neutron-ml2
+%files 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
+%files mellanox
 %doc neutron/plugins/mlnx/README
 %{_bindir}/neutron-mlnx-agent
 %{_bindir}/quantum-mlnx-agent
@@ -994,14 +989,19 @@ fi
 %dir %{_sysconfdir}/neutron/plugins/mlnx
 %config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/plugins/mlnx/*.ini
 
+%files nuage
+%doc LICENSE
+%{python_sitelib}/neutron/plugins/nuage
+%dir %{_sysconfdir}/neutron/plugins/nuage
+%config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/plugins/nuage/*.ini
 
-%files -n openstack-neutron-ofagent
+%files ofagent
 %doc neutron/plugins/ofagent/README
 %{_bindir}/neutron-ofagent-agent
 %{python_sitelib}/neutron/plugins/ofagent
 
 
-%files -n openstack-neutron-oneconvergence-nvsd
+%files oneconvergence-nvsd
 %doc LICENSE
 %doc neutron/plugins/oneconvergence/README
 %dir %{_sysconfdir}/neutron/plugins/oneconvergence
@@ -1011,7 +1011,7 @@ fi
 %{python_sitelib}/neutron/plugins/oneconvergence
 
 
-%files -n openstack-neutron-openvswitch
+%files openvswitch
 %doc LICENSE
 %doc neutron/plugins/openvswitch/README
 %{_bindir}/neutron-openvswitch-agent
@@ -1028,7 +1028,7 @@ fi
 %config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/plugins/openvswitch/*.ini
 
 
-%files -n openstack-neutron-plumgrid
+%files plumgrid
 %doc LICENSE
 %doc neutron/plugins/plumgrid/README
 %{python_sitelib}/neutron/plugins/plumgrid
@@ -1036,7 +1036,7 @@ fi
 %config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/plugins/plumgrid/*.ini
 
 
-%files -n openstack-neutron-ryu
+%files ryu
 %doc LICENSE
 %doc neutron/plugins/ryu/README
 %{_bindir}/neutron-ryu-agent
@@ -1049,7 +1049,7 @@ fi
 %config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/plugins/ryu/*.ini
 
 
-%files -n openstack-neutron-nec
+%files nec
 %doc LICENSE
 %doc neutron/plugins/nec/README
 %{_bindir}/neutron-nec-agent
@@ -1062,7 +1062,7 @@ fi
 %config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/plugins/nec/*.ini
 
 
-%files -n openstack-neutron-metaplugin
+%files metaplugin
 %doc LICENSE
 %doc neutron/plugins/metaplugin/README
 %{python_sitelib}/neutron/plugins/metaplugin
@@ -1070,7 +1070,7 @@ fi
 %config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/plugins/metaplugin/*.ini
 
 
-%files -n openstack-neutron-metering-agent
+%files metering-agent
 %doc LICENSE
 %config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/metering_agent.ini
 %{_initrddir}/neutron-metering-agent
@@ -1078,7 +1078,7 @@ fi
 %{_bindir}/neutron-metering-agent
 
 
-%files -n openstack-neutron-vmware
+%files vmware
 %doc LICENSE
 %{_bindir}/neutron-check-nvp-config
 %{_bindir}/quantum-check-nvp-config
@@ -1091,7 +1091,7 @@ fi
 %config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/plugins/nicira/*.ini
 
 
-%files -n openstack-neutron-vpn-agent
+%files vpn-agent
 %doc LICENSE
 %config(noreplace) %attr(0640, root, neutron) %{_sysconfdir}/neutron/vpn_agent.ini
 %{_initrddir}/neutron-vpn-agent
@@ -1101,6 +1101,90 @@ fi
 
 
 %changelog
+* Fri Jun 13 2014 Ihar Hrachyshka <ihrachys@redhat.com> 2014.1.1-1
+- Update to upstream 2014.1.1
+- Added previously missing ml2_conf_mlnx.ini, bz#1100136
+
+* Wed Jun 11 2014 Ihar Hrachyshka <ihrachys@redhat.com> 2014.1-21
+- Ensure routing key is specified in the address for a direct producer, bz#1108025
+
+* Thu May 29 2014 Miguel Ángel Ajo <majopela@redhat.com> 2014.1-20
+- Add nuage plugin packaging as openstack-neutron-nuage
+
+* Wed May 28 2014 Miguel Angel Ajo <majopela@redhat.com> 2014.1-19
+- Remove kernel version check for OVS VXLAN, not revelant for RDO
+  bz#1081011
+
+* Mon May 19 2014 Ihar Hrachyshka <ihrachys@redhat.com> 2014.1-18
+- netaddr<=0.7.10 raises ValueError instead of AddrFormatError, bz#1090137
+
+* Mon May 19 2014 Ihar Hrachyshka <ihrachys@redhat.com> 2014.1-17
+- Validate CIDR given as ip-prefix in security-group-rule-create, bz#1090137
+
+* Fri May 16 2014 Ihar Hrachyshka <ihrachys@redhat.com> 2014.1-16
+- Fixed neutron-server startup due to duplicate options
+
+* Thu May 15 2014 Ihar Hrachyshka <ihrachys@redhat.com> 2014.1-15
+- Make neutron-vpn-agent read fwaas_driver.ini, bz#1098121
+
+* Tue Apr 29 2014 Ihar Hrachyshka <ihrachys@redhat.com> 2014.1-14
+- Removed signing_dir from neutron-dist.conf, again (bz#1050842)
+
+* Wed Apr 23 2014 Ihar Hrachyshka <ihrachys@redhat.com> 2014.1-13
+- Removed obsolete setup scripts
+
+* Wed Apr 23 2014 Ihar Hrachyshka <ihrachys@redhat.com> 2014.1-12
+- Removed signing_dir from neutron.conf
+
+* Tue Apr 22 2014 Ihar Hrachyshka <ihrachys@redhat.com> 2014.1-11
+- Pin python-novaclient dependency to >= 2.17.0
+
+* Fri Apr 18 2014 Pádraig Brady <pbrady@redhat.com> - 2014.1-10
+- Remove uneeded dep on python-keystone
+
+* Fri Apr 18 2014 Ihar Hrachyshka <ihrachys@redhat.com> 2014.1-7
+- Require python-novaclient (used for Nova notifications)
+
+* Fri Apr 18 2014 Ihar Hrachyshka <ihrachys@redhat.com> 2014.1-6
+- We no longer specify notification_driver in neutron-dist.conf
+
+* Fri Apr 18 2014 Ihar Hrachyshka <ihrachys@redhat.com> 2014.1-5
+- Move api-paste.ini to /usr to make sure new values are applied on upgrade
+
+* Fri Apr 18 2014 Terry Wilson <twilson@redhat.com> - 2014.1-4
+- Rename nicira plugin to vmware
+
+* Fri Apr 18 2014 Ihar Hrachyshka <ihrachys@redhat.com> 2014.1-3
+- Clean up neutron-dist.conf to reflect identical upstream defaults
+
+* Fri Apr 18 2014 Ihar Hrachyshka <ihrachys@redhat.com> 2014.1-2
+- Set use_stderr = False to avoid duplicate logging for stderr
+
+* Fri Apr 18 2014 Ihar Hrachyshka <ihrachys@redhat.com> 2014.1-1
+- Update to upstream 2014.1
+
+* Tue Apr 15 2014 Miguel Ángel Ajo <majopela@redhat.com> -2014.1-0.19.rc2
+- Include the systemd readiness notification patch
+
+* Tue Apr 15 2014 Pádraig Brady <pbrady@redhat.com> - 2014.1-0.18.rc2
+- Add missing dependency on python-oslo-rootwrap
+
+* Fri Apr 11 2014 Miguel Angel Ajo <mangelajo@redhat.com> 2014.1-0.17.rc2
+- Update to upstream 2014.1.rc2
+
+* Fri Apr 11 2014 Miguel Ángel Ajo <majopela@redhat.com> 2014.1-0.16.rc1
+- Use rabbitmq by default
+
+* Thu Apr 10 2014 Miguel Ángel Ajo <majopela@redhat.com> 2014.1-0.15.rc1
+- Removes the python-pyudev dependency, bz#1053001
+
+* Thu Apr 10 2014 Ihar Hrachyshka <ihrachys@redhat.com> 2014.1-0.14.rc1
+- Remove signing_dir from neutron-dist.conf, bz#1050842
+
+* Fri Apr 04 2014 Pádraig Brady <pbrady@redhat.com> - 2014.1-0.13.rc1
+- Fix startup issue due to invalid group permissions, bz#1080560
+- Remove runtime dependency on python-pbr
+
 * Wed Apr 02 2014 Terry Wilson <twilson@redhat.com> 2014.1-0.9.rc1
 - Update to upstream 2014.1.rc1
 - Remove python-psutil requires