From 30a9554653185df20feb9c71db5b3c5bd3da3092 Mon Sep 17 00:00:00 2001 From: Dmitry Burmistrov Date: Fri, 20 Jun 2014 17:50:40 +0400 Subject: [PATCH] Update RPM specs to v. 2014.1.1 --- ...parallel-installed-versions-in-RHEL6.patch | 2 +- .../0002-Remove-dnsmasq-version-warning.patch | 2 +- ...003-remove-runtime-dependency-on-pbr.patch | 31 ++ ...-systemd-modules-from-oslo-incubator.patch | 328 +++++++++++++++ ...emoved-signing_dir-from-neutron.conf.patch | 27 ++ ...e-kernel-version-check-for-OVS-VXLAN.patch | 196 +++++++++ ...ey-is-specified-in-the-address-for-a.patch | 35 ++ rpm/SOURCES/neutron-dhcp-setup | 136 ------- rpm/SOURCES/neutron-dist.conf | 5 +- rpm/SOURCES/neutron-l3-setup | 138 ------- rpm/SOURCES/neutron-node-setup | 173 -------- rpm/SOURCES/neutron-server-setup | 376 ------------------ rpm/SOURCES/neutron-vpn-agent.init | 1 + rpm/SOURCES/neutron-vpn-agent.upstart | 2 +- rpm/SPECS/openstack-neutron.spec | 338 ++++++++++------ 15 files changed, 835 insertions(+), 955 deletions(-) create mode 100644 rpm/SOURCES/0003-remove-runtime-dependency-on-pbr.patch create mode 100644 rpm/SOURCES/0004-Sync-service-and-systemd-modules-from-oslo-incubator.patch create mode 100644 rpm/SOURCES/0005-Removed-signing_dir-from-neutron.conf.patch create mode 100644 rpm/SOURCES/0006-Remove-kernel-version-check-for-OVS-VXLAN.patch create mode 100644 rpm/SOURCES/0007-Ensure-routing-key-is-specified-in-the-address-for-a.patch delete mode 100755 rpm/SOURCES/neutron-dhcp-setup delete mode 100755 rpm/SOURCES/neutron-l3-setup delete mode 100755 rpm/SOURCES/neutron-node-setup delete mode 100755 rpm/SOURCES/neutron-server-setup diff --git a/rpm/SOURCES/0001-use-parallel-installed-versions-in-RHEL6.patch b/rpm/SOURCES/0001-use-parallel-installed-versions-in-RHEL6.patch index f52a58337..0693890b3 100644 --- a/rpm/SOURCES/0001-use-parallel-installed-versions-in-RHEL6.patch +++ b/rpm/SOURCES/0001-use-parallel-installed-versions-in-RHEL6.patch @@ -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?= Date: Fri, 13 Apr 2012 17:24:40 +0100 Subject: [PATCH] use parallel installed versions in RHEL6 diff --git a/rpm/SOURCES/0002-Remove-dnsmasq-version-warning.patch b/rpm/SOURCES/0002-Remove-dnsmasq-version-warning.patch index 083a84d59..bce918008 100644 --- a/rpm/SOURCES/0002-Remove-dnsmasq-version-warning.patch +++ b/rpm/SOURCES/0002-Remove-dnsmasq-version-warning.patch @@ -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 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 index 000000000..4ce10cde8 --- /dev/null +++ b/rpm/SOURCES/0003-remove-runtime-dependency-on-pbr.patch @@ -0,0 +1,31 @@ +From 16c69ff1d86391ac97d2ed2bfc863513694655fd Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?P=C3=A1draig=20Brady?= +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 index 000000000..1387f9198 --- /dev/null +++ b/rpm/SOURCES/0004-Sync-service-and-systemd-modules-from-oslo-incubator.patch @@ -0,0 +1,328 @@ +From f0bbb2c80e84848967885599d8b57f0710d7d44c Mon Sep 17 00:00:00 2001 +From: Jakub Libosvar +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 index 000000000..69104b3f5 --- /dev/null +++ b/rpm/SOURCES/0005-Removed-signing_dir-from-neutron.conf.patch @@ -0,0 +1,27 @@ +From 1e61f12a0ccc0e4a876bbe3e3529f96a52c2f1d7 Mon Sep 17 00:00:00 2001 +From: Ihar Hrachyshka +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 index 000000000..5a91d5e95 --- /dev/null +++ b/rpm/SOURCES/0006-Remove-kernel-version-check-for-OVS-VXLAN.patch @@ -0,0 +1,196 @@ +From 6338796ad354f7e82945a52ab14914e1fc490ae3 Mon Sep 17 00:00:00 2001 +From: Miguel Angel Ajo +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 +Reviewed-by: Miguel Angel Ajo Pelayo +Reviewed-by: Ihar Hrachyshka +Tested-by: Ihar Hrachyshka +--- + 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 index 000000000..c852a866e --- /dev/null +++ b/rpm/SOURCES/0007-Ensure-routing-key-is-specified-in-the-address-for-a.patch @@ -0,0 +1,35 @@ +From 9155f7bf00bb50e4988b047e311a2e089e8b8ac9 Mon Sep 17 00:00:00 2001 +From: Russell Bryant +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 index 405576897..000000000 --- a/rpm/SOURCES/neutron-dhcp-setup +++ /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!" diff --git a/rpm/SOURCES/neutron-dist.conf b/rpm/SOURCES/neutron-dist.conf index a4a55c8fe..17882aca8 100644 --- a/rpm/SOURCES/neutron-dist.conf +++ b/rpm/SOURCES/neutron-dist.conf @@ -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 index 44cdf0ed8..000000000 --- a/rpm/SOURCES/neutron-l3-setup +++ /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 index de051ad1e..000000000 --- a/rpm/SOURCES/neutron-node-setup +++ /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 index 268c64c11..000000000 --- a/rpm/SOURCES/neutron-server-setup +++ /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 | -q - 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 | -r - 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!" diff --git a/rpm/SOURCES/neutron-vpn-agent.init b/rpm/SOURCES/neutron-vpn-agent.init index 6140ece10..feb4af521 100644 --- a/rpm/SOURCES/neutron-vpn-agent.init +++ b/rpm/SOURCES/neutron-vpn-agent.init @@ -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" diff --git a/rpm/SOURCES/neutron-vpn-agent.upstart b/rpm/SOURCES/neutron-vpn-agent.upstart index 94830d7db..d31274d7f 100644 --- a/rpm/SOURCES/neutron-vpn-agent.upstart +++ b/rpm/SOURCES/neutron-vpn-agent.upstart @@ -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 diff --git a/rpm/SPECS/openstack-neutron.spec b/rpm/SPECS/openstack-neutron.spec index 23fff0138..02fb5b157 100644 --- a/rpm/SPECS/openstack-neutron.spec +++ b/rpm/SPECS/openstack-neutron.spec @@ -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 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 2014.1-21 +- Ensure routing key is specified in the address for a direct producer, bz#1108025 + +* Thu May 29 2014 Miguel Ángel Ajo 2014.1-20 +- Add nuage plugin packaging as openstack-neutron-nuage + +* Wed May 28 2014 Miguel Angel Ajo 2014.1-19 +- Remove kernel version check for OVS VXLAN, not revelant for RDO + bz#1081011 + +* Mon May 19 2014 Ihar Hrachyshka 2014.1-18 +- netaddr<=0.7.10 raises ValueError instead of AddrFormatError, bz#1090137 + +* Mon May 19 2014 Ihar Hrachyshka 2014.1-17 +- Validate CIDR given as ip-prefix in security-group-rule-create, bz#1090137 + +* Fri May 16 2014 Ihar Hrachyshka 2014.1-16 +- Fixed neutron-server startup due to duplicate options + +* Thu May 15 2014 Ihar Hrachyshka 2014.1-15 +- Make neutron-vpn-agent read fwaas_driver.ini, bz#1098121 + +* Tue Apr 29 2014 Ihar Hrachyshka 2014.1-14 +- Removed signing_dir from neutron-dist.conf, again (bz#1050842) + +* Wed Apr 23 2014 Ihar Hrachyshka 2014.1-13 +- Removed obsolete setup scripts + +* Wed Apr 23 2014 Ihar Hrachyshka 2014.1-12 +- Removed signing_dir from neutron.conf + +* Tue Apr 22 2014 Ihar Hrachyshka 2014.1-11 +- Pin python-novaclient dependency to >= 2.17.0 + +* Fri Apr 18 2014 Pádraig Brady - 2014.1-10 +- Remove uneeded dep on python-keystone + +* Fri Apr 18 2014 Ihar Hrachyshka 2014.1-7 +- Require python-novaclient (used for Nova notifications) + +* Fri Apr 18 2014 Ihar Hrachyshka 2014.1-6 +- We no longer specify notification_driver in neutron-dist.conf + +* Fri Apr 18 2014 Ihar Hrachyshka 2014.1-5 +- Move api-paste.ini to /usr to make sure new values are applied on upgrade + +* Fri Apr 18 2014 Terry Wilson - 2014.1-4 +- Rename nicira plugin to vmware + +* Fri Apr 18 2014 Ihar Hrachyshka 2014.1-3 +- Clean up neutron-dist.conf to reflect identical upstream defaults + +* Fri Apr 18 2014 Ihar Hrachyshka 2014.1-2 +- Set use_stderr = False to avoid duplicate logging for stderr + +* Fri Apr 18 2014 Ihar Hrachyshka 2014.1-1 +- Update to upstream 2014.1 + +* Tue Apr 15 2014 Miguel Ángel Ajo -2014.1-0.19.rc2 +- Include the systemd readiness notification patch + +* Tue Apr 15 2014 Pádraig Brady - 2014.1-0.18.rc2 +- Add missing dependency on python-oslo-rootwrap + +* Fri Apr 11 2014 Miguel Angel Ajo 2014.1-0.17.rc2 +- Update to upstream 2014.1.rc2 + +* Fri Apr 11 2014 Miguel Ángel Ajo 2014.1-0.16.rc1 +- Use rabbitmq by default + +* Thu Apr 10 2014 Miguel Ángel Ajo 2014.1-0.15.rc1 +- Removes the python-pyudev dependency, bz#1053001 + +* Thu Apr 10 2014 Ihar Hrachyshka 2014.1-0.14.rc1 +- Remove signing_dir from neutron-dist.conf, bz#1050842 + +* Fri Apr 04 2014 Pádraig Brady - 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 2014.1-0.9.rc1 - Update to upstream 2014.1.rc1 - Remove python-psutil requires -- 2.32.3