%global service neutron
Name: openstack-%{service}
-Version: 7.0.1
-Release: 1%{?dist}~mos8.0.1
+Version: 8.0.0.0b2
+Release: 1%{?dist}~mos2
Epoch: 1
Summary: OpenStack Networking Service
Source10: neutron-server.service
Source11: neutron-linuxbridge-agent.service
Source12: neutron-openvswitch-agent.service
+Source13: neutron-bgp-dragent.service
Source15: neutron-dhcp-agent.service
Source16: neutron-l3-agent.service
Source17: neutron-metadata-agent.service
Source18: neutron-ovs-cleanup.service
-Source19: neutron-mlnx-agent.service
Source20: neutron-metering-agent.service
Source21: neutron-sriov-nic-agent.service
Source22: neutron-netns-cleanup.service
Source23: neutron-netns-cleanup.init
Source24: neutron-ovs-cleanup.init
-Source28: neutron-dev-server.service
Source29: neutron-rpc-server.service
Source31: conf.README
+Source32: neutron-linuxbridge-cleanup.service
BuildArch: noarch
+BuildRequires: git
+BuildRequires: python-backports-ssl_match_hostname
BuildRequires: python2-devel
BuildRequires: python-d2to1
+BuildRequires: python-keystoneauth1 >= 2.1.0
+BuildRequires: python-keystonemiddleware
+BuildRequires: python-neutron-lib
+BuildRequires: python-novaclient
+BuildRequires: python-oslo-concurrency
+BuildRequires: python-oslo-config
+BuildRequires: python-oslo-db
+BuildRequires: python-oslo-log
+BuildRequires: python-oslo-messaging
+BuildRequires: python-oslo-policy
+BuildRequires: python-oslo-rootwrap
+BuildRequires: python-oslo-service
BuildRequires: python-pbr
BuildRequires: python-pecan
BuildRequires: python-setuptools
BuildRequires: systemd-units
-BuildRequires: git
-
Requires: openstack-%{service}-common = %{epoch}:%{version}-%{release}
# dnsmasq is not a hard requirement, but is currently the only option
Requires(preun): systemd
Requires(postun): systemd
+Obsoletes: openstack-%{service}-dev-server
+
%description
Neutron is a virtual network service for Openstack. Just like
OpenStack Nova provides an API to dynamically request and configure
%package -n python-%{service}
Summary: Neutron Python libraries
-Requires: MySQL-python
Requires: python-alembic >= 0.8.0
Requires: python-debtcollector >= 0.3.0
Requires: python-eventlet >= 0.17.4
Requires: python-greenlet >= 0.3.2
Requires: python-httplib2 >= 0.7.5
Requires: python-jinja2 >= 2.6
-Requires: python-keystoneclient >= 1:1.6.0
+Requires: python-keystoneauth1 >= 2.1.0
+Requires: python-keystoneclient >= 1.6.0
Requires: python-keystonemiddleware >= 2.0.0
Requires: python-netaddr >= 0.7.12
Requires: python-neutronclient >= 2.6.0
-Requires: python-novaclient >= 1:2.26.0
+Requires: python-neutron-lib
+Requires: python-novaclient >= 2.26.0
Requires: python-openvswitch
Requires: python-oslo-concurrency >= 2.3.0
Requires: python-oslo-config >= 2:2.1.0
Requires: python-oslo-messaging >= 1.16.0
Requires: python-oslo-middleware >= 2.4.0
Requires: python-oslo-policy >= 0.5.0
+Requires: python-oslo-reports >= 0.6.0
Requires: python-oslo-rootwrap >= 2.0.0
Requires: python-oslo-serialization >= 1.4.0
Requires: python-oslo-service >= 0.6.0
Requires: python-requests >= 2.5.2
Requires: python-retrying >= 1.2.3
Requires: python-routes >= 1.12.3
+Requires: python-ryu >= 3.23.2
Requires: python-six >= 1.9.0
-Requires: python-sqlalchemy >= 0.9.7
+Requires: python-sqlalchemy >= 1.0.10
Requires: python-stevedore >= 1.5.0
Requires: python-webob >= 1.2.3
Requires: python-unicodecsv
This package contains Neutron common files.
-%package bigswitch
-Summary: Neutron Big Switch plugin
-Requires: openstack-%{service}-common = %{epoch}:%{version}-%{release}
-
-
-%description bigswitch
-Neutron provides an API to dynamically request and configure virtual
-networks.
-
-This package contains the Neutron plugin that implements virtual
-networks using the FloodLight Openflow Controller or the Big Switch
-Networks Controller.
-
-
-%package brocade
-Summary: Neutron Brocade plugin
-Requires: openstack-%{service}-common = %{epoch}:%{version}-%{release}
-Requires: python-ncclient
-
-
-%description brocade
-Neutron provides an API to dynamically request and configure virtual
-networks.
-
-This package contains the Neutron plugin that implements virtual
-networks using Brocade VCS switches running NOS.
-
-
-%package cisco
-Summary: Neutron Cisco plugin
-Requires: openstack-%{service}-common = %{epoch}:%{version}-%{release}
-Requires: python-ncclient
-
-
-%description cisco
-Neutron provides an API to dynamically request and configure virtual
-networks.
-
-This package contains the Neutron plugin that implements virtual
-networks using Cisco UCS and Nexus.
-
-
-%package dev-server
-Summary: Neutron Server (WSGI pecan)
-Requires: openstack-%{service}-common = %{epoch}:%{version}-%{release}
-
-
-%description dev-server
-Neutron provides an API to dynamically request and configure virtual
-networks.
-
-This package contains an alternative Neutron server implementation that uses
-pecan library as its WSGI backend.
-
+%package bgp-dragent
+Summary: Neutron BGP Dynamic Routing agent
+Requires: openstack-%{service}-common = %{epoch}:%{version}-%{release}
-%package embrane
-Summary: Neutron Embrane plugin
-Requires: openstack-%{service}-common = %{epoch}:%{version}-%{release}
-
-%description embrane
+%description bgp-dragent
Neutron provides an API to dynamically request and configure virtual
networks.
-This package contains the Neutron plugin that implements virtual
-L3-L7 network services using Embrane's heleos platform.
+This package contains the Neutron BGP Dynamic Routing agent that will host
+different BGP speaking drivers and makes the required BGP peering session/s for
+Neutron.
%package linuxbridge
Summary: Neutron linuxbridge plugin
Requires: bridge-utils
+Requires: ebtables
Requires: openstack-%{service}-common = %{epoch}:%{version}-%{release}
networks as VLANs using Linux bridging.
-%package mellanox
-Summary: Neutron Mellanox plugin
-Requires: openstack-%{service}-common = %{epoch}:%{version}-%{release}
-
-
-%description mellanox
-This plugin implements Neutron v2 APIs with support for Mellanox embedded
-switch functionality as part of the VPI (Ethernet/InfiniBand) HCA.
-
-
-%package midonet
-Summary: Neutron MidoNet plugin
-Requires: openstack-%{service}-common = %{epoch}:%{version}-%{release}
-
-
-%description midonet
-Neutron provides an API to dynamically request and configure virtual
-networks.
-
-This package contains the Neutron plugin that implements virtual
-networks using MidoNet from Midokura.
-
-
%package ml2
Summary: Neutron ML2 plugin
Requires: openstack-%{service}-common = %{epoch}:%{version}-%{release}
for accessing those types.
-%package nuage
-Summary: Neutron Nuage plugin
-Requires: openstack-%{service}-common = %{epoch}:%{version}-%{release}
-
-
-%description nuage
-This plugin implements Neutron v2 APIs with support for Nuage Networks
-Virtual Service Platform (VSP).
-
-
-%package ofagent
-Summary: Neutron ofagent plugin from ryu project
-Requires: openstack-%{service}-common = %{epoch}:%{version}-%{release}
-
-
-%description ofagent
-This plugin implements Neutron v2 APIs with support for the ryu ofagent
-plugin.
-
-
-%package oneconvergence-nvsd
-Summary: Neutron One Convergence NVSD plugin
-Requires: openstack-%{service}-common = %{epoch}:%{version}-%{release}
-
-
-%description oneconvergence-nvsd
-Neutron provides an API to dynamnically request and configure virtual
-networks.
-
-This package contains the Neutron plugin that implements virtual
-networks using One Convergence NVSD
-
-
-%package opencontrail
-Summary: Neutron OpenContrail plugin
-Requires: openstack-%{service}-common = %{epoch}:%{version}-%{release}
-
-
-%description opencontrail
-This plugin implements Neutron v2 APIs with support for the OpenContrail
-plugin.
-
-
%package openvswitch
Summary: Neutron openvswitch plugin
Requires: openstack-%{service}-common = %{epoch}:%{version}-%{release}
networks using Open vSwitch.
-%package ovsvapp
-Summary: Neutron OVSvApp vSphere plugin
-Requires: openstack-%{service}-common = %{epoch}:%{version}-%{release}
-
-
-%description ovsvapp
-Neutron provides an API to dynamically request and configure virtual
-networks.
-
-This package contains the Neutron plugin that implements virtual
-networks using OVSvApp vSphere L2 agent.
-
-
%package metering-agent
Summary: Neutron bandwidth metering agent
Requires: openstack-%{service}-common = %{epoch}:%{version}-%{release}
SR-IOV network cards.
+%package macvtap-agent
+Summary: Neutron Macvtap L2 Agent
+Requires: openstack-%{service}-common = %{epoch}:%{version}-%{release}
+
+
+%description macvtap-agent
+Neutron supports macvtap ml2 driver
+
+This package contains the Neutron agent to support macvtap attachments for
+libvirt qemu/kvm instances.
+
+
%package doc
Summary: Documentation for OpenStack Neutron
Group: Documentation
# Kill egg-info in order to generate new SOURCES.txt
rm -rf neutron.egg-info
+
%build
export SKIP_PIP_INSTALL=1
%{__python2} setup.py build
+# Generate configuration files
+PYTHONPATH=. tools/generate_config_file_samples.sh
+find etc -name *.sample | while read filename
+do
+ filedir=$(dirname $filename)
+ file=$(basename $filename .sample)
+ mv ${filename} ${filedir}/${file}
+done
+
%install
-# pbr does not like dashes in version strings, neither it likes fc* prefixes (dev* is fine)
-#export PBR_VERSION=%{version}.%(echo %{release} | sed 's/%{?dist}//')
%{__python2} setup.py install -O1 --skip-build --root %{buildroot}
# Remove unused files
rm -rf %{buildroot}%{python2_sitelib}/bin
rm -rf %{buildroot}%{python2_sitelib}/doc
rm -rf %{buildroot}%{python2_sitelib}/tools
-rm %{buildroot}/usr/etc/init.d/neutron-server
# Build HTML docs
export PYTHONPATH="$( pwd ):$PYTHONPATH"
install -d -m 755 %{buildroot}%{_sysconfdir}/%{service}
mv %{buildroot}/usr/etc/%{service}/* %{buildroot}%{_sysconfdir}/%{service}
mv %{buildroot}%{_sysconfdir}/%{service}/api-paste.ini %{buildroot}%{_datadir}/%{service}/api-paste.ini
-chmod 640 %{buildroot}%{_sysconfdir}/%{service}/plugins/*/*.ini
+
+# The generated config files are not moved automatically by setup.py
+install -d -m 755 %{buildroot}%{_sysconfdir}/%{service}/plugins/ml2
+
+mv etc/%{service}.conf %{buildroot}%{_sysconfdir}/%{service}/%{service}.conf
+for agent in dhcp l3 metadata metering
+do
+ mv etc/${agent}_agent.ini %{buildroot}%{_sysconfdir}/%{service}/${agent}_agent.ini
+done
+for file in linuxbridge_agent ml2_conf ml2_conf_sriov openvswitch_agent sriov_agent
+do
+ mv etc/%{service}/plugins/ml2/${file}.ini %{buildroot}%{_sysconfdir}/%{service}/plugins/ml2/${file}.ini
+done
# Install logrotate
install -p -D -m 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/logrotate.d/openstack-%{service}
install -p -D -m 644 %{SOURCE10} %{buildroot}%{_unitdir}/neutron-server.service
install -p -D -m 644 %{SOURCE11} %{buildroot}%{_unitdir}/neutron-linuxbridge-agent.service
install -p -D -m 644 %{SOURCE12} %{buildroot}%{_unitdir}/neutron-openvswitch-agent.service
+install -p -D -m 644 %{SOURCE13} %{buildroot}%{_unitdir}/neutron-bgp-dragent.service
install -p -D -m 644 %{SOURCE15} %{buildroot}%{_unitdir}/neutron-dhcp-agent.service
install -p -D -m 644 %{SOURCE16} %{buildroot}%{_unitdir}/neutron-l3-agent.service
install -p -D -m 644 %{SOURCE17} %{buildroot}%{_unitdir}/neutron-metadata-agent.service
install -p -D -m 644 %{SOURCE18} %{buildroot}%{_unitdir}/neutron-ovs-cleanup.service
-install -p -D -m 644 %{SOURCE19} %{buildroot}%{_unitdir}/neutron-mlnx-agent.service
install -p -D -m 644 %{SOURCE20} %{buildroot}%{_unitdir}/neutron-metering-agent.service
install -p -D -m 644 %{SOURCE21} %{buildroot}%{_unitdir}/neutron-sriov-nic-agent.service
install -p -D -m 644 %{SOURCE22} %{buildroot}%{_unitdir}/neutron-netns-cleanup.service
-install -p -D -m 644 %{SOURCE28} %{buildroot}%{_unitdir}/neutron-dev-server.service
install -p -D -m 644 %{SOURCE29} %{buildroot}%{_unitdir}/neutron-rpc-server.service
+install -p -D -m 644 %{SOURCE32} %{buildroot}%{_unitdir}/neutron-linuxbridge-cleanup.service
# Install scripts for pacemaker support
# Create configuration directories for all services that can be populated by users with custom *.conf files
mkdir -p %{buildroot}/%{_sysconfdir}/%{service}/conf.d/common
-for service in server dev-server rpc-server ovs-cleanup netns-cleanup; do
+for service in server rpc-server ovs-cleanup netns-cleanup linuxbridge-cleanup bgp-dragent; do
mkdir -p %{buildroot}/%{_sysconfdir}/%{service}/conf.d/%{service}-$service
done
-for service in linuxbridge openvswitch dhcp l3 metadata mlnx metering sriov-nic; do
+for service in linuxbridge openvswitch dhcp l3 metadata metering sriov-nic; do
mkdir -p %{buildroot}/%{_sysconfdir}/%{service}/conf.d/%{service}-$service-agent
done
-# Kill hyperv agent since it's of no use for Linux
-rm %{buildroot}/%{_bindir}/neutron-hyperv-agent
-
%pre common
getent group %{service} >/dev/null || groupadd -r %{service}
%systemd_post neutron-server.service
%systemd_post neutron-netns-cleanup.service
%systemd_post neutron-ovs-cleanup.service
+%systemd_post neutron-linuxbridge-cleanup.service
%preun
%systemd_preun neutron-server.service
%systemd_preun neutron-netns-cleanup.service
%systemd_preun neutron-ovs-cleanup.service
+%systemd_preun neutron-linuxbridge-cleanup.service
%postun
%systemd_postun_with_restart neutron-server.service
+%post bgp-dragent
+%systemd_post neutron-bgp-dragent.service
+
+
+%preun bgp-dragent
+%systemd_preun neutron-bgp-dragent.service
+
+
+%postun bgp-dragent
+%systemd_postun_with_restart neutron-bgp-dragent.service
+
+
%post linuxbridge
%systemd_post neutron-linuxbridge-agent.service
oldconf=%{_sysconfdir}/%{service}/plugins/linuxbridge/linuxbridge_conf.ini
%systemd_postun_with_restart neutron-linuxbridge-agent.service
-%post mellanox
-%systemd_post neutron-mlnx-agent.service
-
-
-%preun mellanox
-%systemd_preun neutron-mlnx-agent.service
-
-
-%postun mellanox
-%systemd_postun_with_restart neutron-mlnx-agent.service
-
-
%post openvswitch
%systemd_post neutron-openvswitch-agent.service
oldconf=%{_sysconfdir}/%{service}/plugins/openvswitch/ovs_neutron_plugin.ini
%{_bindir}/neutron-ipset-cleanup
%{_bindir}/neutron-keepalived-state-change
%{_bindir}/neutron-l3-agent
+%{_bindir}/neutron-linuxbridge-cleanup
%{_bindir}/neutron-metadata-agent
%{_bindir}/neutron-netns-cleanup
%{_bindir}/neutron-ns-metadata-proxy
%{_unitdir}/neutron-server.service
%{_unitdir}/neutron-netns-cleanup.service
%{_unitdir}/neutron-ovs-cleanup.service
+%{_unitdir}/neutron-linuxbridge-cleanup.service
%attr(-, root, %{service}) %{_datadir}/%{service}/api-paste.ini
%dir %{_datadir}/%{service}/l3_agent
%dir %{_datadir}/%{service}/server
%dir %{_sysconfdir}/%{service}/conf.d/%{service}-server
%dir %{_sysconfdir}/%{service}/conf.d/%{service}-netns-cleanup
%dir %{_sysconfdir}/%{service}/conf.d/%{service}-ovs-cleanup
+%dir %{_sysconfdir}/%{service}/conf.d/%{service}-linuxbridge-cleanup
%files -n python-%{service}-tests
%{_datarootdir}/%{service}/rootwrap/l3.filters
-%files bigswitch
-%license LICENSE
-%{_bindir}/neutron-restproxy-agent
-%dir %{_sysconfdir}/%{service}/plugins/bigswitch
-%{_sysconfdir}/%{service}/plugins/bigswitch/ssl
-%config(noreplace) %attr(0640, root, %{service}) %{_sysconfdir}/%{service}/plugins/bigswitch/*.ini
-
-
-%files brocade
-%license LICENSE
-%doc %{service}/plugins/brocade/README.md
-%dir %{_sysconfdir}/%{service}/plugins/brocade
-%config(noreplace) %attr(0640, root, %{service}) %{_sysconfdir}/%{service}/plugins/brocade/*.ini
-%config(noreplace) %attr(0640, root, %{service}) %{_sysconfdir}/%{service}/plugins/brocade/vyatta/*.ini
-
-
-%files cisco
-%license LICENSE
-%dir %{_sysconfdir}/%{service}/plugins/cisco
-%config(noreplace) %attr(0640, root, %{service}) %{_sysconfdir}/%{service}/plugins/cisco/*.ini
-
-
-%files embrane
+%files bgp-dragent
%license LICENSE
-%doc %{service}/plugins/embrane/README
-%dir %{_sysconfdir}/%{service}/plugins/embrane
-%config(noreplace) %attr(0640, root, %{service}) %{_sysconfdir}/%{service}/plugins/embrane/*.ini
-
-
-%files dev-server
-%license LICENSE
-%{_bindir}/neutron-dev-server
-%{_unitdir}/neutron-dev-server.service
-%dir %{_sysconfdir}/%{service}/conf.d/%{service}-dev-server
+%{_bindir}/neutron-bgp-dragent
+%{_unitdir}/neutron-bgp-dragent.service
+%dir %{_sysconfdir}/%{service}/conf.d/%{service}-bgp-dragent
%files linuxbridge
%dir %{_sysconfdir}/%{service}/conf.d/%{service}-linuxbridge-agent
-%files mellanox
-%license LICENSE
-%doc %{service}/plugins/ml2/drivers/mlnx/README
-%{_bindir}/neutron-mlnx-agent
-%{_unitdir}/neutron-mlnx-agent.service
-%dir %{_sysconfdir}/%{service}/plugins/mlnx
-%config(noreplace) %attr(0640, root, %{service}) %{_sysconfdir}/%{service}/plugins/mlnx/*.ini
-%dir %{_sysconfdir}/%{service}/conf.d/%{service}-mlnx-agent
-
-
-%files midonet
-%license LICENSE
-#%doc %{service}/plugins/midonet/README
-%dir %{_sysconfdir}/%{service}/plugins/midonet
-%config(noreplace) %attr(0640, root, %{service}) %{_sysconfdir}/%{service}/plugins/midonet/*.ini
-
-
%files ml2
%license LICENSE
%doc %{service}/plugins/ml2/README
%exclude %{_sysconfdir}/%{service}/plugins/ml2/openvswitch_agent.ini
-%files nuage
-%license LICENSE
-%{python2_sitelib}/%{service}/plugins/nuage
-%dir %{_sysconfdir}/%{service}/plugins/nuage
-%config(noreplace) %attr(0640, root, %{service}) %{_sysconfdir}/%{service}/plugins/nuage/*.ini
-
-
-%files ofagent
-%license LICENSE
-
-
-%files oneconvergence-nvsd
-%license LICENSE
-%doc %{service}/plugins/oneconvergence/README
-%dir %{_sysconfdir}/%{service}/plugins/oneconvergence
-%config(noreplace) %attr(0640, root, %{service}) %{_sysconfdir}/%{service}/plugins/oneconvergence/*.ini
-%{_bindir}/neutron-nvsd-agent
-
-
-%files opencontrail
-%license LICENSE
-#%doc %{service}/plugins/opencontrail/README
-%dir %{_sysconfdir}/%{service}/plugins/opencontrail
-%config(noreplace) %attr(0640, root, %{service}) %{_sysconfdir}/%{service}/plugins/opencontrail/*.ini
-
-
%files openvswitch
%license LICENSE
%{_bindir}/neutron-openvswitch-agent
%dir %{_sysconfdir}/%{service}/conf.d/%{service}-openvswitch-agent
-%files ovsvapp
-%license LICENSE
-%{_bindir}/neutron-ovsvapp-agent
-# TODO: add a systemd unit file
-%dir %{_sysconfdir}/%{service}/plugins/ovsvapp
-%config(noreplace) %attr(0640, root, %{service}) %{_sysconfdir}/%{service}/plugins/ovsvapp/*.ini
-
-
%files metering-agent
%license LICENSE
%config(noreplace) %attr(0640, root, %{service}) %{_sysconfdir}/%{service}/metering_agent.ini
%dir %{_sysconfdir}/%{service}/conf.d/%{service}-sriov-nic-agent
+%files macvtap-agent
+%license LICENSE
+%{_bindir}/neutron-macvtap-agent
+
+
%files doc
%license LICENSE
%doc html
%changelog
+* Thu Feb 25 2016 Jerzy Mikolajczak <jmikolajczak@mirantis.com> 1:8.0.0.0b2-1%{?dist}~mos2
+- Update specs for Mitaka release
+- Remove vendor specific subpackages (mellanox, bigswitch, cisco, etc)
+- Add neutron-linuxbridge-cleanup service
+- Add neutron-bgp-dragent service
+- Add sample config file generation
+- Add macvtap agent
+- Add new build/run requirement: python-neutron-lib
+- Remove neutron-mlnx-agent service
+- Remove neutron-dev-server service
* Fri Dec 18 2015 Sergey Kolekonov <skolekonov@mirantis.com> 1:7.0.1-1%{?dist}~mos8.0.1
- Bump version according to the latest tag
* Tue Dec 15 2015 Jerzy Mikolajczak <jmikolajczak@mirantis.com> 1:7.0.0-1%{?dist}~mos8.0.1