File openstack-nova.spec of Package openstack-nova
#
# spec file for package openstack-nova
#
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2011 B1 Systems GmbH, Vohburg, 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 nova
%define groupname %{component}
%define username %{component}
%if ! %{defined _rundir}
%define _rundir %{_localstatedir}/run
%endif
%define version_unconverted 2015.1.3.dev3
Name: openstack-%{component}
Version: 2015.1.3~a0~dev3
Release: 0
Summary: OpenStack Compute (Nova)
License: Apache-2.0
Group: System/Management
Url: https://launchpad.net/nova
Source: http://tarballs.openstack.org/nova/nova-stable-kilo.tar.gz
Source1: %{name}.init
Source2: %{name}.logrotate
Source4: openstack-nova-manage.sh
Source6: openstack-nova-vncproxy.init
Source9: org.openstack.nova.compute.pkla
%if 0%{?suse_version} > 1230
Source10: %name.conf
BuildRequires: systemd
%endif
Source11: openstack-nova-novncproxy.init
Source12: nova-sudoers
Source13: openstack-nova-polkit.rules
Source14: openstack-nova.modules
Source15: openstack-nova.modprobe
Source99: rpmlintrc
Patch0: 0001-Fix-failure-to-attach-iscsi-volume-with-multipath.patch
# https://bugs.launchpad.net/nova/+bug/1202199
# https://review.openstack.org/#/c/37477/
Patch7: 0001-Always-set-model-netfront-for-xen-over-libvirt.patch
# https://bugzilla.suse.com/show_bug.cgi?id=927625
# https://bugs.launchpad.net/nova/+bug/1398329
# https://review.openstack.org/#/c/139025/19
Patch13: 0001-Fix-instance-filtering.patch
BuildRequires: crudini
BuildRequires: fdupes
BuildRequires: openstack-suse-macros
BuildRequires: openstack-suse-sudo
BuildRequires: python-base
BuildRequires: python-oslo.config >= 1.2.0
BuildRequires: python-oslo.i18n
BuildRequires: python-pbr >= 0.6
# Documentation requirements:
BuildRequires: python-Babel >= 1.3
BuildRequires: python-Sphinx >= 1.1.2
BuildRequires: python-WebOb
BuildRequires: python-eventlet
BuildRequires: python-oslosphinx
BuildRequires: python-oslo.concurrency
BuildRequires: python-oslo.log
BuildRequires: python-oslo.messaging
BuildRequires: python-keystoneclient
BuildRequires: python-rfc3986
%if 0%{?suse_version} > 1110
# to make orphaned-file-tests happy
BuildRequires: polkit-default-privs
Requires: polkit-default-privs
%endif
Requires: /usr/bin/truncate
Requires: euca2ools
Requires: logrotate
Requires: openstack-suse-sudo
Requires: python >= 2.6.8
Requires: python-nova = %{version}
Requires: python-oslo.config >= 1.9.3
#Requires: vblade-persist
Requires(post): sysconfig
%if 0%{?suse_version} > 1110
Requires(pre): pwdutils
%else
Requires(pre): shadow-utils
%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()")}
%else
BuildArch: noarch
%endif
Requires(pre): %insserv_prereq %fillup_prereq
%description
Nova is a cloud computing fabric controller (the main part of an IaaS
system) built to match the popular AWS EC2 and S3 APIs. It is written
in Python, using the Tornado and Twisted frameworks, and relies on the
standard AMQP messaging protocol.
%package -n python-nova
Summary: OpenStack Compute (Nova) - Python module
Group: Development/Languages/Python
Conflicts: pyxml < 0.8.5
Requires: python >= 2.6.8
Requires: python-Babel >= 1.3
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.7
Requires: python-SQLAlchemy >= 0.9.7
Requires: python-WebOb >= 1.2.3
Requires: python-boto >= 2.32.1
Requires: python-cinderclient >= 1.1.0
Requires: python-decorator >= 3.4.0
Requires: python-eventlet >= 0.16.1
Requires: python-glanceclient >= 0.15.0
Requires: python-greenlet >= 0.3.2
Requires: python-iso8601 >= 0.1.9
Requires: python-jsonschema >= 2.0.0
Requires: python-keystonemiddleware >= 1.5.0
Requires: python-lxml >= 2.3
Requires: python-netaddr >= 0.7.12
Requires: python-neutronclient >= 2.4.0
Requires: python-oslo.concurrency >= 1.8.2
Requires: python-oslo.context >= 0.2.0
Requires: python-oslo.db >= 1.7.0
Requires: python-oslo.i18n >= 1.5.0
Requires: python-oslo.log >= 1.0.0
Requires: python-oslo.messaging >= 1.8.0
Requires: python-oslo.middleware >= 1.0.0
Requires: python-oslo.rootwrap >= 1.6.0
Requires: python-oslo.serialization >= 1.4.0
Requires: python-oslo.utils >= 1.4.0
Requires: python-oslo.vmware >= 0.11.1
Requires: python-paramiko >= 1.13.0
Requires: python-pbr >= 0.6
Requires: python-psutil >= 1.1.1
Requires: python-pyasn1
Requires: python-python-memcached
Requires: python-rfc3986 >= 0.2.0
Requires: python-six >= 1.9.0
Requires: python-sqlalchemy-migrate >= 0.9.5
Requires: python-stevedore >= 1.3.0
Requires: python-websockify >= 0.6.0
%description -n python-nova
This package contains the core Python module of OpenStack Nova.
%package api
Summary: OpenStack Compute (Nova) - API
Group: System/Management
# prereq for creating the right openstack-nova user/group
PreReq: %{name} = %{version}
Requires: openstack-neutron-server
Requires: openstack-nova-conductor = %{version}
%description api
This package contains the OpenStack Nova API.
%package conductor
Summary: OpenStack Compute (Nova) - Conductor
Group: System/Management
# prereq for creating the right openstack-nova user/group
PreReq: %{name} = %{version}
Requires: python-pyasn1
%description conductor
This package contains the conductor of OpenStack Nova
%package cells
Summary: OpenStack Compute (Nova) - Cells
Group: System/Management
# prereq for creating the right openstack-nova user/group
PreReq: %{name} = %{version}
%description cells
This package contains the Cells support of OpenStack Nova
%package cert
Summary: OpenStack Compute (Nova) - Certificate Manager
Group: System/Management
# prereq for creating the right openstack-nova user/group
PreReq: %{name} = %{version}
%description cert
This package contains the certificate manager of OpenStack Nova.
%package console
Summary: Openstack Compute (Nova) - Console Access
Group: System/Management
# prereq for creating the right openstack-nova user/group
PreReq: %{name} = %{version}
%description console
This package contains the console access service for OpenStack Nova.
%package consoleauth
Summary: Openstack Compute (Nova) - Console Authentification Service
Group: System/Management
# prereq for creating the right openstack-nova user/group
PreReq: %{name} = %{version}
%description consoleauth
This package contains the console authentification service for OpenStack Nova.
%package compute
Summary: OpenStack Compute (Nova) - Compute
Group: System/Management
# prereq for creating the right openstack-nova user/group
PreReq: %{name} = %{version}
Requires: bridge-utils
%if 0%{?suse_version} >= 1315
Requires: libvirt-python >= 1.2.5
%endif
Requires: openssh
Requires: rsync
Requires: tunctl
Requires: dosfstools
%if 0%{?suse_version} < 1220
Requires(post): PolicyKit
%endif
%description compute
This package contains the compute part of OpenStack.
%package network
Summary: OpenStack Compute (Nova) - Network
Group: System/Management
# prereq for creating the right openstack-nova user/group
PreReq: %{name} = %{version}
Requires: dnsmasq
%if 0%{?suse_version} > 1230
Requires: dnsmasq-utils
%endif
Requires: iptables
%description network
This package contains the network services for OpenStack.
%package novncproxy
Summary: OpenStack Compute (Nova) - Websocket Proxy
Group: System/Management
# prereq for creating the right openstack-nova user/group
PreReq: %{name} = %{version}
Requires: novnc
%description novncproxy
This package contains the novnc-proxy service for OpenStack.
%package serialproxy
Summary: OpenStack Compute (Nova) - Serial Proxy
Group: System/Management
# prereq for creating the right openstack-nova user/group
PreReq: %{name} = %{version}
Requires: novnc
%description serialproxy
This package contains the serialproxy service for OpenStack.
%package objectstore
Summary: OpenStack Compute (Nova) - Object Store
Group: System/Management
# prereq for creating the right openstack-nova user/group
PreReq: %{name} = %{version}
%description objectstore
This package contains the objectstore service for OpenStack.
%package scheduler
Summary: OpenStack Compute (Nova) - Scheduler
Group: System/Management
# prereq for creating the right openstack-nova user/group
PreReq: %{name} = %{version}
%description scheduler
This package contains the scheduler for OpenStack.
%package vncproxy
Summary: OpenStack Compute (Nova) - VNC Proxy
Group: System/Management
# prereq for creating the right openstack-nova user/group
PreReq: %{name} = %{version}
%description vncproxy
This package contains the vnc-proxy service for OpenStack.
%package -n openstack-xen-plugins
Summary: OpenStack Compute (Nova) - XenAPI support
Group: System/Management
# prereq for creating the right openstack-nova user/group
PreReq: %{name} = %{version}
%description -n openstack-xen-plugins
This package contains the XenAPI support for OpenStack.
%package test
Summary: OpenStack Compute (Nova) - Testsuite
Group: System/Management
# prereq for creating the right openstack-nova user/group
PreReq: %{name} = %{version}
Requires: curl
Requires: openstack-xen-plugins = %{version}
Requires: python-cinderclient >= 1.1.0
%if 0%{?suse_version} && 0%{?suse_version} <= 1110
Requires: python-discover
%endif
%if 0%{?suse_version} >= 1315
Requires: libvirt-python >= 1.2.5
%endif
Requires: python-MySQL-python
Requires: python-fixtures >= 0.3.14
Requires: python-ironicclient >= 0.4.1
Requires: python-mock >= 1.0
Requires: python-oslotest >= 1.5.1
Requires: python-psycopg2
Requires: python-python-subunit >= 0.0.18
Requires: python-requests-mock >= 0.6.0
Requires: python-tempest-lib >= 0.4.0
Requires: python-testrepository >= 0.0.18
Requires: python-testtools >= 0.9.36
Requires: python-suds >= 0.4
%description test
The OpenStack Nova testsuite. It is used to verify the functionality of
OpenStack Nova and its components.
%prep
%setup -q -n %{component}-%{version_unconverted}
%patch0 -p1
%patch7 -p1
%patch13 -p1
%openstack_cleanup_prep
%build
python setup.py build
python setup.py build_sphinx -q -b man
bash tools/config/generate_sample.sh -b . -p nova -o etc/nova
%install
python setup.py install --root %{buildroot} --prefix %{_prefix}
### directories
install -d -m 755 %{buildroot}%{_localstatedir}/lib/nova
install -d -m 755 %{buildroot}%{_localstatedir}/lib/nova/images
install -d -m 755 %{buildroot}%{_localstatedir}/lib/nova/instances
install -d -m 755 %{buildroot}%{_localstatedir}/lib/nova/keys
install -d -m 755 %{buildroot}%{_localstatedir}/lib/nova/networks
install -d -m 755 %{buildroot}%{_localstatedir}/lib/nova/tmp
install -d -m 750 %{buildroot}%{_localstatedir}/log/nova
install -d -m 700 %{buildroot}%{_rundir}/nova
install -d -m 700 %{buildroot}%{_localstatedir}/cache/nova
%if 0%{?suse_version} > 1230
install -D -m 644 %{SOURCE10} %{buildroot}/%_tmpfilesdir/%name.conf
%endif
### configuration files
install -p -D -m 640 etc/nova/nova.conf.sample %{buildroot}%{_sysconfdir}/nova/nova.conf
install -p -D -m 640 etc/nova/api-paste.ini etc/nova/policy.json %{buildroot}%{_sysconfdir}/nova/
install -p -D -m 644 etc/nova/rootwrap.conf %{buildroot}%{_sysconfdir}/nova/
install -p -D -m 644 etc/nova/release.sample %{buildroot}%{_sysconfdir}/nova/release
sed -i -e "s,vendor = .*,vendor = %{distribution}," \
-e "s,product = .*,product = OpenStack Nova," \
-e "s,package = .*,package = %{version}," %{buildroot}%{_sysconfdir}/nova/release
cp -a etc/nova/rootwrap.d/ %{buildroot}%{_sysconfdir}/nova/
# bash-completion/logrotate/etc.
install -p -D -m 644 %{SOURCE4} %{buildroot}%{_sysconfdir}/bash_completion.d/openstack-nova-manage.sh
install -p -D -m 644 %{SOURCE2} %{buildroot}%{_sysconfdir}/logrotate.d/%{name}
### init scripts
mkdir -p %{buildroot}%{_sbindir}
for i in api api-metadata api-ec2 api-os-compute cert cells compute \
conductor console consoleauth \
spicehtml5proxy network objectstore scheduler serialproxy ; do
tmp=$(mktemp)
cat %{SOURCE1} | sed "s/__NAME__/$i/g" > $tmp
if [ "x$i" = "xcompute" ] ; then
sed -i -e "s/#\s+Should-Start:.*/& libvirtd/" $tmp
fi
install -D -m 755 $tmp %{buildroot}%{_initddir}/%{name}-$i
ln -s ../..%{_initddir}/%{name}-$i %{buildroot}%{_sbindir}/rc%{name}-$i
done
# patch nova-network init script:
install -p -D -m 755 %{SOURCE6} %{buildroot}%{_initddir}/openstack-nova-vncproxy
install -p -D -m 755 %{SOURCE11} %{buildroot}%{_initddir}/openstack-nova-novncproxy
mkdir -p %{buildroot}%{_sbindir}
ln -s %{_initddir}/openstack-nova-vncproxy %{buildroot}%{_sbindir}/rcopenstack-nova-vncproxy
ln -s %{_initddir}/openstack-nova-novncproxy %{buildroot}%{_sbindir}/rcopenstack-nova-novncproxy
### sudoers configuration for nova-rootwrap:
install -D -m 440 %{SOURCE12} %{buildroot}%{_sysconfdir}/sudoers.d/openstack-nova
### documentation
install -d %{buildroot}%{_mandir}/man1
install -m 644 doc/build/man/*.1 %{buildroot}%{_mandir}/man1
### test subpackage
%openstack_test_package_install
# needed by api_samples test
mkdir -p %{buildroot}%{_localstatedir}/lib/%{name}-test/doc
cp -r --preserve=timestamps doc/api_samples doc/v3 %{buildroot}%{_localstatedir}/lib/%{name}-test/doc/
mkdir -p %{buildroot}%{_localstatedir}/lib/%{name}-test/plugins/xenserver/xenapi/etc/
ln -sf /etc/xapi.d %{buildroot}%{_localstatedir}/lib/%{name}-test/plugins/xenserver/xenapi/etc/xapi.d
%fdupes %{buildroot}%{_localstatedir}/lib/%{name}-test
### Build Xen-plugins
cp -r --preserve=timestamps plugins/xenserver/xenapi/etc/ %{buildroot}
### misc
%fdupes %{buildroot}%{python_sitelib}/%{component}
%if 0%{?suse_version} > 1110 && 0%{?suse_version} < 1230
mkdir -p %{buildroot}%{_localstatedir}/lib/polkit-1/localauthority/10-vendor.d/
cp -a %{SOURCE9} %{buildroot}%{_localstatedir}/lib/polkit-1/localauthority/10-vendor.d/
%endif
%if 0%{?suse_version} >= 1230
install -D -m 644 %{SOURCE13} %{buildroot}%{_datadir}/polkit-1/rules.d/10-openstack-nova-compute.rules
install -D -m 644 %{SOURCE14} %{buildroot}%{_libexecdir}/modules-load.d/openstack-nova-compute.conf
%endif
install -D -m 644 %{SOURCE15} %{buildroot}%{_sysconfdir}/modprobe.d/openstack-nova-compute
### set default configuration (mostly applies to package-only setups and quickstart, i.e. not generally crowbar)
%define nova_conf %{buildroot}%{_sysconfdir}/nova/nova.conf
crudini --set %{nova_conf} DEFAULT verbose True
crudini --set %{nova_conf} DEFAULT log_dir /var/log/nova
crudini --set %{nova_conf} DEFAULT connection_type libvirt
crudini --set %{nova_conf} DEFAULT compute_driver libvirt.LibvirtDriver
crudini --set %{nova_conf} DEFAULT image_service nova.image.glance.GlanceImageService
crudini --set %{nova_conf} DEFAULT volume_api_class nova.volume.cinder.API
crudini --set %{nova_conf} DEFAULT auth_strategy keystone
crudini --set %{nova_conf} DEFAULT network_api_class nova.network.neutronv2.api.API
crudini --set %{nova_conf} neutron admin_username neutron
crudini --set %{nova_conf} neutron admin_password '%%SERVICE_PASSWORD%%'
crudini --set %{nova_conf} neutron admin_tenant_name '%%SERVICE_TENANT_NAME%%'
crudini --set %{nova_conf} DEFAULT bindir %{_bindir}
crudini --set %{nova_conf} DEFAULT state_path /var/lib/nova
crudini --set %{nova_conf} DEFAULT lock_path %{_rundir}/nova
crudini --set %{nova_conf} DEFAULT service_neutron_metadata_proxy True
crudini --set %{nova_conf} DEFAULT security_group_api neutron
crudini --set %{nova_conf} database connection sqlite:////var/lib/nova/nova.db
crudini --set %{nova_conf} keystone_authtoken signing_dir /var/cache/%component/keystone-signing
crudini --set %{nova_conf} keystone_authtoken admin_tenant_name '%%SERVICE_TENANT_NAME%%'
crudini --set %{nova_conf} keystone_authtoken admin_user nova
crudini --set %{nova_conf} keystone_authtoken admin_password '%%SERVICE_PASSWORD%%'
%pre
# need a fixed uid/gid for being able to use shared storage over NFS
%openstack_pre_user_group_create -u 96 -g 96 -s /bin/bash %{username} %{groupname}
%preun api
%stop_on_removal openstack-nova-api
%post api
%{fillup_and_insserv -f openstack-nova-api}
%postun api
%restart_on_update openstack-nova-api
%insserv_cleanup
%preun conductor
%stop_on_removal openstack-nova-conductor
%post conductor
%{fillup_and_insserv -f openstack-nova-conductor}
%postun conductor
%restart_on_update openstack-nova-conductor
%insserv_cleanup
%preun console
%stop_on_removal openstack-nova-console
%stop_on_removal openstack-nova-spicehtml5proxy
%post console
%{fillup_and_insserv -f openstack-nova-console}
%{fillup_and_insserv -f openstack-nova-spicehtml5proxy}
%postun console
%restart_on_update openstack-nova-console
%restart_on_update openstack-nova-spicehtml5proxy
%insserv_cleanup
%preun consoleauth
%stop_on_removal openstack-nova-consoleauth
%post consoleauth
%{fillup_and_insserv -f openstack-nova-consoleauth}
%postun consoleauth
%restart_on_update openstack-nova-consoleauth
%insserv_cleanup
%preun cells
%stop_on_removal openstack-nova-cells
%post cert
%{fillup_and_insserv -f openstack-nova-cert}
%postun cells
%restart_on_update openstack-nova-cells
%insserv_cleanup
%preun cert
%stop_on_removal openstack-nova-cert
%post compute
polkit-auth --grant org.libvirt.unix.manage --user %{username} 2>/dev/null || true
%{fillup_and_insserv -f openstack-nova-compute}
%postun cert
%restart_on_update openstack-nova-cert
%insserv_cleanup
%preun compute
%stop_on_removal openstack-nova-compute
%postun compute
%restart_on_update openstack-nova-compute
%insserv_cleanup
%post network
%{fillup_and_insserv -f openstack-nova-network}
%preun network
%stop_on_removal openstack-nova-network
%postun network
%restart_on_update openstack-nova-network
%insserv_cleanup
%post vncproxy
%{fillup_and_insserv -f openstack-nova-vncproxy}
%preun vncproxy
%stop_on_removal openstack-nova-vncproxy
%postun vncproxy
%restart_on_update openstack-nova-vncproxy
%insserv_cleanup
%post novncproxy
%{fillup_and_insserv -f openstack-nova-novncproxy}
%preun novncproxy
%stop_on_removal openstack-nova-novncproxy
%postun novncproxy
%restart_on_update openstack-nova-novncproxy
%insserv_cleanup
%post serialproxy
%{fillup_and_insserv -f openstack-nova-serialproxy}
%preun serialproxy
%stop_on_removal openstack-nova-serialproxy
%postun serialproxy
%restart_on_update openstack-nova-serialproxy
%insserv_cleanup
%post objectstore
%{fillup_and_insserv -f openstack-nova-objectstore}
%preun objectstore
%stop_on_removal openstack-nova-objectstore
%postun objectstore
%restart_on_update openstack-nova-objectstore
%insserv_cleanup
%post scheduler
%{fillup_and_insserv -f openstack-nova-scheduler}
%preun scheduler
%stop_on_removal openstack-nova-scheduler
%postun scheduler
%restart_on_update openstack-nova-scheduler
%insserv_cleanup
%files
%defattr(-,root,root,-)
%doc LICENSE README.rst
%{_sysconfdir}/bash_completion.d/openstack-nova-manage.sh
%config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
%config %{_sysconfdir}/sudoers.d/openstack-nova
%dir %{_sysconfdir}/nova
%dir %attr(0750, %{username}, %{groupname}) %{_localstatedir}/cache/nova
%config(noreplace) %attr(0640, root, %{groupname}) %{_sysconfdir}/nova/api-paste.ini
%config(noreplace) %attr(0640, root, %{groupname}) %{_sysconfdir}/nova/nova.conf
%config %attr(0640, root, %{groupname}) %{_sysconfdir}/nova/policy.json
%config %{_sysconfdir}/nova/rootwrap.conf
%config %attr(0640, root, %{groupname}) %{_sysconfdir}/nova/release
%dir %{_sysconfdir}/nova/rootwrap.d
%dir %attr(0755, %{username}, %{groupname}) %{_localstatedir}/lib/nova
%dir %attr(0750, %{username}, %{groupname}) %{_localstatedir}/log/nova
%if 0%{?suse_version} > 1230
%_tmpfilesdir/%name.conf
%else
%dir %attr(0750, %{username}, %{groupname}) %{_rundir}/%{component}
%endif
%{_bindir}/nova-all
%{_bindir}/nova-manage
%{_bindir}/nova-rootwrap
%{_bindir}/nova-idmapshift
%{_mandir}/man1/nova-all.1%{?ext_man}
%{_mandir}/man1/nova-manage.1%{?ext_man}
%{_mandir}/man1/nova-rootwrap.1%{?ext_man}
%dir %attr(0755, root, root) %{_localstatedir}/lib/nova/images
%dir %attr(0755, %{username}, root) %{_localstatedir}/lib/nova/instances
%dir %attr(0755, root, root) %{_localstatedir}/lib/nova/keys
%dir %attr(0755, root, root) %{_localstatedir}/lib/nova/networks
%dir %attr(0755, root, root) %{_localstatedir}/lib/nova/tmp
%files -n python-nova
%defattr(-,root,root,-)
%doc LICENSE
%{python_sitelib}/%{component}/
%{python_sitelib}/%{component}-*.egg-info
# Part of test subpackage
%exclude %{python_sitelib}/%{component}/tests/
%files api
%defattr(-,root,root,-)
%doc LICENSE
%config %{_sysconfdir}/nova/rootwrap.d/api-metadata.filters
%{_initddir}/%{name}-api
%{_sbindir}/rc%{name}-api
%{_initddir}/%{name}-api-metadata
%{_sbindir}/rc%{name}-api-metadata
%{_initddir}/%{name}-api-ec2
%{_sbindir}/rc%{name}-api-ec2
%{_initddir}/%{name}-api-os-compute
%{_sbindir}/rc%{name}-api-os-compute
%{_bindir}/nova-api
%{_bindir}/nova-api-ec2
%{_bindir}/nova-api-metadata
%{_bindir}/nova-api-os-compute
%{_mandir}/man1/nova-api.1%{?ext_man}
%{_mandir}/man1/nova-api-ec2.1%{?ext_man}
%{_mandir}/man1/nova-api-metadata.1%{?ext_man}
%{_mandir}/man1/nova-api-os-compute.1%{?ext_man}
%files conductor
%defattr(-,root,root,-)
%doc LICENSE
%{_initddir}/%{name}-conductor
%{_bindir}/nova-conductor
%{_mandir}/man1/nova-conductor.1%{?ext_man}
%{_sbindir}/rc%{name}-conductor
%files cells
%defattr(-,root,root,-)
%doc LICENSE
%{_bindir}/nova-cells
%{_initddir}/%{name}-cells
%{_sbindir}/rc%{name}-cells
%files cert
%defattr(-,root,root,-)
%doc LICENSE
%{_initddir}/%{name}-cert
%{_sbindir}/rc%{name}-cert
%{_bindir}/nova-cert
%{_mandir}/man1/nova-cert.1%{?ext_man}
%files compute
%defattr(-,root,root,-)
%doc LICENSE
%config %{_sysconfdir}/nova/rootwrap.d/compute.filters
%config %{_sysconfdir}/nova/rootwrap.d/baremetal-compute-ipmi.filters
%config %{_sysconfdir}/nova/rootwrap.d/baremetal-deploy-helper.filters
%{_initddir}/%{name}-compute
%{_sbindir}/rc%{name}-compute
%{_bindir}/nova-compute
%{_mandir}/man1/nova-compute.1%{?ext_man}
%if 0%{?suse_version} > 1110 && 0%{?suse_version} < 1230
%{_localstatedir}/lib/polkit-1/localauthority/10-vendor.d/org.openstack.nova.compute.pkla
%endif
%if 0%{?suse_version} >= 1230
%{_datadir}/polkit-1/rules.d/10-openstack-nova-compute.rules
%{_libexecdir}/modules-load.d/openstack-nova-compute.conf
%endif
%{_sysconfdir}/modprobe.d/openstack-nova-compute
%files console
%defattr(-,root,root,-)
%{_bindir}/nova-console
%{_initddir}/%{name}-console
%{_sbindir}/rc%{name}-console
%{_initddir}/%{name}-spicehtml5proxy
%{_sbindir}/rc%{name}-spicehtml5proxy
%{_mandir}/man1/nova-console.1%{?ext_man}
%{_bindir}/nova-spicehtml5proxy
%{_mandir}/man1/nova-spicehtml5proxy.1%{?ext_man}
%files consoleauth
%defattr(-,root,root,-)
%{_bindir}/nova-consoleauth
%{_initddir}/%{name}-consoleauth
%{_sbindir}/rc%{name}-consoleauth
%{_mandir}/man1/nova-consoleauth.1%{?ext_man}
%files network
%defattr(-,root,root,-)
%doc LICENSE
%config %{_sysconfdir}/nova/rootwrap.d/network.filters
%{_initddir}/%{name}-network
%{_sbindir}/rc%{name}-network
%{_bindir}/nova-dhcpbridge
%{_bindir}/nova-network
%{_mandir}/man1/nova-dhcpbridge.1%{?ext_man}
%{_mandir}/man1/nova-network.1%{?ext_man}
%files novncproxy
%defattr(-,root,root,-)
%doc LICENSE
%{_initddir}/%{name}-novncproxy
%{_sbindir}/rc%{name}-novncproxy
%{_bindir}/nova-novncproxy
%{_mandir}/man1/nova-novncproxy.1%{?ext_man}
%files serialproxy
%defattr(-,root,root,-)
%doc LICENSE
%{_initddir}/%{name}-serialproxy
%{_sbindir}/rc%{name}-serialproxy
%{_bindir}/nova-serialproxy
%{_mandir}/man1/nova-serialproxy.1%{?ext_man}
%files objectstore
%defattr(-,root,root,-)
%doc LICENSE
%{_initddir}/%{name}-objectstore
%{_sbindir}/rc%{name}-objectstore
%{_bindir}/nova-objectstore
%{_mandir}/man1/nova-objectstore.1%{?ext_man}
%files scheduler
%defattr(-,root,root,-)
%doc LICENSE
%{_initddir}/%{name}-scheduler
%{_sbindir}/rc%{name}-scheduler
%{_bindir}/nova-scheduler
%{_mandir}/man1/nova-scheduler.1%{?ext_man}
%files vncproxy
%defattr(-,root,root,-)
%doc LICENSE
%{_initddir}/%{name}-vncproxy
%{_sbindir}/rc%{name}-vncproxy
%{_bindir}/nova-xvpvncproxy
%{_mandir}/man1/nova-xvpvncproxy.1%{?ext_man}
%files -n openstack-xen-plugins
%defattr(-,root,root,-)
%doc LICENSE
%dir %{_sysconfdir}/xapi.d
%dir %{_sysconfdir}/xapi.d/plugins/
%{_sysconfdir}/xapi.d/plugins/*
%files test
%defattr(-,root,root)
%{python_sitelib}/%{component}/tests/
%{_localstatedir}/lib/%{name}-test/
%changelog