-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
-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
--- /dev/null
+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()
--- /dev/null
+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
--- /dev/null
+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.
--- /dev/null
+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',
--- /dev/null
+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
+++ /dev/null
-#!/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!"
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]
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
[service_providers]
service_provider = LOADBALANCER:Haproxy:neutron.services.loadbalancer.drivers.haproxy.plugin_driver.HaproxyOnHostPluginDriver:default
+
+++ /dev/null
-#!/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!"
+++ /dev/null
-#!/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!"
+++ /dev/null
-#!/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!"
"/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"
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
-%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
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
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
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
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
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
This package contains the neutron Python library.
-%package -n openstack-neutron-bigswitch
+%package bigswitch
Summary: Neutron Big Switch plugin
Group: Applications/System
Requires: openstack-neutron = %{version}-%{release}
-%description -n openstack-neutron-bigswitch
+%description bigswitch
Neutron provides an API to dynamically request and configure virtual
networks.
Networks Controller.
-%package -n openstack-neutron-brocade
+%package brocade
Summary: Neutron Brocade plugin
Group: Applications/System
Requires: openstack-neutron = %{version}-%{release}
-%description -n openstack-neutron-brocade
+%description brocade
Neutron provides an API to dynamically request and configure virtual
networks.
networks using Brocade VCS switches running NOS.
-%package -n openstack-neutron-cisco
+%package cisco
Summary: Neutron Cisco plugin
Group: Applications/System
Requires: python-configobj
-%description -n openstack-neutron-cisco
+%description cisco
Neutron provides an API to dynamically request and configure virtual
networks.
networks using Cisco UCS and Nexus.
-%package -n openstack-neutron-hyperv
+%package hyperv
Summary: Neutron Hyper-V plugin
Group: Applications/System
Requires: openstack-neutron = %{version}-%{release}
-%description -n openstack-neutron-hyperv
+%description hyperv
Neutron provides an API to dynamically request and configure virtual
networks.
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.
networks from IBM.
-%package -n openstack-neutron-linuxbridge
+%package linuxbridge
Summary: Neutron linuxbridge plugin
Group: Applications/System
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.
networks as VLANs using Linux bridging.
-%package -n openstack-neutron-midonet
+%package midonet
Summary: Neutron MidoNet plugin
Group: Applications/System
Requires: openstack-neutron = %{version}-%{release}
-%description -n openstack-neutron-midonet
+%description midonet
Neutron provides an API to dynamically request and configure virtual
networks.
networks using MidoNet from Midokura.
-%package -n openstack-neutron-ml2
+%package ml2
Summary: Neutron ML2 plugin
Group: Applications/System
Requires: openstack-neutron = %{version}-%{release}
-%description -n openstack-neutron-ml2
+%description ml2
Neutron provides an API to dynamically request and configure virtual
networks.
for accessing those types.
-%package -n openstack-neutron-mellanox
+%package mellanox
Summary: Neutron Mellanox plugin
Group: Applications/System
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.
networks using One Convergence NVSD
-%package -n openstack-neutron-openvswitch
+%package openvswitch
Summary: Neutron openvswitch plugin
Group: Applications/System
Requires: openvswitch
-%description -n openstack-neutron-openvswitch
+%description openvswitch
Neutron provides an API to dynamically request and configure virtual
networks.
networks using Open vSwitch.
-%package -n openstack-neutron-plumgrid
+%package plumgrid
Summary: Neutron PLUMgrid plugin
Group: Applications/System
Requires: openstack-neutron = %{version}-%{release}
-%description -n openstack-neutron-plumgrid
+%description plumgrid
Neutron provides an API to dynamically request and configure virtual
networks.
networks using the PLUMgrid platform.
-%package -n openstack-neutron-ryu
+%package ryu
Summary: Neutron Ryu plugin
Group: Applications/System
Requires: openstack-neutron = %{version}-%{release}
-%description -n openstack-neutron-ryu
+%description ryu
Neutron provides an API to dynamically request and configure virtual
networks.
networks using the Ryu Network Operating System.
-%package -n openstack-neutron-nec
+%package nec
Summary: Neutron NEC plugin
Group: Applications/System
Requires: openstack-neutron = %{version}-%{release}
-%description -n openstack-neutron-nec
+%description nec
Neutron provides an API to dynamically request and configure virtual
networks.
networks using the NEC OpenFlow controller.
-%package -n openstack-neutron-metaplugin
+%package metaplugin
Summary: Neutron meta plugin
Group: Applications/System
Requires: openstack-neutron = %{version}-%{release}
-%description -n openstack-neutron-metaplugin
+%description metaplugin
Neutron provides an API to dynamically request and configure virtual
networks.
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
%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
# 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
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/
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
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
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 || :
%{_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
%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
%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
%{python_sitelib}/neutron-%%{version}*.egg-info
-%files -n openstack-neutron-bigswitch
+%files bigswitch
%doc LICENSE
%doc neutron/plugins/bigswitch/README
%{_bindir}/neutron-restproxy-agent
%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
%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
%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
%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
%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
%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
%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
%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
%{python_sitelib}/neutron/plugins/oneconvergence
-%files -n openstack-neutron-openvswitch
+%files openvswitch
%doc LICENSE
%doc neutron/plugins/openvswitch/README
%{_bindir}/neutron-openvswitch-agent
%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
%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
%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
%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
%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
%{_bindir}/neutron-metering-agent
-%files -n openstack-neutron-vmware
+%files vmware
%doc LICENSE
%{_bindir}/neutron-check-nvp-config
%{_bindir}/quantum-check-nvp-config
%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
%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