%{!?upstream_version: %global upstream_version %{version}%{?milestone}} %global with_doc 0 %global qemu_version 3.1.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 # Liberty semver reset # https://review.openstack.org/#/q/I6a35fa0dda798fad93b804d00a46af80f08d475c,n,z Version: 23.0.1 Release: 2 Summary: OpenStack Compute (nova) License: ASL 2.0 URL: http://openstack.org/projects/compute/ Source0: https://tarballs.openstack.org/nova/nova-%{upstream_version}.tar.gz Source1: nova-dist.conf Source6: nova.logrotate Source10: openstack-nova-api.service Source12: openstack-nova-compute.service Source15: openstack-nova-scheduler.service Source25: openstack-nova-metadata-api.service Source26: openstack-nova-conductor.service Source28: openstack-nova-spicehtml5proxy.service Source29: openstack-nova-novncproxy.service Source31: openstack-nova-serialproxy.service Source32: openstack-nova-os-compute-api.service Source22: nova-ifc-template Source24: nova-sudoers Source30: openstack-nova-novncproxy.sysconfig Source34: policy.json Source35: nova_migration-sudoers Source36: nova-ssh-config Source37: nova-migration-wrapper Source38: nova_migration_identity Source39: nova_migration_authorized_keys Source40: nova_migration-rootwrap.conf Source41: nova_migration-rootwrap_cold_migration BuildArch: noarch BuildRequires: openstack-macros BuildRequires: intltool BuildRequires: python3-devel BuildRequires: git-core BuildRequires: python3-oslo-cache BuildRequires: python3-os-traits BuildRequires: python3-setuptools BuildRequires: python3-netaddr BuildRequires: python3-pbr BuildRequires: python3-six BuildRequires: python3-oslo-i18n BuildRequires: python3-cryptography >= 2.1 BuildRequires: python3-oslo-policy # Required for unit tests BuildRequires: python3-barbicanclient BuildRequires: python3-ddt BuildRequires: python3-ironicclient # BuildRequires: python3-mox3 BuildRequires: python3-os-testr BuildRequires: python3-os-vif BuildRequires: python3-oslo-rootwrap BuildRequires: python3-oslotest BuildRequires: python3-osprofiler BuildRequires: python3-subunit BuildRequires: python3-testrepository BuildRequires: python3-testresources BuildRequires: python3-testscenarios BuildRequires: python3-tooz BuildRequires: python3-oslo-vmware BuildRequires: python3-cursive BuildRequires: python3-os-service-types BuildRequires: python3-os-resource-classes BuildRequires: python3-requests-mock BuildRequires: /usr/bin/pathfix.py Requires: openstack-nova-compute = %{version}-%{release} Requires: openstack-nova-scheduler = %{version}-%{release} Requires: openstack-nova-api = %{version}-%{release} Requires: openstack-nova-conductor = %{version}-%{release} Requires: openstack-nova-novncproxy = %{version}-%{release} Requires: openstack-nova-migration = %{version}-%{release} %description %{common_desc} %package common Summary: Components common to all OpenStack Nova services Obsoletes: openstack-nova-cert <= 16.0.0-1 # nova-cells has been retired in train Obsoletes: openstack-nova-cells < 20.0.0 Requires: python3-nova = %{version}-%{release} %{?systemd_ordering} Requires(pre): shadow-utils BuildRequires: systemd # Required to build nova.conf.sample BuildRequires: python3-castellan >= 0.16.0 BuildRequires: python3-glanceclient BuildRequires: python3-keystonemiddleware BuildRequires: python3-microversion-parse >= 0.2.1 BuildRequires: python3-os-brick BuildRequires: python3-oslo-db BuildRequires: python3-oslo-reports BuildRequires: python3-oslo-service BuildRequires: python3-oslo-versionedobjects BuildRequires: python3-paramiko # Required to compile translation files BuildRequires: python3-babel BuildRequires: python3-lxml BuildRequires: python3-websockify >= 0.9.0 # remove old service subpackage Obsoletes: %{name}-objectstore %description common %{common_desc} This package contains scripts, config and dependencies shared between all the OpenStack nova services. %package compute Summary: OpenStack Nova Virtual Machine control service Requires: openstack-nova-common = %{version}-%{release} Requires: curl Requires: iscsi-initiator-utils Requires: iptables Requires: iptables-services Requires: ipmitool Requires: /usr/bin/virsh Requires: openssh-clients Requires: rsync Requires: lvm2 Requires: python3-cinderclient >= 3.3.0 Requires: genisoimage Requires(pre): qemu >= %{qemu_version} Requires(pre): qemu-block-rbd >= %{qemu_version} Requires(pre): qemu-block-ssh >= %{qemu_version} Requires(pre): python3-libvirt >= %{libvirt_version} Requires(pre): libvirt-daemon-driver-nodedev >= %{libvirt_version} Requires(pre): libvirt-daemon-driver-nwfilter >= %{libvirt_version} Requires(pre): libvirt-daemon-driver-secret >= %{libvirt_version} Requires(pre): libvirt-daemon-driver-qemu >= %{libvirt_version} Requires(pre): libvirt-daemon-driver-storage-core >= %{libvirt_version} Requires: sg3_utils Requires: sysfsutils Requires: libosinfo Requires: python3-libguestfs Requires: python3-libvirt %description compute %{common_desc} This package contains the Nova service for controlling Virtual Machines. %package scheduler Summary: OpenStack Nova VM distribution service Requires: openstack-nova-common = %{version}-%{release} %description scheduler %{common_desc} This package contains the service for scheduling where to run Virtual Machines in the cloud. %package api Summary: OpenStack Nova API services Requires: openstack-nova-common = %{version}-%{release} Requires: python3-cinderclient >= 3.3.0 %description api %{common_desc} This package contains the Nova services providing programmatic access. %package conductor Summary: OpenStack Nova Conductor services Requires: openstack-nova-common = %{version}-%{release} %description conductor %{common_desc} This package contains the Nova services providing database access for the compute service %package novncproxy Summary: OpenStack Nova noVNC proxy service Requires: openstack-nova-common = %{version}-%{release} Requires: novnc Requires: python3-websockify >= 0.9.0 %description novncproxy %{common_desc} This package contains the Nova noVNC Proxy service that can proxy VNC traffic over browser websockets connections. %package spicehtml5proxy Summary: OpenStack Nova Spice HTML5 console access service Requires: openstack-nova-common = %{version}-%{release} Requires: python3-websockify >= 0.9.0 %description spicehtml5proxy %{common_desc} This package contains the Nova services providing the spice HTML5 console access service to Virtual Machines. %package serialproxy Summary: OpenStack Nova serial console access service Requires: openstack-nova-common = %{version}-%{release} Requires: python3-websockify >= 0.9.0 %description serialproxy %{common_desc} This package contains the Nova services providing the \ serial console access service to Virtual Machines. %package migration Summary: OpenStack Nova Migration Requires: openstack-nova-compute = %{version}-%{release} %description migration %{common_desc} This package contains scripts and config to support VM migration in Nova. %package -n python3-nova Summary: Nova Python libraries %{?python_provide:%python_provide python3-nova} Requires: openssl # Require openssh for ssh-keygen Requires: openssh Requires: sudo Requires: python3-paramiko >= 2.7.1 Requires: python3-eventlet >= 0.26.1 Requires: python3-iso8601 >= 0.1.11 Requires: python3-netaddr >= 0.7.18 Requires: python3-boto Requires: python3-stevedore >= 1.20.0 Requires: python3-sqlalchemy >= 1.2.19 Requires: python3-alembic >= 0.8.0 Requires: python3-routes >= 2.3.1 Requires: python3-webob >= 1.8.2 Requires: python3-castellan >= 0.16.0 Requires: python3-cryptography >= 2.7 Requires: python3-cursive >= 0.2.1 Requires: python3-dataclasses >= 0.7 Requires: python3-glanceclient >= 1:2.8.0 Requires: python3-greenlet >= 0.4.13 Requires: python3-keystonemiddleware >= 4.20.0 Requires: python3-keystoneauth1 >= 3.16.0 Requires: python3-jinja2 >= 2.10 Requires: python3-jsonschema >= 3.2.0 Requires: python3-microversion-parse >= 0.2.1 Requires: python3-neutronclient >= 6.7.0 Requires: python3-novaclient >= 2.30.1 Requires: python3-openstacksdk >= 0.35.0 Requires: python3-os-brick >= 4.2.0 Requires: python3-os-resource-classes >= 0.4.0 Requires: python3-os-traits >= 2.5.0 Requires: python3-oslo-cache >= 1.26.0 Requires: python3-oslo-concurrency >= 4.3.0 Requires: python3-oslo-config >= 6.8.0 Requires: python3-oslo-context >= 3.1.1 Requires: python3-oslo-db >= 4.44.0 Requires: python3-oslo-i18n >= 5.0.1 Requires: python3-oslo-log >= 4.4.0 Requires: python3-oslo-messaging >= 10.3.0 Requires: python3-oslo-middleware >= 3.31.0 Requires: python3-oslo-policy >= 3.6.0 Requires: python3-oslo-privsep >= 2.4.0 Requires: python3-oslo-reports >= 1.18.0 Requires: python3-oslo-rootwrap >= 5.8.0 Requires: python3-oslo-serialization >= 4.0.1 Requires: python3-oslo-service >= 2.4.0 Requires: python3-oslo-upgradecheck >= 1.3.0 Requires: python3-oslo-utils >= 4.7.0 Requires: python3-oslo-versionedobjects >= 1.35.0 Requires: python3-os-vif >= 1.14.0 Requires: python3-oslo-vmware >= 1.16.0 Requires: python3-pbr >= 5.5.0 Requires: python3-prettytable >= 0.7.1 Requires: python3-psutil >= 3.2.2 Requires: python3-requests >= 2.23.0 Requires: python3-rfc3986 >= 1.2.0 Requires: python3-taskflow >= 3.8.0 Requires: python3-tooz >= 1.58.0 Requires: python3-os-service-types >= 1.7.0 Requires: python3-dateutil >= 2.6.0 Requires: python3-futurist >= 1.8.0 Requires: python3-decorator >= 4.1.0 Requires: python3-lxml >= 4.2.3 Requires: python3-ldap Requires: python3-memcached Requires: python3-migrate >= 0.13.0 Requires: python3-paste >= 2.0.2 Requires: python3-paste-deploy >= 1.5.0 Requires: python3-netifaces >= 0.10.4 Requires: python3-retrying >= 1.3.3 Requires: python3-yaml >= 5.1 %description -n python3-nova %{common_desc} This package contains the nova Python library. %package -n python3-nova-tests Summary: Nova tests %{?python_provide:%python_provide python3-nova-tests} Requires: openstack-nova = %{version}-%{release} %description -n python3-nova-tests %{common_desc} This package contains the nova Python library. %if 0%{?with_doc} %package doc Summary: Documentation for OpenStack Compute BuildRequires: graphviz # Required by build_sphinx for man and doc building BuildRequires: python3-openstackdocstheme BuildRequires: python3-sphinxcontrib-actdiag BuildRequires: python3-sphinxcontrib-seqdiag # Required to build module documents BuildRequires: python3-boto BuildRequires: python3-eventlet BuildRequires: python3-barbicanclient BuildRequires: python3-cinderclient BuildRequires: python3-keystoneclient BuildRequires: python3-neutronclient BuildRequires: python3-os-win BuildRequires: python3-oslo-config BuildRequires: python3-oslo-log BuildRequires: python3-oslo-messaging BuildRequires: python3-oslo-utils BuildRequires: python3-rfc3986 >= 1.1.0 BuildRequires: python3-routes BuildRequires: python3-sphinx BuildRequires: python3-sphinxcontrib-actdiag BuildRequires: python3-sphinxcontrib-seqdiag BuildRequires: python3-sqlalchemy BuildRequires: python3-webob BuildRequires: python3-iso8601 BuildRequires: python3-redis BuildRequires: python3-zmq BuildRequires: python3-sqlalchemy-migrate %description doc %{common_desc} This package contains documentation files for nova. %endif %prep %autosetup -n nova-%{upstream_version} find . \( -name .gitignore -o -name .placeholder \) -delete 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 %build 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 %{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 # 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 # 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 # 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 test "$name" && test "$value" || continue sed -i "0,/^# *$name=/{s!^# *$name=.*!#$name=$value!}" etc/nova/nova.conf.sample done < %{SOURCE1} %install %{py3_install} export PYTHONPATH=. %if 0%{?with_doc} sphinx-build -b html doc/source doc/build/html rm -rf doc/build/html/.{doctrees,buildinfo} %endif %if 0%{?with_doc} sphinx-build -b man doc/source doc/build/man mkdir -p %{buildroot}%{_mandir}/man1 install -p -D -m 644 doc/build/man/*.1 %{buildroot}%{_mandir}/man1/ %endif # Setup directories install -d -m 755 %{buildroot}%{_sharedstatedir}/nova install -d -m 755 %{buildroot}%{_sharedstatedir}/nova/buckets install -d -m 755 %{buildroot}%{_sharedstatedir}/nova/instances install -d -m 755 %{buildroot}%{_sharedstatedir}/nova/keys install -d -m 755 %{buildroot}%{_sharedstatedir}/nova/networks install -d -m 755 %{buildroot}%{_sharedstatedir}/nova/tmp install -d -m 750 %{buildroot}%{_localstatedir}/log/nova install -d -m 700 %{buildroot}%{_sharedstatedir}/nova/.ssh # Install config files install -d -m 755 %{buildroot}%{_sysconfdir}/nova 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/rootwrap.conf %{buildroot}%{_sysconfdir}/nova/rootwrap.conf install -p -D -m 640 etc/nova/api-paste.ini %{buildroot}%{_sysconfdir}/nova/api-paste.ini install -d -m 755 %{buildroot}%{_sysconfdir}/nova/migration install -p -D -m 600 %{SOURCE38} %{buildroot}%{_sysconfdir}/nova/migration/identity install -p -D -m 644 %{SOURCE39} %{buildroot}%{_sysconfdir}/nova/migration/authorized_keys install -p -D -m 640 %{SOURCE40} %{buildroot}%{_sysconfdir}/nova/migration/rootwrap.conf 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 empty policy.json file to cover rpm updates with untouched policy files. install -p -D -m 640 %{SOURCE34} %{buildroot}%{_sysconfdir}/nova/policy.json # Install version info file cat > %{buildroot}%{_sysconfdir}/nova/release < os_xenapi/client.py </dev/null || groupadd -r nova --gid 162 if ! getent passwd nova >/dev/null; then useradd -u 162 -r -g nova -G nova,nobody -d %{_sharedstatedir}/nova -s /sbin/nologin -c "OpenStack Nova Daemons" nova fi exit 0 %pre compute usermod -a -G qemu nova usermod -a -G libvirt nova %pre migration getent group nova_migration >/dev/null || groupadd -r nova_migration getent passwd nova_migration >/dev/null || \ useradd -r -g nova_migration -d / -s /bin/bash -c "OpenStack Nova Migration" nova_migration exit 0 %post compute %systemd_post %{name}-compute.service %post scheduler %systemd_post %{name}-scheduler.service %post api %systemd_post %{name}-api.service %{name}-metadata-api.service %{name}-os-compute-api.service %post conductor %systemd_post %{name}-conductor.service %post novncproxy %systemd_post %{name}-novncproxy.service %post spicehtml5proxy %systemd_post %{name}-spicehtml5proxy.service %post serialproxy %systemd_post %{name}-serialproxy.service %preun compute %systemd_preun %{name}-compute.service %preun scheduler %systemd_preun %{name}-scheduler.service %preun api %systemd_preun %{name}-api.service %{name}-metadata-api.service %{name}-os-compute-api.service %preun conductor %systemd_preun %{name}-conductor.service %preun novncproxy %systemd_preun %{name}-novncproxy.service %preun spicehtml5proxy %systemd_preun %{name}-spicehtml5proxy.service %preun serialproxy %systemd_preun %{name}-serialproxy.service %postun compute %systemd_postun_with_restart %{name}-compute.service %postun scheduler %systemd_postun_with_restart %{name}-scheduler.service %postun api %systemd_postun_with_restart %{name}-api.service %{name}-metadata-api.service %{name}-os-compute-api.service %postun conductor %systemd_postun_with_restart %{name}-conductor.service %postun novncproxy %systemd_postun_with_restart %{name}-novncproxy.service %postun spicehtml5proxy %systemd_postun_with_restart %{name}-spicehtml5proxy.service %postun serialproxy %systemd_postun_with_restart %{name}-serialproxy.service %files %files common -f nova.lang %license LICENSE %doc etc/nova/policy.yaml.sample %dir %{_datarootdir}/nova %attr(-, root, nova) %{_datarootdir}/nova/nova-dist.conf %{_datarootdir}/nova/interfaces.template %dir %{_sysconfdir}/nova %{_sysconfdir}/nova/release %config(noreplace) %attr(-, root, nova) %{_sysconfdir}/nova/nova.conf %config(noreplace) %attr(-, root, nova) %{_sysconfdir}/nova/api-paste.ini %config(noreplace) %attr(-, root, nova) %{_sysconfdir}/nova/rootwrap.conf %config(noreplace) %attr(-, root, nova) %{_sysconfdir}/nova/policy.json %config(noreplace) %{_sysconfdir}/logrotate.d/openstack-nova %config(noreplace) %{_sysconfdir}/sudoers.d/nova %dir %attr(0750, nova, root) %{_localstatedir}/log/nova %dir %attr(0755, nova, root) %{_localstatedir}/run/nova %{_bindir}/nova-manage %{_bindir}/nova-policy %{_bindir}/nova-rootwrap %{_bindir}/nova-rootwrap-daemon %{_bindir}/nova-status %if 0%{?with_doc} %{_mandir}/man1/nova*.1.gz %endif %defattr(-, nova, nova, -) %dir %{_sharedstatedir}/nova %dir %{_sharedstatedir}/nova/buckets %dir %{_sharedstatedir}/nova/instances %dir %{_sharedstatedir}/nova/keys %dir %{_sharedstatedir}/nova/networks %dir %{_sharedstatedir}/nova/tmp %files compute %{_bindir}/nova-compute %{_unitdir}/openstack-nova-compute.service %{_datarootdir}/nova/rootwrap/compute.filters %files scheduler %{_bindir}/nova-scheduler %{_unitdir}/openstack-nova-scheduler.service %files api %{_bindir}/nova-api* %{_bindir}/nova-metadata-wsgi %{_unitdir}/openstack-nova-*api.service %files conductor %{_bindir}/nova-conductor %{_unitdir}/openstack-nova-conductor.service %files novncproxy %{_bindir}/nova-novncproxy %{_unitdir}/openstack-nova-novncproxy.service %config(noreplace) %{_sysconfdir}/sysconfig/openstack-nova-novncproxy %files spicehtml5proxy %{_bindir}/nova-spicehtml5proxy %{_unitdir}/openstack-nova-spicehtml5proxy.service %files serialproxy %{_bindir}/nova-serialproxy %{_unitdir}/openstack-nova-serialproxy.service %files migration %{_bindir}/nova-migration-wrapper %config(noreplace) %{_sysconfdir}/sudoers.d/nova_migration %dir %attr(0700, nova, nova) %{_sharedstatedir}/nova/.ssh %attr(0600, nova, nova) %{_sharedstatedir}/nova/.ssh/config %dir %{_sysconfdir}/nova/migration %config(noreplace) %attr(0640, root, nova_migration) %{_sysconfdir}/nova/migration/authorized_keys %config(noreplace) %attr(0600, nova, nova) %{_sysconfdir}/nova/migration/identity %config(noreplace) %attr(0640, root, root) %{_sysconfdir}/nova/migration/rootwrap.conf %dir %{_sysconfdir}/nova/migration/rootwrap.d %config(noreplace) %attr(0640, root, root) %{_sysconfdir}/nova/migration/rootwrap.d/cold_migration.filters %files -n python3-nova %license LICENSE %{python3_sitelib}/nova %{python3_sitelib}/nova-*.egg-info %exclude %{python3_sitelib}/nova/tests %files -n python3-nova-tests %license LICENSE %{python3_sitelib}/nova/tests %if 0%{?with_doc} %files doc %license LICENSE %doc doc/build/html %endif %changelog * Tue Aug 24 2021 wangxiyuan - 23.0.1-2 - Drop lxc related requires. * Fri Jul 23 2021 liksh 23.0.1-1 - Update to 23.0.1 * Sat Feb 20 2021 wangxiyuan - Fix require issue * Fri Jan 15 2021 joec88 - openEuler build version