update to 23.0.1

This commit is contained in:
liksh 2021-07-23 16:30:03 +08:00
parent 2ab5e7f92f
commit 2e31275e12
2 changed files with 196 additions and 70 deletions

View File

@ -1,19 +1,33 @@
%{!?upstream_version: %global upstream_version %{version}%{?milestone}} %{!?upstream_version: %global upstream_version %{version}%{?milestone}}
%global with_doc 0 %global with_doc 0
%global distro openEuler
%global qemu_version 3.1.0 %global qemu_version 3.1.0
%global libvirt_version 5.0.0 %global libvirt_version 5.0.0
%global common_desc \
OpenStack Compute (codename Nova) is open source software designed to \
provision and manage large networks of virtual machines, creating a \
redundant and scalable cloud computing platform. It gives you the \
software, control panels, and APIs required to orchestrate a cloud, \
including running instances, managing networks, and controlling access \
through users and projects. OpenStack Compute strives to be both \
hardware and hypervisor agnostic, currently supporting a variety of \
standard hardware configurations and seven major hypervisors.
Name: openstack-nova Name: openstack-nova
Epoch: 1 # Liberty semver reset
Version: 22.0.0 # https://review.openstack.org/#/q/I6a35fa0dda798fad93b804d00a46af80f08d475c,n,z
Release: 2%{?dist} Version: 23.0.1
Release: 1
Summary: OpenStack Compute (nova) Summary: OpenStack Compute (nova)
License: Apache-2.0
License: ASL 2.0
URL: http://openstack.org/projects/compute/ URL: http://openstack.org/projects/compute/
Source0: https://tarballs.openstack.org/nova/nova-%{upstream_version}.tar.gz Source0: https://tarballs.openstack.org/nova/nova-%{upstream_version}.tar.gz
Source1: nova-dist.conf Source1: nova-dist.conf
Source6: nova.logrotate Source6: nova.logrotate
Source10: openstack-nova-api.service Source10: openstack-nova-api.service
Source12: openstack-nova-compute.service Source12: openstack-nova-compute.service
Source15: openstack-nova-scheduler.service Source15: openstack-nova-scheduler.service
@ -23,10 +37,12 @@ Source28: openstack-nova-spicehtml5proxy.service
Source29: openstack-nova-novncproxy.service Source29: openstack-nova-novncproxy.service
Source31: openstack-nova-serialproxy.service Source31: openstack-nova-serialproxy.service
Source32: openstack-nova-os-compute-api.service Source32: openstack-nova-os-compute-api.service
Source22: nova-ifc-template Source22: nova-ifc-template
Source24: nova-sudoers Source24: nova-sudoers
Source30: openstack-nova-novncproxy.sysconfig Source30: openstack-nova-novncproxy.sysconfig
Source34: policy.json Source34: policy.json
Source35: nova_migration-sudoers Source35: nova_migration-sudoers
Source36: nova-ssh-config Source36: nova-ssh-config
Source37: nova-migration-wrapper Source37: nova-migration-wrapper
@ -34,25 +50,27 @@ Source38: nova_migration_identity
Source39: nova_migration_authorized_keys Source39: nova_migration_authorized_keys
Source40: nova_migration-rootwrap.conf Source40: nova_migration-rootwrap.conf
Source41: nova_migration-rootwrap_cold_migration Source41: nova_migration-rootwrap_cold_migration
BuildArch: noarch BuildArch: noarch
BuildRequires: openstack-macros BuildRequires: openstack-macros
BuildRequires: intltool BuildRequires: intltool
BuildRequires: python3-devel BuildRequires: python3-devel
BuildRequires: git BuildRequires: git-core
BuildRequires: python3-oslo-cache BuildRequires: python3-oslo-cache
BuildRequires: python3-os-traits BuildRequires: python3-os-traits
BuildRequires: python3-setuptools BuildRequires: python3-setuptools
BuildRequires: python3-netaddr BuildRequires: python3-netaddr
BuildRequires: python3-pbr BuildRequires: python3-pbr
BuildRequires: python3-pip
BuildRequires: python3-six BuildRequires: python3-six
BuildRequires: python3-oslo-i18n BuildRequires: python3-oslo-i18n
BuildRequires: python3-cryptography >= 2.1 BuildRequires: python3-cryptography >= 2.1
BuildRequires: python3-oslo-policy BuildRequires: python3-oslo-policy
# Required for unit tests
BuildRequires: python3-barbicanclient BuildRequires: python3-barbicanclient
BuildRequires: python3-ddt BuildRequires: python3-ddt
BuildRequires: python3-ironicclient BuildRequires: python3-ironicclient
# BuildRequires: python3-mox3
BuildRequires: python3-os-testr BuildRequires: python3-os-testr
BuildRequires: python3-os-vif BuildRequires: python3-os-vif
BuildRequires: python3-oslo-rootwrap BuildRequires: python3-oslo-rootwrap
@ -71,23 +89,28 @@ BuildRequires: python3-os-resource-classes
BuildRequires: python3-requests-mock BuildRequires: python3-requests-mock
BuildRequires: /usr/bin/pathfix.py BuildRequires: /usr/bin/pathfix.py
Requires: openstack-nova-compute = %{epoch}:%{version}-%{release} Requires: openstack-nova-compute = %{version}-%{release}
Requires: openstack-nova-scheduler = %{epoch}:%{version}-%{release} Requires: openstack-nova-scheduler = %{version}-%{release}
Requires: openstack-nova-api = %{epoch}:%{version}-%{release} Requires: openstack-nova-api = %{version}-%{release}
Requires: openstack-nova-conductor = %{epoch}:%{version}-%{release} Requires: openstack-nova-conductor = %{version}-%{release}
Requires: openstack-nova-novncproxy = %{epoch}:%{version}-%{release} Requires: openstack-nova-novncproxy = %{version}-%{release}
Requires: openstack-nova-migration = %{epoch}:%{version}-%{release} Requires: openstack-nova-migration = %{version}-%{release}
%description %description
OpenStack Compute (Nova) %{common_desc}
%package common %package common
Summary: Components common to all OpenStack Nova services Summary: Components common to all OpenStack Nova services
Obsoletes: openstack-nova-cert <= 1:16.0.0-1 Obsoletes: openstack-nova-cert <= 16.0.0-1
Obsoletes: openstack-nova-cells < 1:20.0.0 # nova-cells has been retired in train
Requires: python3-nova = %{epoch}:%{version}-%{release} Obsoletes: openstack-nova-cells < 20.0.0
Requires: python3-nova = %{version}-%{release}
%{?systemd_ordering} %{?systemd_ordering}
Requires(pre): shadow-utils Requires(pre): shadow-utils
BuildRequires: systemd BuildRequires: systemd
# Required to build nova.conf.sample
BuildRequires: python3-castellan >= 0.16.0 BuildRequires: python3-castellan >= 0.16.0
BuildRequires: python3-glanceclient BuildRequires: python3-glanceclient
BuildRequires: python3-keystonemiddleware BuildRequires: python3-keystonemiddleware
@ -98,30 +121,41 @@ BuildRequires: python3-oslo-reports
BuildRequires: python3-oslo-service BuildRequires: python3-oslo-service
BuildRequires: python3-oslo-versionedobjects BuildRequires: python3-oslo-versionedobjects
BuildRequires: python3-paramiko BuildRequires: python3-paramiko
# Required to compile translation files
BuildRequires: python3-babel BuildRequires: python3-babel
BuildRequires: python3-lxml BuildRequires: python3-lxml
BuildRequires: python3-websockify >= 0.9.0 BuildRequires: python3-websockify >= 0.9.0
# remove old service subpackage
Obsoletes: %{name}-objectstore
%description common %description common
OpenStack Compute (Nova) %{common_desc}
This package contains scripts, config and dependencies shared This package contains scripts, config and dependencies shared
between all the OpenStack nova services. between all the OpenStack nova services.
%package compute %package compute
Summary: OpenStack Nova Virtual Machine control service Summary: OpenStack Nova Virtual Machine control service
Requires: openstack-nova-common = %{epoch}:%{version}-%{release}
Requires: openstack-nova-common = %{version}-%{release}
Requires: curl Requires: curl
Requires: iscsi-initiator-utils Requires: iscsi-initiator-utils
Requires: iptables Requires: iptables
Requires: iptables-services Requires: iptables-services
Requires: ipmitool Requires: ipmitool
Requires: /usr/bin/virsh Requires: /usr/bin/virsh
Requires: libvirt-daemon-lxc
Requires: openssh-clients Requires: openssh-clients
Requires: rsync Requires: rsync
Requires: lvm2 Requires: lvm2
Requires: python3-cinderclient >= 3.3.0 Requires: python3-cinderclient >= 3.3.0
Requires: genisoimage Requires: genisoimage
Requires(pre): qemu >= %{qemu_version} Requires(pre): qemu >= %{qemu_version}
Requires(pre): qemu-block-rbd >= %{qemu_version} Requires(pre): qemu-block-rbd >= %{qemu_version}
Requires(pre): qemu-block-ssh >= %{qemu_version} Requires(pre): qemu-block-ssh >= %{qemu_version}
@ -135,92 +169,115 @@ Requires(pre): libvirt-daemon-driver-storage-core >= %{libvirt_version}
Requires: sg3_utils Requires: sg3_utils
Requires: sysfsutils Requires: sysfsutils
Requires: libosinfo Requires: libosinfo
Requires: python3-libguestfs Requires: python3-libguestfs
Requires: python3-libvirt Requires: python3-libvirt
%description compute %description compute
OpenStack Compute (Nova) %{common_desc}
This package contains the Nova service for controlling Virtual Machines. This package contains the Nova service for controlling Virtual Machines.
%package scheduler %package scheduler
Summary: OpenStack Nova VM distribution service Summary: OpenStack Nova VM distribution service
Requires: openstack-nova-common = %{epoch}:%{version}-%{release}
Requires: openstack-nova-common = %{version}-%{release}
%description scheduler %description scheduler
OpenStack Compute (Nova) %{common_desc}
This package contains the service for scheduling where This package contains the service for scheduling where
to run Virtual Machines in the cloud. to run Virtual Machines in the cloud.
%package api %package api
Summary: OpenStack Nova API services Summary: OpenStack Nova API services
Requires: openstack-nova-common = %{epoch}:%{version}-%{release}
Requires: openstack-nova-common = %{version}-%{release}
Requires: python3-cinderclient >= 3.3.0 Requires: python3-cinderclient >= 3.3.0
%description api %description api
OpenStack Compute (Nova) %{common_desc}
This package contains the Nova services providing programmatic access. This package contains the Nova services providing programmatic access.
%package conductor %package conductor
Summary: OpenStack Nova Conductor services Summary: OpenStack Nova Conductor services
Requires: openstack-nova-common = %{epoch}:%{version}-%{release}
Requires: openstack-nova-common = %{version}-%{release}
%description conductor %description conductor
OpenStack Compute (Nova) %{common_desc}
This package contains the Nova services providing database access for This package contains the Nova services providing database access for
the compute service the compute service
%package novncproxy %package novncproxy
Summary: OpenStack Nova noVNC proxy service Summary: OpenStack Nova noVNC proxy service
Requires: openstack-nova-common = %{epoch}:%{version}-%{release}
Requires: openstack-nova-common = %{version}-%{release}
Requires: novnc Requires: novnc
Requires: python3-websockify >= 0.9.0 Requires: python3-websockify >= 0.9.0
%description novncproxy %description novncproxy
OpenStack Compute (Nova) %{common_desc}
This package contains the Nova noVNC Proxy service that can proxy This package contains the Nova noVNC Proxy service that can proxy
VNC traffic over browser websockets connections. VNC traffic over browser websockets connections.
%package spicehtml5proxy %package spicehtml5proxy
Summary: OpenStack Nova Spice HTML5 console access service Summary: OpenStack Nova Spice HTML5 console access service
Requires: openstack-nova-common = %{epoch}:%{version}-%{release}
Requires: openstack-nova-common = %{version}-%{release}
Requires: python3-websockify >= 0.9.0 Requires: python3-websockify >= 0.9.0
%description spicehtml5proxy %description spicehtml5proxy
OpenStack Compute (Nova) %{common_desc}
This package contains the Nova services providing the This package contains the Nova services providing the
spice HTML5 console access service to Virtual Machines. spice HTML5 console access service to Virtual Machines.
%package serialproxy %package serialproxy
Summary: OpenStack Nova serial console access service Summary: OpenStack Nova serial console access service
Requires: openstack-nova-common = %{epoch}:%{version}-%{release}
Requires: openstack-nova-common = %{version}-%{release}
Requires: python3-websockify >= 0.9.0 Requires: python3-websockify >= 0.9.0
%description serialproxy %description serialproxy
OpenStack Compute (Nova) %{common_desc}
This package contains the Nova services providing the
This package contains the Nova services providing the \
serial console access service to Virtual Machines. serial console access service to Virtual Machines.
%package migration %package migration
Summary: OpenStack Nova Migration Summary: OpenStack Nova Migration
Requires: openstack-nova-compute = %{epoch}:%{version}-%{release}
Requires: openstack-nova-compute = %{version}-%{release}
%description migration %description migration
OpenStack Compute (Nova) %{common_desc}
This package contains scripts and config to support VM migration in Nova. This package contains scripts and config to support VM migration in Nova.
%package -n python3-nova %package -n python3-nova
Summary: Nova Python libraries Summary: Nova Python libraries
%{?python_provide:%python_provide python3-nova} %{?python_provide:%python_provide python3-nova}
Requires: openssl Requires: openssl
# Require openssh for ssh-keygen
Requires: openssh Requires: openssh
Requires: sudo Requires: sudo
Requires: python3-paramiko >= 2.7.1 Requires: python3-paramiko >= 2.7.1
Requires: python3-eventlet >= 0.22.0 Requires: python3-eventlet >= 0.26.1
Requires: python3-iso8601 >= 0.1.11 Requires: python3-iso8601 >= 0.1.11
Requires: python3-netaddr >= 0.7.18 Requires: python3-netaddr >= 0.7.18
Requires: python3-boto Requires: python3-boto
Requires: python3-stevedore >= 1.20.0 Requires: python3-stevedore >= 1.20.0
Requires: python3-sqlalchemy Requires: python3-sqlalchemy >= 1.2.19
Requires: python3-alembic >= 0.8.0 Requires: python3-alembic >= 0.8.0
Requires: python3-routes >= 2.3.1 Requires: python3-routes >= 2.3.1
Requires: python3-webob >= 1.8.2 Requires: python3-webob >= 1.8.2
@ -232,81 +289,82 @@ Requires: python3-glanceclient >= 1:2.8.0
Requires: python3-greenlet >= 0.4.13 Requires: python3-greenlet >= 0.4.13
Requires: python3-keystonemiddleware >= 4.20.0 Requires: python3-keystonemiddleware >= 4.20.0
Requires: python3-keystoneauth1 >= 3.16.0 Requires: python3-keystoneauth1 >= 3.16.0
Requires: python3-jinja2 Requires: python3-jinja2 >= 2.10
Requires: python3-jsonschema >= 2.6.0 Requires: python3-jsonschema >= 3.2.0
Requires: python3-microversion-parse >= 0.2.1 Requires: python3-microversion-parse >= 0.2.1
Requires: python3-neutronclient >= 6.7.0 Requires: python3-neutronclient >= 6.7.0
Requires: python3-novaclient >= 2.30.1 Requires: python3-novaclient >= 2.30.1
Requires: python3-openstacksdk >= 0.35.0 Requires: python3-openstacksdk >= 0.35.0
Requires: python3-os-brick >= 3.1.0 Requires: python3-os-brick >= 4.2.0
Requires: python3-os-resource-classes >= 0.4.0 Requires: python3-os-resource-classes >= 0.4.0
Requires: python3-os-traits >= 2.4.0 Requires: python3-os-traits >= 2.5.0
Requires: python3-oslo-cache >= 1.26.0 Requires: python3-oslo-cache >= 1.26.0
Requires: python3-oslo-concurrency >= 3.29.0 Requires: python3-oslo-concurrency >= 4.3.0
Requires: python3-oslo-config >= 6.8.0 Requires: python3-oslo-config >= 6.8.0
Requires: python3-oslo-context >= 2.22.0 Requires: python3-oslo-context >= 3.1.1
Requires: python3-oslo-db >= 4.44.0 Requires: python3-oslo-db >= 4.44.0
Requires: python3-oslo-i18n >= 3.15.3 Requires: python3-oslo-i18n >= 5.0.1
Requires: python3-oslo-log >= 3.36.0 Requires: python3-oslo-log >= 4.4.0
Requires: python3-oslo-messaging >= 10.3.0 Requires: python3-oslo-messaging >= 10.3.0
Requires: python3-oslo-middleware >= 3.31.0 Requires: python3-oslo-middleware >= 3.31.0
Requires: python3-oslo-policy >= 3.4.0 Requires: python3-oslo-policy >= 3.6.0
Requires: python3-oslo-privsep >= 1.33.2 Requires: python3-oslo-privsep >= 2.4.0
Requires: python3-oslo-reports >= 1.18.0 Requires: python3-oslo-reports >= 1.18.0
Requires: python3-oslo-rootwrap >= 5.8.0 Requires: python3-oslo-rootwrap >= 5.8.0
Requires: python3-oslo-serialization >= 2.21.1 Requires: python3-oslo-serialization >= 4.0.1
Requires: python3-oslo-service >= 1.40.1 Requires: python3-oslo-service >= 2.4.0
Requires: python3-oslo-upgradecheck >= 0.1.1 Requires: python3-oslo-upgradecheck >= 1.3.0
Requires: python3-oslo-utils >= 4.5.0 Requires: python3-oslo-utils >= 4.7.0
Requires: python3-oslo-versionedobjects >= 1.35.0 Requires: python3-oslo-versionedobjects >= 1.35.0
Requires: python3-os-vif >= 1.14.0 Requires: python3-os-vif >= 1.14.0
Requires: python3-oslo-vmware >= 1.16.0 Requires: python3-oslo-vmware >= 1.16.0
Requires: python3-pbr Requires: python3-pbr >= 5.5.0
Requires: python3-prettytable >= 0.7.1 Requires: python3-prettytable >= 0.7.1
Requires: python3-psutil Requires: python3-psutil >= 3.2.2
Requires: python3-requests >= 2.22.0 Requires: python3-requests >= 2.23.0
Requires: python3-rfc3986 >= 1.2.0 Requires: python3-rfc3986 >= 1.2.0
Requires: python3-six >= 1.11.0
Requires: python3-taskflow >= 3.8.0 Requires: python3-taskflow >= 3.8.0
Requires: python3-tooz >= 1.58.0 Requires: python3-tooz >= 1.58.0
Requires: python3-os-service-types >= 1.7.0 Requires: python3-os-service-types >= 1.7.0
Requires: python3-dateutil >= 2.5.3 Requires: python3-dateutil >= 2.6.0
Requires: python3-futurist >= 1.8.0 Requires: python3-futurist >= 1.8.0
Requires: python3-decorator >= 4.1.0 Requires: python3-decorator >= 4.1.0
Requires: python3-lxml >= 4.2.3 Requires: python3-lxml >= 4.2.3
Requires: python3-ldap Requires: python3-ldap
Requires: python3-memcached Requires: python3-memcached
Requires: python3-sqlalchemy-migrate >= 0.13.0 Requires: python3-migrate >= 0.13.0
Requires: python3-paste Requires: python3-paste >= 2.0.2
Requires: python3-paste-deploy >= 1.5.0 Requires: python3-paste-deploy >= 1.5.0
Requires: python3-netifaces >= 0.10.4 Requires: python3-netifaces >= 0.10.4
Requires: python3-retrying Requires: python3-retrying >= 1.3.3
%if 0%{?rhel} == 8 Requires: python3-yaml >= 5.1
Requires: python3-PyYAML
%else
Requires: python3-PyYAML >= 3.13
%endif
%description -n python3-nova %description -n python3-nova
OpenStack Compute (Nova) %{common_desc}
This package contains the nova Python library. This package contains the nova Python library.
%package -n python3-nova-tests %package -n python3-nova-tests
Summary: Nova tests Summary: Nova tests
%{?python_provide:%python_provide python3-nova-tests} %{?python_provide:%python_provide python3-nova-tests}
Requires: openstack-nova = %{epoch}:%{version}-%{release} Requires: openstack-nova = %{version}-%{release}
%description -n python3-nova-tests %description -n python3-nova-tests
OpenStack Compute (Nova) %{common_desc}
This package contains the nova Python library. This package contains the nova Python library.
%if 0%{?with_doc} %if 0%{?with_doc}
%package doc %package doc
Summary: Documentation for OpenStack Compute Summary: Documentation for OpenStack Compute
BuildRequires: graphviz BuildRequires: graphviz
# Required by build_sphinx for man and doc building
BuildRequires: python3-openstackdocstheme BuildRequires: python3-openstackdocstheme
BuildRequires: python3-sphinxcontrib-actdiag BuildRequires: python3-sphinxcontrib-actdiag
BuildRequires: python3-sphinxcontrib-seqdiag BuildRequires: python3-sphinxcontrib-seqdiag
# Required to build module documents
BuildRequires: python3-boto BuildRequires: python3-boto
BuildRequires: python3-eventlet BuildRequires: python3-eventlet
BuildRequires: python3-barbicanclient BuildRequires: python3-barbicanclient
@ -326,31 +384,54 @@ BuildRequires: python3-sphinxcontrib-seqdiag
BuildRequires: python3-sqlalchemy BuildRequires: python3-sqlalchemy
BuildRequires: python3-webob BuildRequires: python3-webob
BuildRequires: python3-iso8601 BuildRequires: python3-iso8601
BuildRequires: python3-redis BuildRequires: python3-redis
BuildRequires: python3-zmq BuildRequires: python3-zmq
BuildRequires: python3-sqlalchemy-migrate BuildRequires: python3-sqlalchemy-migrate
%description doc %description doc
OpenStack Compute (Nova) %{common_desc}
This package contains documentation files for nova. This package contains documentation files for nova.
%endif %endif
%prep %prep
%autosetup -n nova-%{upstream_version} -S git %autosetup -n nova-%{upstream_version}
find . \( -name .gitignore -o -name .placeholder \) -delete find . \( -name .gitignore -o -name .placeholder \) -delete
find nova -name \*.py -exec sed -i '/\/usr\/bin\/env python/{d;q}' {} + find nova -name \*.py -exec sed -i '/\/usr\/bin\/env python/{d;q}' {} +
# Remove the requirements file so that pbr hooks don't add it
# to distutils requiers_dist config
%py_req_cleanup %py_req_cleanup
%build %build
PYTHONPATH=. oslo-config-generator --config-file=etc/nova/nova-config-generator.conf PYTHONPATH=. oslo-config-generator --config-file=etc/nova/nova-config-generator.conf
# Generate a sample policy.yaml file for documentation purposes only
PYTHONPATH=. oslopolicy-sample-generator --config-file=etc/nova/nova-policy-generator.conf PYTHONPATH=. oslopolicy-sample-generator --config-file=etc/nova/nova-policy-generator.conf
%{py3_build} %{py3_build}
# Generate i18n files
# (amoralej) we can remove '-D nova' once https://review.openstack.org/#/c/439500/ is merged
%{__python3} setup.py compile_catalog -d build/lib/nova/locale -D nova %{__python3} setup.py compile_catalog -d build/lib/nova/locale -D nova
# Avoid http://bugzilla.redhat.com/1059815. Remove when that is closed
sed -i 's|group/name|group;name|; s|\[DEFAULT\]/|DEFAULT;|' etc/nova/nova.conf.sample sed -i 's|group/name|group;name|; s|\[DEFAULT\]/|DEFAULT;|' etc/nova/nova.conf.sample
# Programmatically update defaults in sample config
# which is installed at /etc/nova/nova.conf
# First we ensure all values are commented in appropriate format.
# Since icehouse, there was an uncommented keystone_authtoken section
# at the end of the file which mimics but also conflicted with our
# distro editing that had been done for many releases.
sed -i '/^[^#[]/{s/^/#/; s/ //g}; /^#[^ ]/s/ = /=/' etc/nova/nova.conf.sample sed -i '/^[^#[]/{s/^/#/; s/ //g}; /^#[^ ]/s/ = /=/' etc/nova/nova.conf.sample
# TODO: Make this more robust
# Note it only edits the first occurrence, so assumes a section ordering in sample
# and also doesn't support multi-valued variables like dhcpbridge_flagfile.
while read name eq value; do while read name eq value; do
test "$name" && test "$value" || continue test "$name" && test "$value" || continue
sed -i "0,/^# *$name=/{s!^# *$name=.*!#$name=$value!}" etc/nova/nova.conf.sample sed -i "0,/^# *$name=/{s!^# *$name=.*!#$name=$value!}" etc/nova/nova.conf.sample
@ -371,6 +452,7 @@ mkdir -p %{buildroot}%{_mandir}/man1
install -p -D -m 644 doc/build/man/*.1 %{buildroot}%{_mandir}/man1/ install -p -D -m 644 doc/build/man/*.1 %{buildroot}%{_mandir}/man1/
%endif %endif
# Setup directories
install -d -m 755 %{buildroot}%{_sharedstatedir}/nova install -d -m 755 %{buildroot}%{_sharedstatedir}/nova
install -d -m 755 %{buildroot}%{_sharedstatedir}/nova/buckets install -d -m 755 %{buildroot}%{_sharedstatedir}/nova/buckets
install -d -m 755 %{buildroot}%{_sharedstatedir}/nova/instances install -d -m 755 %{buildroot}%{_sharedstatedir}/nova/instances
@ -379,6 +461,8 @@ install -d -m 755 %{buildroot}%{_sharedstatedir}/nova/networks
install -d -m 755 %{buildroot}%{_sharedstatedir}/nova/tmp install -d -m 755 %{buildroot}%{_sharedstatedir}/nova/tmp
install -d -m 750 %{buildroot}%{_localstatedir}/log/nova install -d -m 750 %{buildroot}%{_localstatedir}/log/nova
install -d -m 700 %{buildroot}%{_sharedstatedir}/nova/.ssh install -d -m 700 %{buildroot}%{_sharedstatedir}/nova/.ssh
# Install config files
install -d -m 755 %{buildroot}%{_sysconfdir}/nova install -d -m 755 %{buildroot}%{_sysconfdir}/nova
install -p -D -m 640 %{SOURCE1} %{buildroot}%{_datarootdir}/nova/nova-dist.conf install -p -D -m 640 %{SOURCE1} %{buildroot}%{_datarootdir}/nova/nova-dist.conf
install -p -D -m 640 etc/nova/nova.conf.sample %{buildroot}%{_sysconfdir}/nova/nova.conf install -p -D -m 640 etc/nova/nova.conf.sample %{buildroot}%{_sysconfdir}/nova/nova.conf
@ -390,15 +474,18 @@ install -p -D -m 644 %{SOURCE39} %{buildroot}%{_sysconfdir}/nova/migration/autho
install -p -D -m 640 %{SOURCE40} %{buildroot}%{_sysconfdir}/nova/migration/rootwrap.conf install -p -D -m 640 %{SOURCE40} %{buildroot}%{_sysconfdir}/nova/migration/rootwrap.conf
install -d -m 755 %{buildroot}%{_sysconfdir}/nova/migration/rootwrap.d install -d -m 755 %{buildroot}%{_sysconfdir}/nova/migration/rootwrap.d
install -p -D -m 640 %{SOURCE41} %{buildroot}%{_sysconfdir}/nova/migration/rootwrap.d/cold_migration.filters install -p -D -m 640 %{SOURCE41} %{buildroot}%{_sysconfdir}/nova/migration/rootwrap.d/cold_migration.filters
# Install empty policy.json file to cover rpm updates with untouched policy files.
install -p -D -m 640 %{SOURCE34} %{buildroot}%{_sysconfdir}/nova/policy.json install -p -D -m 640 %{SOURCE34} %{buildroot}%{_sysconfdir}/nova/policy.json
# Install version info file
cat > %{buildroot}%{_sysconfdir}/nova/release <<EOF cat > %{buildroot}%{_sysconfdir}/nova/release <<EOF
[Nova] [Nova]
vendor = %{distro}
product = OpenStack Compute product = OpenStack Compute
package = %{release} package = %{release}
EOF EOF
# Install initscripts for Nova services
install -p -D -m 644 %{SOURCE10} %{buildroot}%{_unitdir}/openstack-nova-api.service install -p -D -m 644 %{SOURCE10} %{buildroot}%{_unitdir}/openstack-nova-api.service
install -p -D -m 644 %{SOURCE12} %{buildroot}%{_unitdir}/openstack-nova-compute.service install -p -D -m 644 %{SOURCE12} %{buildroot}%{_unitdir}/openstack-nova-compute.service
install -p -D -m 644 %{SOURCE15} %{buildroot}%{_unitdir}/openstack-nova-scheduler.service install -p -D -m 644 %{SOURCE15} %{buildroot}%{_unitdir}/openstack-nova-scheduler.service
@ -409,37 +496,66 @@ install -p -D -m 644 %{SOURCE29} %{buildroot}%{_unitdir}/openstack-nova-novncpro
install -p -D -m 644 %{SOURCE31} %{buildroot}%{_unitdir}/openstack-nova-serialproxy.service install -p -D -m 644 %{SOURCE31} %{buildroot}%{_unitdir}/openstack-nova-serialproxy.service
install -p -D -m 644 %{SOURCE32} %{buildroot}%{_unitdir}/openstack-nova-os-compute-api.service install -p -D -m 644 %{SOURCE32} %{buildroot}%{_unitdir}/openstack-nova-os-compute-api.service
# (amoralej) we need to keep this until https://review.opendev.org/686816 is merged
rm -f %{buildroot}%{_bindir}/nova-network rm -f %{buildroot}%{_bindir}/nova-network
# Install sudoers
install -p -D -m 440 %{SOURCE24} %{buildroot}%{_sysconfdir}/sudoers.d/nova install -p -D -m 440 %{SOURCE24} %{buildroot}%{_sysconfdir}/sudoers.d/nova
install -p -D -m 440 %{SOURCE35} %{buildroot}%{_sysconfdir}/sudoers.d/nova_migration install -p -D -m 440 %{SOURCE35} %{buildroot}%{_sysconfdir}/sudoers.d/nova_migration
# Install nova ssh client config for migration
install -p -D -m 600 %{SOURCE36} %{buildroot}%{_sharedstatedir}/nova/.ssh/config install -p -D -m 600 %{SOURCE36} %{buildroot}%{_sharedstatedir}/nova/.ssh/config
# Install nova migration ssh wrapper command
install -p -D -m 755 %{SOURCE37} %{buildroot}%{_bindir}/nova-migration-wrapper install -p -D -m 755 %{SOURCE37} %{buildroot}%{_bindir}/nova-migration-wrapper
# Fix shebangs for Python 3-only distros
pathfix.py -pni "%{__python3} %{py3_shbang_opts}" %{buildroot}%{_bindir}/nova-migration-wrapper pathfix.py -pni "%{__python3} %{py3_shbang_opts}" %{buildroot}%{_bindir}/nova-migration-wrapper
# Install logrotate
install -p -D -m 644 %{SOURCE6} %{buildroot}%{_sysconfdir}/logrotate.d/openstack-nova install -p -D -m 644 %{SOURCE6} %{buildroot}%{_sysconfdir}/logrotate.d/openstack-nova
# Install pid directory
install -d -m 755 %{buildroot}%{_localstatedir}/run/nova install -d -m 755 %{buildroot}%{_localstatedir}/run/nova
# Install template files
install -p -D -m 644 %{SOURCE22} %{buildroot}%{_datarootdir}/nova/interfaces.template install -p -D -m 644 %{SOURCE22} %{buildroot}%{_datarootdir}/nova/interfaces.template
# Install rootwrap files in /usr/share/nova/rootwrap
mkdir -p %{buildroot}%{_datarootdir}/nova/rootwrap/ mkdir -p %{buildroot}%{_datarootdir}/nova/rootwrap/
install -p -D -m 644 etc/nova/rootwrap.d/* %{buildroot}%{_datarootdir}/nova/rootwrap/ install -p -D -m 644 etc/nova/rootwrap.d/* %{buildroot}%{_datarootdir}/nova/rootwrap/
# Install novncproxy service options template
install -d %{buildroot}%{_sysconfdir}/sysconfig install -d %{buildroot}%{_sysconfdir}/sysconfig
install -p -m 0644 %{SOURCE30} %{buildroot}%{_sysconfdir}/sysconfig/openstack-nova-novncproxy install -p -m 0644 %{SOURCE30} %{buildroot}%{_sysconfdir}/sysconfig/openstack-nova-novncproxy
# Install i18n .mo files (.po and .pot are not required)
install -d -m 755 %{buildroot}%{_datadir} install -d -m 755 %{buildroot}%{_datadir}
rm -f %{buildroot}%{python3_sitelib}/nova/locale/*/LC_*/nova*po rm -f %{buildroot}%{python3_sitelib}/nova/locale/*/LC_*/nova*po
rm -f %{buildroot}%{python3_sitelib}/nova/locale/*pot rm -f %{buildroot}%{python3_sitelib}/nova/locale/*pot
mv %{buildroot}%{python3_sitelib}/nova/locale %{buildroot}%{_datadir}/locale mv %{buildroot}%{python3_sitelib}/nova/locale %{buildroot}%{_datadir}/locale
# Find language files
%find_lang nova --all-name %find_lang nova --all-name
# Remove unneeded in production stuff
rm -f %{buildroot}%{_bindir}/nova-debug rm -f %{buildroot}%{_bindir}/nova-debug
rm -fr %{buildroot}%{python3_sitelib}/run_tests.* rm -fr %{buildroot}%{python3_sitelib}/run_tests.*
rm -f %{buildroot}%{_bindir}/nova-combined rm -f %{buildroot}%{_bindir}/nova-combined
rm -f %{buildroot}/usr/share/doc/nova/README* rm -f %{buildroot}/usr/share/doc/nova/README*
# Remove duplicated configuration files deployed at /usr/etc
rm -rf %{buildroot}%{_prefix}/etc/nova rm -rf %{buildroot}%{_prefix}/etc/nova
# FIXME(jpena): unit tests are taking too long in the current DLRN infra
# Until we have a better architecture, let's not run them when under DLRN
%if 0%{!?dlrn} %if 0%{!?dlrn}
%check %check
# create a fake os_xenapi with just enough to load the unit tests
mkdir -p os_xenapi mkdir -p os_xenapi
touch os_xenapi/__init__.py touch os_xenapi/__init__.py
cat > os_xenapi/client.py <<EOF cat > os_xenapi/client.py <<EOF
class session: class session:
def XenAPISession(): def XenAPISession():
@ -448,6 +564,7 @@ XenAPI = None
exception = None exception = None
EOF EOF
# Limit the number of concurrent workers to 2
OS_TEST_PATH=./nova/tests/unit ostestr -c 2 --black-regex 'xenapi|test_compute_xen' OS_TEST_PATH=./nova/tests/unit ostestr -c 2 --black-regex 'xenapi|test_compute_xen'
rm -rf os_xenapi rm -rf os_xenapi
%endif %endif
@ -467,6 +584,7 @@ getent group nova_migration >/dev/null || groupadd -r nova_migration
getent passwd nova_migration >/dev/null || \ getent passwd nova_migration >/dev/null || \
useradd -r -g nova_migration -d / -s /bin/bash -c "OpenStack Nova Migration" nova_migration useradd -r -g nova_migration -d / -s /bin/bash -c "OpenStack Nova Migration" nova_migration
exit 0 exit 0
%post compute %post compute
%systemd_post %{name}-compute.service %systemd_post %{name}-compute.service
%post scheduler %post scheduler
@ -481,6 +599,7 @@ exit 0
%systemd_post %{name}-spicehtml5proxy.service %systemd_post %{name}-spicehtml5proxy.service
%post serialproxy %post serialproxy
%systemd_post %{name}-serialproxy.service %systemd_post %{name}-serialproxy.service
%preun compute %preun compute
%systemd_preun %{name}-compute.service %systemd_preun %{name}-compute.service
%preun scheduler %preun scheduler
@ -495,6 +614,7 @@ exit 0
%systemd_preun %{name}-spicehtml5proxy.service %systemd_preun %{name}-spicehtml5proxy.service
%preun serialproxy %preun serialproxy
%systemd_preun %{name}-serialproxy.service %systemd_preun %{name}-serialproxy.service
%postun compute %postun compute
%systemd_postun_with_restart %{name}-compute.service %systemd_postun_with_restart %{name}-compute.service
%postun scheduler %postun scheduler
@ -509,7 +629,9 @@ exit 0
%systemd_postun_with_restart %{name}-spicehtml5proxy.service %systemd_postun_with_restart %{name}-spicehtml5proxy.service
%postun serialproxy %postun serialproxy
%systemd_postun_with_restart %{name}-serialproxy.service %systemd_postun_with_restart %{name}-serialproxy.service
%files %files
%files common -f nova.lang %files common -f nova.lang
%license LICENSE %license LICENSE
%doc etc/nova/policy.yaml.sample %doc etc/nova/policy.yaml.sample
@ -606,8 +728,12 @@ exit 0
%endif %endif
%changelog %changelog
* Fri Jul 23 2021 liksh <liks11@chinaunicom.cn> 23.0.1-1
- Update to 23.0.1
* Sat Feb 20 2021 wangxiyuan <wangxiyuan1007@gmail.com> * Sat Feb 20 2021 wangxiyuan <wangxiyuan1007@gmail.com>
- Fix require issue - Fix require issue
* Fri Jan 15 2021 joec88 <joseph.chn1988@gmail.com> * Fri Jan 15 2021 joec88 <joseph.chn1988@gmail.com>
- openEuler build version - openEuler build version