File openstack-neutron.spec of Package openstack-neutron

#
# spec file for package openstack-neutron
#
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


%define component neutron
%define groupname %{component}
%define username %{component}

%if ! %{defined _rundir}
%define _rundir %{_localstatedir}/run
%endif

%define version_unconverted 7.1.3.dev23

%if 0%{?suse_version} > 1230 || 0%{?rhel} > 6
%define using_systemd 1
%else
%define using_systemd 0
%endif

Name:           openstack-neutron
Version:        7.1.3~a0~dev23
Release:        0
Summary:        OpenStack Network
License:        Apache-2.0
Group:          System/Management
Url:            https://launchpad.net/neutron
Source:         http://tarballs.openstack.org/neutron/neutron-stable-liberty.tar.gz
Source1:        openstack-%{component}.init
Source2:        %{name}.logrotate
Source3:        neutron-sudoers
Source4:        openstack-%{component}-plugin.init
Source5:        sysconfig.neutron
Source6:        openstack-%{component}-ovs-cleanup.init
%if 0%{?using_systemd}
Source10:       %name.conf
BuildRequires:  systemd
%endif
Source20:       https://raw.githubusercontent.com/SUSE-Cloud/cookbook-openstack-network/neutron-ha-tool-maintenance/files/default/neutron-ha-tool.py
Source21:       https://raw.githubusercontent.com/SUSE-Cloud/cookbook-openstack-network/neutron-ha-tool-maintenance/files/default/neutron-evacuate-lbaasv2-agent.py
Source90:       systemd-override.conf
Source99:       rpmlintrc
Patch25:        0001-sync_allocations-throws-DBDuplicatedEntry-with-postg.patch
Patch26:        0001-Allow-db-migration-for-infoblox-patched-juno-neutron.patch
# https://review.openstack.org/#/c/276301
Patch27:        0002-Improve-logging-for-port-binding.patch
Patch28:        remove-cisco-parts.patch
BuildRequires:  crudini
BuildRequires:  fdupes
BuildRequires:  openstack-suse-macros
BuildRequires:  openstack-suse-sudo
BuildRequires:  python-devel
BuildRequires:  python-pbr
# Documentation build requirements:
BuildRequires:  python-Sphinx
BuildRequires:  python-oslosphinx
BuildRequires:  python-six
Requires:       logrotate
Requires:       openstack-suse-sudo
Requires:       python >= 2.6.8
Requires:       python-neutron = %{version}
Provides:       openstack-quantum = 2013.2.0
Obsoletes:      openstack-quantum < 2013.2.0
%if 0%{?suse_version}
Requires(pre):  pwdutils
%else
Requires(pre):  /usr/bin/getent /usr/sbin/useradd /usr/sbin/userdel /usr/sbin/groupadd /usr/sbin/groupdel
%endif
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
%if 0%{?suse_version} && 0%{?suse_version} <= 1110
%{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
%py_requires
%else
BuildArch:      noarch
%endif
PreReq:         %fillup_prereq

%description
Neutron is a virtual network service for Openstack.

Just like OpenStack Nova provides an API to dynamically request and
configure virtual servers, Neutron provides an API to dynamically
request and configure virtual networks. These networks connect
"interfaces" from other OpenStack services (e.g., vNICs from Nova VMs).
The Neutron API supports extensions to provide advanced network
capabilities (e.g., QoS, ACLs, network monitoring, etc)

%package -n python-neutron
Summary:        OpenStack Network - Python module
Group:          Development/Languages/Python
Requires:       python >= 2.6.8
Requires:       python-Jinja2 >= 2.6
Requires:       python-Paste
Requires:       python-PasteDeploy >= 1.5.0
Requires:       python-Routes >= 1.12.3
Requires:       python-SQLAlchemy >= 0.9.9
# WMI is only needed on windows
#Requires:       python-WMI
Requires:       python-alembic >= 0.8.0
Requires:       python-anyjson >= 0.3.3
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-iso8601 >= 0.1.9
Requires:       python-jsonrpclib
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 >= 2.28.1
Requires:       python-oslo.concurrency >= 2.3.0
Requires:       python-oslo.config >= 2.3.0
Requires:       python-oslo.context >= 0.2.0
Requires:       python-oslo.db >= 2.4.1
Requires:       python-oslo.i18n >= 1.5.0
Requires:       python-oslo.log >= 1.8.0
Requires:       python-oslo.messaging >= 1.16.0
Requires:       python-oslo.middleware >= 2.8.0
Requires:       python-oslo.policy >= 0.5.0
Requires:       python-oslo.rootwrap >= 2.0.0
Requires:       python-oslo.serialization >= 1.4.0
Requires:       python-oslo.service >= 0.7.0
Requires:       python-oslo.utils >= 2.0.0
Requires:       python-oslo.versionedobjects >= 0.9.0
Requires:       python-pbr >= 1.6
Requires:       python-pecan >= 1.0.0
Requires:       python-psycopg2
Requires:       python-requests >= 2.5.2
Requires:       python-retrying >= 1.2.3
Requires:       python-six >= 1.9.0
Requires:       python-stevedore >= 1.5.0
Requires:       python-WebOb >= 1.2.3
Provides:       python-quantum = 2013.2.0
Obsoletes:      python-quantum < 2013.2.0

%description -n python-neutron
This package contains the core Python module of OpenStack Neutron.

%package server
Summary:        OpenStack Network - Python module
Group:          Development/Languages/Python
PreReq:         %name = %version
Requires:       python-Babel >= 1.3
Provides:       openstack-quantum-server = 2013.2.0
Obsoletes:      openstack-quantum-server < 2013.2.0
Requires:       crudini

%description server
This package provides the Neutron server

%package dhcp-agent
Summary:        OpenStack Network - DHCP Agent
Group:          Development/Languages/Python
PreReq:         %name = %version
Requires:       dnsmasq >= 2.63
%if 0%{?suse_version} >= 1310
Requires:       dnsmasq-utils
%endif
Provides:       openstack-quantum-dhcp-agent = 2013.2.0
Obsoletes:      openstack-quantum-dhcp-agent < 2013.2.0

%description dhcp-agent
This package provides the DHCP Agent.

%package hyperv-agent
Summary:        OpenStack Network - Hyper-V Agent
Group:          Development/Languages/Python
PreReq:         %name = %version
Provides:       openstack-quantum-hyperv-agent = 2013.2.0
Obsoletes:      openstack-quantum-hyperv-agent < 2013.2.0

%description hyperv-agent
This package provides the Hyper-V Agent.

%package l3-agent
Summary:        OpenStack Network Service (Neutron) - L3 Agent
Group:          Development/Languages/Python
PreReq:         %name = %version
Requires:       conntrack-tools
Provides:       openstack-quantum-l3-agent = 2013.2.0
Obsoletes:      openstack-quantum-l3-agent < 2013.2.0

%description l3-agent
This package provides the L3 Agent.

%package linuxbridge-agent
Summary:        OpenStack Network - Linux Bridge Agent
Group:          Development/Languages/Python
Provides:       openstack-neutron-agent = %version
PreReq:         %name = %version
Requires:       conntrack-tools
Requires:       ebtables
Requires:       ipset
Requires:       iptables
Provides:       openstack-quantum-linuxbridge-agent = 2013.2.0
Obsoletes:      openstack-quantum-linuxbridge-agent < 2013.2.0

%description linuxbridge-agent
This package provides the Linux Bridge Agent.

%package metadata-agent
Summary:        OpenStack Network - Meta Data Agent
Group:          Development/Languages/Python
PreReq:         %name = %version
Provides:       openstack-quantum-metadata-agent = 2013.2.0
Obsoletes:      openstack-quantum-metadata-agent < 2013.2.0

%description metadata-agent
This package provides the Meta Data Agent.

%package restproxy-agent
Summary:        OpenStack Network - REST Proxy Agent
Group:          Development/Languages/Python
PreReq:         %name = %version

%description restproxy-agent
This package provides the REST Proxy Agent.

%package metering-agent
Summary:        OpenStack Network - Metering Agent
Group:          Development/Languages/Python
PreReq:         %name = %version

%description metering-agent
This package provides the Metering Agent.

%package mlnx-agent
Summary:        OpenStack Network - Mellanox Plugin
Group:          Development/Languages/Python
PreReq:         %name = %version
Provides:       openstack-quantum-mlnx-agent = 2013.2.0
Obsoletes:      openstack-quantum-mlnx-agent < 2013.2.0

%description mlnx-agent
This package provides the Mellanox Agent

#%package ofagent-agent
#Summary:        OpenStack Network - ofagent Agent
#Group:          Development/Languages/Python
#Provides:       openstack-neutron-agent = %version
#PreReq:         %name = %version
#
#%description ofagent-agent
#This package provides the ofagent Agent.
#

%package openvswitch-agent
Summary:        OpenStack Network - Open vSwitch
Group:          Development/Languages/Python
Provides:       openstack-neutron-agent = %version
PreReq:         %name = %version
Requires:       conntrack-tools
Requires:       ipset
Requires:       iptables
Requires:       openvswitch-switch
Provides:       openstack-quantum-openvswitch-agent = 2013.2.0
Obsoletes:      openstack-quantum-openvswitch-agent < 2013.2.0

%description openvswitch-agent
This package provides the OpenVSwitch Agent.

%package nvsd-agent
Summary:        OpenStack Network - One Convergence NVSD Agent
Group:          Development/Languages/Python
PreReq:         %name = %version

%description nvsd-agent
This package provides the One Convergence NVSD Agent.

%package test
Summary:        OpenStack Network - Testsuite
Group:          Development/Languages/Python
Requires:       %{name} = %{version}
Requires:       python-cliff >= 1.14.0
Requires:       python-configobj
Requires:       python-ddt >= 0.7.0
Requires:       python-fixtures >= 1.3.1
Requires:       python-mock >= 1.2
Requires:       python-oslotest >= 1.10.0
Requires:       python-os-testr >= 0.1.0
Requires:       python-python-subunit >= 0.0.18
Requires:       python-reno >= 0.1.1
Requires:       python-requests-mock >= 0.6.0
Requires:       python-tempest-lib >= 0.8.0
Requires:       python-testrepository >= 0.0.18
Requires:       python-testresources >= 0.2.4
Requires:       python-testscenarios >= 0.4
Requires:       python-testtools >= 1.4.0
Requires:       python-WebTest >= 2.0
Provides:       openstack-quantum-test = 2013.2.0
Obsoletes:      openstack-quantum-test < 2013.2.0

%description test
The OpenStack Neutron testsuite. It is used to verify the functionality
of OpenStack Neutron.

%package ha-tool
Summary:        OpenStack Network - HA tool for L3 agent
Group:          Development/Languages/Python
Requires:       python-neutronclient >= 2.6.0
Requires:       python-retrying >= 1.2.3
Requires:       python-paramiko >= 1.13.0

%description ha-tool
This package provides a high availability tool for neutron networking that is
able to find offline l3 agents and migrate them to another online agents.

%prep
%setup -q -n %{component}-%{version_unconverted}
%patch25 -p1
%patch28
%openstack_cleanup_prep

%build
cp %{SOURCE20} %{SOURCE21} .
patch -p1 -i %{PATCH26}
patch -p1 -i %{PATCH27}
python setup.py build
python setup.py build_sphinx -b man

%install
python setup.py install --skip-build --prefix=%{_prefix} --root=%{buildroot} --install-data=/

# Some component maintain a backup copy of SOURCES.txt
rm -f %{buildroot}%{python_sitelib}/%{component}-*.egg-info/SOURCES.txt.orig

### directories
install -d -m 755 %{buildroot}%{_localstatedir}/{lib,log}/%{component}
install -d -m 750 %{buildroot}%{_localstatedir}/cache/%{component}
install -d -m 700 %{buildroot}%{_rundir}/%{component}
%if 0%{?using_systemd}
install -D -m 644 %{SOURCE10} %{buildroot}/%_tmpfilesdir/%name.conf
%endif

### configuration files
# all needed files are installed automatically
install -d -m 755 %{buildroot}%{_sysconfdir}/%{component}
install -p -D -m 644 %{SOURCE2} %{buildroot}%{_sysconfdir}/logrotate.d/%{name}

### init scripts
# neutron always installs into /etc/init.d ...
rm %{buildroot}/etc/init.d/%{component}-server
# ... but the actual %%_initddir is distro-specific!
install -p -D -m 755 %{SOURCE1} %{buildroot}%{_initddir}/openstack-%{component}
mkdir -p %{buildroot}%{_sbindir}
ln -s ../..%{_initddir}/openstack-%{component} %{buildroot}%{_sbindir}/rcopenstack-%{component}
# systemd overrides
install -D -m 644 %{SOURCE90} %{buildroot}%{_unitdir}/%{name}.service.d/custom.conf

agents=(\
     l3-agent \
     dhcp-agent \
     openvswitch-agent \
     linuxbridge-agent \
     metadata-agent \
     restproxy-agent \
     metering-agent \
     mlnx-agent \
     nvsd-agent
)
agentPaths=(
     /etc/%{component}/l3_agent.ini \
     /etc/%{component}/dhcp_agent.ini  \
     /etc/%{component}/plugins/ml2/openvswitch_agent.ini \
     /etc/%{component}/plugins/ml2/linuxbridge_agent.ini \
     /etc/%{component}/metadata_agent.ini \
     /etc/%{component}/plugins/ml2/restproxy.ini \
     /etc/%{component}/metering_agent.ini \
     /etc/%{component}/plugins/mlnx-agent.ini \
     /etc/%{component}/plugins/oneconvergence/nvsdplugin.ini
)
agentExtra=(
     /etc/%{component}/fwaas_driver.ini
)

for i in ${!agents[@]} ; do
  install -D -m 755 %{SOURCE4} %{buildroot}%{_initddir}/openstack-%{component}-${agents[$i]}
  sed -i -e "s,__NAME__,${agents[$i]},g" %{buildroot}%{_initddir}/openstack-%{component}-${agents[$i]}
  if [ ! -z ${agentPaths[$i]} ] ; then
    sed -i -e "s,__PLUGIN_CONFFILE__,${agentPaths[$i]},g" %{buildroot}%{_initddir}/openstack-%{component}-${agents[$i]}
  else
    sed -i -e "s,__PLUGIN_CONFFILE__,,g" %{buildroot}%{_initddir}/openstack-%{component}-${agents[$i]}
  fi
  sed -i -e "s,__PLUGIN_OPT_CONFFILES__,${agentExtra[$i]},g" %{buildroot}%{_initddir}/openstack-%{component}-${agents[$i]}
  ln -s ../..%{_initddir}/openstack-%{component}-${agents[$i]} %{buildroot}%{_sbindir}/rcopenstack-%{component}-${agents[$i]}
  # systemd overrides
  install -D -m 644 %{SOURCE90} %{buildroot}%{_unitdir}/%{name}-${agents[$i]}.service.d/custom.conf
done

install -D -m 755 %{SOURCE6} %{buildroot}%{_initddir}/openstack-%{component}-ovs-cleanup
ln -s ../..%{_initddir}/openstack-%{component}-ovs-cleanup %{buildroot}%{_sbindir}/rcopenstack-%{component}-ovs-cleanup

### sudoers configuration for nova-rootwrap:
install -D -m 440 %{SOURCE3} %{buildroot}%{_sysconfdir}/sudoers.d/openstack-neutron

### documentation
install -d %{buildroot}%{_mandir}/man1
install -m 644 doc/build/man/*.1 %{buildroot}%{_mandir}/man1

## SUSE configuration defaults
%define neutron_conf %{buildroot}/etc/neutron/neutron.conf
%define plugin_dir %{buildroot}/etc/neutron/plugins/
crudini --set %{neutron_conf} DEFAULT verbose True
crudini --set %{neutron_conf} DEFAULT core_plugin neutron.plugins.ml2.plugin.Ml2Plugin
crudini --set %{neutron_conf} DEFAULT service_plugins "neutron.services.l3_router.l3_router_plugin.L3RouterPlugin"
crudini --set %{neutron_conf} DEFAULT state_path /var/lib/neutron
crudini --set %{neutron_conf} agent root_helper "sudo neutron-rootwrap /etc/neutron/rootwrap.conf"
crudini --set %{neutron_conf} DEFAULT log_dir /var/log/neutron
crudini --set %{neutron_conf} oslo_concurrency lock_path /var/run/%component
crudini --set %{neutron_conf} keystone_authtoken signing_dir /var/cache/%component/keystone-signing
for i in dhcp_agent.ini l3_agent.ini ; do
  crudini --set %{buildroot}/etc/neutron/$i DEFAULT interface_driver neutron.agent.linux.interface.BridgeInterfaceDriver
done
crudini --set %{buildroot}/etc/neutron/dhcp_agent.ini DEFAULT dhcp_delete_namespaces True

crudini --set %{buildroot}/etc/neutron/l3_agent.ini DEFAULT external_network_bridge "br-ex"
crudini --set %{buildroot}/etc/neutron/l3_agent.ini DEFAULT external_network_bridge ""
crudini --set %plugin_dir/ml2/ml2_conf.ini ml2 mechanism_drivers linuxbridge
crudini --set %plugin_dir/ml2/ml2_conf.ini securitygroup firewall_driver neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
crudini --set %plugin_dir/ml2/linuxbridge_agent.ini securitygroup firewall_driver neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

### test subpackage
%openstack_test_package_install
%fdupes %{buildroot}%{_localstatedir}/lib/%{name}-test

#TODO/FIXME: there's an upstream discussion on how to install these,
# it's related to setuptools_git / MANIFEST.in issues.
for i in \
         neutron/tests/etc/api-paste.ini.test \
         ; do
    install -m 0644 -D $i %{buildroot}%{python_sitelib}/$i
done

### ha tool
install -m 755 neutron-ha-tool.py %{buildroot}%{_bindir}/neutron-ha-tool
install -m 755 neutron-evacuate-lbaasv2-agent.py %{buildroot}%{_bindir}/neutron-evacuate-lbaasv2-agent

### sysconfig

install -d -m 755 %{buildroot}/var/adm/fillup-templates
install -m 644 %{S:5} %{buildroot}/var/adm/fillup-templates

### misc
%fdupes %{buildroot}%{python_sitelib}/%{component}
%fdupes %{buildroot}%{_bindir}

### authentication cache dir
mkdir -p %{buildroot}%{_localstatedir}/cache/%{component}

%pre
%openstack_pre_user_group_create %{username} %{groupname}

%post server
%{fillup_and_insserv -f openstack-%{component}}

%preun server
%stop_on_removal openstack-%{component}

%postun server
%restart_on_update openstack-%{component}
%insserv_cleanup

%post
%{fillup_only -n neutron}

%files
%defattr(-,root,root,-)
%doc LICENSE README.rst
%config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
%config %{_sysconfdir}/sudoers.d/openstack-neutron
%dir %{_sysconfdir}/%{component}
%config(noreplace) %{_sysconfdir}/%{component}/api-paste.ini
%config %{_sysconfdir}/%{component}/policy.json
%config(noreplace) %attr(0640, root, %{groupname}) %{_sysconfdir}/%{component}/neutron.conf
%config %{_sysconfdir}/%{component}/rootwrap.conf
%dir %{_sysconfdir}/%{component}/rootwrap.d/
%dir %attr(0755, %{username}, %{groupname}) %{_localstatedir}/lib/%{component}
%dir %attr(0750, %{username}, %{groupname}) %{_localstatedir}/log/%{component}
%dir %attr(0750, %{username}, %{groupname}) %{_localstatedir}/cache/%{component}
%if 0%{?using_systemd}
%_tmpfilesdir/%name.conf
%else
%dir %attr(0700, %{username}, %{groupname}) %{_rundir}/%{component}
%endif
%dir %{_sysconfdir}/%{component}/plugins
%dir %{_sysconfdir}/%{component}/plugins/bigswitch/
%dir %{_sysconfdir}/%{component}/plugins/bigswitch/ssl/
%dir %{_sysconfdir}/%{component}/plugins/bigswitch/ssl/ca_certs/
%dir %{_sysconfdir}/%{component}/plugins/bigswitch/ssl/host_certs/
%dir %{_sysconfdir}/%{component}/plugins/brocade/
#dir %{_sysconfdir}/%{component}/plugins/hyperv/
%dir %{_sysconfdir}/%{component}/plugins/embrane/
%dir %{_sysconfdir}/%{component}/plugins/ml2/
%dir %{_sysconfdir}/%{component}/plugins/nuage/
%dir %{_sysconfdir}/%{component}/plugins/oneconvergence/
%dir %{_sysconfdir}/%{component}/plugins/opencontrail/
%{_sysconfdir}/%{component}/plugins/bigswitch/ssl/ca_certs/README
%{_sysconfdir}/%{component}/plugins/bigswitch/ssl/host_certs/README
%config(noreplace) %{_sysconfdir}/%{component}/plugins/bigswitch/restproxy.ini
%config(noreplace) %{_sysconfdir}/%{component}/plugins/brocade/brocade.ini
%config(noreplace) %{_sysconfdir}/%{component}/plugins/brocade/brocade_mlx.ini
%config(noreplace) %{_sysconfdir}/%{component}/plugins/brocade/vyatta
%config(noreplace) %{_sysconfdir}/%{component}/plugins/embrane/heleos_conf.ini
#config(noreplace) %{_sysconfdir}/%{component}/plugins/hyperv/hyperv_neutron_plugin.ini
%config(noreplace) %{_sysconfdir}/%{component}/plugins/ml2/linuxbridge_agent.ini
%config(noreplace) %{_sysconfdir}/%{component}/plugins/nuage/nuage_plugin.ini
%config(noreplace) %{_sysconfdir}/%{component}/plugins/ml2/ml2_conf.ini
%config(noreplace) %{_sysconfdir}/%{component}/plugins/ml2/ml2_conf_brocade.ini
%config(noreplace) %{_sysconfdir}/%{component}/plugins/ml2/ml2_conf_brocade_fi_ni.ini
%config(noreplace) %{_sysconfdir}/%{component}/plugins/ml2/ml2_conf_fslsdn.ini
%config(noreplace) %{_sysconfdir}/%{component}/plugins/ml2/ml2_conf_ofa.ini
%config(noreplace) %{_sysconfdir}/%{component}/plugins/ml2/ml2_conf_sriov.ini
%config(noreplace) %{_sysconfdir}/%{component}/plugins/ml2/restproxy.ini
%config(noreplace) %{_sysconfdir}/%{component}/plugins/opencontrail/contrailplugin.ini
%config(noreplace) %{_sysconfdir}/%{component}/plugins/ml2/openvswitch_agent.ini
%config(noreplace) %{_sysconfdir}/%{component}/plugins/ml2/sriov_agent.ini
%config(noreplace) %{_sysconfdir}/%{component}/plugins/ovsvapp
%config %{_sysconfdir}/%{component}/rootwrap.d/iptables-firewall.filters
%config %{_sysconfdir}/%{component}/rootwrap.d/ipset-firewall.filters
%config %{_sysconfdir}/%{component}/rootwrap.d/ebtables.filters
%config %{_sysconfdir}/%{component}/rootwrap.d/dibbler.filters
%{_bindir}/%{component}-debug
%{_bindir}/%{component}-keepalived-state-change
%{_bindir}/%{component}-netns-cleanup
%{_bindir}/%{component}-ipset-cleanup
%{_bindir}/%{component}-ns-metadata-proxy
%{_bindir}/%{component}-rootwrap
%{_bindir}/%{component}-rootwrap-daemon
%{_bindir}/%{component}-rootwrap-xen-dom0
%{_bindir}/%{component}-sanity-check
%{_bindir}/%{component}-sriov-nic-agent
%{_bindir}/%{component}-usage-audit
%{_mandir}/man1/%{component}-server.1%{?ext_man}
/var/adm/fillup-templates/sysconfig.neutron

%files dhcp-agent
%defattr(-,root,root,-)
%doc LICENSE
%{_bindir}/%{component}-dhcp-agent
%{_initddir}/openstack-%{component}-dhcp-agent
%{_sbindir}/rcopenstack-%{component}-dhcp-agent
%dir %{_unitdir}/%{name}-dhcp-agent.service.d/
%{_unitdir}/%{name}-dhcp-agent.service.d/custom.conf
%config(noreplace) %{_sysconfdir}/%{component}/dhcp_agent.ini
%config %{_sysconfdir}/%{component}/rootwrap.d/dhcp.filters

%files hyperv-agent
%defattr(-,root,root,-)
%doc LICENSE
%{_bindir}/%{component}-hyperv-agent
#dir %{_sysconfdir}/%{component}/plugins/hyperv/

%files l3-agent
%defattr(-,root,root,-)
%doc LICENSE
%{_bindir}/%{component}-l3-agent
%{_bindir}/%{component}-pd-notify
%config %{_sysconfdir}/%{component}/rootwrap.d/l3.filters
%config(noreplace) %{_sysconfdir}/%{component}/l3_agent.ini
%{_initddir}/openstack-%{component}-l3-agent
%{_sbindir}/rcopenstack-%{component}-l3-agent
%dir %{_unitdir}/%{name}-l3-agent.service.d/
%{_unitdir}/%{name}-l3-agent.service.d/custom.conf

%files metadata-agent
%defattr(-,root,root,-)
%doc LICENSE
%config(noreplace) %{_sysconfdir}/%{component}/metadata_agent.ini
%{_bindir}/%{component}-metadata-agent
%{_initddir}/openstack-%{component}-metadata-agent
%{_sbindir}/rcopenstack-%{component}-metadata-agent
%dir %{_unitdir}/%{name}-metadata-agent.service.d/
%{_unitdir}/%{name}-metadata-agent.service.d/custom.conf

%files restproxy-agent
%defattr(-,root,root,-)
%doc LICENSE
%{_bindir}/%{component}-restproxy-agent
%{_initddir}/openstack-%{component}-restproxy-agent
%{_sbindir}/rcopenstack-%{component}-restproxy-agent
%dir %{_unitdir}/%{name}-restproxy-agent.service.d/
%{_unitdir}/%{name}-restproxy-agent.service.d/custom.conf

%files metering-agent
%defattr(-,root,root,-)
%doc LICENSE
%config(noreplace) %{_sysconfdir}/%{component}/metering_agent.ini
%{_bindir}/%{component}-metering-agent
%{_initddir}/openstack-%{component}-metering-agent
%{_sbindir}/rcopenstack-%{component}-metering-agent
%dir %{_unitdir}/%{name}-metering-agent.service.d/
%{_unitdir}/%{name}-metering-agent.service.d/custom.conf

%files mlnx-agent
%defattr(-,root,root,-)
%doc LICENSE
%dir %{_sysconfdir}/%{component}/plugins/mlnx
%config(noreplace) %{_sysconfdir}/%{component}/plugins/mlnx/mlnx_conf.ini
%{_bindir}/%{component}-mlnx-agent
%{_initddir}/openstack-%{component}-mlnx-agent
%{_sbindir}/rcopenstack-%{component}-mlnx-agent
%dir %{_unitdir}/%{name}-mlnx-agent.service.d/
%{_unitdir}/%{name}-mlnx-agent.service.d/custom.conf

#files ofagent-agent
#defattr(-,root,root,-)
#doc LICENSE
#{_bindir}/%{component}-ofagent-agent
#config %{_sysconfdir}/%{component}/rootwrap.d/ofagent.filters

%files linuxbridge-agent
%defattr(-,root,root,-)
%doc LICENSE
%{_bindir}/%{component}-linuxbridge-agent
%config %{_sysconfdir}/%{component}/rootwrap.d/linuxbridge-plugin.filters
%dir %{_sysconfdir}/%{component}/plugins/ml2/
%{_initddir}/openstack-%{component}-linuxbridge-agent
%{_sbindir}/rcopenstack-%{component}-linuxbridge-agent
%dir %{_unitdir}/%{name}-linuxbridge-agent.service.d/
%{_unitdir}/%{name}-linuxbridge-agent.service.d/custom.conf

%files openvswitch-agent
%defattr(-,root,root,-)
%doc LICENSE
%dir %{_sysconfdir}/%{component}/plugins/ml2/
%{_bindir}/%{component}-openvswitch-agent
%{_bindir}/%{component}-ovs-cleanup
%{_initddir}/openstack-%{component}-ovs-cleanup
%{_sbindir}/rcopenstack-%{component}-ovs-cleanup
%config %{_sysconfdir}/%{component}/rootwrap.d/openvswitch-plugin.filters
%{_initddir}/openstack-%{component}-openvswitch-agent
%{_sbindir}/rcopenstack-%{component}-openvswitch-agent
%dir %{_unitdir}/%{name}-openvswitch-agent.service.d/
%{_unitdir}/%{name}-openvswitch-agent.service.d/custom.conf

%{_bindir}/%{component}-ovsvapp-agent

%files nvsd-agent
%defattr(-,root,root,-)
%doc LICENSE
%{_bindir}/neutron-nvsd-agent
%{_initddir}/openstack-%{component}-nvsd-agent
%{_sbindir}/rcopenstack-%{component}-nvsd-agent
%dir %{_unitdir}/%{name}-nvsd-agent.service.d/
%{_unitdir}/%{name}-nvsd-agent.service.d/custom.conf
%config(noreplace) %{_sysconfdir}/%{component}/plugins/oneconvergence/nvsdplugin.ini

%files server
%defattr(-,root,root,-)
%doc LICENSE
%{_bindir}/%{component}-server
%{_bindir}/%{component}-dev-server
%{_bindir}/%{component}-rpc-server
%{_bindir}/%{component}-db-manage
%{_initddir}/openstack-%{component}
%{_sbindir}/rcopenstack-%{component}
%dir %{_unitdir}/%{name}.service.d/
%{_unitdir}/%{name}.service.d/custom.conf

%files -n python-neutron
%defattr(-,root,root,-)
%doc LICENSE
%{python_sitelib}/%{component}/
%{python_sitelib}/%{component}-*.egg-info
# Part of test subpackage
%exclude %{python_sitelib}/%{component}/tests/

%files test
%defattr(-,root,root)
%{python_sitelib}/%{component}/tests/
%{_localstatedir}/lib/%{name}-test/
%config %{_sysconfdir}/%{component}/rootwrap.d/debug.filters

%files ha-tool
%defattr(-,root,root,-)
%{_bindir}/neutron-ha-tool
%{_bindir}/neutron-evacuate-lbaasv2-agent

%changelog
openSUSE Build Service is sponsored by