File openstack-nova.spec of Package openstack-nova

#
# spec file for package openstack-nova
#
# Copyright (c) 2013 SUSE LINUX Products 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 openstack-%{component}
%define username openstack-%{component}

Name:           openstack-%{component}
Version:        2013.2.rc2+git.1381578518.3c373ac
Release:        0
Summary:        OpenStack Compute (Nova)
License:        Apache-2.0
Group:          System/Management
Url:            https://launchpad.net/nova
Source:         nova-2013.2.tar.gz
Source1:        %{name}.init
Source2:        %{name}.logrotate
Source4:        openstack-nova-manage.sh
Source6:        openstack-nova-vncproxy.init
Source8:        openstack-nova-network-init-bnc777488.patch
Source9:        org.openstack.nova.compute.pkla
Source10:       openstack-nova-novncproxy.init
Source12:       nova-sudoers
Source13:       openstack-nova-polkit.rules
#TODO/FIXME(saschpe,dirk): I think we want to get rid of this again and only use openstack-utils:
# our SUSE defaults - mostly set stuff to Quantum
Patch1:         nova-conf-defaults.patch
# PATCH-FIX-SLES TODO --
Patch2:         nova-network-filter-bnc777488.patch
# PATCH-FIX-SLES rhafer@suse.com --
# This adds support for using /dev/rdb? devices for ceph volumes.  It's need
# because our qemu and libvirt don't have librados support yet. (Not sure yet if
# this is worth upstreaming, we would at least have to make in configurable)
Patch3:         nova-rbd-use-local-devices.patch
# https://bugs.launchpad.net/nova/+bug/1202199
# https://review.openstack.org/#/c/37477/
Patch7:         0001-Alwas-set-model-netfront-for-xen-over-libvirt.patch
Patch8:         unlock-six.diff
BuildRequires:  crudini
BuildRequires:  fdupes
BuildRequires:  openstack-suse-macros
BuildRequires:  openstack-suse-sudo
BuildRequires:  python-base
BuildRequires:  python-d2to1
BuildRequires:  python-distribute
BuildRequires:  python-oslo.config
BuildRequires:  python-oslo.sphinx
BuildRequires:  python-pbr
# Documentation requirements:
BuildRequires:  python-Sphinx
%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.2.0a3
#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 >= 0.9.6
Requires:       python-Jinja2
Requires:       python-Paste
Requires:       python-PasteDeploy >= 1.5.0
Requires:       python-Routes >= 1.12.3
Requires:       python-SQLAlchemy >= 0.7.8
Requires:       python-SQLAlchemy >= 0.7.8
Requires:       python-WebOb >= 1.2.3
Requires:       python-amqplib >= 0.6.1
Requires:       python-anyjson >= 0.3.3
Requires:       python-argparse
Requires:       python-boto >= 2.4.0
Requires:       python-cinderclient >= 1.0.5
Requires:       python-d2to1 >= 0.2.10
Requires:       python-eventlet >= 0.13.0
Requires:       python-glanceclient >= 0.9.0
Requires:       python-greenlet >= 0.3.2
Requires:       python-iso8601 >= 0.1.4
Requires:       python-jsonschema >= 1.3.0
Requires:       python-keystoneclient >= 0.3.2
Requires:       python-kombu >= 2.4.8
Requires:       python-lxml >= 2.3
Requires:       python-netaddr >= 0.7.6
Requires:       python-neutronclient >= 2.3.0
Requires:       python-paramiko >= 1.8.0
Requires:       python-pbr >= 0.5.21
Requires:       python-pyasn1
Requires:       python-six
Requires:       python-sqlalchemy-migrate >= 0.7.2
Requires:       python-stevedore >= 0.10
Requires:       python-suds >= 0.4
Requires:       python-websockify >= 0.5.1

%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
Requires:       %{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
Requires:       %{name} = %{version}

%description cells
This package contains the Cells support of OpenStack Nova


%package cert
Summary:        OpenStack Compute (Nova) - Certificate Manager
Group:          System/Management
Requires:       %{name} = %{version}

%description cert
This package contains the certificate manager of OpenStack Nova.

%package console
Summary:        Openstack Compute (Nova) - Console Access
Group:          System/Management
Requires:       %{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
Requires:       %{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
Requires:       libvirt >= 0.8.1
Requires:       libvirt-python >= 0.8.1
Requires:       openssh
Requires:       rsync
Requires:       tunctl
%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
Requires:       %{name} = %{version}
Requires:       dnsmasq
Requires:       iptables

%description network
This package contains the network services for OpenStack.

%package novncproxy
Summary:        OpenStack Compute (Nova) - Websocket Proxy
Group:          System/Management
Requires:       %{name} = %{version}
Requires:       novnc

%description novncproxy
This package contains the novnc-proxy service for OpenStack.

%package objectstore
Summary:        OpenStack Compute (Nova) - Object Store
Group:          System/Management
Requires:       %{name} = %{version}

%description objectstore
This package contains the objectstore service for OpenStack.

%package scheduler
Summary:        OpenStack Compute (Nova) - Scheduler
Group:          System/Management
Requires:       %{name} = %{version}

%description scheduler
This package contains the scheduler for OpenStack.

%package vncproxy
Summary:        OpenStack Compute (Nova) - VNC Proxy
Group:          System/Management
Requires:       %{name} = %{version}

%description vncproxy
This package contains the vnc-proxy service for OpenStack.

%package test
Summary:        OpenStack Compute (Nova) - Testsuite
Group:          System/Management
Requires:       %{name} = %{version}
Requires:       curl
Requires:       python-cinderclient >= 1.0.5
Requires:       python-coverage >= 3.6
%if 0%{?suse_version} && 0%{?suse_version} <= 1110
Requires:       python-discover
%endif
Requires:       python-feedparser
Requires:       python-fixtures >= 0.3.14
Requires:       python-flake8 >= 2.0
Requires:       python-hacking >= 0.5.6
Requires:       python-mox >= 0.5.3
Requires:       python-pep8 >= 1.4.5
Requires:       python-psycopg2
Requires:       python-pyflakes >= 0.7.2
Requires:       python-python-subunit
Requires:       python-testrepository >= 0.0.17
Requires:       python-testtools >= 0.9.32

%description test
The OpenStack Nova testsuite. It is used to verify the functionality of
OpenStack Nova and its components.

%prep
%setup -q -n nova-2013.2
%patch1 -p1
%patch2 -p1
%patch7 -p1
%patch8
# nova-volume code has been removed upstream in git commit 7e2b93acc59dea81d52684f7f659fcff32507e14
# TODO
#patch3 -p1
%openstack_cleanup_prep

%build
python setup.py build
python setup.py build_sphinx -b man

%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 755 %{buildroot}%{_localstatedir}/lock/nova
install -d -m 755 %{buildroot}%{_localstatedir}/log/nova
install -d -m 755 %{buildroot}%{_localstatedir}/run/nova

### configuration files
install -p -D -m 600 etc/nova/nova.conf.sample %{buildroot}%{_sysconfdir}/nova/nova.conf
install -p -D -m 600 etc/nova/api-paste.ini etc/nova/policy.json %{buildroot}%{_sysconfdir}/nova/
install -p -D -m 644 etc/nova/rootwrap.conf %{buildroot}%{_sysconfdir}/nova/
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 cert cells compute conductor console consoleauth spicehtml5proxy network objectstore rpc-zmq-receiver scheduler ; 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:
( cd %{buildroot}%{_initddir}/ ; patch -p0 < %{S:8} )
install -p -D -m 755 %{SOURCE6} %{buildroot}%{_initddir}/openstack-nova-vncproxy
install -p -D -m 755 %{SOURCE10} %{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/
%fdupes %{buildroot}%{_localstatedir}/lib/%{name}-test

### 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
%endif

### 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_file nova.log
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} DEFAULT neutron_admin_username neutron
crudini --set %{nova_conf} DEFAULT neutron_admin_password '%%SERVICE_PASSWORD%%'
crudini --set %{nova_conf} DEFAULT neutron_admin_tenant_name '%%SERVICE_TENANT_NAME%%'
crudini --set %{nova_conf} DEFAULT libvirt_vif_driver nova.virt.libvirt.vif.LibvirtBridgeDriver
crudini --set %{nova_conf} DEFAULT state_path /var/lib/nova
crudini --set %{nova_conf} DEFAULT lock_path %{_localstatedir}/lock/nova
crudini --set %{nova_conf} DEFAULT service_neutron_metadata_proxy True
crudini --set %{nova_conf} DEFAULT security_group_api neutron
#NOTE(saschpe): Do we want to use sqlite per default or demand PostgreSQL right away?
crudini --set %{nova_conf} sql connection sqlite:////var/lib/nova/nova.db

### authentication cache dir
mkdir -p %{buildroot}%{_localstatedir}/cache/nova/api
sed -s "s,\(signing_dir =\).*,\1 /var/cache/glance/api," %{buildroot}%{_sysconfdir}/nova/api-paste.ini

%pre
# need a fixed uid/gid for being able to use shared storage over NFS
getent group %{groupname} >/dev/null || groupadd -g 96 %{groupname}
getent passwd %{username} >/dev/null || \
useradd -M -u 96 -s /bin/bash -g %{groupname} -d %{_localstatedir}/lib/nova -c "OpenStack Nova Daemons" %{username}
exit 0

%post
%{fillup_and_insserv -f openstack-nova-rpc-zmq-receiver}

%preun
%stop_on_removal openstack-nova-rpc-zmq-receiver

%postun
%restart_on_update openstack-nova-rpc-zmq-receiver
%insserv_cleanup

%post api
%{fillup_and_insserv -f openstack-nova-api}

%preun api
%stop_on_removal openstack-nova-api

%postun api
%restart_on_update openstack-nova-api
%insserv_cleanup

%preun conductor
%stop_on_removal 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

%postun console
%restart_on_update openstack-nova-console
%restart_on_update openstack-nova-spicehtml5proxy
%insserv_cleanup

%post console
%{fillup_and_insserv -f openstack-nova-console}
%{fillup_and_insserv -f openstack-nova-spicehtml5proxy}

%preun consoleauth
%stop_on_removal openstack-nova-consoleauth

%postun consoleauth
%restart_on_update openstack-nova-consoleauth
%insserv_cleanup

%post consoleauth
%{fillup_and_insserv -f openstack-nova-consoleauth}

%preun cells
%stop_on_removal openstack-nova-cells

%postun cells
%restart_on_update openstack-nova-cells
%insserv_cleanup

%post cert
%{fillup_and_insserv -f openstack-nova-cert}

%preun cert
%stop_on_removal openstack-nova-cert

%postun cert
%restart_on_update openstack-nova-cert
%insserv_cleanup

%post compute
polkit-auth --grant org.libvirt.unix.manage --user %{username} 2>/dev/null || true
%{fillup_and_insserv -f openstack-nova-compute}

%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 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(0755, %{username}, %{username}) %{_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
%dir %{_sysconfdir}/nova/rootwrap.d
%dir %attr(0755, %{username}, root) %{_localstatedir}/lib/nova
%dir %attr(0755, %{username}, %{groupname}) %{_localstatedir}/log/nova
%ghost %attr(0755, %{username}, root) %{_localstatedir}/lock/nova
%ghost %dir %attr(0755, %{username}, root) %{_localstatedir}/run/nova
%{_bindir}/nova-all
%{_bindir}/nova-clear-rabbit-queues
%{_bindir}/nova-manage
%{_bindir}/nova-rootwrap
%{_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

# FIXME: which package should these go in?
%{_initddir}/%{name}-rpc-zmq-receiver
%{_sbindir}/rc%{name}-rpc-zmq-receiver
%{_bindir}/nova-rpc-zmq-receiver
%{_mandir}/man1/nova-rpc-zmq-receiver.1%{?ext_man}

%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
%{_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/docker.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
%{_bindir}/nova-baremetal-manage
%{_bindir}/nova-baremetal-deploy-helper
%{_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
%endif

%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 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 test
%defattr(-,root,root)
%{python_sitelib}/%{component}/tests/
%{_localstatedir}/lib/%{name}-test/

%changelog
openSUSE Build Service is sponsored by