diff --git a/nova-22.0.0.tar.gz b/nova-17.0.13.tar.gz similarity index 50% rename from nova-22.0.0.tar.gz rename to nova-17.0.13.tar.gz index c88bb5970d0ee4e8f891b11d559ff92dac5e0eab..40fbed1b31ed2bc142f1422332a1f83512df943b 100644 Binary files a/nova-22.0.0.tar.gz and b/nova-17.0.13.tar.gz differ diff --git a/nova-dist.conf b/nova-dist.conf index a749bbeb9d4be940effaf1d46a8208888b09bf96..6c793ab360117bbbf5873b7bdd37b175a61dc451 100644 --- a/nova-dist.conf +++ b/nova-dist.conf @@ -2,6 +2,10 @@ log_dir = /var/log/nova state_path = /var/lib/nova lock_path = /var/lib/nova/tmp +dhcpbridge = /usr/bin/nova-dhcpbridge +dhcpbridge_flagfile = /usr/share/nova/nova-dist.conf +dhcpbridge_flagfile = /etc/nova/nova.conf +force_dhcp_release = True injected_network_template = /usr/share/nova/interfaces.template libvirt_nonblocking = True libvirt_inject_partition = -1 diff --git a/nova-placement-api.conf b/nova-placement-api.conf new file mode 100644 index 0000000000000000000000000000000000000000..fe8c3ad27a9a8e83c5bcf027219f3f8265f457f9 --- /dev/null +++ b/nova-placement-api.conf @@ -0,0 +1,25 @@ +Listen 8778 + + + WSGIProcessGroup nova-placement-api + WSGIApplicationGroup %{GLOBAL} + WSGIPassAuthorization On + WSGIDaemonProcess nova-placement-api processes=3 threads=1 user=nova group=nova + WSGIScriptAlias / /usr/bin/nova-placement-api + = 2.4> + ErrorLogFormat "%M" + + ErrorLog /var/log/nova/nova-placement-api.log + #SSLEngine On + #SSLCertificateFile ... + #SSLCertificateKeyFile ... + + +Alias /nova-placement-api /usr/bin/nova-placement-api + + SetHandler wsgi-script + Options +ExecCGI + WSGIProcessGroup nova-placement-api + WSGIApplicationGroup %{GLOBAL} + WSGIPassAuthorization On + \ No newline at end of file diff --git a/openstack-nova-cells.service b/openstack-nova-cells.service new file mode 100644 index 0000000000000000000000000000000000000000..32a8ef94ca7a328467d07042d582113bcd3ed58f --- /dev/null +++ b/openstack-nova-cells.service @@ -0,0 +1,15 @@ +[Unit] +Description=OpenStack Nova Cells Server +After=syslog.target network.target + +[Service] +Type=notify +NotifyAccess=all +TimeoutStartSec=0 +Restart=always +User=nova +ExecStart=/usr/bin/nova-cells + +[Install] +WantedBy=multi-user.target + diff --git a/openstack-nova-console.service b/openstack-nova-console.service new file mode 100644 index 0000000000000000000000000000000000000000..e88cf69ad4721d1776c2399a64fc022845222c1c --- /dev/null +++ b/openstack-nova-console.service @@ -0,0 +1,15 @@ +[Unit] +Description=OpenStack Nova Console Proxy Server +After=syslog.target network.target + +[Service] +Type=notify +NotifyAccess=all +TimeoutStartSec=0 +Restart=always +User=nova +ExecStart=/usr/bin/nova-console + +[Install] +WantedBy=multi-user.target + diff --git a/openstack-nova-consoleauth.service b/openstack-nova-consoleauth.service new file mode 100644 index 0000000000000000000000000000000000000000..25abf29d22db48e6eebf3ecb9f7552bcc7d77a9c --- /dev/null +++ b/openstack-nova-consoleauth.service @@ -0,0 +1,15 @@ +[Unit] +Description=OpenStack Nova VNC console auth Server +After=syslog.target network.target + +[Service] +Type=notify +NotifyAccess=all +TimeoutStartSec=0 +Restart=always +User=nova +ExecStart=/usr/bin/nova-consoleauth + +[Install] +WantedBy=multi-user.target + diff --git a/openstack-nova-network.service b/openstack-nova-network.service new file mode 100644 index 0000000000000000000000000000000000000000..d707d31c6926c28c3ec9f615af93de4263b425cc --- /dev/null +++ b/openstack-nova-network.service @@ -0,0 +1,18 @@ +[Unit] +Description=OpenStack Nova Network Server +After=syslog.target network.target + +[Service] +Type=notify +NotifyAccess=all +TimeoutStartSec=0 +Restart=always +User=nova +ExecStart=/usr/bin/nova-network + +# Don't kill dnsmasq on shutdown (#805947) +KillMode=process + +[Install] +WantedBy=multi-user.target + diff --git a/openstack-nova-xvpvncproxy.service b/openstack-nova-xvpvncproxy.service new file mode 100644 index 0000000000000000000000000000000000000000..07df7883490f1ef71164ec8df09cec0f42f1b0dc --- /dev/null +++ b/openstack-nova-xvpvncproxy.service @@ -0,0 +1,13 @@ +[Unit] +Description=OpenStack Nova XVP VncProxy Server +After=syslog.target network.target + +[Service] +Type=simple +User=nova +ExecStart=/usr/bin/nova-xvpvncproxy +Restart=on-failure + +[Install] +WantedBy=multi-user.target + diff --git a/openstack-nova.spec b/openstack-nova.spec index a42be9566b3a23a9d38893133d7dbb062864d627..227cee856c3c7a24d7fe5576ebc6c3e180733e95 100644 --- a/openstack-nova.spec +++ b/openstack-nova.spec @@ -1,32 +1,54 @@ %{!?upstream_version: %global upstream_version %{version}%{?milestone}} %global with_doc 0 -%global distro openEuler -%global qemu_version 3.1.0 -%global libvirt_version 5.0.0 +%global with_trans %{!?_without_trans:1}%{?_without_trans:0} +%global distro openEuler + +%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 -Epoch: 1 -Version: 22.0.0 -Release: 2%{?dist} +# Liberty semver reset +# https://review.openstack.org/#/q/I6a35fa0dda798fad93b804d00a46af80f08d475c,n,z +Version: 17.0.13 +Release: 2 Summary: OpenStack Compute (nova) + License: Apache-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 +Source13: openstack-nova-network.service Source15: openstack-nova-scheduler.service +Source18: openstack-nova-xvpvncproxy.service +Source19: openstack-nova-console.service +Source20: openstack-nova-consoleauth.service Source25: openstack-nova-metadata-api.service Source26: openstack-nova-conductor.service +Source27: openstack-nova-cells.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 +Source33: nova-placement-api.conf Source34: policy.json + Source35: nova_migration-sudoers Source36: nova-ssh-config Source37: nova-migration-wrapper @@ -34,304 +56,389 @@ Source38: nova_migration_identity Source39: nova_migration_authorized_keys Source40: nova_migration-rootwrap.conf Source41: nova_migration-rootwrap_cold_migration -BuildArch: noarch +BuildArch: noarch BuildRequires: openstack-macros BuildRequires: intltool -BuildRequires: python3-devel +BuildRequires: python2-devel BuildRequires: git -BuildRequires: python3-oslo-cache -BuildRequires: python3-os-traits -BuildRequires: python3-setuptools -BuildRequires: python3-netaddr -BuildRequires: python3-pbr -BuildRequires: python3-pip -BuildRequires: python3-six -BuildRequires: python3-oslo-i18n -BuildRequires: python3-cryptography >= 2.1 -BuildRequires: python3-oslo-policy -BuildRequires: python3-barbicanclient -BuildRequires: python3-ddt -BuildRequires: python3-ironicclient -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 = %{epoch}:%{version}-%{release} -Requires: openstack-nova-scheduler = %{epoch}:%{version}-%{release} -Requires: openstack-nova-api = %{epoch}:%{version}-%{release} -Requires: openstack-nova-conductor = %{epoch}:%{version}-%{release} -Requires: openstack-nova-novncproxy = %{epoch}:%{version}-%{release} -Requires: openstack-nova-migration = %{epoch}:%{version}-%{release} +BuildRequires: python2-sphinx +BuildRequires: python2-oslo-cache +BuildRequires: python2-openstackdocstheme +BuildRequires: python2-os-traits +BuildRequires: python2-setuptools +BuildRequires: python2-netaddr +BuildRequires: python2-pbr +#BuildRequires: python2-d2to1 +BuildRequires: python2-six +BuildRequires: python2-oslo-i18n +BuildRequires: python2-cryptography >= 1.6 +BuildRequires: python2-oslo-policy +# Required for unit tests +BuildRequires: python2-barbicanclient +BuildRequires: python2-ddt +BuildRequires: python2-ironicclient +BuildRequires: python2-mox3 +BuildRequires: python2-os-testr +BuildRequires: python2-os-vif +BuildRequires: python2-oslo-rootwrap +BuildRequires: python2-oslotest +BuildRequires: python2-osprofiler +BuildRequires: python2-requests-mock +BuildRequires: python2-subunit +BuildRequires: python2-testrepository +BuildRequires: python2-testresources +BuildRequires: python2-testscenarios +BuildRequires: python2-tooz +BuildRequires: python2-oslo-vmware +BuildRequires: python2-cursive +BuildRequires: python2-os-service-types +# Required by build_sphinx for man and doc building +# BuildRequires: python2-sphinxcontrib-actdiag +# BuildRequires: python2-sphinxcontrib-seqdiag + +Requires: openstack-nova-compute = %{version}-%{release} +Requires: openstack-nova-scheduler = %{version}-%{release} +Requires: openstack-nova-api = %{version}-%{release} +Requires: openstack-nova-network = %{version}-%{release} +Requires: openstack-nova-conductor = %{version}-%{release} +Requires: openstack-nova-console = %{version}-%{release} +Requires: openstack-nova-cells = %{version}-%{release} +Requires: openstack-nova-novncproxy = %{version}-%{release} +Requires: openstack-nova-placement-api = %{version}-%{release} +Requires: openstack-nova-migration = %{version}-%{release} + + %description -OpenStack Compute (Nova) +%{common_desc} %package common Summary: Components common to all OpenStack Nova services -Obsoletes: openstack-nova-cert <= 1:16.0.0-1 -Obsoletes: openstack-nova-cells < 1:20.0.0 -Requires: python3-nova = %{epoch}:%{version}-%{release} -%{?systemd_ordering} +Obsoletes: openstack-nova-cert <= 16.0.0-1 + +Requires: python2-nova = %{version}-%{release} +%{?systemd_requires} Requires(pre): shadow-utils BuildRequires: systemd -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 -BuildRequires: python3-babel -BuildRequires: python3-lxml -BuildRequires: python3-websockify >= 0.9.0 +# Required to build nova.conf.sample +BuildRequires: python2-castellan >= 0.16.0 +BuildRequires: python2-glanceclient +BuildRequires: python2-keystonemiddleware +BuildRequires: python2-lxml +BuildRequires: python2-microversion-parse >= 0.1.3 +BuildRequires: python2-os-brick +BuildRequires: python2-oslo-db +BuildRequires: python2-oslo-reports +BuildRequires: python2-oslo-service +BuildRequires: python2-oslo-versionedobjects +BuildRequires: python2-paramiko +BuildRequires: python2-websockify +# Required to compile translation files +BuildRequires: python2-babel + +# remove old service subpackage +Obsoletes: %{name}-objectstore %description common -OpenStack Compute (Nova) +%{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 = %{epoch}:%{version}-%{release} + +Requires: openstack-nova-common = %{version}-%{release} Requires: curl Requires: iscsi-initiator-utils Requires: iptables Requires: iptables-services Requires: ipmitool +Requires: python-libguestfs +Requires: libvirt-python +Requires: libvirt-daemon-kvm Requires: /usr/bin/virsh +%if 0%{?rhel}==0 +Requires: libvirt-daemon-lxc +%endif Requires: openssh-clients Requires: rsync Requires: lvm2 -Requires: python3-cinderclient >= 3.3.0 +Requires: python2-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(pre): qemu >= 2.10.0 +Requires(pre): libvirt-python >= 3.9.0 +Requires(pre): libvirt-daemon-kvm >= 3.9.0 +Requires: bridge-utils Requires: sg3_utils Requires: sysfsutils Requires: libosinfo -Requires: python3-libguestfs -Requires: python3-libvirt %description compute -OpenStack Compute (Nova) +%{common_desc} + This package contains the Nova service for controlling Virtual Machines. + +%package network +Summary: OpenStack Nova Network control service + +Requires: openstack-nova-common = %{version}-%{release} +Requires: radvd +Requires: bridge-utils +Requires: dnsmasq +Requires: dnsmasq-utils +Requires: ebtables +Requires: conntrack-tools + +%description network +%{common_desc} + +This package contains the Nova service for controlling networking. + + %package scheduler Summary: OpenStack Nova VM distribution service -Requires: openstack-nova-common = %{epoch}:%{version}-%{release} + +Requires: openstack-nova-common = %{version}-%{release} %description scheduler -OpenStack Compute (Nova) +%{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 = %{epoch}:%{version}-%{release} -Requires: python3-cinderclient >= 3.3.0 + +Requires: openstack-nova-common = %{version}-%{release} +Requires: python2-cinderclient >= 3.3.0 %description api -OpenStack Compute (Nova) +%{common_desc} + This package contains the Nova services providing programmatic access. %package conductor Summary: OpenStack Nova Conductor services -Requires: openstack-nova-common = %{epoch}:%{version}-%{release} + +Requires: openstack-nova-common = %{version}-%{release} %description conductor -OpenStack Compute (Nova) +%{common_desc} + This package contains the Nova services providing database access for the compute service +%package console +Summary: OpenStack Nova console access services + +Requires: openstack-nova-common = %{version}-%{release} +Requires: python2-websockify >= 0.8.0 + +%description console +%{common_desc} + +This package contains the Nova services providing +console access services to Virtual Machines. + +%package cells +Summary: OpenStack Nova Cells services + +Requires: openstack-nova-common = %{version}-%{release} + +%description cells +%{common_desc} + +This package contains the Nova Cells service providing additional +scaling and (geographic) distribution for compute services. + %package novncproxy Summary: OpenStack Nova noVNC proxy service -Requires: openstack-nova-common = %{epoch}:%{version}-%{release} + +Requires: openstack-nova-common = %{version}-%{release} Requires: novnc -Requires: python3-websockify >= 0.9.0 +Requires: python2-websockify >= 0.8.0 + %description novncproxy -OpenStack Compute (Nova) +%{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 = %{epoch}:%{version}-%{release} -Requires: python3-websockify >= 0.9.0 + +Requires: openstack-nova-common = %{version}-%{release} +Requires: python2-websockify >= 0.8.0 %description spicehtml5proxy -OpenStack Compute (Nova) +%{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 = %{epoch}:%{version}-%{release} -Requires: python3-websockify >= 0.9.0 + +Requires: openstack-nova-common = %{version}-%{release} +Requires: python2-websockify >= 0.8.0 %description serialproxy -OpenStack Compute (Nova) +%{common_desc} + This package contains the Nova services providing the serial console access service to Virtual Machines. +%package placement-api +Summary: OpenStack Nova Placement APIservice + +Requires: openstack-nova-common = %{version}-%{release} +Requires: httpd +Requires: python2-mod_wsgi + +%description placement-api +%{common_desc} + +This package contains the Nova placement service, which will initially +allow for the management of resource providers. + %package migration Summary: OpenStack Nova Migration -Requires: openstack-nova-compute = %{epoch}:%{version}-%{release} + +Requires: openstack-nova-compute = %{version}-%{release} %description migration -OpenStack Compute (Nova) +%{common_desc} + This package contains scripts and config to support VM migration in Nova. -%package -n python3-nova +%package -n python2-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.22.0 -Requires: python3-iso8601 >= 0.1.11 -Requires: python3-netaddr >= 0.7.18 -Requires: python3-boto -Requires: python3-stevedore >= 1.20.0 -Requires: python3-sqlalchemy -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 -Requires: python3-jsonschema >= 2.6.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 >= 3.1.0 -Requires: python3-os-resource-classes >= 0.4.0 -Requires: python3-os-traits >= 2.4.0 -Requires: python3-oslo-cache >= 1.26.0 -Requires: python3-oslo-concurrency >= 3.29.0 -Requires: python3-oslo-config >= 6.8.0 -Requires: python3-oslo-context >= 2.22.0 -Requires: python3-oslo-db >= 4.44.0 -Requires: python3-oslo-i18n >= 3.15.3 -Requires: python3-oslo-log >= 3.36.0 -Requires: python3-oslo-messaging >= 10.3.0 -Requires: python3-oslo-middleware >= 3.31.0 -Requires: python3-oslo-policy >= 3.4.0 -Requires: python3-oslo-privsep >= 1.33.2 -Requires: python3-oslo-reports >= 1.18.0 -Requires: python3-oslo-rootwrap >= 5.8.0 -Requires: python3-oslo-serialization >= 2.21.1 -Requires: python3-oslo-service >= 1.40.1 -Requires: python3-oslo-upgradecheck >= 0.1.1 -Requires: python3-oslo-utils >= 4.5.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 -Requires: python3-prettytable >= 0.7.1 -Requires: python3-psutil -Requires: python3-requests >= 2.22.0 -Requires: python3-rfc3986 >= 1.2.0 -Requires: python3-six >= 1.11.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.5.3 -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-sqlalchemy-migrate >= 0.13.0 -Requires: python3-paste -Requires: python3-paste-deploy >= 1.5.0 -Requires: python3-netifaces >= 0.10.4 -Requires: python3-retrying -%if 0%{?rhel} == 8 -Requires: python3-PyYAML -%else -Requires: python3-PyYAML >= 3.13 -%endif -%description -n python3-nova -OpenStack Compute (Nova) +Requires: python2-paramiko >= 2.0 + +Requires: python2-decorator >= 3.4.0 +Requires: python2-enum34 +Requires: python2-eventlet >= 0.18.2 +Requires: python2-iso8601 >= 0.1.11 +Requires: python2-netaddr >= 0.7.18 +Requires: python2-lxml >= 3.2.1 +Requires: python2-boto +Requires: python2-ldap +Requires: python2-stevedore >= 1.20.0 + +Requires: python2-memcached + +Requires: python2-sqlalchemy >= 1.0.10 +Requires: python2-sqlalchemy-migrate >= 0.11.0 +Requires: python2-alembic >= 0.8.0 + +Requires: python2-paste +Requires: python2-paste-deploy >= 1.5.0 +Requires: python2-routes >= 2.3.1 +Requires: python2-webob >= 1.7.1 + +Requires: python2-babel >= 2.3.4 +Requires: python2-castellan >= 0.16.0 +Requires: python2-cryptography >= 1.6 +Requires: python2-cursive >= 0.2.1 +Requires: python2-glanceclient >= 2.8.0 +Requires: python2-greenlet >= 0.4.10 +Requires: python2-keystonemiddleware >= 4.17.0 +Requires: python2-keystoneauth1 >= 3.3.0 +Requires: python2-jinja2 +Requires: python2-jsonschema >= 2.6.0 +Requires: python2-microversion-parse >= 0.1.2 +Requires: python2-netifaces >= 0.10.4 +Requires: python2-neutronclient >= 6.3.0 +Requires: python2-novaclient >= 2.30.1 +Requires: python2-os-brick >= 2.2.0 +Requires: python2-os-traits +Requires: python2-oslo-cache >= 1.26.0 +Requires: python2-oslo-concurrency >= 3.25.0 +Requires: python2-oslo-config >= 5.1.0 +Requires: python2-oslo-context >= 2.19.2 +Requires: python2-oslo-db >= 4.27.0 +Requires: python2-oslo-i18n >= 3.15.3 +Requires: python2-oslo-log >= 3.36.0 +Requires: python2-oslo-messaging >= 5.29.0 +Requires: python2-oslo-middleware >= 3.31.0 +Requires: python2-oslo-policy >= 1.30.0 +Requires: python2-oslo-privsep >= 1.23.0 +Requires: python2-oslo-reports >= 1.18.0 +Requires: python2-oslo-rootwrap >= 5.8.0 +Requires: python2-oslo-serialization >= 2.18.0 +Requires: python2-oslo-service >= 1.24.0 +Requires: python2-oslo-utils >= 3.33.0 +Requires: python2-oslo-versionedobjects >= 1.31.2 +Requires: python2-os-vif >= 1.7.0 +Requires: python2-oslo-vmware >= 1.16.0 +Requires: python2-pbr +Requires: python2-prettytable >= 0.7.1 +Requires: python2-psutil +Requires: python2-requests >= 2.14.2 +Requires: python2-rfc3986 >= 0.3.1 +Requires: python2-six >= 1.10.0 +Requires: python2-taskflow >= 2.16.0 +Requires: python2-tooz >= 1.58.0 +Requires: python2-os-service-types >= 1.1.0 + +%description -n python2-nova +%{common_desc} + This package contains the nova Python library. -%package -n python3-nova-tests +%package -n python2-nova-tests Summary: Nova tests -%{?python_provide:%python_provide python3-nova-tests} -Requires: openstack-nova = %{epoch}:%{version}-%{release} +Requires: python2-nova = %{version}-%{release} + +%description -n python2-nova-tests +%{common_desc} -%description -n python3-nova-tests -OpenStack Compute (Nova) This package contains the nova Python library. %if 0%{?with_doc} %package doc Summary: Documentation for OpenStack Compute + BuildRequires: graphviz -BuildRequires: python3-openstackdocstheme -BuildRequires: python3-sphinxcontrib-actdiag -BuildRequires: python3-sphinxcontrib-seqdiag -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 + +# Required to build module documents +BuildRequires: python2-boto +BuildRequires: python2-eventlet +BuildRequires: python2-barbicanclient +BuildRequires: python2-cinderclient +BuildRequires: python2-keystoneclient +BuildRequires: python2-neutronclient +# BuildRequires: python2-os-win +BuildRequires: python2-oslo-config +BuildRequires: python2-oslo-log +BuildRequires: python2-oslo-messaging +BuildRequires: python2-oslo-utils +BuildRequires: python2-redis +BuildRequires: python2-rfc3986 >= 0.2.2 +BuildRequires: python2-routes +# BuildRequires: python2-sphinxcontrib-actdiag +# BuildRequires: python2-sphinxcontrib-seqdiag +BuildRequires: python2-sqlalchemy +BuildRequires: python2-webob +# BuildRequires: python2-zmq +# while not strictly required, quiets the build down when building docs. +BuildRequires: python2-sqlalchemy-migrate, python2-iso8601 %description doc -OpenStack Compute (Nova) +%{common_desc} + This package contains documentation files for nova. %endif @@ -339,38 +446,59 @@ This package contains documentation files for nova. %autosetup -n nova-%{upstream_version} -S git 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} -%{__python3} setup.py compile_catalog -d build/lib/nova/locale -D nova +%{__python2} setup.py build + +# Generate i18n files +# (amoralej) we can remove '-D nova' once https://review.openstack.org/#/c/439500/ is merged +%{__python2} 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} +%{__python2} setup.py install -O1 --skip-build --root %{buildroot} -export PYTHONPATH=. %if 0%{?with_doc} -sphinx-build -b html doc/source doc/build/html +sphinx-build-2 -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 +sphinx-build-2 -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 @@ -379,19 +507,25 @@ 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 -p -D -m 640 %{SOURCE33} %{buildroot}%{_sysconfdir}/httpd/conf.d/00-nova-placement-api.conf 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_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 network +%systemd_post %{name}-network.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 console +%systemd_post %{name}-console.service %{name}-consoleauth.service %{name}-xvpvncproxy.service +%post cells +%systemd_post %{name}-cells.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 network +%systemd_preun %{name}-network.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 console +%systemd_preun %{name}-console.service %{name}-consoleauth.service %{name}-xvpvncproxy.service +%preun cells +%systemd_preun %{name}-cells.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 network +%systemd_postun_with_restart %{name}-network.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 console +%systemd_postun_with_restart %{name}-console.service %{name}-consoleauth.service %{name}-xvpvncproxy.service +%postun cells +%systemd_postun_with_restart %{name}-cells.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 +%{_datarootdir}/nova/rootwrap/network.filters %dir %{_sysconfdir}/nova %{_sysconfdir}/nova/release %config(noreplace) %attr(-, root, nova) %{_sysconfdir}/nova/nova.conf @@ -551,6 +739,11 @@ exit 0 %{_unitdir}/openstack-nova-compute.service %{_datarootdir}/nova/rootwrap/compute.filters +%files network +%{_bindir}/nova-network +%{_bindir}/nova-dhcpbridge +%{_unitdir}/openstack-nova-network.service + %files scheduler %{_bindir}/nova-scheduler %{_unitdir}/openstack-nova-scheduler.service @@ -559,11 +752,22 @@ exit 0 %{_bindir}/nova-api* %{_bindir}/nova-metadata-wsgi %{_unitdir}/openstack-nova-*api.service +%{_datarootdir}/nova/rootwrap/api-metadata.filters %files conductor %{_bindir}/nova-conductor %{_unitdir}/openstack-nova-conductor.service +%files console +%{_bindir}/nova-console* +%{_bindir}/nova-xvpvncproxy +%{_unitdir}/openstack-nova-console*.service +%{_unitdir}/openstack-nova-xvpvncproxy.service + +%files cells +%{_bindir}/nova-cells +%{_unitdir}/openstack-nova-cells.service + %files novncproxy %{_bindir}/nova-novncproxy %{_unitdir}/openstack-nova-novncproxy.service @@ -577,6 +781,10 @@ exit 0 %{_bindir}/nova-serialproxy %{_unitdir}/openstack-nova-serialproxy.service +%files placement-api +%config(noreplace) %{_sysconfdir}/httpd/conf.d/00-nova-placement-api.conf +%{_bindir}/nova-placement-api + %files migration %{_bindir}/nova-migration-wrapper %config(noreplace) %{_sysconfdir}/sudoers.d/nova_migration @@ -589,15 +797,15 @@ exit 0 %dir %{_sysconfdir}/nova/migration/rootwrap.d %config(noreplace) %attr(0640, root, root) %{_sysconfdir}/nova/migration/rootwrap.d/cold_migration.filters -%files -n python3-nova +%files -n python2-nova %license LICENSE -%{python3_sitelib}/nova -%{python3_sitelib}/nova-*.egg-info -%exclude %{python3_sitelib}/nova/tests +%{python2_sitelib}/nova +%{python2_sitelib}/nova-*.egg-info +%exclude %{python2_sitelib}/nova/tests -%files -n python3-nova-tests +%files -n python2-nova-tests %license LICENSE -%{python3_sitelib}/nova/tests +%{python2_sitelib}/nova/tests %if 0%{?with_doc} %files doc @@ -606,8 +814,8 @@ exit 0 %endif %changelog -* Sat Feb 20 2021 wangxiyuan -- Fix require issue +* Tue Jun 08 2021 zhangfan +- Fix mod_wsgi Requires +* Fri May 28 2021 openstack-sig +- Package init -* Fri Jan 15 2021 joec88 -- openEuler build version