diff --git a/_service b/_service new file mode 100644 index 0000000..f973e85 --- /dev/null +++ b/_service @@ -0,0 +1,20 @@ + + + https://github.com/oVirt/vdsm + vdsm + @PARENT_TAG@~git@TAG_OFFSET@.%h + v4.50.5.1 + git + v4.50.5.1 + v(.*) + \1 + enable + + + + + vdsm-[0-9]*.tar + gz + + + diff --git a/_servicedata b/_servicedata new file mode 100644 index 0000000..4bc1837 --- /dev/null +++ b/_servicedata @@ -0,0 +1,4 @@ + + + https://github.com/oVirt/vdsm + c3596b5a4f824af553b70dbcdcba50aad4897df0 \ No newline at end of file diff --git a/system-user-vdsm.sysusers b/system-user-vdsm.sysusers new file mode 100644 index 0000000..bfaa74e --- /dev/null +++ b/system-user-vdsm.sysusers @@ -0,0 +1,8 @@ +u vdsm - Node Virtualization Manager" /var/lib/vdsm +m vdsm ovirtimg +m vdsm qemu +m vdsm sanlock +m vdsm kvm +m qemu cdrom +m ovirtimg qemu +m ovirtimg vdsm diff --git a/vdsm-4.50.5.1~git0.c3596b5a.obscpio b/vdsm-4.50.5.1~git0.c3596b5a.obscpio new file mode 100644 index 0000000..90868d5 Binary files /dev/null and b/vdsm-4.50.5.1~git0.c3596b5a.obscpio differ diff --git a/vdsm.changes b/vdsm.changes new file mode 100644 index 0000000..7bc85c7 --- /dev/null +++ b/vdsm.changes @@ -0,0 +1,5 @@ +------------------------------------------------------------------- +Fri May 17 13:58:14 UTC 2024 - jeffm@suse.com - 4.50.5.1 + +- Initial version 4.50.5.1. + diff --git a/vdsm.obsinfo b/vdsm.obsinfo new file mode 100644 index 0000000..13b013d --- /dev/null +++ b/vdsm.obsinfo @@ -0,0 +1,4 @@ +name: vdsm +version: 4.50.5.1~git0.c3596b5a +mtime: 1701243022 +commit: c3596b5a4f824af553b70dbcdcba50aad4897df0 diff --git a/vdsm.spec b/vdsm.spec new file mode 100644 index 0000000..a60d9ea --- /dev/null +++ b/vdsm.spec @@ -0,0 +1,1236 @@ +# SPDX-FileCopyrightText: Red Hat, Inc. +# SPDX-License-Identifier: GPL-2.0-or-later + +# Packages names +%global vdsm_name vdsm + +# Required users and groups +%global vdsm_user vdsm +%global vdsm_group kvm +%{!?qemu_user: %global qemu_user qemu} +%{!?qemu_group: %global qemu_group qemu} +%global snlk_group sanlock +%global snlk_user sanlock +%global cdrom_group cdrom +%global imageio_user ovirtimg +%global imageio_group ovirtimg + +# Features +%{!?with_ovirt_vmconsole: %global with_ovirt_vmconsole 1} +%{!?with_gluster_mgmt: %global with_gluster_mgmt 1} +%{!?with_hooks: %global with_hooks 1} +%{!?with_vhostmd: %global with_vhostmd 1} + + +%{!?vdsm_repo: %global vdsm_repo /rhev/data-center} + +%global gluster_version 6.0 + +# Default to skipping autoreconf. Distros can change just this one line +# (or provide a command-line override) if they backport any patches that +# touch configure.ac or Makefile.am. +%{!?enable_autotools:%global enable_autotools 0} + +# Required paths +%if 0%{?fedora} +%global _polkitdir %{_datadir}/polkit-1/rules.d +%else +%global _polkitdir %{_localstatedir}/lib/polkit-1/localauthority/10-vendor.d +%endif +%global _vdsm_log_dir %{_localstatedir}/log/%{vdsm_name} + +# Disable debuginfo package, since vdsm is a meta-package +%global debug_package %{nil} + +# RPM packaging guidelines require all files outside of '/usr/lib[64]/pythonX.X' +# to be compiled manually [1]. Some distros try to find '*.py' files outside of the aforementioned +# dirs and compile them for us, but using hard-coded '__python' macro, which points to Python 2. +# We opt-out of this behavior and do the compilation ourselves in 'install' stage. +# +# [1] https://docs.fedoraproject.org/en-US/packaging-guidelines/Python_Appendix/#manual-bytecompilation +%global _python_bytecompile_extra 0 + +Name: %{vdsm_name} +Version: 4.50.5.1 +Release: %{vdsm_release}%{?dist}%{?extra_release} +Summary: Virtual Desktop Server Manager + +Group: Applications/System +License: GPL-2.0-or-later +Url: http://www.ovirt.org/develop/developer-guide/vdsm/vdsm/ +Source0: https://github.com/oVirt/vdsm/releases/download/v%{version}/%{vdsm_name}-%{version}.tar.gz + +# Temporary +Patch100: configure-ver.patch +Patch101: cpuid-num-cpus.patch + + + +%{!?_licensedir:%global license %%doc} + +%if 0%{?rhel} >= 9 +# qemu-kvm is not available for ppc64le on RHEL 9 +ExcludeArch: ppc64le +%endif + +BuildRequires: openssl +BuildRequires: python3 +BuildRequires: python3-six >= 1.9.0 +BuildRequires: python3-dateutil +BuildRequires: python3-devel +BuildRequires: rpm-build +%if 0%{?fedora} +BuildRequires: systemd-units +%endif + +# Autotools BuildRequires +%if 0%{?enable_autotools} +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: util-linux +%endif + +%if 0%{?rhel} >= 8 +# we don't want BRP to change all our shebangs to platform-python +%undefine __brp_mangle_shebangs +%endif + +# Numactl is not available on s390[x] and ARM +%ifnarch s390 s390x %{arm} +Requires: numactl +%endif + +%ifarch x86_64 +Requires: python3-dmidecode +Requires: dmidecode +Requires: virt-v2v +%endif + +Requires: chrony +Requires: crontabs +Requires: which +Requires: sudo >= 1.7.3 +Requires: logrotate +Requires: lshw +Requires: lsof +Requires: ndctl +Requires: swtpm-tools +Requires: xz +Requires: python3-rpm +Requires: python3-six >= 1.9.0 +Requires: python3-requests +Requires: curl +Requires: %{name}-http = %{version}-%{release} +Requires: %{name}-jsonrpc = %{version}-%{release} +%if 0%{?rhel} >= 8 +Requires: safelease >= 1.0.1-1.el8ev +%else +Requires: safelease >= 1.0-7 +%endif +Requires: mom >= 0.5.14 +Requires: util-linux + +Obsoletes: %{name}-infra < 4.19 + +Requires: nfs-utils + +# For kvm2ovirt +Requires: ovirt-imageio-common +# For controlling /tickets +# 2.2.0-1 for https://bugzilla.redhat.com/1971182 +Requires: ovirt-imageio-daemon >= 2.2.0-1 + +%if %{with_ovirt_vmconsole} +Requires: ovirt-vmconsole >= 1.0.0-0 +%endif + +Requires: python3 >= 3.6 + +Requires: libvirt-client +Requires: libvirt-daemon-config-nwfilter +Requires: libvirt-lock-sanlock +# Zero-copy migrations, https://bugzilla.redhat.com/2089434 +Requires: libvirt-daemon-kvm >= 8.0.0-5.4.module+el8.6.0+16370+bb85faee +%if 0%{?centos} == 8 +Requires: python3-libvirt +%else +# VIR_MIGRATE_ZEROCOPY flag, https://bugzilla.redhat.com/2089434 +Requires: python3-libvirt >= 8.0.0-1.1.module+el8.6.0+16381+3abc475c +%endif + +# iscsi-intiator versions +Requires: iscsi-initiator-utils >= 6.2.0.873-21 + +%if 0%{?rhel} +# For https://bugzilla.redhat.com/1961752 +Requires: python3-sanlock >= 3.8.3-3 +Requires: sanlock >= 3.8.3-3 +%endif + +Requires: device-mapper-multipath + +# augeas + +%if 0%{?rhel} +Requires: python3-augeas +%endif + +# fence-agents + +%if 0%{?centos} +# TODO: Require 4.2.1-53+ when CentOS 8.3 is released +Requires: fence-agents-all +%else +# fence-agents package without telnet dependency +Requires: fence-agents-all >= 4.2.1-53 +%endif + +%if 0%{?fedora} +Requires: python3-augeas +%endif + +Requires: python3-policycoreutils +Requires: systemd >= 219-11 +Requires: initscripts >= 9.49.31 +Requires: cyrus-sasl-scram +%if 0%{?fedora} +# Required for solving bug 1575762 +Requires: lvm2 >= 2.02.177-5 +%else +# EL 8.1 baseline. +Requires: lvm2 >= 8:2.03 +%endif + +# EL 8.4 baseline +Requires: kernel >= 4.18.0-305 + +Requires: e2fsprogs +Requires: selinux-policy-targeted + +%if 0%{?fedora} +Requires: ed +Requires: sed +Requires: policycoreutils +Requires: python3-policycoreutils +%endif + +# qemu-kvm + +# Zero-copy migrations, https://bugzilla.redhat.com/2089434 +Requires: qemu-kvm >= 15:6.2.0-11.module+el8.6.0+16360+9e5d914e.4 + +# GlusterFS client-side RPMs needed for Gluster SD +%ifnarch ppc64le +Requires: glusterfs-cli >= %{gluster_version} +Requires: glusterfs-fuse >= %{gluster_version} +%endif + +Requires: psmisc >= 22.6-15 + +# Make sure we require sos version which includes VDSM plugin +%if 0%{?centos} || 0%{?fedora} +# Currently we are without sos VDSM plugin on CentOS/Fedora: +# - CentOS: When 7.7 is released, we also need to require 3.7-3+ +# - Fedora: When sos 3.7.1/3.8 is relased, we need to require it +Requires: sos +%else +# RHEL +%if 0%{?rhel} >= 8 +Requires: sos >= 3.7-1 +%else +Requires: sos >= 3.7-3 +%endif +%endif + +Requires: tree +Requires: dosfstools +%if 0%{?rhel} >= 9 +# xorriso replaced genisoimage on RHEL 9 +Requires: xorriso +%else +Requires: genisoimage +%endif +Requires: python3-libselinux +Requires: %{name}-python = %{version}-%{release} +Requires: libguestfs-tools-c + +Requires(post): /usr/sbin/saslpasswd2 + +%if 0%{?fedora} || 0%{?rhel} >= 8 +Requires(post): hostname +%else +# RHEL/CentOS 7 +Requires(post): /bin/hostname +%endif + +# SecureBoot & q35, supported by x86_64 and aarch64; no ppc64le support at +# the moment. +%ifarch x86_64 %{arm} +%if 0%{?rhel} +Requires: OVMF +%else +# fedora +Requires: edk2-ovmf +%endif +%endif + +Requires(pre): user(%vdsm_user) +Requires(pre): group(%vdsm_group) +Requires(pre): user(%qemu_user) +Requires(pre): group(%qemu_group) +Requires(pre): user(%imageio_user) +Requires(pre): group(%imageio_group) +Requires(pre): user(%snlk_user) +Requires(pre): group(%snlk_group) + +Conflicts: ovirt-hosted-engine-ha < 2.3.6 + +Conflicts: vdsm-hook-sriov +Obsoletes: vdsm-hook-vfio-mdev < %{version}-%{release} +Provides: vdsm-hook-vfio-mdev +Obsoletes: %{name}-hook-floppy < %{version}-%{release} +Obsoletes: %{name}-hook-numa < %{version}-%{release} +Obsoletes: %{name}-hook-pincpu < %{version}-%{release} +Obsoletes: %{name}-hook-vmdisk < %{version}-%{release} +Obsoletes: %{name}-hook-hostdev-scsi < %{version}-%{release} +Obsoletes: %{name}-hook-vmfex-dev < 4.40.70 + + +%description +The VDSM service is required by a Virtualization Manager to manage the +Linux hosts. VDSM manages and monitors the host's storage, memory and +networks as well as virtual machine creation, other host administration +tasks, statistics gathering, and log collection. + +%package http +Summary: VDSM http API +BuildArch: noarch +Provides: %{name}-xmlrpc = %{version}-%{release} +Requires: %{name}-python = %{version}-%{release} +Obsoletes: %{name}-xmlrpc < %{version}-%{release} + +%description http +A http interface for interacting with vdsmd when using OVF store image +download or upload. + +%package client +Summary: VDSM client +BuildArch: noarch +# A hack for unbreaking external packages that expect vdsm-cli. +Provides: %{name}-cli = %{version}-%{release} +Requires: %{name}-api = %{version}-%{release} +Requires: %{name}-yajsonrpc = %{version}-%{release} +Requires: %{name}-python = %{version}-%{release} +Obsoletes: %{name}-cli < %{version}-%{release} + +%description client +Access vdsm API from the command line. + +%package api +Summary: VDSM API +BuildArch: noarch +BuildRequires: python3-PyYAML +%endif + +%description api +Contains api schema files + +%package jsonrpc +Summary: VDSM API Server +BuildArch: noarch +Requires: %{name}-python = %{version}-%{release} +Requires: %{name}-api = %{version}-%{release} +Requires: %{name}-yajsonrpc = %{version}-%{release} +Obsoletes: %{name}-api < 4.16 + +%description jsonrpc +A Json-based RPC interface that serves as the protocol for libvdsm. + +%package yajsonrpc +Summary: JSON RPC server and client implementation +BuildArch: noarch +Requires: python3 >= 3.6 + +%description yajsonrpc +A JSON RPC server and client implementation. + +%package common +Summary: common VDSM python libraries, required by all subsystems +BuildArch: noarch +Requires: systemd +Requires: glibc +Requires: python3-dbus +Requires: python3-dateutil +Requires: python3-six >= 1.9.0 +%if 0%{?rhel} +Requires: python3-decorator +%endif +%if 0%{?fedora} +Requires: python3-decorator +%endif + +%description common +VDSM libraries that are imported by all subsystems + +%package network +Summary: VDSM network python libraries +Requires: NetworkManager-config-server +Requires: NetworkManager-ovs +Requires: ethtool +Requires: iproute +Requires: iproute-tc +%if 0%{?rhel} >= 9 +Requires: ovirt-openvswitch >= 2.17 +# Workaround for BZ#1966143 +Requires: ovirt-python-openvswitch >= 2.17 +%else +Requires: ovirt-openvswitch >= 2.15 +# Workaround for BZ#1966143 +Requires: ovirt-python-openvswitch >= 2.15 +%endif +Requires: nmstate >= 1.2.1-3 +%if 0%{?rhel} < 9 +Requires: nmstate-plugin-ovsdb +%endif +Requires: python3-libnmstate +Requires: libnl3 +Requires: lldpad +Requires: python3-six +Requires: python3-cryptography +Requires: %{name}-common = %{version}-%{release} + +%description network +VDSM network python libraries + +%package python +Summary: VDSM python libraries +Requires: %{name}-api = %{version}-%{release} +BuildArch: noarch +# Fix compatibility with gluster shard, https://bugzilla.redhat.com/1820283 +Requires: python3-ioprocess >= 1.4.1 +Requires: %{name}-common = %{version}-%{release} +Requires: %{name}-network = %{version}-%{release} + +%description python +Shared libraries between the various VDSM packages. + +%package hook-allocate_net +Summary: random_network allocation hook for VDSM +BuildArch: noarch +Requires: %{name} + +%description hook-allocate_net +VDSM hook used to allocate networks for vms in a random fashion + +%package hook-boot_hostdev +Summary: allows setting boot order for hostdev +BuildArch: noarch +Requires: %{name} + +%description hook-boot_hostdev +VDSM hook used to boot vms from passthrough devices via custom property + +%package hook-checkimages +Summary: Qcow2 disk image format check hook for VDSM +BuildArch: noarch +Requires: %{name} + +%description hook-checkimages +VDSM hook used to perform consistency check on a qcow2 format disk image +using the QEMU disk image utility. + +%package hook-checkips +Summary: Check connectivity from the host to designated IPs +Requires: %{name} + +%description hook-checkips +VDSM hook used to check connectivity from the host network to designated IPs + +%post hook-checkips +%systemd_post vdsm-checkips.service + +%preun hook-checkips +%systemd_preun vdsm-checkips.service + +%package hook-diskunmap +Summary: Activate UNMAP for disk/lun devices +BuildArch: noarch +Requires: qemu-kvm >= 1.5 + +%description hook-diskunmap +VDSM hooks which allow to activate disk UNMAP. + +%package hook-ethtool-options +Summary: Allow setting custom ethtool options for vdsm controlled nics +BuildArch: noarch +Requires: %{name} + +%description hook-ethtool-options +VDSM hook used for applying custom network properties that define ethtool +options for vdsm network nics + +%package hook-extra-ipv4-addrs +Summary: Set extra ipv4 addresses for vdsm networks. + +%description hook-extra-ipv4-addrs +This hook allows the user to set extra ipv4 +addresses for vdsm networks. + +%if %{with_vhostmd} +%package hook-vhostmd +Summary: VDSM hook set for interaction with vhostmd +BuildArch: noarch +Requires: vhostmd + +%description hook-vhostmd +VDSM hook to use vhostmd per VM according to Virtualization Manager requests. +%endif + +%package hook-faqemu +Summary: Fake qemu process for VDSM quality assurance +BuildArch: noarch +Requires: %{name} + +%description hook-faqemu +VDSM hook used for testing VDSM with multiple fake virtual machines without +running real guests. +To enable this hook on your host, set vars.fake_kvm_support=True in your +/etc/vdsm/vdsm.conf before adding the host to ovirt-Engine. + +%package hook-localdisk +Summary: Use a local image instead of a shared storage image +BuildArch: noarch +Requires: %{name} == %{version} + +%description hook-localdisk +This hook adds the ability to use fast local storage instead of shared +storage, while using shared storage for managing VM templates. +To enable this hook, the VM should have a custom property of 'localdisk=lvm'. +The system administrator will be responsible for creating the host "ovirt-local" +volume group and extending it with new devices if needed. +The VM must be pinned to the host. + +%package hook-log-console +Summary: Log VM's serial console to a file +BuildArch: noarch +Requires: %{name} + +%description hook-log-console +This hook allows logging a VM serial console to a file. + +%package hook-log-firmware +Summary: Log VM's firmware to a file +BuildArch: noarch +Requires: %{name} + +%description hook-log-firmware +This hook allows logging a VM firmware to a file. + +%package hook-macbind +Summary: Bind a vNIC to a Bridge +BuildArch: noarch +Requires: %{name} >= 4.14 + +%description hook-macbind +VDSM hooks which allow to bind a vNIC to a Bridge, managed or not by engine. + +%package hook-extnet +Summary: Force a vNIC to connect to a specific libvirt network +BuildArch: noarch +Requires: %{name} + +%description hook-extnet +VDSM hook which allows to connect a vNIC to a libvirt network that is managed +outside of oVirt, such as an openvswitch network. + +%package hook-fakevmstats +Summary: Generate random VM statistics +BuildArch: noarch +Requires: %{name} + +%description hook-fakevmstats +Hook intercepts VM's stats and randomizes various fields. +To enable this hook on your host, set vars.fake_vmstats_enable=true in your +/etc/vdsm/vdsm.conf. + +%package hook-fileinject +Summary: Allow uploading file to VMs disk +BuildArch: noarch +Requires: python3-libguestfs + +%description hook-fileinject +Hook is getting target file name and its content and +create that file in target machine. + +%package hook-httpsisoboot +Summary: Allow directly booting from an https available ISO +BuildArch: noarch + +%description hook-httpsisoboot +Let the VM boot from an ISO image made available via an https URL without +the need to import the ISO into an ISO storage domain. +It doesn't support plain http. + +%package hook-nestedvt +Summary: Nested Virtualization support for VDSM +BuildArch: noarch + +%description hook-nestedvt +If the nested virtualization is enabled in your kvm module +this hook will expose it to the guests. + +%package hook-openstacknet +Summary: OpenStack Network vNICs support for VDSM +BuildArch: noarch + +%description hook-openstacknet +Hook for OpenStack Network vNICs. + +%package hook-qemucmdline +Summary: QEMU cmdline hook for VDSM +BuildArch: noarch +Requires: %{name} + +%description hook-qemucmdline +Provides support for injecting QEMU cmdline via VDSM hook. +It exploits libvirt's qemu:commandline facility available in the +qemu xml namespace. + +%package hook-scratchpad +Summary: One time disk creation for VDSM +BuildArch: noarch + +%description hook-scratchpad +scratchpad hook for VDSM +Hook creates a disk for a VM onetime usage, +the disk will be erased when the VM destroyed. +VM cannot be migrated when using scratchpad hook + +%package hook-smbios +Summary: Adding custom smbios entries to libvirt domain via VDSM +BuildArch: noarch + +%description hook-smbios +Adding custom smbios entries to libvirt domain via VDSM +such as: vendor, version, date and release + +%package hook-spiceoptions +Summary: To configure spice options for vm +BuildArch: noarch + +%description hook-spiceoptions +This vdsm hook can be used to configure some of +the spice optimization attributes and values.. + +%package hook-vmfex-dev +Summary: VM-FEX vNIC support for VDSM +BuildArch: noarch +Requires: %{name} +Conflicts: hook-vmfex + +%description hook-vmfex-dev +Allows to use custom device properties to connect a guest vNIC to a host +VM-FEX Virtual Function (SR-IOV with macvtap mode). + +%package hook-fcoe +Summary: Hook to enable FCoE support +BuildArch: noarch +Requires: %{name} +Requires: fcoe-utils + +%description hook-fcoe +VDSM hook used for configure specified NICs as FCoE interface through custom +network properties + +%post hook-fcoe +%systemd_post lldpad.service +%systemd_post fcoe.service + +%package hook-cpuflags +Summary: Hook that modifies guest's CPU flags +BuildArch: noarch + +%description hook-cpuflags +Hook that modifies guest's CPU flags using custom properties. + +%package hook-hostdev-scsi +Summary: Hook to optimize hostdev SCSI devices translating their config. +BuildArch: noarch + +%description hook-hostdev-scsi +Hook to optimizet hostdev SCSI generic devices translating their configuration +into more specific one. + +%if %{with_gluster_mgmt} +%package gluster +Summary: Gluster Plugin for VDSM +Requires: %{name} = %{version}-%{release} +Requires: glusterfs-server >= %{gluster_version} +Requires: glusterfs-api >= %{gluster_version} +Requires: glusterfs-geo-replication >= %{gluster_version} +Requires: glusterfs-events >= %{gluster_version} +Requires: python3-magic +Requires: python3-PyYAML +Requires: python3-blivet +Requires: libblockdev-plugins-all +Requires: xfsprogs +%ifarch x86_64 +Requires: vdo +Requires: kmod-kvdo +%endif + + +%description gluster +Gluster plugin enables VDSM to serve Gluster functionalities. +%endif + +%prep +%autosetup + +%build +%if 0%{?enable_autotools} +autoreconf -if +%endif + +%if %{with_ovirt_vmconsole} +%define enable_ovirt_vmconsole yes +%else +%define enable_ovirt_vmconsole no +%endif +%if %{with_gluster_mgmt} +%define enable_gluster_mgmt yes +%else +%define enable_gluster_mgmt no +%endif +%if %{with_hooks} +%define enable_hooks yes +%else +%define enable_hooks no +%endif +%if %{with_vhostmd} +%define enable_vhostmd yes +%else +%define enable_vhostmd no +%endif +%configure --with-qemu-user=%{qemu_user} --with-qemu-group=%{qemu_group} --enable-ovirt-vmconsole=%{enable_ovirt_vmconsole} --enable-gluster-mgmt=%{enable_gluster_mgmt} --enable-hooks=%{enable_hooks} --enable-vhostmd=%{enable_vhostmd} --with-data-center=%{vdsm_repo} +make +%sysusers_generate_pre %{SOURCE1} vdsm-user + +%install +make DESTDIR=%{buildroot} install + +%py_byte_compile python3 %{buildroot}/%{_libexecdir}/%{vdsm_name}/sitecustomize.py +%py_byte_compile python3 %{buildroot}/%{_libexecdir}/%{vdsm_name}/hooks/after_device_create/openstacknet_utils.py +%py_byte_compile python3 %{buildroot}/%{_libexecdir}/%{vdsm_name}/hooks/after_device_migrate_destination/openstacknet_utils.py +%py_byte_compile python3 %{buildroot}/%{_libexecdir}/%{vdsm_name}/hooks/after_get_caps/openstacknet_utils.py +%py_byte_compile python3 %{buildroot}/%{_libexecdir}/%{vdsm_name}/hooks/after_get_stats/checkips_utils.py +%py_byte_compile python3 %{buildroot}/%{_libexecdir}/%{vdsm_name}/hooks/after_nic_hotplug/openstacknet_utils.py +%py_byte_compile python3 %{buildroot}/%{_libexecdir}/%{vdsm_name}/hooks/after_vm_start/openstacknet_utils.py +%py_byte_compile python3 %{buildroot}/%{_libexecdir}/%{vdsm_name}/hooks/before_device_create/openstacknet_utils.py +%py_byte_compile python3 %{buildroot}/%{_libexecdir}/%{vdsm_name}/hooks/before_nic_hotplug/openstacknet_utils.py +%py_byte_compile python3 %{buildroot}/%{_libexecdir}/%{vdsm_name}/vm_libvirt_hook.py + +%pre +# Force standard locale behavior (English) +export LC_ALL=C.UTF8 + +#/usr/bin/getent passwd %{vdsm_user} >/dev/null || \ +# /usr/sbin/useradd -r -u 36 -g %{vdsm_group} -d /var/lib/vdsm \ +# -s /sbin/nologin -c "Node Virtualization Manager" %{vdsm_user} +#/usr/sbin/usermod -a -G %{qemu_group},%{snlk_group} %{vdsm_user} +#/usr/sbin/usermod -a -G %{cdrom_group} %{qemu_user} +## imageio has to be part of kvm group to be able to read/write nbd +## socket and part of qemu group to be able to access images. +#/usr/sbin/usermod -a -G %{qemu_group},%{vdsm_group} %{imageio_user} +## vdsm has to be part of imageio group to be able to read/write imageio +## control socket. +#/usr/sbin/usermod -a -G %{imageio_group} %{vdsm_user} + +# We keep the previous rpm version number in a file for managing upgrade flow +if [ "$1" -gt 1 ]; then + rpm -q %{vdsm_name} > "%{_localstatedir}/lib/%{vdsm_name}/upgraded_version" + # Both vdsm and supervdsm should be managed here and must be restarted if + # ran before the upgrade + if /bin/systemctl status vdsmd >/dev/null 2>&1; then + /usr/bin/touch "%{_localstatedir}/lib/%{vdsm_name}/vdsmd_start_required" + fi + if /bin/systemctl status supervdsmd >/dev/null 2>&1; then + /usr/bin/touch "%{_localstatedir}/lib/%{vdsm_name}/supervdsmd_start_required" + fi + +fi + +%post +# After vdsm install we should create the logs files. +# In the install session we create it but since we use +# the ghost macro (in files session) the files are not included +touch %{_vdsm_log_dir}/{mom.log,supervdsm.log,vdsm.log} +chmod 0644 %{_vdsm_log_dir}/{mom.log,supervdsm.log,vdsm.log} +chown %{vdsm_user}:%{vdsm_group} %{_vdsm_log_dir}/{mom.log,vdsm.log} +chown root:root %{_vdsm_log_dir}/supervdsm.log + +systemd-tmpfiles --create %{vdsm_name}.conf + +# Have moved vdsm section in /etc/sysctl.conf to /etc/sysctl.d/vdsm.conf. +# So Remove them if it is played with /etc/sysctl.conf. +if grep -q "# VDSM section begin" /etc/sysctl.conf; then + /bin/sed -i '/# VDSM section begin/,/# VDSM section end/d' \ + /etc/sysctl.conf +fi + +# VDSM installs vdsm-modules-load.d.conf file - the following command will +# refresh vdsm kernel modules requirements to start on boot +/bin/systemctl restart systemd-modules-load.service >/dev/null 2>&1 || : + +# VDSM installs unit files - daemon-reload will refresh systemd +/bin/systemctl daemon-reload >/dev/null 2>&1 || : +exit 0 + +%preun +if [ "$1" -eq 0 ]; then + %{_bindir}/vdsm-tool remove-config +fi +%systemd_preun dev-hugepages1G.mount +%systemd_preun vdsmd.service +%systemd_preun vdsm-network.service +%systemd_preun supervdsmd.service +%systemd_preun mom-vdsm.service +%systemd_preun ksmtuned.service +exit 0 + +%posttrans +if [ -f "%{_localstatedir}/lib/%{vdsm_name}/upgraded_version" ]; then + # removing temporary files at first to avoid leaving upgrade leftovers + /bin/rm -f "%{_localstatedir}/lib/%{vdsm_name}/upgraded_version" + if [ -f "%{_localstatedir}/lib/%{vdsm_name}/vdsmd_start_required" ]; then + vdsmd_start_required='yes' + /bin/rm -f "%{_localstatedir}/lib/%{vdsm_name}/vdsmd_start_required" + /bin/systemctl stop vdsmd >/dev/null || : + fi + + if [ -f "%{_localstatedir}/lib/%{vdsm_name}/supervdsmd_start_required" ]; then + supervdsmd_start_required='yes' + /bin/rm -f "%{_localstatedir}/lib/%{vdsm_name}/supervdsmd_start_required" + /bin/systemctl stop supervdsmd >/dev/null || : + fi + + if /bin/systemctl status vdsm-network >/dev/null; then + /bin/systemctl stop vdsm-network >/dev/null || : + fi + + if ! %{_bindir}/vdsm-tool is-configured >/dev/null; then + %{_bindir}/vdsm-tool configure --force >/dev/null + fi + + if [ "${supervdsmd_start_required}" = 'yes' ]; then + /bin/systemctl start supervdsmd >/dev/null || : + fi + if [ "${vdsmd_start_required}" = 'yes' ]; then + /bin/systemctl start vdsmd >/dev/null || : + fi +fi +exit 0 + +%files +%doc README.md +%doc lib/vdsm/vdsm.conf.sample +%doc README.logging +%doc ChangeLog +%license COPYING +%{_unitdir}/dev-hugepages1G.mount +%{_unitdir}/vdsmd.service +%{_unitdir}/vdsm-network.service +%{_unitdir}/supervdsmd.service +%{_unitdir}/mom-vdsm.service +%{_sysconfdir}/systemd/system/libvirtd.service.d/unlimited-core.conf + +%dir %attr(-, %{vdsm_user}, %{vdsm_group}) %{vdsm_repo} +%ghost %config %attr(0644, %{vdsm_user}, %{vdsm_group}) %{_vdsm_log_dir}/mom.log +%ghost %config %attr(0644, root, root) %{_vdsm_log_dir}/supervdsm.log +%ghost %config %attr(0644, %{vdsm_user}, %{vdsm_group}) %{_vdsm_log_dir}/vdsm.log +%ghost %dir %attr(-, %{vdsm_user}, %{vdsm_group}) %{vdsm_repo}/hsm-tasks +%ghost %dir %attr(-, %{vdsm_user}, %{vdsm_group}) %{vdsm_repo}/mnt +%dir %{_libexecdir}/%{vdsm_name} +%dir %{_sysconfdir}/%{vdsm_name}/vdsm.conf.d +%dir %{_sysconfdir}/modprobe.d/ +%dir %{_sysconfdir}/NetworkManager +%dir %{_sysconfdir}/NetworkManager/conf.d +%dir %{_sysconfdir}/%{vdsm_name} +%dir %{_sysconfdir}/%{vdsm_name}/mom.d +%dir %{_datadir}/%{vdsm_name} +%{_libexecdir}/%{vdsm_name}/daemonAdapter +%{_libexecdir}/%{vdsm_name}/sitecustomize.py +%{_libexecdir}/%{vdsm_name}/__pycache__/* +%{_libexecdir}/%{vdsm_name}/supervdsmd +%{_libexecdir}/%{vdsm_name}/vdsmd + +%config(noreplace) %{_sysconfdir}/%{vdsm_name}/vdsm.conf +%config(noreplace) %{_sysconfdir}/%{vdsm_name}/logger.conf +%config(noreplace) %{_sysconfdir}/%{vdsm_name}/svdsm.logger.conf +%config(noreplace) %{_sysconfdir}/%{vdsm_name}/mom.conf +%config(noreplace) %{_sysconfdir}/%{vdsm_name}/mom.d/*.policy +%config(noreplace) %{_sysconfdir}/%{vdsm_name}/logrotate/vdsm +%config(noreplace) %{_sysconfdir}/sysctl.d/vdsm.conf +%config(noreplace) %{_sysconfdir}/modules-load.d/vdsm.conf +%{_sysconfdir}/ovirt-imageio/conf.d/60-vdsm.conf +%{_tmpfilesdir}/%{vdsm_name}.conf +%{_sysconfdir}/modprobe.d/vdsm-bonding-modprobe.conf +%{_sysconfdir}/NetworkManager/conf.d/vdsm.conf +%attr(440, root, root) %{_sysconfdir}/sudoers.d/50_vdsm +%{_sysconfdir}/cron.hourly/vdsm-logrotate +%{_sysconfdir}/libvirt/hooks/qemu +%{_libexecdir}/%{vdsm_name}/curl-img-wrap +%{_libexecdir}/%{vdsm_name}/fc-scan +%{_libexecdir}/%{vdsm_name}/managedvolume-helper +%{_libexecdir}/%{vdsm_name}/vdsm-gencerts.sh +%{_libexecdir}/%{vdsm_name}/vdsmd_init_common.sh +%{_libexecdir}/%{vdsm_name}/vm_libvirt_hook.py +%{_libexecdir}/%{vdsm_name}/kvm2ovirt +%{_libexecdir}/%{vdsm_name}/fallocate +%{_libexecdir}/%{vdsm_name}/spmprotect.sh +%{_libexecdir}/%{vdsm_name}/spmstop.sh +%{_libexecdir}/%{vdsm_name}/__pycache__/* +%dir %{_libexecdir}/%{vdsm_name}/hooks +%dir %{_libexecdir}/%{vdsm_name}/hooks/* +%{python3_sitelib}/dnf-plugins/*.py +%{python3_sitelib}/dnf-plugins/__pycache__/* + +%{_libexecdir}/%{vdsm_name}/get-conf-item +%{_udevrulesdir}/12-vdsm-lvm.rules +/etc/security/limits.d/99-vdsm.conf +%{_mandir}/man8/vdsmd.8* +%{_polkitdir}/10-vdsm-libvirt-access.rules + +%defattr(-, %{vdsm_user}, %{qemu_group}, -) +%dir %{_localstatedir}/lib/libvirt/qemu/channels + +%defattr(-, %{vdsm_user}, %{vdsm_group}, -) +%dir %{_sysconfdir}/pki/%{vdsm_name} +%dir %{_sysconfdir}/pki/%{vdsm_name}/keys +%dir %{_sysconfdir}/pki/%{vdsm_name}/certs +%{_sysconfdir}/pki/%{vdsm_name}/libvirt-migrate +%dir %{_sysconfdir}/pki/%{vdsm_name}/libvirt-spice +%config(noreplace) %{_sysconfdir}/pki/%{vdsm_name}/keys/libvirt_password +%dir %{_localstatedir}/lib/%{vdsm_name} +%dir %{_localstatedir}/lib/%{vdsm_name}/netconfback +%dir %{_localstatedir}/lib/%{vdsm_name}/persistence +%dir %{_localstatedir}/lib/%{vdsm_name}/staging +%dir %{_localstatedir}/lib/%{vdsm_name}/storage +%dir %{_localstatedir}/lib/%{vdsm_name}/upgrade +%dir %{_localstatedir}/log/%{vdsm_name} +%dir %{_localstatedir}/log/%{vdsm_name}/backup +%dir %attr(750, %{vdsm_user}, %{vdsm_group}) %{_localstatedir}/log/%{vdsm_name}/commands +%dir %{_localstatedir}/log/%{vdsm_name}/import +%defattr(644, %{vdsm_user}, %{vdsm_group}, -) +%{_datadir}/%{vdsm_name}/lvmlocal.conf +%{_datadir}/%{vdsm_name}/autounattend/ + + +%files common +%{python3_sitelib}/%{vdsm_name}/__init__.py +%{python3_sitelib}/%{vdsm_name}/__pycache__/__init__.*.pyc +%{python3_sitelib}/%{vdsm_name}/common + +%files network +%{python3_sitelib}/%{vdsm_name}/network + +%files python +%{_mandir}/man1/vdsm-tool.1* +%{_bindir}/vdsm-tool +%{python3_sitelib}/%{vdsm_name}/API.py +%{python3_sitelib}/%{vdsm_name}/__pycache__/API.*.pyc +%{python3_sitelib}/%{vdsm_name}/__pycache__/alignmentScan.*.pyc +%{python3_sitelib}/%{vdsm_name}/__pycache__/client.*.pyc +%{python3_sitelib}/%{vdsm_name}/__pycache__/clientIF.*.pyc +%{python3_sitelib}/%{vdsm_name}/__pycache__/config.*.pyc +%{python3_sitelib}/%{vdsm_name}/__pycache__/constants.*.pyc +%{python3_sitelib}/%{vdsm_name}/__pycache__/cpuinfo.*.pyc +%{python3_sitelib}/%{vdsm_name}/__pycache__/dmidecodeUtil.*.pyc +%{python3_sitelib}/%{vdsm_name}/__pycache__/executor.*.pyc +%{python3_sitelib}/%{vdsm_name}/__pycache__/health.*.pyc +%{python3_sitelib}/%{vdsm_name}/__pycache__/hugepages.*.pyc +%{python3_sitelib}/%{vdsm_name}/__pycache__/jobs.*.pyc +%{python3_sitelib}/%{vdsm_name}/__pycache__/jsonrpcvdscli.*.pyc +%{python3_sitelib}/%{vdsm_name}/__pycache__/kvm2ovirt.*.pyc +%{python3_sitelib}/%{vdsm_name}/__pycache__/logUtils.*.pyc +%{python3_sitelib}/%{vdsm_name}/__pycache__/machinetype.*.pyc +%{python3_sitelib}/%{vdsm_name}/__pycache__/mkimage.*.pyc +%{python3_sitelib}/%{vdsm_name}/__pycache__/moduleloader.*.pyc +%{python3_sitelib}/%{vdsm_name}/__pycache__/momIF.*.pyc +%{python3_sitelib}/%{vdsm_name}/__pycache__/numa.*.pyc +%{python3_sitelib}/%{vdsm_name}/__pycache__/osinfo.*.pyc +%{python3_sitelib}/%{vdsm_name}/__pycache__/ppc64HardwareInfo.*.pyc +%{python3_sitelib}/%{vdsm_name}/__pycache__/protocoldetector.*.pyc +%{python3_sitelib}/%{vdsm_name}/__pycache__/schedule.*.pyc +%{python3_sitelib}/%{vdsm_name}/__pycache__/sslutils.*.pyc +%{python3_sitelib}/%{vdsm_name}/__pycache__/supervdsm_server.*.pyc +%{python3_sitelib}/%{vdsm_name}/__pycache__/taskset.*.pyc +%{python3_sitelib}/%{vdsm_name}/__pycache__/throttledlog.*.pyc +%{python3_sitelib}/%{vdsm_name}/__pycache__/utils.*.pyc +%{python3_sitelib}/%{vdsm_name}/__pycache__/v2v.*.pyc +%{python3_sitelib}/%{vdsm_name}/__pycache__/vdsmd.*.pyc +%{python3_sitelib}/%{vdsm_name}/__pycache__/virtsparsify.*.pyc +%{python3_sitelib}/%{vdsm_name}/__pycache__/virtsysprep.*.pyc +%{python3_sitelib}/%{vdsm_name}/alignmentScan.py +%{python3_sitelib}/%{vdsm_name}/client.py +%{python3_sitelib}/%{vdsm_name}/clientIF.py +%{python3_sitelib}/%{vdsm_name}/config.py +%{python3_sitelib}/%{vdsm_name}/constants.py +%{python3_sitelib}/%{vdsm_name}/cpuinfo.py +%{python3_sitelib}/%{vdsm_name}/dmidecodeUtil.py +%{python3_sitelib}/%{vdsm_name}/executor.py +# gluster.exception is used in many places like Bridge.py. So it is required +# even without vdsm-gluster package +%{python3_sitelib}/%{vdsm_name}/gluster/__init__.py +%{python3_sitelib}/%{vdsm_name}/gluster/__pycache__/__init__.*.pyc +%{python3_sitelib}/%{vdsm_name}/gluster/__pycache__/cli.*.pyc +%{python3_sitelib}/%{vdsm_name}/gluster/__pycache__/exception.*.pyc +%{python3_sitelib}/%{vdsm_name}/gluster/cli.py +%{python3_sitelib}/%{vdsm_name}/gluster/exception.py +%{python3_sitelib}/%{vdsm_name}/health.py +%{python3_sitelib}/%{vdsm_name}/hook/ +%{python3_sitelib}/%{vdsm_name}/host/ +%{python3_sitelib}/%{vdsm_name}/hugepages.py +%{python3_sitelib}/%{vdsm_name}/jobs.py +%{python3_sitelib}/%{vdsm_name}/jsonrpcvdscli.py +%{python3_sitelib}/%{vdsm_name}/kvm2ovirt.py +%{python3_sitelib}/%{vdsm_name}/logUtils.py +%{python3_sitelib}/%{vdsm_name}/machinetype.py +%{python3_sitelib}/%{vdsm_name}/metrics/ +%{python3_sitelib}/%{vdsm_name}/mkimage.py +%{python3_sitelib}/%{vdsm_name}/moduleloader.py +%{python3_sitelib}/%{vdsm_name}/momIF.py +%{python3_sitelib}/%{vdsm_name}/numa.py +%{python3_sitelib}/%{vdsm_name}/osinfo.py +%{python3_sitelib}/%{vdsm_name}/ppc64HardwareInfo.py +%{python3_sitelib}/%{vdsm_name}/profiling/ +%{python3_sitelib}/%{vdsm_name}/protocoldetector.py +%{python3_sitelib}/%{vdsm_name}/schedule.py +%{python3_sitelib}/%{vdsm_name}/sslutils.py +%{python3_sitelib}/%{vdsm_name}/storage/ +%{python3_sitelib}/%{vdsm_name}/supervdsm_api/ +%{python3_sitelib}/%{vdsm_name}/supervdsm_server.py +%{python3_sitelib}/%{vdsm_name}/taskset.py +%{python3_sitelib}/%{vdsm_name}/throttledlog.py +%{python3_sitelib}/%{vdsm_name}/tool/ +%{python3_sitelib}/%{vdsm_name}/utils.py +%{python3_sitelib}/%{vdsm_name}/v2v.py +%{python3_sitelib}/%{vdsm_name}/vdsmd.py +%{python3_sitelib}/%{vdsm_name}/virt/ +%{python3_sitelib}/%{vdsm_name}/virtsparsify.py +%{python3_sitelib}/%{vdsm_name}/virtsysprep.py + +%files hook-openstacknet +%attr(440, root, root) %{_sysconfdir}/sudoers.d/50_vdsm_hook_openstacknet +%{_libexecdir}/%{vdsm_name}/hooks/after_device_create/50_openstacknet +%{_libexecdir}/%{vdsm_name}/hooks/after_device_create/__pycache__/* +%{_libexecdir}/%{vdsm_name}/hooks/after_device_create/openstacknet_utils.py +%{_libexecdir}/%{vdsm_name}/hooks/after_device_migrate_destination/50_openstacknet +%{_libexecdir}/%{vdsm_name}/hooks/after_device_migrate_destination/__pycache__/* +%{_libexecdir}/%{vdsm_name}/hooks/after_device_migrate_destination/openstacknet_utils.py +%{_libexecdir}/%{vdsm_name}/hooks/after_get_caps/50_openstacknet +%{_libexecdir}/%{vdsm_name}/hooks/after_get_caps/__pycache__/* +%{_libexecdir}/%{vdsm_name}/hooks/after_get_caps/openstacknet_utils.py +%{_libexecdir}/%{vdsm_name}/hooks/after_nic_hotplug/50_openstacknet +%{_libexecdir}/%{vdsm_name}/hooks/after_nic_hotplug/__pycache__/* +%{_libexecdir}/%{vdsm_name}/hooks/after_nic_hotplug/openstacknet_utils.py +%{_libexecdir}/%{vdsm_name}/hooks/after_vm_start/50_openstacknet +%{_libexecdir}/%{vdsm_name}/hooks/after_vm_start/__pycache__/* +%{_libexecdir}/%{vdsm_name}/hooks/after_vm_start/openstacknet_utils.py +%{_libexecdir}/%{vdsm_name}/hooks/before_device_create/50_openstacknet +%{_libexecdir}/%{vdsm_name}/hooks/before_device_create/__pycache__/* +%{_libexecdir}/%{vdsm_name}/hooks/before_device_create/openstacknet_utils.py +%{_libexecdir}/%{vdsm_name}/hooks/before_nic_hotplug/50_openstacknet +%{_libexecdir}/%{vdsm_name}/hooks/before_nic_hotplug/__pycache__/* +%{_libexecdir}/%{vdsm_name}/hooks/before_nic_hotplug/openstacknet_utils.py + +%if %{with_vhostmd} +%files hook-vhostmd +%license COPYING +%attr(440, root, root) %{_sysconfdir}/sudoers.d/50_vdsm_hook_vhostmd +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_vhostmd +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_migrate_destination/50_vhostmd +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_dehibernate/50_vhostmd +%{_libexecdir}/%{vdsm_name}/hooks/after_vm_destroy/50_vhostmd +%else +%exclude %{_sysconfdir}/sudoers.d/50_vdsm_hook_vhostmd +%exclude %{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_vhostmd +%exclude %{_libexecdir}/%{vdsm_name}/hooks/before_vm_migrate_destination/50_vhostmd +%exclude %{_libexecdir}/%{vdsm_name}/hooks/before_vm_dehibernate/50_vhostmd +%exclude %{_libexecdir}/%{vdsm_name}/hooks/after_vm_destroy/50_vhostmd +%endif + +%files hook-qemucmdline +%license COPYING +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_qemucmdline + +%files hook-ethtool-options +%{_libexecdir}/%{vdsm_name}/hooks/after_network_setup/30_ethtool_options + +%files hook-fcoe +%{_presetdir}/85-vdsm-hook-fcoe.preset +%{_libexecdir}/%{vdsm_name}/hooks/before_network_setup/50_fcoe + +%files hook-localdisk +%attr(440, root, root) %{_sysconfdir}/sudoers.d/50_vdsm_hook_localdisk +%{_libexecdir}/%{vdsm_name}/hooks/after_disk_prepare/localdisk +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_migrate_source/localdisk +%{_libexecdir}/%{vdsm_name}/localdisk-helper +%{_udevrulesdir}/12-vdsm-localdisk.rules + +%files hook-log-console +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_log_console + +%files hook-log-firmware +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_log_firmware + +%files hook-vmfex-dev +%{_libexecdir}/%{vdsm_name}/hooks/before_device_create/50_vmfex +%{_libexecdir}/%{vdsm_name}/hooks/before_device_migrate_destination/50_vmfex +%{_libexecdir}/%{vdsm_name}/hooks/before_nic_hotplug/50_vmfex + +%files hook-cpuflags +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_cpuflags + +%if %{with_hooks} +%files hook-allocate_net +%{_libexecdir}/%{vdsm_name}/hooks/before_device_create/10_allocate_net + +%files hook-boot_hostdev +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_boot_hostdev + +%files hook-checkimages +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/60_checkimages + +%files hook-checkips +%{_libexecdir}/%{vdsm_name}/hooks/after_get_stats/10_checkips +%{_libexecdir}/%{vdsm_name}/hooks/checkipsd +%{_libexecdir}/%{vdsm_name}/hooks/after_get_stats/checkips_utils.py +%{_libexecdir}/%{vdsm_name}/hooks/after_get_stats/__pycache__/checkips_utils.*.pyc +%{_unitdir}/vdsm-checkips.service + +%files hook-extra-ipv4-addrs +%{_libexecdir}/%{vdsm_name}/hooks/after_network_setup/40_extra_ipv4_addrs + +%files hook-diskunmap +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_diskunmap + +%files hook-fakevmstats +%{_libexecdir}/%{vdsm_name}/hooks/after_get_all_vm_stats/10_fakevmstats + +%files hook-fileinject +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_fileinject + +%files hook-httpsisoboot +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_httpsisoboot + +%files hook-macbind +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_macbind + +%files hook-extnet +%{_libexecdir}/%{vdsm_name}/hooks/before_device_create/50_extnet +%{_libexecdir}/%{vdsm_name}/hooks/before_nic_hotplug/50_extnet + +%files hook-nestedvt +%{_sysconfdir}/modprobe.d/vdsm-nestedvt.conf +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_nestedvt + +%files hook-scratchpad +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_scratchpad +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_migrate_source/50_scratchpad +%{_libexecdir}/%{vdsm_name}/hooks/after_vm_destroy/50_scratchpad + +%files hook-smbios +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_smbios + +%files hook-spiceoptions +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_spiceoptions +%endif + +%files http +%{python3_sitelib}/%{vdsm_name}/rpc/__pycache__/http.*.pyc +%{python3_sitelib}/%{vdsm_name}/rpc/http.py + +%files client +%{_bindir}/vdsm-client +%dir %{python3_sitelib}/vdsmclient +%{python3_sitelib}/vdsmclient/__init__.py +%{python3_sitelib}/vdsmclient/__pycache__/* +%{python3_sitelib}/vdsmclient/client.py +%{python3_sitelib}/yajsonrpc/__init__.py +%{python3_sitelib}/yajsonrpc/__pycache__/__init__.*.pyc +%{_mandir}/man1/vdsm-client.1* + +%files jsonrpc +%{python3_sitelib}/%{vdsm_name}/rpc/Bridge.py +%{python3_sitelib}/%{vdsm_name}/rpc/__init__.py +%{python3_sitelib}/%{vdsm_name}/rpc/__pycache__/Bridge.*.pyc +%{python3_sitelib}/%{vdsm_name}/rpc/__pycache__/__init__.*.pyc +%{python3_sitelib}/%{vdsm_name}/rpc/__pycache__/bindingjsonrpc.*.pyc +%{python3_sitelib}/%{vdsm_name}/rpc/bindingjsonrpc.py +%{python3_sitelib}/yajsonrpc/__init__.py +%{python3_sitelib}/yajsonrpc/__pycache__/__init__.*.pyc +%{python3_sitelib}/yajsonrpc/__pycache__/jsonrpcclient.*.pyc +%{python3_sitelib}/yajsonrpc/jsonrpcclient.py + +%files api +%doc lib/vdsm/api/vdsm-api.html +%dir %{python3_sitelib}/%{vdsm_name} +%dir %{python3_sitelib}/%{vdsm_name}/api +%dir %{python3_sitelib}/%{vdsm_name}/rpc +%{python3_sitelib}/%{vdsm_name}/api/*.py +%{python3_sitelib}/%{vdsm_name}/rpc/vdsm-api.pickle +%{python3_sitelib}/%{vdsm_name}/rpc/vdsm-events.pickle +%{python3_sitelib}/%{vdsm_name}/api/__pycache__/* +%if ! %{with_gluster_mgmt} +%exclude %{python3_sitelib}/%{vdsm_name}/rpc/vdsm-api-gluster.pickle +%endif + +%files yajsonrpc +%{python3_sitelib}/yajsonrpc/__pycache__/betterAsyncore.*.pyc +%{python3_sitelib}/yajsonrpc/__pycache__/exception.*.pyc +%{python3_sitelib}/yajsonrpc/__pycache__/stomp.*.pyc +%{python3_sitelib}/yajsonrpc/__pycache__/stompclient.*.pyc +%{python3_sitelib}/yajsonrpc/__pycache__/stompserver.*.pyc +%{python3_sitelib}/yajsonrpc/betterAsyncore.py +%{python3_sitelib}/yajsonrpc/exception.py +%{python3_sitelib}/yajsonrpc/stomp.py +%{python3_sitelib}/yajsonrpc/stompclient.py +%{python3_sitelib}/yajsonrpc/stompserver.py + +%files hook-faqemu +%license COPYING +%{_libexecdir}/%{vdsm_name}/hooks/after_get_caps/10_faqemu +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/10_faqemu + +%if %{with_gluster_mgmt} +%files gluster +%license COPYING +%{python3_sitelib}/%{vdsm_name}/gluster/__pycache__/api.*.pyc +%{python3_sitelib}/%{vdsm_name}/gluster/__pycache__/apiwrapper.*.pyc +%{python3_sitelib}/%{vdsm_name}/gluster/__pycache__/events.*.pyc +%{python3_sitelib}/%{vdsm_name}/gluster/__pycache__/fence.*.pyc +%{python3_sitelib}/%{vdsm_name}/gluster/__pycache__/fstab.*.pyc +%{python3_sitelib}/%{vdsm_name}/gluster/__pycache__/gfapi.*.pyc +%{python3_sitelib}/%{vdsm_name}/gluster/__pycache__/hooks.*.pyc +%{python3_sitelib}/%{vdsm_name}/gluster/__pycache__/services.*.pyc +%{python3_sitelib}/%{vdsm_name}/gluster/__pycache__/storagedev.*.pyc +%{python3_sitelib}/%{vdsm_name}/gluster/__pycache__/tasks.*.pyc +%{python3_sitelib}/%{vdsm_name}/gluster/__pycache__/thinstorage.*.pyc +%{python3_sitelib}/%{vdsm_name}/gluster/api.py +%{python3_sitelib}/%{vdsm_name}/gluster/apiwrapper.py +%{python3_sitelib}/%{vdsm_name}/gluster/events.py +%{python3_sitelib}/%{vdsm_name}/gluster/fence.py +%{python3_sitelib}/%{vdsm_name}/gluster/fstab.py +%{python3_sitelib}/%{vdsm_name}/gluster/gfapi.py +%{python3_sitelib}/%{vdsm_name}/gluster/hooks.py +%{python3_sitelib}/%{vdsm_name}/gluster/services.py +%{python3_sitelib}/%{vdsm_name}/gluster/storagedev.py +%{python3_sitelib}/%{vdsm_name}/gluster/tasks.py +%{python3_sitelib}/%{vdsm_name}/gluster/thinstorage.py +%{python3_sitelib}/%{vdsm_name}/rpc/vdsm-api-gluster.pickle +%endif + +%changelog +* Tue Nov 28 2023 Sandro Bonazzola - 4.50.5.1 +- See %{_docdir}/%{vdsm_name}/ChangeLog for the complete list of Vdsm changes.