From eda3f5b415e8e3c03a429d242b5ed9a269d112c1 Mon Sep 17 00:00:00 2001 From: Till Maas Date: Mon, 30 May 2016 17:55:50 +0200 Subject: [PATCH 01/27] 2016-05-30: Retired because of broken deps in preparation of Fedora 24 Reference: https://fedorahosted.org/rel-eng/ticket/ --- .gitignore | 1 - dead.package | 3 + sources | 1 - vdsm.spec | 1373 -------------------------------------------------- 4 files changed, 3 insertions(+), 1375 deletions(-) delete mode 100644 .gitignore create mode 100644 dead.package delete mode 100644 sources delete mode 100644 vdsm.spec diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 8219ac9..0000000 --- a/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/vdsm-*.tar.gz diff --git a/dead.package b/dead.package new file mode 100644 index 0000000..bb86c0f --- /dev/null +++ b/dead.package @@ -0,0 +1,3 @@ +2016-05-30: Retired because of broken deps in preparation of Fedora 24 +Reference: https://fedorahosted.org/rel-eng/ticket/ + diff --git a/sources b/sources deleted file mode 100644 index 5f2be82..0000000 --- a/sources +++ /dev/null @@ -1 +0,0 @@ -53bf8a8e728a82a0553fc6533bd18ed4 vdsm-4.17.9.tar.gz diff --git a/vdsm.spec b/vdsm.spec deleted file mode 100644 index 5edd0bd..0000000 --- a/vdsm.spec +++ /dev/null @@ -1,1373 +0,0 @@ -# Required users and groups -%global vdsm_user vdsm -%global vdsm_group kvm -%global qemu_user qemu -%global qemu_group qemu -%global snlk_group sanlock -%global snlk_user sanlock -%global cdrom_group cdrom - -# Glusterfs package version -%global gluster_version 3.7.1 - -# koji build - overridable using rpmbuild --define "fedora_koji_build 1" -%{!?fedora_koji_build: %global fedora_koji_build 0} - -# RHEV build - overridable using rpmbuild --define "rhev_build 1" -%{!?rhev_build: %global rhev_build 0} - -%if 0%{fedora_koji_build} -%global with_hooks 1 -%endif - -# 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} - -# Skips check since rhel default repos lack pep8 and pyflakes -%if ! 0%{?rhel} -%{!?with_check:%global with_check 1} -%else -%{!?with_check:%global with_check 0} -%endif - -# Required paths -%if 0%{?fedora} -%global _polkitdir %{_datadir}/polkit-1/rules.d -%else -%global _polkitdir %{_localstatedir}/lib/polkit-1/localauthority/10-vendor.d -%endif - -# Gluster should not be shipped with RHEV -%if ! 0%{?rhev_build} -%global with_gluster 1 -%endif - -%if ! 0%{?rhel} || ! 0%{fedora_koji_build} -%global with_vhostmd 1 -%endif - -%global _udevrulesdir /usr/lib/udev/rules.d/ -%global _udevexecdir /usr/lib/udev/ - -Name: vdsm -Version: 4.17.9 -Release: 18.git1379158%{?dist}%{?extra_release} -Summary: Virtual Desktop Server Manager -BuildArch: noarch - -Group: Applications/System -License: GPLv2+ -Url: http://www.ovirt.org/wiki/Vdsm -Source0: %{name}-%{version}.tar.gz -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) - - -BuildRequires: cyrus-sasl-lib -BuildRequires: gcc -BuildRequires: python -BuildRequires: python-devel -BuildRequires: python-netaddr -BuildRequires: python-nose -BuildRequires: python-six -BuildRequires: rpm-build - -# BuildRequires needed by the tests during the build -BuildRequires: dosfstools -BuildRequires: genisoimage -BuildRequires: libnl3 -BuildRequires: libselinux-python -BuildRequires: libvirt-python -BuildRequires: m2crypto -BuildRequires: mom >= 0.4.5 -BuildRequires: openssl -BuildRequires: policycoreutils-python -BuildRequires: psmisc -BuildRequires: python-cpopen >= 1.3 -BuildRequires: python-inotify -BuildRequires: python-ioprocess >= 0.14 -BuildRequires: python-pthreading -BuildRequires: qemu-img -BuildRequires: rpm-python -BuildRequires: python-blivet - -# Autotools BuildRequires -%if 0%{?enable_autotools} -BuildRequires: autoconf -BuildRequires: automake -BuildRequires: gettext-devel -BuildRequires: libtool -%endif - -%if 0%{?with_check} -BuildRequires: pyflakes -BuildRequires: python-pep8 -%endif - -BuildRequires: systemd-units - -Requires: ethtool -Requires: which -Requires: sudo >= 1.7.3 -Requires: logrotate -Requires: xz -Requires: ntp -Requires: iproute >= 3.10.0 -Requires: python-netaddr -Requires: python-inotify -Requires: python-argparse -Requires: python-cpopen >= 1.3 -Requires: python-ioprocess >= 0.14 -Requires: python-pthreading >= 0.1.3-3 -Requires: python-six -Requires: python-requests -Requires: %{name}-infra = %{version}-%{release} -Requires: rpm-python -Requires: nfs-utils -Requires: m2crypto -Requires: libnl3 -Requires: curl -Requires: %{name}-xmlrpc = %{version}-%{release} -Requires: %{name}-jsonrpc = %{version}-%{release} -Requires: safelease >= 1.0-5 -Requires: mom >= 0.4.5 -Requires: ovirt-vmconsole >= 1.0.0-0 - -%if 0%{?rhel} -Requires: libguestfs-tools-c >= 1:1.20.11-10 -%else # fedora -Requires: libguestfs-tools-c >= 1:1.26.7-2 -%endif - -Requires: libvirt-daemon-config-nwfilter -Requires: libvirt-daemon-driver-network -Requires: libvirt-daemon-driver-nwfilter -Requires: libvirt-daemon-driver-qemu - -%if 0%{?rhel} -Requires: libvirt-daemon >= 1.2.8-16.el7_1.4 -Requires: libvirt-python >= 1.2.8-7.el7_1.1 -%endif # rhel - -%if 0%{?fedora} >= 22 -Requires: libvirt-daemon >= 1.2.13 -Requires: libvirt-python >= 1.2.9-2 -%endif - -%if 0%{?fedora} -Requires: libvirt-daemon >= 1.2.9.3-1 -Requires: libvirt-python >= 1.2.9-2 -%endif - -Requires: libvirt-lock-sanlock, libvirt-client - -# iscsi-intiator versions -%if 0%{?rhel} -Requires: iscsi-initiator-utils -%else # fedora -Requires: iscsi-initiator-utils >= 6.2.0.873-21 -%endif - -Requires: sanlock >= 2.8, sanlock-python - -%if 0%{?rhel} -Requires: device-mapper-multipath >= 0.4.9-68 -Requires: e2fsprogs -Requires: fence-agents-all -%if 0%{?centos} -Requires: kernel >= 3.10.0-132.el7 -%else -Requires: kernel >= 3.10.0-229.17.1.el7 -%endif -Requires: lvm2 >= 2.02.107 -Requires: python >= 2.7.5-18.el7_1.1 -Requires: policycoreutils-python -Requires: selinux-policy-targeted >= 3.13.1-16.el7 -%else -Requires: fence-agents-all -Requires: kernel >= 4.1.6 -# Subprocess and thread bug was found on python 2.7.2 -Requires: python >= 2.7.3 -Requires: initscripts >= 9.42.2-1 -Requires: device-mapper-multipath >= 0.4.9-56 -Requires: e2fsprogs >= 1.41.14 -Requires: policycoreutils-python -Requires: sed >= 4.2.1-10 -Requires: ed -Requires: lvm2 >= 2.02.107 -Requires: selinux-policy-targeted >= 3.12.1-177 -# In order to avoid a policycoreutils bug (rhbz 889698) when selinux is -# disabled we now require the version 2.1.13-55 (or newer) of Fedora. -Requires: policycoreutils >= 2.1.13-55 -Requires: systemd >= 197-1.fc18.2 -%endif - -%if 0%{?rhel} -Requires: qemu-kvm-rhev >= 10:2.1.2-23.el7_1.2 -Requires: qemu-img-rhev >= 10:2.1.2-23.el7_1.2 -%else -Requires: qemu-kvm >= 2:2.1.3-11 -Requires: qemu-img >= 2:2.1.3-11 -%endif # rhel - -# GlusterFS client-side RPMs needed for Gluster SD -%if 0%{?with_gluster} -Requires: glusterfs-cli >= %{gluster_version} -Requires: glusterfs-fuse >= %{gluster_version} -%endif - -Requires: psmisc >= 22.6-15 -Requires: bridge-utils -Requires: sos -Requires: tree -Requires: dosfstools -Requires: genisoimage -Requires: libselinux-python -Requires: %{name}-python = %{version}-%{release} -Requires: pyparted - -Requires(post): /usr/sbin/saslpasswd2 - -%if 0%{?fedora} -Requires(post): hostname -%else -Requires(post): /bin/hostname -%endif - -Conflicts: vdsm-hook-sriov - -%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 cli -Summary: VDSM command line interface -Requires: %{name}-python = %{version}-%{release} -Requires: %{name}-xmlrpc = %{version}-%{release} - -%description cli -Call VDSM commands from the command line. Used for testing and debugging. - -%package xmlrpc -Summary: VDSM xmlrpc API -Requires: %{name}-python = %{version}-%{release} - - -%description xmlrpc -An XMLRPC interface for interacting with vdsmd. Primary control interface for -ovirt-engine and vdsClient. - -%package jsonrpc -Summary: VDSM API Server -Requires: %{name}-python = %{version}-%{release} -Requires: %{name}-yajsonrpc = %{version}-%{release} -Obsoletes: vdsm-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 -Requires: python >= 2.6 - -%description yajsonrpc -A JSON RPC server and client implementation. - -%package infra -Summary: Utilities and libraries for vdsm -Requires: python >= 2.6 -Obsoletes: python-zombiereaper - -%description infra -Utilities and libraries for vdsm. - -%package reg -Summary: VDSM registration package -Requires: %{name} = %{version}-%{release} -Requires: m2crypto -Requires: openssl -Conflicts: ovirt-node < 3.0.4 - -%description reg -VDSM registration package. Used to register a Linux host to a Virtualization -Manager. - -%package python -Summary: VDSM python libraries -Requires: %{name}-infra = %{version}-%{release} -Requires: python-cpopen >= 1.2.3-5 -Requires: m2crypto -Requires: python-ioprocess >= 0.14 - -%description python -Shared libraries between the various VDSM packages. - -%package debug-plugin -Summary: VDSM Debug Plugin -Requires: %{name} = %{version}-%{release} -Requires: %{name}-xmlrpc = %{version}-%{release} - -%description debug-plugin -Used by the trained monkeys at Red Hat to insert chaos and mayhem in to VDSM. - -%package tests -Summary: VDSM Test Suite -Requires: %{name} = %{version}-%{release} -Requires: dracut -Requires: python-nose - -%description tests -A test suite for verifying the functionality of a running vdsm instance - -%package hook-allocate_net -Summary: random_network allocation hook for VDSM -Requires: %{name} = %{version}-%{release} - -%description hook-allocate_net -VDSM hook used to allocate networks for vms in a random fashion - -%package hook-checkimages -Summary: Qcow2 disk image format check hook for VDSM -Requires: %{name} = %{version}-%{release} - -%description hook-checkimages -VDSM hook used to perform consistency check on a qcow2 format disk image -using the QEMU disk image utility. - -%package hook-diskunmap -Summary: Activate UNMAP for disk/lun devices -Requires: %{name} = %{version}-%{release} -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 -Requires: %{name} = %{version}-%{release} - -%description hook-ethtool-options -VDSM hook used for applying custom network properties that define ethtool -options for vdsm network nics - -%if 0%{?with_vhostmd} -%package hook-vhostmd -Summary: VDSM hook set for interaction with vhostmd -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 -Requires: %{name} = %{version}-%{release} - -%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-directlun -Summary: Direct LUN support for VDSM - -%description hook-directlun -VDSM hook enable user to add storage LUN for VDSM -without the sharing and storage handling of VDSM. - -%package hook-macbind -Summary: Bind a vNIC to a Bridge -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-macspoof -Summary: Disables MAC spoofing filtering - -%description hook-macspoof -VDSM hooks which allow to disable mac spoof filtering -either on all the of the VM's interfaces or on -specific vnics. - -%package hook-noipspoof -Summary: Enables strict anti-spoofing filtering - -%description hook-noipspoof -VDSM hook which allows to enable strict anti-spoofing filtering -on all of the the VM's interfaces. - -%package hook-extnet -Summary: Force a vNIC to connect to a specific libvirt network -Requires: %{name} = %{version}-%{release} - -%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 -Requires: %{name} = %{version}-%{release} - -%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 -Requires: python-libguestfs - -%description hook-fileinject -Hook is getting target file name and its content and -create that file in target machine. - -%package hook-floppy -Summary: Allow adding floppy to VM - -%description hook-floppy -Allow adding floppy to VM - -%package hook-hostusb -Summary: Allow attaching USB device from host -Requires: usbutils - -%description hook-hostusb -Hook is getting vendor and product id of USB device -disconnect it from host and attach it to VM - -%package hook-httpsisoboot -Summary: Allow directly booting from an https available ISO -%if 0%{?rhel} -Requires: qemu-kvm-rhev >= 10:2.1.2-3 -%endif - -%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-hugepages -Summary: Huge pages enable user to handle VM with 2048KB page files. - -%description hook-hugepages -Hook is getting number of huge pages reserve them for the VM, -and enable user to handle VM with 2048KB page files. - -%package hook-isolatedprivatevlan -Summary: Isolated network environment for VMs - -%description hook-isolatedprivatevlan -limit VM traffic to a specific gateway by its mac address, -hook prevent VM from spoofing its mac or ip address -by using libvirt filter -and by adding custom filter: isolatedprivatevlan-vdsm.xml - -%package hook-nestedvt -Summary: Nested Virtualization support for VDSM - -%description hook-nestedvt -If the nested virtualization is enabled in your kvm module -this hook will expose it to the guests. - -%package hook-numa -Summary: NUMA support for VDSM - -%description hook-numa -Hooks is getting number/rage of NUMA nodes and NUMA mode, -and update the VM xml. - -%package hook-openstacknet -Summary: OpenStack Network vNICs support for VDSM - -%description hook-openstacknet -Hook for OpenStack Network vNICs. - -%package hook-pincpu -Summary: Hook pin VM so specific CPUs - -%description hook-pincpu -pincpu is hook for VDSM. -pincpu enable to pin virtual machine to a specific CPUs. - -%package hook-promisc -Summary: Network interface promiscuous mode support for VDSM - -%description hook-promisc -VDSM promiscuous mode let user define a VM interface that will capture -all network traffic. - -%package hook-qemucmdline -Summary: QEMU cmdline hook for VDSM -Requires: %{name} = %{version}-%{release} - -%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-qos -Summary: QoS network in/out traffic support for VDSM -Requires: %{name} = %{version}-%{release} - -%description hook-qos -Hook adds QoS in/out traffic to VMs interfaces - -%package hook-scratchpad -Summary: One time disk creation for VDSM -Requires: %{name} = %{version}-%{release} - -%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 -Requires: %{name} = %{version}-%{release} - -%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 -Requires: %{name} = %{version}-%{release} - -%description hook-spiceoptions -This vdsm hook can be used to configure some of -the spice optimization attributes and values.. - -%package hook-vmfex -Summary: vmfex support for VDSM -Requires: %{name} = %{version}-%{release} -Conflicts: hook-vmfex-dev - -%description hook-vmfex -Hook for vmfex. - -%package hook-vmfex-dev -Summary: VM-FEX vNIC support for VDSM -Requires: %{name} = %{version}-%{release} -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-vmdisk -Summary: External disk support for VDSM -Requires: %{name} = %{version}-%{release} - -%description hook-vmdisk -Hook adds additional disk image for a VM (raw or qcow2) - -%package hook-ipv6 -Summary: Set IPv6 configuration through custom network properties -Requires: %{name} = %{version}-%{release} - -%description hook-ipv6 -VDSM hook used for applying IPv6 configuration through custom network -properties - -%if 0%{?with_gluster} -%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: python-magic -Requires: python-blivet -Requires: xfsprogs - -%description gluster -Gluster plugin enables VDSM to serve Gluster functionalities. -%endif - -%prep -%setup -q - -%build -%if 0%{?enable_autotools} -autoreconf -if -%endif -%configure %{?with_hooks:--enable-hooks} \ -%if 0%{?rhev_build} - --enable-rhev \ - --with-smbios-manufacturer='Red Hat' \ - --with-smbios-osname='RHEV Hypervisor' \ - --with-qemu-kvm='qemu-kvm-rhev' \ - --with-qemu-img='qemu-img-rhev' \ -%endif - -make %{_smp_mflags} -# Setting software_version and software_revision in dsaversion.py -baserelease=`echo "%{release}" | sed 's/\([0-9]\+\(\.[0-9]\+\)\?\).*/\1/'` -baseversion=`echo "%{version}" | sed 's/\([0-9]\+\(\.[0-9]\+\)\?\).*/\1/'` -rawversion=%{version}-%{release} -sed -i -e 's/^software_version =.*/software_version = "'"${baseversion}"'"/' \ - -e 's/^raw_version_revision =.*/raw_version_revision = "'"${rawversion}"'"/' \ - -e 's/^software_revision =.*/software_revision = "'"${baserelease}"'"/' vdsm/dsaversion.py - -%install -make DESTDIR=%{buildroot} install - -# Creating VDSM logs in this session to avoid rpmbuild -# complain during the build -install -dDm 0755 %{buildroot}/usr/local/var/log/vdsm -touch %{buildroot}/usr/local/var/log/vdsm/{connectivity.log,mom.log,supervdsm.log,vdsm.log} - -# Install the lvm rules -install -Dm 0644 vdsm/storage/vdsm-lvm.rules \ - %{buildroot}%{_udevrulesdir}/12-vdsm-lvm.rules - -install -Dm 0644 vdsm/limits.conf \ - %{buildroot}/etc/security/limits.d/99-vdsm.conf - -install -Dm 0755 init/systemd/systemd-vdsmd %{buildroot}/usr/lib/systemd/systemd-vdsmd -install -Dm 0644 init/systemd/85-vdsmd.preset %{buildroot}/usr/lib/systemd/system-preset/85-vdsmd.preset -install -Dm 0644 init/systemd/vdsmd.service %{buildroot}%{_unitdir}/vdsmd.service -install -Dm 0644 init/systemd/vdsm-network.service %{buildroot}%{_unitdir}/vdsm-network.service -install -Dm 0644 init/systemd/supervdsmd.service %{buildroot}%{_unitdir}/supervdsmd.service - -install -Dm 0644 init/systemd/mom-vdsm.service %{buildroot}%{_unitdir}/mom-vdsm.service - -install -Dm 0644 vdsm/vdsm-modules-load.d.conf \ - %{buildroot}%{_sysconfdir}/modules-load.d/vdsm.conf -install -Dm 0644 init/systemd/vdsm-tmpfiles.d.conf \ - %{buildroot}%{_tmpfilesdir}/%{name}.conf -install -Dm 0644 init/systemd/unlimited-core.conf \ - %{buildroot}%{_sysconfdir}/systemd/system/libvirtd.service.d/unlimited-core.conf - -%if 0%{?rhel} -# This is not commonplace, but we want /var/log/core to be a world-writable -# dropbox for core dumps -install -dDm 1777 %{buildroot}%{_localstatedir}/log/core -%endif - -# Install the polkit for libvirt -install -Dm 0644 vdsm/vdsm-libvirt-access.rules \ - %{buildroot}%{_polkitdir}/10-vdsm-libvirt-access.rules - -# Install the libvirt hook for cleaning up the XML -install -Dm 0755 vdsm/virt/libvirt-hook.sh \ - %{buildroot}%{_sysconfdir}/libvirt/hooks/qemu - -%check -%if 0%{?with_check} -#make check -%endif - -%clean -rm -rf %{buildroot} - -%pre -# Force standard locale behavior (English) -export LC_ALL=C - -/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} - -# We keep the previous rpm version number in a file for managing upgrade flow -# in vdsmd_init_script upgraded_version_check task -if [ "$1" -gt 1 ]; then - rpm -q %{name} > "%{_localstatedir}/lib/%{name}/upgraded_version" -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 /usr/local/var/log/vdsm/{connectivity.log,mom.log,supervdsm.log,vdsm.log} -chmod 0644 /usr/local/var/log/vdsm/{connectivity.log,mom.log,supervdsm.log,vdsm.log} -chown vdsm:kvm /usr/local/var/log/vdsm/{connectivity.log,mom.log,vdsm.log} -chown root:root /usr/local/var/log/vdsm/supervdsm.log - -# 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 - -# hack until we replace core dump with abrt -if /usr/sbin/selinuxenabled; then - /usr/sbin/semanage fcontext -a -t virt_cache_t '/var/log/core(/.*)?' -fi -/sbin/restorecon -R /var/log/core >/dev/null 2>&1 -# hack until we replace core dump with abrt - -# 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 || : - -# The following triggers vdsmd.preset file and enables vdsm required services -%systemd_post vdsmd.service - -# 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 vdsmd.service -%systemd_preun vdsm-network.service -%systemd_preun supervdsmd.service -%systemd_preun mom-vdsm.service -exit 0 - -%postun -if [ "$1" -ge 1 ]; then - supervdsmd_start_required='no' - vdsmd_start_required='no' - - # Both vdsm and supervdsm should be managed here and must be restarted if - # ran before (code might changed) - if %{_bindir}/vdsm-tool service-status vdsmd >/dev/null 2>&1; then - %{_bindir}/vdsm-tool service-stop vdsmd >/dev/null 2>&1 || : - vdsmd_start_required='yes' - fi - if %{_bindir}/vdsm-tool service-status supervdsmd >/dev/null 2>&1; then - %{_bindir}/vdsm-tool service-stop supervdsmd >/dev/null 2>&1 || : - supervdsmd_start_required='yes' - fi - - if ! %{_bindir}/vdsm-tool is-configured >/dev/null 2>&1; then - %{_bindir}/vdsm-tool configure --force >/dev/null 2>&1 - fi - - if [ "${supervdsmd_start_required}" = 'yes' ]; then - %{_bindir}/vdsm-tool service-start supervdsmd >/dev/null 2>&1 || : - fi - if [ "${vdsmd_start_required}" = 'yes' ]; then - %{_bindir}/vdsm-tool service-start vdsmd >/dev/null 2>&1 || : - fi -fi -exit 0 - -%files -%{!?_licensedir:%global license %%doc} -%doc README lib/vdsm/vdsm.conf.sample -%license COPYING -/usr/lib/systemd/systemd-vdsmd -/usr/lib/systemd/system-preset/85-vdsmd.preset -%{_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}) /rhev/data-center -%ghost %config %attr(0644, %{vdsm_user}, %{vdsm_group}) /usr/local/var/log/vdsm/connectivity.log -%ghost %config %attr(0644, %{vdsm_user}, %{vdsm_group}) /usr/local/var/log/vdsm/mom.log -%ghost %config %attr(0644, root, root) /usr/local/var/log/vdsm/supervdsm.log -%ghost %config %attr(0644, %{vdsm_user}, %{vdsm_group}) /usr/local/var/log/vdsm/vdsm.log -%ghost %dir %attr(-, %{vdsm_user}, %{vdsm_group}) /rhev/data-center/hsm-tasks -%ghost %dir %attr(-, %{vdsm_user}, %{vdsm_group}) /rhev/data-center/mnt -%dir %{_libexecdir}/%{name} -%dir %{_sysconfdir}/%{name} -%dir %{_sysconfdir}/%{name}/mom.d -%dir %{_datadir}/%{name} -%dir %{_datadir}/%{name}/network -%dir %{_datadir}/%{name}/network/configurators -%dir %{_datadir}/%{name}/network/tc -%dir %{_datadir}/%{name}/storage -%dir %{_datadir}/%{name}/storage/imageRepository -%dir %{_datadir}/%{name}/virt -%{_datadir}/%{name}/alignmentScan.py* -%{_datadir}/%{name}/blkid.py* -%{_datadir}/%{name}/caps.py* -%{_datadir}/%{name}/clientIF.py* -%{_datadir}/%{name}/daemonAdapter -%{_datadir}/%{name}/dmidecodeUtil.py* -%{_datadir}/%{name}/API.py* -%{_datadir}/%{name}/hooking.py* -%{_datadir}/%{name}/hooks.py* -%{_datadir}/%{name}/hostdev.py* -%{_datadir}/%{name}/mk_sysprep_floppy -%{_datadir}/%{name}/parted_utils.py* -%{_datadir}/%{name}/mkimage.py* -%{_datadir}/%{name}/numaUtils.py* -%{_datadir}/%{name}/ppc64HardwareInfo.py* -%{_datadir}/%{name}/protocoldetector.py* -%{_datadir}/%{name}/supervdsm.py* -%{_datadir}/%{name}/supervdsmServer -%{_datadir}/%{name}/v2v.py* -%{_datadir}/%{name}/vdsm -%{_datadir}/%{name}/vdsm-restore-net-config -%{_datadir}/%{name}/vdsm-store-net-config -%{_datadir}/%{name}/virt/__init__.py* -%{_datadir}/%{name}/virt/domain_descriptor.py* -%{_datadir}/%{name}/virt/guestagent.py* -%{_datadir}/%{name}/virt/migration.py* -%{_datadir}/%{name}/virt/periodic.py* -%{_datadir}/%{name}/virt/sampling.py* -%{_datadir}/%{name}/virt/secret.py* -%{_datadir}/%{name}/virt/virdomain.py* -%{_datadir}/%{name}/virt/vmchannels.py* -%{_datadir}/%{name}/virt/vmstats.py* -%{_datadir}/%{name}/virt/vmstatus.py* -%{_datadir}/%{name}/virt/vmtune.py* -%{_datadir}/%{name}/virt/vm.py* -%{_datadir}/%{name}/virt/vmexitreason.py* -%{_datadir}/%{name}/virt/vmpowerdown.py* -%{_datadir}/%{name}/virt/vmxml.py* -%{_datadir}/%{name}/virt/utils.py* -%{_datadir}/%{name}/virt/vmdevices/__init__.py* -%{_datadir}/%{name}/virt/vmdevices/core.py* -%{_datadir}/%{name}/virt/vmdevices/graphics.py* -%{_datadir}/%{name}/virt/vmdevices/hostdevice.py* -%{_datadir}/%{name}/virt/vmdevices/hwclass.py* -%{_datadir}/%{name}/virt/vmdevices/network.py* -%{_datadir}/%{name}/virt/vmdevices/storage.py* - -%config(noreplace) %{_sysconfdir}/%{name}/vdsm.conf -%config(noreplace) %{_sysconfdir}/%{name}/logger.conf -%config(noreplace) %{_sysconfdir}/%{name}/svdsm.logger.conf -%config(noreplace) %{_sysconfdir}/%{name}/mom.conf -%config(noreplace) %{_sysconfdir}/%{name}/mom.d/*.policy -%config(noreplace) %{_sysconfdir}/%{name}/logrotate/vdsm -%config(noreplace) %{_sysconfdir}/rwtab.d/vdsm -%config(noreplace) %{_sysconfdir}/sysctl.d/vdsm.conf -%config(noreplace) %{_sysconfdir}/modules-load.d/vdsm.conf -%config(noreplace) %{_tmpfilesdir}/%{name}.conf -%{_sysconfdir}/dhcp/dhclient.d/sourceRoute.sh -%{_sysconfdir}/sudoers.d/50_vdsm -%{_sysconfdir}/cron.hourly/vdsm-logrotate -%{_sysconfdir}/libvirt/hooks/qemu -%{_datadir}/%{name}/logUtils.py* -%{_datadir}/%{name}/dsaversion.py* -%{_libexecdir}/%{name}/curl-img-wrap -%{_libexecdir}/%{name}/fc-scan -%{_libexecdir}/%{name}/persist-vdsm-hooks -%{_libexecdir}/%{name}/unpersist-vdsm-hook -%{_libexecdir}/%{name}/ovirt_functions.sh -%{_libexecdir}/%{name}/vdsm-gencerts.sh -%{_libexecdir}/%{name}/vdsmd_init_common.sh -%{_datadir}/%{name}/network/__init__.py* -%{_datadir}/%{name}/network/api.py* -%{_datadir}/%{name}/network/configurators/__init__.py* -%{_datadir}/%{name}/network/configurators/dhclient.py* -%{_datadir}/%{name}/network/configurators/ifcfg.py* -%{_datadir}/%{name}/network/configurators/iproute2.py* -%{_datadir}/%{name}/network/configurators/libvirt.py* -%{_datadir}/%{name}/network/configurators/pyroute_two.py* -%{_datadir}/%{name}/network/configurators/qos.py* -%{_datadir}/%{name}/network/errors.py* -%{_datadir}/%{name}/network/models.py* -%{_datadir}/%{name}/network/sourceroute.py* -%{_datadir}/%{name}/network/sourceroutethread.py* -%{_datadir}/%{name}/network/tc/__init__.py* -%{_datadir}/%{name}/network/tc/_parser.py* -%{_datadir}/%{name}/network/tc/_wrapper.py* -%{_datadir}/%{name}/network/tc/cls.py* -%{_datadir}/%{name}/network/tc/filter.py* -%{_datadir}/%{name}/network/tc/qdisc.py* -%{_datadir}/%{name}/network/utils.py* -%{_datadir}/%{name}/storage/__init__.py* -%{_datadir}/%{name}/storage/blockSD.py* -%{_datadir}/%{name}/storage/blockVolume.py* -%{_datadir}/%{name}/storage/curlImgWrap.py* -%{_datadir}/%{name}/storage/devicemapper.py* -%{_datadir}/%{name}/storage/dispatcher.py* -%{_datadir}/%{name}/storage/monitor.py* -%{_datadir}/%{name}/storage/fileSD.py* -%{_datadir}/%{name}/storage/fileUtils.py* -%{_datadir}/%{name}/storage/fileVolume.py* -%{_datadir}/%{name}/storage/fuser.py* -%{_datadir}/%{name}/storage/glusterSD.py* -%{_datadir}/%{name}/storage/glusterVolume.py* -%{_datadir}/%{name}/storage/hba.py* -%{_datadir}/%{name}/storage/hsm.py* -%{_datadir}/%{name}/storage/image.py* -%{_datadir}/%{name}/storage/imageSharing.py* -%{_datadir}/%{name}/storage/iscsiadm.py* -%{_datadir}/%{name}/storage/iscsi.py* -%{_datadir}/%{name}/storage/localFsSD.py* -%{_datadir}/%{name}/storage/lvm.env -%{_datadir}/%{name}/storage/lvm.py* -%{_datadir}/%{name}/storage/misc.py* -%{_datadir}/%{name}/storage/mount.py* -%{_datadir}/%{name}/storage/multipath.py* -%{_datadir}/%{name}/storage/nfsSD.py* -%{_datadir}/%{name}/storage/outOfProcess.py* -%{_datadir}/%{name}/storage/persistentDict.py* -%{_datadir}/%{name}/storage/resourceFactories.py* -%{_datadir}/%{name}/storage/remoteFileHandler.py* -%{_datadir}/%{name}/storage/resourceManager.py* -%{_datadir}/%{name}/storage/clusterlock.py* -%{_datadir}/%{name}/storage/sdc.py* -%{_datadir}/%{name}/storage/sd.py* -%{_datadir}/%{name}/storage/securable.py* -%{_datadir}/%{name}/storage/sp.py* -%{_datadir}/%{name}/storage/spbackends.py* -%{_datadir}/%{name}/storage/storageConstants.py* -%{_datadir}/%{name}/storage/storage_exception.py* -%{_datadir}/%{name}/storage/storage_mailbox.py* -%{_datadir}/%{name}/storage/storageServer.py* -%{_datadir}/%{name}/storage/sync.py* -%{_datadir}/%{name}/storage/taskManager.py* -%{_datadir}/%{name}/storage/task.py* -%{_datadir}/%{name}/storage/threadLocal.py* -%{_datadir}/%{name}/storage/threadPool.py* -%{_datadir}/%{name}/storage/volume.py* -%{_datadir}/%{name}/storage/imageRepository/__init__.py* -%{_datadir}/%{name}/storage/imageRepository/formatConverter.py* -%{_libexecdir}/%{name}/spmprotect.sh -%{_libexecdir}/%{name}/spmstop.sh -%dir %{_libexecdir}/%{name}/hooks -%dir %{_libexecdir}/%{name}/hooks/before_device_create -%dir %{_libexecdir}/%{name}/hooks/after_device_create -%dir %{_libexecdir}/%{name}/hooks/before_device_destroy -%dir %{_libexecdir}/%{name}/hooks/after_device_destroy -%dir %{_libexecdir}/%{name}/hooks/before_vm_start -%dir %{_libexecdir}/%{name}/hooks/after_vm_start -%dir %{_libexecdir}/%{name}/hooks/before_vm_cont -%dir %{_libexecdir}/%{name}/hooks/after_vm_cont -%dir %{_libexecdir}/%{name}/hooks/before_vm_pause -%dir %{_libexecdir}/%{name}/hooks/after_vm_pause -%dir %{_libexecdir}/%{name}/hooks/before_vm_hibernate -%dir %{_libexecdir}/%{name}/hooks/after_vm_hibernate -%dir %{_libexecdir}/%{name}/hooks/before_vm_dehibernate -%dir %{_libexecdir}/%{name}/hooks/after_vm_dehibernate -%dir %{_libexecdir}/%{name}/hooks/before_device_migrate_source -%dir %{_libexecdir}/%{name}/hooks/after_device_migrate_source -%dir %{_libexecdir}/%{name}/hooks/before_device_migrate_destination -%dir %{_libexecdir}/%{name}/hooks/after_device_migrate_destination -%dir %{_libexecdir}/%{name}/hooks/before_vm_migrate_source -%dir %{_libexecdir}/%{name}/hooks/after_vm_migrate_source -%dir %{_libexecdir}/%{name}/hooks/before_vm_migrate_destination -%dir %{_libexecdir}/%{name}/hooks/after_vm_migrate_destination -%dir %{_libexecdir}/%{name}/hooks/before_vm_destroy -%dir %{_libexecdir}/%{name}/hooks/after_vm_destroy -%dir %{_libexecdir}/%{name}/hooks/before_vm_set_ticket -%dir %{_libexecdir}/%{name}/hooks/after_vm_set_ticket -%dir %{_libexecdir}/%{name}/hooks/before_update_device -%dir %{_libexecdir}/%{name}/hooks/after_update_device -%dir %{_libexecdir}/%{name}/hooks/after_update_device_fail -%dir %{_libexecdir}/%{name}/hooks/before_nic_hotplug -%dir %{_libexecdir}/%{name}/hooks/after_nic_hotplug -%dir %{_libexecdir}/%{name}/hooks/before_nic_hotunplug -%dir %{_libexecdir}/%{name}/hooks/after_nic_hotunplug -%dir %{_libexecdir}/%{name}/hooks/after_nic_hotplug_fail -%dir %{_libexecdir}/%{name}/hooks/after_nic_hotunplug_fail -%dir %{_libexecdir}/%{name}/hooks/before_disk_hotplug -%dir %{_libexecdir}/%{name}/hooks/after_disk_hotplug -%dir %{_libexecdir}/%{name}/hooks/before_disk_hotunplug -%dir %{_libexecdir}/%{name}/hooks/after_disk_hotunplug -%dir %{_libexecdir}/%{name}/hooks/before_vdsm_start -%dir %{_libexecdir}/%{name}/hooks/after_vdsm_stop -%dir %{_libexecdir}/%{name}/hooks/before_network_setup -%dir %{_libexecdir}/%{name}/hooks/after_network_setup -%dir %{_libexecdir}/%{name}/hooks/before_set_num_of_cpus -%dir %{_libexecdir}/%{name}/hooks/after_set_num_of_cpus -%dir %{_libexecdir}/%{name}/hooks/before_memory_hotplug -%dir %{_libexecdir}/%{name}/hooks/after_memory_hotplug -%dir %{_libexecdir}/%{name}/hooks/before_get_vm_stats -%dir %{_libexecdir}/%{name}/hooks/after_get_vm_stats -%dir %{_libexecdir}/%{name}/hooks/before_get_all_vm_stats -%dir %{_libexecdir}/%{name}/hooks/after_get_all_vm_stats -%dir %{_libexecdir}/%{name}/hooks/before_get_caps -%dir %{_libexecdir}/%{name}/hooks/after_get_caps -%dir %{_libexecdir}/%{name}/hooks/before_get_stats -%dir %{_libexecdir}/%{name}/hooks/after_get_stats -%dir %{_libexecdir}/%{name}/hooks/after_hostdev_list_by_caps -%dir %{_libexecdir}/%{name}/hooks/before_ifcfg_write -%dir %{_libexecdir}/%{name}/hooks/after_ifcfg_write - -%{_datadir}/%{name}/dumpStorageTable.py* -%{_datadir}/%{name}/get-conf-item -%{_datadir}/%{name}/kaxmlrpclib.py* -%{_datadir}/%{name}/momIF.py* -%{_datadir}/%{name}/set-conf-item -%dir %{_datadir}/%{name}/gluster -%{_datadir}/%{name}/gluster/__init__.py* -%{_datadir}/%{name}/gluster/cli.py* -%{_datadir}/%{name}/gluster/exception.py* -%{python_sitelib}/sos/plugins/vdsm.py* -%{_udevrulesdir}/12-vdsm-lvm.rules -/etc/security/limits.d/99-vdsm.conf -%{_mandir}/man8/vdsmd.8* -%if 0%{?rhel} -%dir %{_localstatedir}/log/core -%endif -%{_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/%{name} -%dir %{_sysconfdir}/pki/%{name}/keys -%dir %{_sysconfdir}/pki/%{name}/certs -%dir %{_sysconfdir}/pki/%{name}/libvirt-spice -%config(noreplace) %{_sysconfdir}/pki/%{name}/keys/libvirt_password -%{_localstatedir}/lib/%{name}/bonding-defaults.json -%dir %{_localstatedir}/lib/%{name} -%dir %{_localstatedir}/lib/%{name}/netconfback -%dir %{_localstatedir}/lib/%{name}/persistence -%dir %{_localstatedir}/lib/%{name}/upgrade -%dir %{_localstatedir}/run/%{name} -%dir %{_localstatedir}/run/%{name}/sourceRoutes -%dir %{_localstatedir}/run/%{name}/trackedInterfaces -%ghost %dir %{_localstatedir}/run/%{name}/payload -%dir %{_localstatedir}/run/%{name}/v2v -%dir %{_localstatedir}/log/%{name} -%dir %{_localstatedir}/log/%{name}/backup - -%files python -%{_mandir}/man1/vdsm-tool.1* -%{_bindir}/vdsm-tool -%dir %{python_sitelib}/%{name} -%dir %{python_sitelib}/%{name}/netlink -%dir %{python_sitelib}/%{name}/tool -%{python_sitelib}/%{name}/__init__.py* -%{python_sitelib}/%{name}/cmdutils.py* -%{python_sitelib}/%{name}/compat.py* -%{python_sitelib}/%{name}/concurrent.py* -%{python_sitelib}/%{name}/config.py* -%{python_sitelib}/%{name}/constants.py* -%{python_sitelib}/%{name}/define.py* -%{python_sitelib}/%{name}/exception.py* -%{python_sitelib}/%{name}/executor.py* -%{python_sitelib}/%{name}/ipwrapper.py* -%{python_sitelib}/%{name}/jsonrpcvdscli.py* -%{python_sitelib}/%{name}/libvirtconnection.py* -%{python_sitelib}/%{name}/netinfo.py* -%{python_sitelib}/%{name}/netlink/__init__.py* -%{python_sitelib}/%{name}/netlink/addr.py* -%{python_sitelib}/%{name}/netlink/link.py* -%{python_sitelib}/%{name}/netlink/monitor.py* -%{python_sitelib}/%{name}/netlink/route.py* -%{python_sitelib}/%{name}/password.py* -%{python_sitelib}/%{name}/profiling/__init__.py* -%{python_sitelib}/%{name}/profiling/cpu.py* -%{python_sitelib}/%{name}/profiling/errors.py* -%{python_sitelib}/%{name}/profiling/memory.py* -%{python_sitelib}/%{name}/profiling/profile.py* -%{python_sitelib}/%{name}/pthread.py* -%{python_sitelib}/%{name}/qemuimg.py* -%{python_sitelib}/%{name}/response.py* -%{python_sitelib}/%{name}/netconfpersistence.py* -%{python_sitelib}/%{name}/schedule.py* -%{python_sitelib}/%{name}/sslutils.py* -%{python_sitelib}/%{name}/sysctl.py* -%{python_sitelib}/%{name}/taskset.py* -%{python_sitelib}/%{name}/udevadm.py* -%{python_sitelib}/%{name}/utils.py* -%{python_sitelib}/%{name}/vdscli.py* -%{python_sitelib}/%{name}/virtsparsify.py* -%{python_sitelib}/%{name}/xmlrpc.py* -%{python_sitelib}/%{name}/tool/__init__.py* -%{python_sitelib}/%{name}/tool/configfile.py* -%{python_sitelib}/%{name}/tool/dummybr.py* -%{python_sitelib}/%{name}/tool/dump_bonding_defaults.py* -%{python_sitelib}/%{name}/tool/nwfilter.py* -%{python_sitelib}/%{name}/tool/configurator.py* -%{python_sitelib}/%{name}/tool/configurators/__init__* -%{python_sitelib}/%{name}/tool/configurators/certificates.py* -%{python_sitelib}/%{name}/tool/configurators/libvirt.py* -%{python_sitelib}/%{name}/tool/configurators/passwd.py* -%{python_sitelib}/%{name}/tool/configurators/sanlock.py* -%{python_sitelib}/%{name}/tool/configurators/sebool.py* -%{python_sitelib}/%{name}/tool/configurators/multipath.py* -%{python_sitelib}/%{name}/tool/dump_volume_chains.py* -%{python_sitelib}/%{name}/tool/register.py* -%{python_sitelib}/%{name}/tool/restore_nets.py* -%{python_sitelib}/%{name}/tool/service.py* -%{python_sitelib}/%{name}/tool/transient.py* -%{python_sitelib}/%{name}/tool/unified_persistence.py* -%{python_sitelib}/%{name}/tool/upgrade.py* -%{python_sitelib}/%{name}/tool/validate_ovirt_certs.py* -%{python_sitelib}/%{name}/tool/vdsm-id.py* - -%files tests -%doc %{_datadir}/%{name}/tests/README -%dir %{_datadir}/%{name}/tests -%dir %{_datadir}/%{name}/tests/functional -%dir %{_datadir}/%{name}/tests/devices -%dir %{_datadir}/%{name}/tests/integration -%{_datadir}/%{name}/tests/*.py* -%{_datadir}/%{name}/tests/cpu_info.out -%{_datadir}/%{name}/tests/caps_libvirt_intel_E5649.out -%{_datadir}/%{name}/tests/caps_libvirt_amd_6274.out -%{_datadir}/%{name}/tests/caps_libvirt_ibm_S822L.out -%{_datadir}/%{name}/tests/caps_libvirt_intel_E31220.out -%{_datadir}/%{name}/tests/caps_libvirt_intel_E5606.out -%{_datadir}/%{name}/tests/caps_libvirt_intel_i73770.out -%{_datadir}/%{name}/tests/caps_libvirt_intel_i73770_nosnap.out -%{_datadir}/%{name}/tests/caps_libvirt_multiqemu.out -%{_datadir}/%{name}/tests/caps_numactl_4_nodes.out -%{_datadir}/%{name}/tests/cpu_map.xml -%{_datadir}/%{name}/tests/devices/*.py* -%{_datadir}/%{name}/tests/devices/parsing/*.py* -%{_datadir}/%{name}/tests/devices/data/*.xml -%{_datadir}/%{name}/tests/ip_route_show_table_all.out -%{_datadir}/%{name}/tests/iscsiadm_-m_iface.out -%{_datadir}/%{name}/tests/lvs_3386c6f2-926f-42c4-839c-38287fac8998.out -%{_datadir}/%{name}/tests/mem_info.out -%{_datadir}/%{name}/tests/netmaskconversions -%{_datadir}/%{name}/tests/run_tests.sh -%{_datadir}/%{name}/tests/tc_filter_show.out -%{_datadir}/%{name}/tests/toolTests_empty.conf -%{_datadir}/%{name}/tests/toolTests_lconf_ssl.conf -%{_datadir}/%{name}/tests/toolTests_libvirtd.conf -%{_datadir}/%{name}/tests/toolTests_qemu_sanlock.conf -%{_datadir}/%{name}/tests/toolTests_qemu_ssl.conf -%{_datadir}/%{name}/tests/toolTests_vdsm_no_ssl.conf -%{_datadir}/%{name}/tests/toolTests_vdsm_ssl.conf -%{_datadir}/%{name}/tests/glusterGeoRepStatus.xml -%{_datadir}/%{name}/tests/glusterVolumeGeoRepConfigList.xml -%{_datadir}/%{name}/tests/glusterSnapshotList.xml -%{_datadir}/%{name}/tests/glusterSnapshotListEmpty.xml -%{_datadir}/%{name}/tests/glusterVolumeProfileInfo.xml -%{_datadir}/%{name}/tests/glusterSnapshotConfig.xml -%{_datadir}/%{name}/tests/glusterVolumeProfileInfoNfs.xml -%{_datadir}/%{name}/tests/glusterVolumeRebalanceStatus.xml -%{_datadir}/%{name}/tests/glusterVolumeRemoveBricksStatus.xml -%{_datadir}/%{name}/tests/glusterSnapshotRestore.xml -%{_datadir}/%{name}/tests/glusterVolumeSnapshotList.xml -%{_datadir}/%{name}/tests/glusterVolumeSnapshotListEmpty.xml -%{_datadir}/%{name}/tests/glusterVolumeTasks.xml -%{_datadir}/%{name}/tests/functional/*.py* -%{_datadir}/%{name}/tests/functional/*.policy -%{_datadir}/%{name}/tests/integration/*.py* - -%files hook-openstacknet -%{_sysconfdir}/sudoers.d/50_vdsm_hook_openstacknet -%{_libexecdir}/%{name}/hooks/after_device_create/50_openstacknet -%{_libexecdir}/%{name}/hooks/after_device_create/openstacknet_utils.py* -%{_libexecdir}/%{name}/hooks/after_device_destroy/50_openstacknet -%{_libexecdir}/%{name}/hooks/after_device_destroy/openstacknet_utils.py* -%{_libexecdir}/%{name}/hooks/after_device_migrate_destination/50_openstacknet -%{_libexecdir}/%{name}/hooks/after_device_migrate_destination/openstacknet_utils.py* -%{_libexecdir}/%{name}/hooks/after_nic_hotplug/50_openstacknet -%{_libexecdir}/%{name}/hooks/after_nic_hotplug/openstacknet_utils.py* -%{_libexecdir}/%{name}/hooks/after_nic_hotunplug/50_openstacknet -%{_libexecdir}/%{name}/hooks/after_nic_hotunplug/openstacknet_utils.py* -%{_libexecdir}/%{name}/hooks/before_device_create/50_openstacknet -%{_libexecdir}/%{name}/hooks/before_device_create/openstacknet_utils.py* -%{_libexecdir}/%{name}/hooks/before_device_migrate_destination/50_openstacknet -%{_libexecdir}/%{name}/hooks/before_device_migrate_destination/openstacknet_utils.py* -%{_libexecdir}/%{name}/hooks/before_nic_hotplug/50_openstacknet -%{_libexecdir}/%{name}/hooks/before_nic_hotplug/openstacknet_utils.py* - -%files hook-macspoof -%{_libexecdir}/%{name}/hooks/before_vm_start/50_macspoof -%{_libexecdir}/%{name}/hooks/before_device_create/50_macspoof -%{_libexecdir}/%{name}/hooks/before_nic_hotplug/50_macspoof - -%if 0%{?with_vhostmd} -%files hook-vhostmd -%license COPYING -%{_sysconfdir}/sudoers.d/50_vdsm_hook_vhostmd -%{_libexecdir}/%{name}/hooks/before_vm_start/50_vhostmd -%{_libexecdir}/%{name}/hooks/before_vm_migrate_destination/50_vhostmd -%{_libexecdir}/%{name}/hooks/before_vm_dehibernate/50_vhostmd -%{_libexecdir}/%{name}/hooks/after_vm_destroy/50_vhostmd -%else -%exclude %{_sysconfdir}/sudoers.d/50_vdsm_hook_vhostmd -%exclude %{_libexecdir}/%{name}/hooks/before_vm_start/50_vhostmd -%exclude %{_libexecdir}/%{name}/hooks/before_vm_migrate_destination/50_vhostmd -%exclude %{_libexecdir}/%{name}/hooks/before_vm_dehibernate/50_vhostmd -%exclude %{_libexecdir}/%{name}/hooks/after_vm_destroy/50_vhostmd -%endif - -%files hook-qemucmdline -%license COPYING -%{_libexecdir}/%{name}/hooks/before_vm_start/50_qemucmdline - -%files hook-ethtool-options -%{_libexecdir}/%{name}/hooks/after_network_setup/30_ethtool_options - -%files hook-ipv6 -%{_libexecdir}/%{name}/hooks/before_network_setup/50_ipv6 - -%files hook-vmfex-dev -%{_libexecdir}/%{name}/hooks/before_device_create/50_vmfex -%{_libexecdir}/%{name}/hooks/before_device_migrate_destination/50_vmfex -%{_libexecdir}/%{name}/hooks/before_nic_hotplug/50_vmfex - -%if 0%{?with_hooks} -%files hook-allocate_net -%{_libexecdir}/%{name}/hooks/before_device_create/10_allocate_net - -%files hook-checkimages -%{_libexecdir}/%{name}/hooks/before_vm_start/60_checkimages - -%files hook-directlun -%{_sysconfdir}/sudoers.d/50_vdsm_hook_directlun -%{_libexecdir}/%{name}/hooks/before_vm_start/50_directlun -%{_libexecdir}/%{name}/hooks/after_vm_destroy/50_directlun -%{_libexecdir}/%{name}/hooks/before_vm_migrate_destination/50_directlun - -%files hook-diskunmap -%{_libexecdir}/%{name}/hooks/before_vm_start/50_diskunmap - -%files hook-fakevmstats -%{_libexecdir}/%{name}/hooks/after_get_all_vm_stats/10_fakevmstats - -%files hook-fileinject -%{_libexecdir}/%{name}/hooks/before_vm_start/50_fileinject - -%files hook-floppy -%{_libexecdir}/%{name}/hooks/before_vm_start/50_floppy -%{_libexecdir}/%{name}/hooks/before_vm_migrate_source/50_floppy - -%files hook-hostusb -%{_sysconfdir}/sudoers.d/50_vdsm_hook_hostusb -%{_libexecdir}/%{name}/hooks/before_vm_start/50_hostusb -%{_libexecdir}/%{name}/hooks/before_vm_migrate_source/50_hostusb -%{_libexecdir}/%{name}/hooks/after_vm_destroy/50_hostusb - -%files hook-httpsisoboot -%{_libexecdir}/%{name}/hooks/before_vm_start/50_httpsisoboot - -%files hook-hugepages -%{_sysconfdir}/sudoers.d/50_vdsm_hook_hugepages -%{_libexecdir}/%{name}/hooks/before_vm_start/50_hugepages -%{_libexecdir}/%{name}/hooks/before_vm_migrate_destination/50_hugepages -%{_libexecdir}/%{name}/hooks/after_vm_destroy/50_hugepages - -%files hook-isolatedprivatevlan -%{_libexecdir}/%{name}/hooks/before_vm_start/50_isolatedprivatevlan -%config(noreplace) %{_sysconfdir}/libvirt/nwfilter/isolatedprivatevlan-vdsm.xml - -%files hook-macbind -%{_libexecdir}/%{name}/hooks/before_vm_start/50_macbind - -%files hook-noipspoof -%{_libexecdir}/%{name}/hooks/before_device_create/50_noipspoof -%{_libexecdir}/%{name}/hooks/before_nic_hotplug/50_noipspoof - -%files hook-extnet -%{_libexecdir}/%{name}/hooks/before_device_create/50_extnet -%{_libexecdir}/%{name}/hooks/before_nic_hotplug/50_extnet - -%files hook-nestedvt -%{_sysconfdir}/modprobe.d/vdsm-nestedvt.conf -%{_libexecdir}/%{name}/hooks/before_vm_start/50_nestedvt - -%files hook-numa -%{_libexecdir}/%{name}/hooks/before_vm_start/50_numa - -%files hook-pincpu -%{_libexecdir}/%{name}/hooks/before_vm_start/50_pincpu - -%files hook-promisc -%{_sysconfdir}/sudoers.d/50_vdsm_hook_promisc -%{_libexecdir}/%{name}/hooks/after_vm_start/50_promisc -%{_libexecdir}/%{name}/hooks/before_vm_destroy/50_promisc - -%files hook-qos -%{_libexecdir}/%{name}/hooks/before_vm_start/50_qos - -%files hook-scratchpad -%{_libexecdir}/%{name}/hooks/before_vm_start/50_scratchpad -%{_libexecdir}/%{name}/hooks/before_vm_migrate_source/50_scratchpad -%{_libexecdir}/%{name}/hooks/after_vm_destroy/50_scratchpad - -%files hook-smbios -%{_libexecdir}/%{name}/hooks/before_vm_start/50_smbios - -%files hook-spiceoptions -%{_libexecdir}/%{name}/hooks/before_vm_start/50_spiceoptions - -%files hook-vmdisk -%{_libexecdir}/%{name}/hooks/before_vm_start/50_vmdisk - -%files hook-vmfex -%{_libexecdir}/%{name}/hooks/before_vm_migrate_destination/50_vmfex -%{_libexecdir}/%{name}/hooks/before_vm_start/50_vmfex -%endif - -%files debug-plugin -%{_datadir}/%{name}/vdsmDebugPlugin.py* -%{_datadir}/%{name}/debugPluginClient.py* - -%files cli -%license COPYING -%{_bindir}/vdsClient -%{_datadir}/%{name}/vdsClient.py* -%{_datadir}/%{name}/vdsClientGluster.py* -%{_sysconfdir}/bash_completion.d/vdsClient -%{_mandir}/man1/vdsClient.1* - -%files xmlrpc -%dir %{_datadir}/%{name} -%{_datadir}/%{name}/rpc/bindingxmlrpc.py* - -%files jsonrpc -%doc %{name}/rpc/vdsm-api.html -%{_datadir}/%{name}/rpc/__init__.py* -%{_datadir}/%{name}/rpc/bindingjsonrpc.py* -%{_datadir}/%{name}/rpc/Bridge.py* -%{_datadir}/%{name}/rpc/vdsmapi-schema.json -%{python_sitelib}/vdsmapi.py* -%{python_sitelib}/yajsonrpc/__init__.py* -%if ! 0%{?with_gluster} -%exclude %{_datadir}/%{name}/rpc/vdsmapi-gluster-schema.json -%endif - -%files yajsonrpc -%dir %{python_sitelib}/yajsonrpc -%{python_sitelib}/yajsonrpc/betterAsyncore.py* -%{python_sitelib}/yajsonrpc/stomp.py* -%{python_sitelib}/yajsonrpc/stompreactor.py* - -%files infra -%{python_sitelib}/%{name}/infra/eventfd/__init__.py* -%{python_sitelib}/%{name}/infra/filecontrol/__init__.py* -%{python_sitelib}/%{name}/infra/sigutils/__init__.py* -%{python_sitelib}/%{name}/infra/zombiereaper/__init__.py* -%{python_sitelib}/%{name}/infra/__init__.py* - -%files hook-faqemu -%license COPYING -%{_libexecdir}/%{name}/hooks/before_vm_start/10_faqemu - -%if 0%{?with_gluster} -%files gluster -%dir %{_datadir}/%{name}/gluster -%license COPYING -%{_datadir}/%{name}/gluster/api.py* -%{_datadir}/%{name}/gluster/apiwrapper.py* -%{_datadir}/%{name}/gluster/fstab.py* -%{_datadir}/%{name}/rpc/vdsmapi-gluster-schema.json -%{_datadir}/%{name}/gluster/gfapi.py* -%{_datadir}/%{name}/gluster/hooks.py* -%{_datadir}/%{name}/gluster/services.py* -%{_datadir}/%{name}/gluster/storagedev.py* -%{_datadir}/%{name}/gluster/tasks.py* -%endif - -%changelog -* Fri Mar 11 2016 Dennis Gilmore 4.17.9-18.git1379158 -- spec cleanups - -* Fri Feb 05 2016 Fedora Release Engineering - 4.17.9-17.git1379158 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Sun Oct 13 2013 Yaniv Bronhaim - 4.13.0 -- Removing vdsm-python-cpopen from the spec -- Adding dependency on formal cpopen package - -* Sun Apr 07 2013 Yaniv Bronhaim - 4.9.0-1 -- Adding cpopen package - -* Wed Oct 12 2011 Federico Simoncelli - 4.9.0-0 -- Initial upstream release - -* Thu Nov 02 2006 Simon Grinberg - 0.0-1 -- Initial build From 19694170dade024997cba5f47fb4006d85de3c32 Mon Sep 17 00:00:00 2001 From: Yaniv Bronhaim Date: Thu, 28 Jul 2016 20:08:34 +0300 Subject: [PATCH 02/27] Refresh build of vdsm - stable ovirt-4.0 --- .gitignore | 1 + dead.package | 3 - sources | 1 + vdsm.spec | 1709 ++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 1711 insertions(+), 3 deletions(-) create mode 100644 .gitignore delete mode 100644 dead.package create mode 100644 sources create mode 100644 vdsm.spec diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c6f8bd5 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/vdsm-4.18.9.tar.gz diff --git a/dead.package b/dead.package deleted file mode 100644 index bb86c0f..0000000 --- a/dead.package +++ /dev/null @@ -1,3 +0,0 @@ -2016-05-30: Retired because of broken deps in preparation of Fedora 24 -Reference: https://fedorahosted.org/rel-eng/ticket/ - diff --git a/sources b/sources new file mode 100644 index 0000000..48f1d34 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +a644fe1bd25c70b488bb8d18aba79af0 vdsm-4.18.9.tar.gz diff --git a/vdsm.spec b/vdsm.spec new file mode 100644 index 0000000..fdfe4d4 --- /dev/null +++ b/vdsm.spec @@ -0,0 +1,1709 @@ +# Packages names +%global vdsm_name vdsm + +# Required users and groups +%global vdsm_user vdsm +%global vdsm_group kvm +%global qemu_user qemu +%global qemu_group qemu +%global snlk_group sanlock +%global snlk_user sanlock +%global cdrom_group cdrom +# Not configurable because owned by ovirt-vmconsole package +%global vmcon_user ovirt-vmconsole +%global vmcon_group ovirt-vmconsole + +# Features +%global with_ovirt_imageio 1 +%global with_ovirt_vmconsole 1 +%global with_gluster_mgmt 1 +%global with_hooks 1 +%global with_vhostmd 0 +%global with_python3 0 + +%ifarch ppc64le +%global with_openvswitch 0 +%else +%global with_openvswitch 0 +%endif + +# Glusterfs package version +%global gluster_version 3.7.1 + +# 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 _udevrulesdir /usr/lib/udev/rules.d/ +%global _udevexecdir /usr/lib/udev/ + +# Disable debuginfo package, since vdsm is a meta-package +%global debug_package %{nil} + +Name: %{vdsm_name} +Version: 4.18.9 +Release: 1%{?dist}%{?extra_release} +Summary: Virtual Desktop Server Manager + +Group: Applications/System +License: GPLv2+ +Url: http://www.ovirt.org/wiki/Vdsm +Source0: %{vdsm_name}-%{version}.tar.gz +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +%{!?_licensedir:%global license %%doc} + +BuildRequires: cyrus-sasl-lib +BuildRequires: python +BuildRequires: python-devel +BuildRequires: python-netaddr +BuildRequires: python-nose +BuildRequires: python-six >= 1.9.0 +BuildRequires: rpm-build + +# BuildRequires needed by the tests during the build +BuildRequires: dosfstools +BuildRequires: genisoimage +BuildRequires: libnl3 +BuildRequires: libselinux-python +BuildRequires: libvirt-python +BuildRequires: m2crypto +BuildRequires: mom >= 0.5.5 +BuildRequires: openssl +BuildRequires: policycoreutils-python +BuildRequires: psmisc +BuildRequires: PyYAML +BuildRequires: python-cpopen >= 1.4 +BuildRequires: python-inotify +BuildRequires: python-ioprocess >= 0.16.1-1 +BuildRequires: python-pthreading +BuildRequires: qemu-img +BuildRequires: rpm-python +BuildRequires: python-blivet + +%if 0%{?with_openvswitch} +BuildRequires: openvswitch >= 2.0.0 +%endif + +%if 0%{?with_python3} +%if 0%{?rhel} +BuildRequires: python34-nose +BuildRequires: python34-six +%else # fedora +BuildRequires: python3-nose +BuildRequires: python3-six +BuildRequires: python3-netaddr +BuildRequires: python3-yaml +BuildRequires: libselinux-python3 +BuildRequires: libvirt-python3 +%endif # rhel +%endif # support python3 + +# Autotools BuildRequires +%if 0%{?enable_autotools} +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: gettext-devel +BuildRequires: libtool +%endif + +BuildRequires: systemd-units + +# Numactl is not available on s390[x] and ARM +%ifnarch s390 s390x %{arm} +Requires: numactl +%endif + +%ifarch x86_64 +Requires: python-dmidecode +Requires: dmidecode +Requires: virt-v2v +%endif + +# Numactl is not available on s390[x] and ARM +%ifnarch s390 s390x %{arm} +Requires: numactl +%endif + +%ifarch x86_64 +Requires: python-dmidecode +Requires: dmidecode +Requires: virt-v2v +%endif + +Requires: ethtool +Requires: which +Requires: sudo >= 1.7.3 +Requires: logrotate +Requires: xz +Requires: ntp +Requires: iproute >= 3.10.0 +Requires: PyYAML +Requires: python-netaddr +Requires: python-inotify +Requires: python-argparse +Requires: python-cpopen >= 1.4 +Requires: python-ioprocess >= 0.16.1-1 +Requires: python-pthreading >= 0.1.3-3 +Requires: python-six >= 1.9.0 +Requires: python-requests +Requires: %{name}-infra = %{version}-%{release} +Requires: rpm-python +Requires: nfs-utils +Requires: m2crypto +Requires: libnl3 +Requires: curl +Requires: %{name}-xmlrpc = %{version}-%{release} +Requires: %{name}-jsonrpc = %{version}-%{release} +Requires: safelease >= 1.0-7 +Requires: mom >= 0.5.3 +Requires(pre): shadow-utils + +%if 0%{?with_openvswitch} +Requires: openvswitch >= 2.0.0 +%endif + +%if 0%{?with_ovirt_imageio} +Requires: ovirt-imageio-common +Requires: ovirt-imageio-daemon +%endif + +%if 0%{?with_ovirt_vmconsole} +Requires: ovirt-vmconsole >= 1.0.0-0 +%endif + +Requires: libvirt-client +Requires: libvirt-daemon-config-nwfilter +Requires: libvirt-lock-sanlock + +%if 0%{?fedora} +# TODO: bump fedora requirements to >= 1.3.5 as soon +# as we can require Fedora >= 24 + virt-preview +Requires: libvirt-python >= 1.2.18-1 +Requires: libvirt-daemon-kvm >= 1.2.18.1-1 +%else # rhel +Requires: libvirt-daemon-kvm >= 1.2.17-13.el7_2.5 +Requires: libvirt-python >= 1.2.17-2 +%endif + +# iscsi-intiator versions +%if 0%{?rhel} +Requires: iscsi-initiator-utils +%else # fedora +Requires: iscsi-initiator-utils >= 6.2.0.873-21 +%endif + +Requires: sanlock >= 2.8-2, sanlock-python + +# device-mapper-multipath + +%if 0%{?rhel} +Requires: device-mapper-multipath >= 0.4.9-84.el7 +%endif #rhel + +%if 0%{?fedora} == 22 +Requires: device-mapper-multipath >= 0.4.9-73.fc22.2 +%endif + +%if 0%{?fedora} >= 23 +Requires: device-mapper-multipath >= 0.4.9-80.fc23 +%endif + +%if 0%{?rhel} +Requires: e2fsprogs +Requires: fence-agents-all +Requires: kernel >= 3.10.0-327.18.1.el7 +Requires: lvm2 >= 7:2.02.130-5.el7_2.5 +Requires: python >= 2.7.5-18.el7_1.1 +Requires: policycoreutils-python +Requires: selinux-policy-targeted >= 3.13.1-16.el7 +Requires: systemd >= 219-11.el7 +%else +Requires: fence-agents-all +Requires: kernel >= 4.1.6 +# Subprocess and thread bug was found on python 2.7.2 +Requires: python >= 2.7.3 +Requires: initscripts >= 9.42.2-1 +Requires: e2fsprogs >= 1.41.14 +%if 0%{?fedora} >= 23 +Requires: policycoreutils-python-utils +%endif # fedora 23 +Requires: policycoreutils-python +Requires: sed >= 4.2.1-10 +Requires: ed +Requires: lvm2 >= 2.02.107 +Requires: selinux-policy-targeted >= 3.12.1-177 +# In order to avoid a policycoreutils bug (rhbz 889698) when selinux is +# disabled we now require the version 2.1.13-55 (or newer) of Fedora. +Requires: policycoreutils >= 2.1.13-55 +Requires: systemd >= 209 +%endif + +%if 0%{?rhel} +Requires: qemu-kvm-rhev >= 10:2.3.0-31.el7_2.16 +Requires: qemu-img-rhev >= 10:2.3.0-31.el7_2.16 +%else +Requires: qemu-kvm >= 2:2.3.1-1 +Requires: qemu-img >= 2:2.3.1-1 +%endif # rhel + +# 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 +Requires: bridge-utils +Requires: sos +Requires: tree +Requires: dosfstools +Requires: genisoimage +Requires: libselinux-python +Requires: %{name}-python = %{version}-%{release} +Requires: %{name}-hook-vmfex-dev = %{version}-%{release} +Requires: NetworkManager-config-server + +Requires(post): /usr/sbin/saslpasswd2 + +%if 0%{?fedora} +Requires(post): hostname +%else +Requires(post): /bin/hostname +%endif + +Conflicts: vdsm-hook-sriov + +%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 cli +Summary: VDSM command line interface +BuildArch: noarch +Requires: %{name}-python = %{version}-%{release} +Requires: %{name}-xmlrpc = %{version}-%{release} + +%description cli +Call VDSM commands from the command line. Used for testing and debugging. + +%package xmlrpc +Summary: VDSM xmlrpc API +BuildArch: noarch +Requires: %{name}-python = %{version}-%{release} + + +%description xmlrpc +An XMLRPC interface for interacting with vdsmd. Primary control interface for +ovirt-engine and vdsClient. + +%package api +Summary: VDSM API +BuildArch: noarch + +%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: python >= 2.6 + +%description yajsonrpc +A JSON RPC server and client implementation. + +%package infra +Summary: Utilities and libraries for vdsm +BuildArch: noarch +Requires: python >= 2.6 +Obsoletes: %{name}-python-zombiereaper + +%description infra +Utilities and libraries for vdsm. + +%package reg +Summary: VDSM registration package +BuildArch: noarch +Requires: %{name} = %{version}-%{release} +Requires: m2crypto +Requires: openssl +Conflicts: ovirt-node < 3.0.4 + +%description reg +VDSM registration package. Used to register a Linux host to a Virtualization +Manager. + +%package python +Summary: VDSM python libraries +Requires: %{name}-api = %{version}-%{release} +BuildArch: noarch +Requires: %{name}-infra = %{version}-%{release} +Requires: python-cpopen >= 1.4 +Requires: m2crypto +Requires: python-ioprocess >= 0.16.1-1 + +%description python +Shared libraries between the various VDSM packages. + +%post python +# REQUIRED_FOR: Upgrade from 4.14 to 4.17 +# HACK: Remove vdsm python lib __init__ file if installed on old location +# https://bugzilla.redhat.com/show_bug.cgi?id=1279167 +if [ "$1" -ge 2 ]; then + if [ -d "%{python2_sitearch}/%{vdsm_name}" ]; then + logger -t '%{vdsm_name}' \ + 'Disabling old vdsm package in %{python2_sitearch}/%{vdsm_name}.' \ + 'Removing %{python2_sitearch}/%{vdsm_name}/init.py*' + rm -f %{python2_sitearch}/%{vdsm_name}/__init__.py* + fi +fi + +%package tests +Summary: VDSM Test Suite +BuildArch: noarch +Requires: %{name} = %{version}-%{release} +Requires: dracut +Requires: python-nose + +%description tests +A test suite for verifying the functionality of a running vdsm instance + +%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-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} = %{version}-%{release} + +%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} = %{version}-%{release} + +%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 0%{?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-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-macspoof +Summary: Disables MAC spoofing filtering +BuildArch: noarch + +%description hook-macspoof +VDSM hooks which allow to disable mac spoof filtering +either on all the of the VM's interfaces or on +specific vnics. + +%package hook-noipspoof +Summary: Enables strict anti-spoofing filtering +BuildArch: noarch + +%description hook-noipspoof +VDSM hook which allows to enable strict anti-spoofing filtering +on all of the the VM's interfaces. + +%package hook-extnet +Summary: Force a vNIC to connect to a specific libvirt network +BuildArch: noarch +Requires: %{name} = %{version}-%{release} + +%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-fakesriov +Summary: Generate fake SR-IOV devices +Requires: %{name} + +%description hook-fakesriov +Hook intercepts reported host device by hostdevListByCaps and adds +1 fake sriov devices and 2 fake virtual function devices +To enable this hook on your host, set vars.fake_sriov_enable=true in your +/etc/vdsm/vdsm.conf. + +%package hook-fileinject +Summary: Allow uploading file to VMs disk +BuildArch: noarch +Requires: python-libguestfs + +%description hook-fileinject +Hook is getting target file name and its content and +create that file in target machine. + +%package hook-floppy +Summary: Allow adding floppy to VM +BuildArch: noarch + +%description hook-floppy +Allow adding floppy to VM + +%package hook-hostusb +Summary: Allow attaching USB device from host +BuildArch: noarch +Requires: usbutils + +%description hook-hostusb +Hook is getting vendor and product id of USB device +disconnect it from host and attach it to VM + +%package hook-httpsisoboot +Summary: Allow directly booting from an https available ISO +BuildArch: noarch +%if 0%{?rhel} +Requires: qemu-kvm-rhev >= 10:2.1.2-3 +%endif + +%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-hugepages +Summary: Huge pages enable user to handle VM with 2048KB page files. +BuildArch: noarch + +%description hook-hugepages +Hook is getting number of huge pages reserve them for the VM, +and enable user to handle VM with 2048KB page files. + +%package hook-isolatedprivatevlan +Summary: Isolated network environment for VMs +BuildArch: noarch + +%description hook-isolatedprivatevlan +limit VM traffic to a specific gateway by its mac address, +hook prevent VM from spoofing its mac or ip address +by using libvirt filter +and by adding custom filter: isolatedprivatevlan-vdsm.xml + +%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-numa +Summary: NUMA support for VDSM +BuildArch: noarch + +%description hook-numa +Hooks is getting number/rage of NUMA nodes and NUMA mode, +and update the VM xml. + +%package hook-openstacknet +Summary: OpenStack Network vNICs support for VDSM +BuildArch: noarch + +%description hook-openstacknet +Hook for OpenStack Network vNICs. + +%package hook-ovs +Summary: Open vSwitch support for VDSM +BuildArch: noarch +Requires: %{name} = %{version}-%{release} +Requires: openvswitch >= 2.0.0 + +%description hook-ovs +Hook for Open vSwitch support. + +%package hook-pincpu +Summary: Hook pin VM so specific CPUs +BuildArch: noarch + +%description hook-pincpu +pincpu is hook for VDSM. +pincpu enable to pin virtual machine to a specific CPUs. + +%package hook-promisc +Summary: Network interface promiscuous mode support for VDSM +BuildArch: noarch + +%description hook-promisc +VDSM promiscuous mode let user define a VM interface that will capture +all network traffic. + +%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-qos +Summary: QoS network in/out traffic support for VDSM +BuildArch: noarch + +%description hook-qos +Hook adds QoS in/out traffic to VMs interfaces + +%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 +Summary: vmfex support for VDSM +BuildArch: noarch +Conflicts: hook-vmfex-dev + +%description hook-vmfex +Hook for vmfex. + +%package hook-vmfex-dev +Summary: VM-FEX vNIC support for VDSM +BuildArch: noarch +Requires: %{name} = %{version}-%{release} +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-vmdisk +Summary: External disk support for VDSM +BuildArch: noarch + +%description hook-vmdisk +Hook adds additional disk image for a VM (raw or qcow2) + +%package hook-ipv6 +Summary: Set IPv6 configuration through custom network properties +BuildArch: noarch +Requires: %{name} >= 4.16.7 + +%description hook-ipv6 +VDSM hook used for applying IPv6 configuration through custom network +properties + +%package hook-fcoe +Summary: Hook to enable FCoE support +BuildArch: noarch +Requires: %{name} = %{version}-%{release} +Requires: fcoe-utils + +%description hook-fcoe +VDSM hook used for configure specified NICs as FCoE interface through custom +network properties + +%if 0%{?with_gluster_mgmt} +%package gluster +Summary: Gluster Plugin for VDSM +BuildArch: noarch +Requires: %{name} = %{version}-%{release} +Requires: glusterfs-server >= %{gluster_version} +Requires: glusterfs-api >= %{gluster_version} +Requires: glusterfs-geo-replication >= %{gluster_version} +Requires: python-magic +Requires: python-blivet +Requires: xfsprogs + +%description gluster +Gluster plugin enables VDSM to serve Gluster functionalities. +%endif + +%prep +%setup -q + +%build +%if 0%{?enable_autotools} +autoreconf -if +%endif +%configure \ +%if 0%{?with_hooks} + --enable-hooks \ +%endif +%if ! 0%{?with_gluster_mgmt} + --disable-gluster-mgmt \ +%endif +%if ! 0%{?with_python3} + --disable-python3 \ +%endif + --with-smbios-manufacturer='Red Hat' \ + --with-smbios-osname='RHEV Hypervisor' \ +%if ! 0%{?with_ovirt_imageio} + --disable-ovirt-imageio \ +%endif +%if ! 0%{?with_openvswitch} + --disable-openvswitch \ +%endif +%if 0%{?with_ovirt_vmconsole} + --with-ovirt-vmconsole-user=%{vmcon_user} \ + --with-ovirt-vmconsole-group=%{vmcon_group} \ +%else + --with-ovirt-vmconsole-user='vdsm' \ + --with-ovirt-vmconsole-group='kvm' \ +%endif + --with-qemu-kvm='qemu-kvm-rhev' \ + --with-qemu-img='qemu-img-rhev' + +make +# Setting software_version and software_revision in dsaversion.py +baserelease=`echo "%{release}" | sed 's/\([0-9]\+\(\.[0-9]\+\)\?\).*/\1/'` +baseversion=`echo "%{version}" | sed 's/\([0-9]\+\(\.[0-9]\+\)\?\).*/\1/'` +rawversion=%{version}-%{release} +sed -i -e 's/^software_version =.*/software_version = "'"${baseversion}"'"/' \ + -e 's/^raw_version_revision =.*/raw_version_revision = "'"${rawversion}"'"/' \ + -e 's/^software_revision =.*/software_revision = "'"${baserelease}"'"/' lib/vdsm/dsaversion.py + +sed -i -e 's/@SSL_IMPLEMENTATION@/m2c/g' lib/vdsm/config.py + +sed -i -e 's\@VDSMRPCPYLIBDIR@\%{python_sitelib}/%{vdsm_name}/rpc\g' lib/vdsm/constants.py + +%install +rm -rf %{buildroot} +make DESTDIR=%{buildroot} install + +# Creating VDSM logs in this session to avoid rpmbuild +# complain during the build +install -dDm 0755 %{buildroot}/var/log/vdsm +touch %{buildroot}/var/log/vdsm/{connectivity.log,mom.log,supervdsm.log,vdsm.log} + +# Install the lvm rules +install -Dm 0644 vdsm/storage/vdsm-lvm.rules \ + %{buildroot}%{_udevrulesdir}/12-vdsm-lvm.rules + +install -Dm 0644 vdsm/limits.conf \ + %{buildroot}/etc/security/limits.d/99-vdsm.conf + +install -Dm 0755 init/systemd/systemd-vdsmd %{buildroot}/usr/lib/systemd/systemd-vdsmd +install -Dm 0644 init/systemd/85-vdsmd.preset %{buildroot}/usr/lib/systemd/system-preset/85-vdsmd.preset +install -Dm 0644 init/systemd/vdsmd.service %{buildroot}%{_unitdir}/vdsmd.service +install -Dm 0644 init/systemd/vdsm-network.service %{buildroot}%{_unitdir}/vdsm-network.service +install -Dm 0644 init/systemd/supervdsmd.service %{buildroot}%{_unitdir}/supervdsmd.service + +install -Dm 0644 init/systemd/mom-vdsm.service %{buildroot}%{_unitdir}/mom-vdsm.service + +install -Dm 0644 vdsm/vdsm-modules-load.d.conf \ + %{buildroot}%{_sysconfdir}/modules-load.d/vdsm.conf +install -Dm 0644 init/systemd/vdsm-tmpfiles.d.conf \ + %{buildroot}%{_tmpfilesdir}/%{vdsm_name}.conf +install -Dm 0644 init/systemd/unlimited-core.conf \ + %{buildroot}%{_sysconfdir}/systemd/system/libvirtd.service.d/unlimited-core.conf + +%if 0%{?rhel} +# This is not commonplace, but we want /var/log/core to be a world-writable +# dropbox for core dumps +install -dDm 1777 %{buildroot}%{_localstatedir}/log/core +%endif + +# Install the polkit for libvirt +install -Dm 0644 vdsm/vdsm-libvirt-access.rules \ + %{buildroot}%{_polkitdir}/10-vdsm-libvirt-access.rules + +# Install the libvirt hook for cleaning up the XML +install -Dm 0755 vdsm/virt/libvirt-hook.sh \ + %{buildroot}%{_sysconfdir}/libvirt/hooks/qemu + +%check +make check + +%clean +rm -rf %{buildroot} + +%pre +# Force standard locale behavior (English) +export LC_ALL=C + +/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} + +# We keep the previous rpm version number in a file for managing upgrade flow +# in vdsmd_init_script upgraded_version_check task +if [ "$1" -gt 1 ]; then + rpm -q %{vdsm_name} > "%{_localstatedir}/lib/%{vdsm_name}/upgraded_version" +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 /var/log/vdsm/{connectivity.log,mom.log,supervdsm.log,vdsm.log} +chmod 0644 /var/log/vdsm/{connectivity.log,mom.log,supervdsm.log,vdsm.log} +chown vdsm:kvm /var/log/vdsm/{connectivity.log,mom.log,vdsm.log} +chown root:root /var/log/vdsm/supervdsm.log + +# 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 + +# hack until we replace core dump with abrt +if /usr/sbin/selinuxenabled; then + /usr/sbin/semanage fcontext -a -t virt_cache_t '/var/log/core(/.*)?' +fi +/sbin/restorecon -R /var/log/core >/dev/null 2>&1 +# hack until we replace core dump with abrt + +# 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 || : + +# The following triggers vdsmd.preset file and enables vdsm required services +%systemd_post vdsmd.service +%systemd_post supervdsmd.service +%systemd_post vdsm-network.service +%systemd_post mom-vdsm.service +%systemd_post ksmtuned.service + +# From VDSM version 4.18 a .conf file is deployed to /etc/NetworkManager/conf.d +/bin/systemctl reload NetworkManager >/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 vdsmd.service +%systemd_preun vdsm-network.service +%systemd_preun supervdsmd.service +%systemd_preun mom-vdsm.service +%systemd_preun ksmtuned.service +exit 0 + +%postun +if [ "$1" -ge 1 ]; then + supervdsmd_start_required='no' + vdsmd_start_required='no' + + # Both vdsm and supervdsm should be managed here and must be restarted if + # ran before (code might changed) + if %{_bindir}/vdsm-tool service-status vdsmd >/dev/null 2>&1; then + %{_bindir}/vdsm-tool service-stop vdsmd >/dev/null 2>&1 || : + vdsmd_start_required='yes' + fi + if %{_bindir}/vdsm-tool service-status supervdsmd >/dev/null 2>&1; then + %{_bindir}/vdsm-tool service-stop supervdsmd >/dev/null 2>&1 || : + supervdsmd_start_required='yes' + fi + + if ! %{_bindir}/vdsm-tool is-configured >/dev/null 2>&1; then + %{_bindir}/vdsm-tool configure --force >/dev/null 2>&1 + fi + + if [ "${supervdsmd_start_required}" = 'yes' ]; then + %{_bindir}/vdsm-tool service-start supervdsmd >/dev/null 2>&1 || : + fi + if [ "${vdsmd_start_required}" = 'yes' ]; then + %{_bindir}/vdsm-tool service-start vdsmd >/dev/null 2>&1 || : + fi +fi +exit 0 + +%files +%defattr(-, root, root, -) +%doc README lib/vdsm/vdsm.conf.sample +%license COPYING +/usr/lib/systemd/systemd-vdsmd +/usr/lib/systemd/system-preset/85-vdsmd.preset +%{_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}) /rhev/data-center +%ghost %config %attr(0644, %{vdsm_user}, %{vdsm_group}) /var/log/vdsm/connectivity.log +%ghost %config %attr(0644, %{vdsm_user}, %{vdsm_group}) /var/log/vdsm/mom.log +%ghost %config %attr(0644, root, root) /var/log/vdsm/supervdsm.log +%ghost %config %attr(0644, %{vdsm_user}, %{vdsm_group}) /var/log/vdsm/vdsm.log +%ghost %dir %attr(-, %{vdsm_user}, %{vdsm_group}) /rhev/data-center/hsm-tasks +%ghost %dir %attr(-, %{vdsm_user}, %{vdsm_group}) /rhev/data-center/mnt +%dir %{_libexecdir}/%{vdsm_name} +%dir %{_sysconfdir}/%{vdsm_name}/vdsm.conf.d +%dir %{_sysconfdir}/NetworkManager +%dir %{_sysconfdir}/NetworkManager/conf.d +%dir %{_sysconfdir}/%{vdsm_name} +%dir %{_sysconfdir}/%{vdsm_name}/mom.d +%dir %{_datadir}/%{vdsm_name} +%dir %{_datadir}/%{vdsm_name}/supervdsm_api +%dir %{_datadir}/%{vdsm_name}/storage +%dir %{_datadir}/%{vdsm_name}/storage/imageRepository +%dir %{_datadir}/%{vdsm_name}/virt +%dir %{_datadir}/%{vdsm_name}/virt/vmdevices +%{_datadir}/%{vdsm_name}/alignmentScan.py* +%{_datadir}/%{vdsm_name}/caps.py* +%{_datadir}/%{vdsm_name}/clientIF.py* +%{_datadir}/%{vdsm_name}/daemonAdapter +%{_datadir}/%{vdsm_name}/API.py* +%{_datadir}/%{vdsm_name}/hooking.py* +%{_datadir}/%{vdsm_name}/mk_sysprep_floppy +%{_datadir}/%{vdsm_name}/mkimage.py* +%{_datadir}/%{vdsm_name}/sitecustomize.py* +%{_datadir}/%{vdsm_name}/supervdsmServer +%{_datadir}/%{vdsm_name}/vdsm +%{_datadir}/%{vdsm_name}/vdsm-restore-net-config +%{_datadir}/%{vdsm_name}/vdsm-store-net-config +%{_datadir}/%{vdsm_name}/virt/__init__.py* +%{_datadir}/%{vdsm_name}/virt/domain_descriptor.py* +%{_datadir}/%{vdsm_name}/virt/migration.py* +%{_datadir}/%{vdsm_name}/virt/recovery.py* +%{_datadir}/%{vdsm_name}/virt/vmtune.py* +%{_datadir}/%{vdsm_name}/virt/vm.py* +%{_datadir}/%{vdsm_name}/virt/vmxml.py* +%{_datadir}/%{vdsm_name}/virt/vmdevices/__init__.py* +%{_datadir}/%{vdsm_name}/virt/vmdevices/common.py* +%{_datadir}/%{vdsm_name}/virt/vmdevices/core.py* +%{_datadir}/%{vdsm_name}/virt/vmdevices/graphics.py* +%{_datadir}/%{vdsm_name}/virt/vmdevices/hostdevice.py* +%{_datadir}/%{vdsm_name}/virt/vmdevices/hwclass.py* +%{_datadir}/%{vdsm_name}/virt/vmdevices/network.py* +%{_datadir}/%{vdsm_name}/virt/vmdevices/storage.py* + +%config(noreplace) %{_sysconfdir}/NetworkManager/conf.d/90-vdsm-monitor-connection-files.conf +%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}/rwtab.d/vdsm +%config(noreplace) %{_sysconfdir}/sysctl.d/vdsm.conf +%config(noreplace) %{_sysconfdir}/modules-load.d/vdsm.conf +%config(noreplace) %{_tmpfilesdir}/%{vdsm_name}.conf +%{_sysconfdir}/dhcp/dhclient.d/sourceRoute.sh +%{_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}/persist-vdsm-hooks +%{_libexecdir}/%{vdsm_name}/unpersist-vdsm-hook +%{_libexecdir}/%{vdsm_name}/ovirt_functions.sh +%{_libexecdir}/%{vdsm_name}/vdsm-gencerts.sh +%{_libexecdir}/%{vdsm_name}/vdsmd_init_common.sh +%{_libexecdir}/%{vdsm_name}/kvm2ovirt +%{_libexecdir}/%{vdsm_name}/wait_for_ipv4s +%{_datadir}/%{vdsm_name}/supervdsm_api/__init__.py* +%{_datadir}/%{vdsm_name}/supervdsm_api/hwinfo.py* +%{_datadir}/%{vdsm_name}/supervdsm_api/mkimage.py* +%{_datadir}/%{vdsm_name}/supervdsm_api/ksm.py* +%{_datadir}/%{vdsm_name}/supervdsm_api/network.py* +%{_datadir}/%{vdsm_name}/supervdsm_api/udev.py* +%{_datadir}/%{vdsm_name}/supervdsm_api/virt.py* +%{_datadir}/%{vdsm_name}/storage/__init__.py* +%{_datadir}/%{vdsm_name}/storage/blockSD.py* +%{_datadir}/%{vdsm_name}/storage/blockVolume.py* +%{_datadir}/%{vdsm_name}/storage/curlImgWrap.py* +%{_datadir}/%{vdsm_name}/storage/devicemapper.py* +%{_datadir}/%{vdsm_name}/storage/dispatcher.py* +%{_datadir}/%{vdsm_name}/storage/monitor.py* +%{_datadir}/%{vdsm_name}/storage/fileSD.py* +%{_datadir}/%{vdsm_name}/storage/fileVolume.py* +%{_datadir}/%{vdsm_name}/storage/imagetickets.py* +%{_datadir}/%{vdsm_name}/storage/glusterSD.py* +%{_datadir}/%{vdsm_name}/storage/glusterVolume.py* +%{_datadir}/%{vdsm_name}/storage/hsm.py* +%{_datadir}/%{vdsm_name}/storage/image.py* +%{_datadir}/%{vdsm_name}/storage/imageSharing.py* +%{_datadir}/%{vdsm_name}/storage/iscsiadm.py* +%{_datadir}/%{vdsm_name}/storage/iscsi.py* +%{_datadir}/%{vdsm_name}/storage/localFsSD.py* +%{_datadir}/%{vdsm_name}/storage/lvm.env +%{_datadir}/%{vdsm_name}/storage/lvm.py* +%{_datadir}/%{vdsm_name}/storage/multipath.py* +%{_datadir}/%{vdsm_name}/storage/nfsSD.py* +%{_datadir}/%{vdsm_name}/storage/outOfProcess.py* +%{_datadir}/%{vdsm_name}/storage/resourceFactories.py* +%{_datadir}/%{vdsm_name}/storage/resourceManager.py* +%{_datadir}/%{vdsm_name}/storage/sdc.py* +%{_datadir}/%{vdsm_name}/storage/sd.py* +%{_datadir}/%{vdsm_name}/storage/sp.py* +%{_datadir}/%{vdsm_name}/storage/spbackends.py* +%{_datadir}/%{vdsm_name}/storage/storage_mailbox.py* +%{_datadir}/%{vdsm_name}/storage/storageServer.py* +%{_datadir}/%{vdsm_name}/storage/taskManager.py* +%{_datadir}/%{vdsm_name}/storage/task.py* +%{_datadir}/%{vdsm_name}/storage/threadPool.py* +%{_datadir}/%{vdsm_name}/storage/volume.py* +%{_datadir}/%{vdsm_name}/storage/imageRepository/__init__.py* +%{_datadir}/%{vdsm_name}/storage/imageRepository/formatConverter.py* +%{_datadir}/%{vdsm_name}/storage/sdm/__init__.py* +%{_datadir}/%{vdsm_name}/storage/sdm/volume_artifacts.py* +%{_datadir}/%{vdsm_name}/storage/sdm/api/__init__.py* +%{_datadir}/%{vdsm_name}/storage/sdm/api/base.py* +%{_datadir}/%{vdsm_name}/storage/sdm/api/create_volume.py* +%{_libexecdir}/%{vdsm_name}/spmprotect.sh +%{_libexecdir}/%{vdsm_name}/spmstop.sh +%dir %{_libexecdir}/%{vdsm_name}/hooks +%dir %{_libexecdir}/%{vdsm_name}/hooks/before_device_create +%dir %{_libexecdir}/%{vdsm_name}/hooks/after_device_create +%dir %{_libexecdir}/%{vdsm_name}/hooks/before_device_destroy +%dir %{_libexecdir}/%{vdsm_name}/hooks/after_device_destroy +%dir %{_libexecdir}/%{vdsm_name}/hooks/before_vm_start +%dir %{_libexecdir}/%{vdsm_name}/hooks/after_vm_start +%dir %{_libexecdir}/%{vdsm_name}/hooks/before_vm_cont +%dir %{_libexecdir}/%{vdsm_name}/hooks/after_vm_cont +%dir %{_libexecdir}/%{vdsm_name}/hooks/before_vm_pause +%dir %{_libexecdir}/%{vdsm_name}/hooks/after_vm_pause +%dir %{_libexecdir}/%{vdsm_name}/hooks/before_vm_hibernate +%dir %{_libexecdir}/%{vdsm_name}/hooks/after_vm_hibernate +%dir %{_libexecdir}/%{vdsm_name}/hooks/before_vm_dehibernate +%dir %{_libexecdir}/%{vdsm_name}/hooks/after_vm_dehibernate +%dir %{_libexecdir}/%{vdsm_name}/hooks/before_device_migrate_source +%dir %{_libexecdir}/%{vdsm_name}/hooks/after_device_migrate_source +%dir %{_libexecdir}/%{vdsm_name}/hooks/before_device_migrate_destination +%dir %{_libexecdir}/%{vdsm_name}/hooks/after_device_migrate_destination +%dir %{_libexecdir}/%{vdsm_name}/hooks/before_vm_migrate_source +%dir %{_libexecdir}/%{vdsm_name}/hooks/after_vm_migrate_source +%dir %{_libexecdir}/%{vdsm_name}/hooks/before_vm_migrate_destination +%dir %{_libexecdir}/%{vdsm_name}/hooks/after_vm_migrate_destination +%dir %{_libexecdir}/%{vdsm_name}/hooks/before_vm_destroy +%dir %{_libexecdir}/%{vdsm_name}/hooks/after_vm_destroy +%dir %{_libexecdir}/%{vdsm_name}/hooks/before_vm_set_ticket +%dir %{_libexecdir}/%{vdsm_name}/hooks/after_vm_set_ticket +%dir %{_libexecdir}/%{vdsm_name}/hooks/before_update_device +%dir %{_libexecdir}/%{vdsm_name}/hooks/after_update_device +%dir %{_libexecdir}/%{vdsm_name}/hooks/after_update_device_fail +%dir %{_libexecdir}/%{vdsm_name}/hooks/before_nic_hotplug +%dir %{_libexecdir}/%{vdsm_name}/hooks/after_nic_hotplug +%dir %{_libexecdir}/%{vdsm_name}/hooks/before_nic_hotunplug +%dir %{_libexecdir}/%{vdsm_name}/hooks/after_nic_hotunplug +%dir %{_libexecdir}/%{vdsm_name}/hooks/after_nic_hotplug_fail +%dir %{_libexecdir}/%{vdsm_name}/hooks/after_nic_hotunplug_fail +%dir %{_libexecdir}/%{vdsm_name}/hooks/before_disk_hotplug +%dir %{_libexecdir}/%{vdsm_name}/hooks/after_disk_hotplug +%dir %{_libexecdir}/%{vdsm_name}/hooks/before_disk_hotunplug +%dir %{_libexecdir}/%{vdsm_name}/hooks/after_disk_hotunplug +%dir %{_libexecdir}/%{vdsm_name}/hooks/before_vdsm_start +%dir %{_libexecdir}/%{vdsm_name}/hooks/after_vdsm_stop +%dir %{_libexecdir}/%{vdsm_name}/hooks/before_network_setup +%dir %{_libexecdir}/%{vdsm_name}/hooks/after_network_setup +%dir %{_libexecdir}/%{vdsm_name}/hooks/after_network_setup_fail +%dir %{_libexecdir}/%{vdsm_name}/hooks/before_set_num_of_cpus +%dir %{_libexecdir}/%{vdsm_name}/hooks/after_set_num_of_cpus +%dir %{_libexecdir}/%{vdsm_name}/hooks/before_memory_hotplug +%dir %{_libexecdir}/%{vdsm_name}/hooks/after_memory_hotplug +%dir %{_libexecdir}/%{vdsm_name}/hooks/before_get_vm_stats +%dir %{_libexecdir}/%{vdsm_name}/hooks/after_get_vm_stats +%dir %{_libexecdir}/%{vdsm_name}/hooks/before_get_all_vm_stats +%dir %{_libexecdir}/%{vdsm_name}/hooks/after_get_all_vm_stats +%dir %{_libexecdir}/%{vdsm_name}/hooks/before_get_caps +%dir %{_libexecdir}/%{vdsm_name}/hooks/after_get_caps +%dir %{_libexecdir}/%{vdsm_name}/hooks/before_get_stats +%dir %{_libexecdir}/%{vdsm_name}/hooks/after_get_stats +%dir %{_libexecdir}/%{vdsm_name}/hooks/after_hostdev_list_by_caps +%dir %{_libexecdir}/%{vdsm_name}/hooks/before_ifcfg_write +%dir %{_libexecdir}/%{vdsm_name}/hooks/after_ifcfg_write + +%{_datadir}/%{vdsm_name}/dumpStorageTable.py* +%{_datadir}/%{vdsm_name}/get-conf-item +%{_datadir}/%{vdsm_name}/set-conf-item +%dir %{_datadir}/%{vdsm_name}/gluster +%{_datadir}/%{vdsm_name}/gluster/__init__.py* +%{_datadir}/%{vdsm_name}/gluster/cli.py* +%{_datadir}/%{vdsm_name}/gluster/exception.py* +%{python_sitelib}/sos/plugins/vdsm.py* +%{_udevrulesdir}/12-vdsm-lvm.rules +/etc/security/limits.d/99-vdsm.conf +%{_mandir}/man8/vdsmd.8* +%if 0%{?rhel} +%dir %{_localstatedir}/log/core +%endif +%{_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 +%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}/upgrade +%dir %{_localstatedir}/run/%{vdsm_name} +%dir %{_localstatedir}/run/%{vdsm_name}/sourceRoutes +%dir %{_localstatedir}/run/%{vdsm_name}/trackedInterfaces +%ghost %dir %{_localstatedir}/run/%{vdsm_name}/payload +%dir %{_localstatedir}/run/%{vdsm_name}/v2v +%dir %{_localstatedir}/log/%{vdsm_name} +%dir %{_localstatedir}/log/%{vdsm_name}/backup +%defattr(644, %{vdsm_user}, %{vdsm_group}, -) +%{_datadir}/%{vdsm_name}/bonding-defaults.json +%{_datadir}/%{vdsm_name}/bonding-name2numeric.json + +%files python +%defattr(-, root, root, -) +%{_mandir}/man1/vdsm-tool.1* +%{_bindir}/vdsm-tool +%dir %{python_sitelib}/%{vdsm_name} +%dir %{python_sitelib}/%{vdsm_name}/common +%dir %{python_sitelib}/%{vdsm_name}/common/network +%dir %{python_sitelib}/%{vdsm_name}/host +%dir %{python_sitelib}/%{vdsm_name}/network +%dir %{python_sitelib}/%{vdsm_name}/network/configurators +%dir %{python_sitelib}/%{vdsm_name}/network/ip +%dir %{python_sitelib}/%{vdsm_name}/network/netinfo +%dir %{python_sitelib}/%{vdsm_name}/network/netlink +%dir %{python_sitelib}/%{vdsm_name}/network/ovs +%dir %{python_sitelib}/%{vdsm_name}/network/ovs/driver +%dir %{python_sitelib}/%{vdsm_name}/network/tc +%dir %{python_sitelib}/%{vdsm_name}/metrics +%dir %{python_sitelib}/%{vdsm_name}/tool +%dir %{python_sitelib}/%{vdsm_name}/tool/configurators +%dir %{python_sitelib}/%{vdsm_name}/profiling +%dir %{python_sitelib}/%{vdsm_name}/storage +%dir %{python_sitelib}/%{vdsm_name}/virt +%{python_sitelib}/%{vdsm_name}/__init__.py* +%{python_sitelib}/%{vdsm_name}/cmdutils.py* +%{python_sitelib}/%{vdsm_name}/compat.py* +%{python_sitelib}/%{vdsm_name}/commands.py* +%{python_sitelib}/%{vdsm_name}/common/*.py* +%{python_sitelib}/%{vdsm_name}/host/*.py* +%{python_sitelib}/%{vdsm_name}/common/network/*.py* +%{python_sitelib}/%{vdsm_name}/concurrent.py* +%{python_sitelib}/%{vdsm_name}/config.py* +%{python_sitelib}/%{vdsm_name}/constants.py* +%{python_sitelib}/%{vdsm_name}/cpuarch.py* +%{python_sitelib}/%{vdsm_name}/cpuinfo.py* +%{python_sitelib}/%{vdsm_name}/dsaversion.py* +%{python_sitelib}/%{vdsm_name}/define.py* +%{python_sitelib}/%{vdsm_name}/dmidecodeUtil.py* +%{python_sitelib}/%{vdsm_name}/exception.py* +%{python_sitelib}/%{vdsm_name}/executor.py* +%{python_sitelib}/%{vdsm_name}/health.py* +%{python_sitelib}/%{vdsm_name}/hooks.py* +%{python_sitelib}/%{vdsm_name}/hostdev.py* +%{python_sitelib}/%{vdsm_name}/jobs.py* +%{python_sitelib}/%{vdsm_name}/jsonrpcvdscli.py* +%{python_sitelib}/%{vdsm_name}/kaxmlrpclib.py* +%{python_sitelib}/%{vdsm_name}/libvirtconnection.py* +%{python_sitelib}/%{vdsm_name}/logUtils.py* +%{python_sitelib}/%{vdsm_name}/m2cutils.py* +%{python_sitelib}/%{vdsm_name}/machinetype.py* +%{python_sitelib}/%{vdsm_name}/metrics/*.py* +%{python_sitelib}/%{vdsm_name}/moduleloader.py* +%{python_sitelib}/%{vdsm_name}/momIF.py* +%{python_sitelib}/%{vdsm_name}/network/__init__.py* +%{python_sitelib}/%{vdsm_name}/network/api.py* +%{python_sitelib}/%{vdsm_name}/network/configurators/__init__.py* +%{python_sitelib}/%{vdsm_name}/network/configurators/ifcfg.py* +%{python_sitelib}/%{vdsm_name}/network/configurators/iproute2.py* +%{python_sitelib}/%{vdsm_name}/network/configurators/pyroute_two.py* +%{python_sitelib}/%{vdsm_name}/network/configurators/qos.py* +%{python_sitelib}/%{vdsm_name}/network/errors.py* +%{python_sitelib}/%{vdsm_name}/network/canonicalize.py* +%{python_sitelib}/%{vdsm_name}/network/connectivity.py* +%{python_sitelib}/%{vdsm_name}/network/ip/*.py* +%{python_sitelib}/%{vdsm_name}/network/ipwrapper.py* +%{python_sitelib}/%{vdsm_name}/network/kernelconfig.py* +%{python_sitelib}/%{vdsm_name}/network/legacy_switch.py* +%{python_sitelib}/%{vdsm_name}/network/libvirt.py* +%{python_sitelib}/%{vdsm_name}/network/netinfo/*.py* +%{python_sitelib}/%{vdsm_name}/network/netlink/__init__.py* +%{python_sitelib}/%{vdsm_name}/network/netlink/addr.py* +%{python_sitelib}/%{vdsm_name}/network/netlink/link.py* +%{python_sitelib}/%{vdsm_name}/network/netlink/monitor.py* +%{python_sitelib}/%{vdsm_name}/network/netlink/route.py* +%{python_sitelib}/%{vdsm_name}/network/ovs/__init__.py* +%{python_sitelib}/%{vdsm_name}/network/ovs/info.py* +%{python_sitelib}/%{vdsm_name}/network/ovs/switch.py* +%{python_sitelib}/%{vdsm_name}/network/ovs/validator.py* +%{python_sitelib}/%{vdsm_name}/network/ovs/driver/__init__.py* +%{python_sitelib}/%{vdsm_name}/network/ovs/driver/vsctl.py* +%{python_sitelib}/%{vdsm_name}/network/models.py* +%{python_sitelib}/%{vdsm_name}/network/netconfpersistence.py* +%{python_sitelib}/%{vdsm_name}/network/netswitch.py* +%{python_sitelib}/%{vdsm_name}/network/sourceroute.py* +%{python_sitelib}/%{vdsm_name}/network/sourceroutethread.py* +%{python_sitelib}/%{vdsm_name}/network/tc/__init__.py* +%{python_sitelib}/%{vdsm_name}/network/tc/_parser.py* +%{python_sitelib}/%{vdsm_name}/network/tc/_wrapper.py* +%{python_sitelib}/%{vdsm_name}/network/tc/cls.py* +%{python_sitelib}/%{vdsm_name}/network/tc/filter.py* +%{python_sitelib}/%{vdsm_name}/network/tc/qdisc.py* +%{python_sitelib}/%{vdsm_name}/network/utils.py* +%{python_sitelib}/%{vdsm_name}/numa.py* +%{python_sitelib}/%{vdsm_name}/osinfo.py* +%{python_sitelib}/%{vdsm_name}/password.py* +%{python_sitelib}/%{vdsm_name}/panic.py* +%{python_sitelib}/%{vdsm_name}/ppc64HardwareInfo.py* +%{python_sitelib}/%{vdsm_name}/profiling/__init__.py* +%{python_sitelib}/%{vdsm_name}/profiling/cpu.py* +%{python_sitelib}/%{vdsm_name}/profiling/errors.py* +%{python_sitelib}/%{vdsm_name}/profiling/memory.py* +%{python_sitelib}/%{vdsm_name}/profiling/profile.py* +%{python_sitelib}/%{vdsm_name}/storage/__init__.py* +%{python_sitelib}/%{vdsm_name}/storage/asyncevent.py* +%{python_sitelib}/%{vdsm_name}/storage/blkdiscard.py* +%{python_sitelib}/%{vdsm_name}/storage/check.py* +%{python_sitelib}/%{vdsm_name}/storage/clusterlock.py* +%{python_sitelib}/%{vdsm_name}/storage/constants.py* +%{python_sitelib}/%{vdsm_name}/storage/exception.py* +%{python_sitelib}/%{vdsm_name}/storage/fileUtils.py* +%{python_sitelib}/%{vdsm_name}/storage/fuser.py* +%{python_sitelib}/%{vdsm_name}/storage/hba.py* +%{python_sitelib}/%{vdsm_name}/storage/misc.py* +%{python_sitelib}/%{vdsm_name}/storage/mount.py* +%{python_sitelib}/%{vdsm_name}/storage/persistent.py* +%{python_sitelib}/%{vdsm_name}/storage/rwlock.py* +%{python_sitelib}/%{vdsm_name}/storage/securable.py* +%{python_sitelib}/%{vdsm_name}/storage/sync.py* +%{python_sitelib}/%{vdsm_name}/storage/threadlocal.py* +%{python_sitelib}/%{vdsm_name}/storage/volumemetadata.py* +%{python_sitelib}/%{vdsm_name}/protocoldetector.py* +%{python_sitelib}/%{vdsm_name}/pthread.py* +%{python_sitelib}/%{vdsm_name}/qemuimg.py* +%{python_sitelib}/%{vdsm_name}/response.py* +%{python_sitelib}/%{vdsm_name}/schedule.py* +%{python_sitelib}/%{vdsm_name}/sslcompat.py* +%{python_sitelib}/%{vdsm_name}/sslutils.py* +%{python_sitelib}/%{vdsm_name}/supervdsm.py* +%{python_sitelib}/%{vdsm_name}/sysctl.py* +%{python_sitelib}/%{vdsm_name}/taskset.py* +%{python_sitelib}/%{vdsm_name}/throttledlog.py* +%{python_sitelib}/%{vdsm_name}/udevadm.py* +%{python_sitelib}/%{vdsm_name}/utils.py* +%{python_sitelib}/%{vdsm_name}/v2v.py* +%{python_sitelib}/%{vdsm_name}/vdscli.py* +%{python_sitelib}/%{vdsm_name}/virtsparsify.py* +%{python_sitelib}/%{vdsm_name}/xmlrpc.py* +%{python_sitelib}/%{vdsm_name}/tool/__init__.py* +%{python_sitelib}/%{vdsm_name}/tool/configfile.py* +%{python_sitelib}/%{vdsm_name}/tool/dummybr.py* +%{python_sitelib}/%{vdsm_name}/tool/dump_bonding_opts.py* +%{python_sitelib}/%{vdsm_name}/tool/nwfilter.py* +%{python_sitelib}/%{vdsm_name}/tool/configurator.py* +%{python_sitelib}/%{vdsm_name}/tool/configurators/__init__* +%{python_sitelib}/%{vdsm_name}/tool/configurators/certificates.py* +%{python_sitelib}/%{vdsm_name}/tool/configurators/libvirt.py* +%{python_sitelib}/%{vdsm_name}/tool/configurators/passwd.py* +%{python_sitelib}/%{vdsm_name}/tool/configurators/sanlock.py* +%{python_sitelib}/%{vdsm_name}/tool/configurators/sebool.py* +%{python_sitelib}/%{vdsm_name}/tool/configurators/multipath.py* +%{python_sitelib}/%{vdsm_name}/tool/dump_volume_chains.py* +%{python_sitelib}/%{vdsm_name}/tool/register.py* +%{python_sitelib}/%{vdsm_name}/tool/restore_nets.py* +%{python_sitelib}/%{vdsm_name}/tool/service.py* +%{python_sitelib}/%{vdsm_name}/tool/transient.py* +%{python_sitelib}/%{vdsm_name}/tool/unified_persistence.py* +%{python_sitelib}/%{vdsm_name}/tool/upgrade.py* +%{python_sitelib}/%{vdsm_name}/tool/validate_ovirt_certs.py* +%{python_sitelib}/%{vdsm_name}/tool/vdsm-id.py* +%{python_sitelib}/%{vdsm_name}/virt/__init__.py* +%{python_sitelib}/%{vdsm_name}/virt/api.py* +%{python_sitelib}/%{vdsm_name}/virt/guestagent.py* +%{python_sitelib}/%{vdsm_name}/virt/periodic.py* +%{python_sitelib}/%{vdsm_name}/virt/sampling.py* +%{python_sitelib}/%{vdsm_name}/virt/secret.py* +%{python_sitelib}/%{vdsm_name}/virt/utils.py* +%{python_sitelib}/%{vdsm_name}/virt/virdomain.py* +%{python_sitelib}/%{vdsm_name}/virt/vmchannels.py* +%{python_sitelib}/%{vdsm_name}/virt/vmexitreason.py* +%{python_sitelib}/%{vdsm_name}/virt/vmpowerdown.py* +%{python_sitelib}/%{vdsm_name}/virt/vmstats.py* +%{python_sitelib}/%{vdsm_name}/virt/vmstatus.py* + +%files tests +%doc %{_datadir}/%{vdsm_name}/tests/README +%defattr(-, root, root, -) +%dir %{_datadir}/%{vdsm_name} +%dir %{_datadir}/%{vdsm_name}/tests +%dir %{_datadir}/%{vdsm_name}/tests/common +%dir %{_datadir}/%{vdsm_name}/tests/cpuinfo +%dir %{_datadir}/%{vdsm_name}/tests/functional +%dir %{_datadir}/%{vdsm_name}/tests/devices +%dir %{_datadir}/%{vdsm_name}/tests/devices/data +%dir %{_datadir}/%{vdsm_name}/tests/devices/parsing +%dir %{_datadir}/%{vdsm_name}/tests/integration +%dir %{_datadir}/%{vdsm_name}/tests/network +%{_datadir}/%{vdsm_name}/supervdsm_api/test.py* +%{_datadir}/%{vdsm_name}/tests/*.py* +%{_datadir}/%{vdsm_name}/tests/cpu_info.out +%{_datadir}/%{vdsm_name}/tests/caps_libvirt_intel_E5649.out +%{_datadir}/%{vdsm_name}/tests/caps_libvirt_amd_6274.out +%{_datadir}/%{vdsm_name}/tests/caps_libvirt_ibm_S822L.out +%{_datadir}/%{vdsm_name}/tests/caps_libvirt_ibm_S822L_le.out +%{_datadir}/%{vdsm_name}/tests/caps_libvirt_intel_E31220.out +%{_datadir}/%{vdsm_name}/tests/caps_libvirt_intel_E5606.out +%{_datadir}/%{vdsm_name}/tests/caps_libvirt_intel_i73770.out +%{_datadir}/%{vdsm_name}/tests/caps_libvirt_intel_i73770_nosnap.out +%{_datadir}/%{vdsm_name}/tests/caps_libvirt_multiqemu.out +%{_datadir}/%{vdsm_name}/tests/caps_numactl_4_nodes.out +%{_datadir}/%{vdsm_name}/tests/common/*.py* +%{_datadir}/%{vdsm_name}/tests/cpuinfo/*.out +%{_datadir}/%{vdsm_name}/tests/fake-ssh-add +%{_datadir}/%{vdsm_name}/tests/fake-ssh-agent +%{_datadir}/%{vdsm_name}/tests/fake-virt-v2v +%{_datadir}/%{vdsm_name}/tests/fake-virt-v2v.out +%{_datadir}/%{vdsm_name}/tests/cpu_map.xml +%{_datadir}/%{vdsm_name}/tests/devices/*.py* +%{_datadir}/%{vdsm_name}/tests/devices/parsing/*.py* +%{_datadir}/%{vdsm_name}/tests/devices/data/*.xml +%{_datadir}/%{vdsm_name}/tests/iscsiadm_-m_iface.out +%{_datadir}/%{vdsm_name}/tests/lvs_3386c6f2-926f-42c4-839c-38287fac8998.out +%{_datadir}/%{vdsm_name}/tests/lvs_f9e55e18-67c4-4377-8e39-5833ca422bef.out +%{_datadir}/%{vdsm_name}/tests/mem_info.out +%{_datadir}/%{vdsm_name}/tests/network/*.py* +%{_datadir}/%{vdsm_name}/tests/network/ip_route_show_table_all.out +%{_datadir}/%{vdsm_name}/tests/network/netmaskconversions +%{_datadir}/%{vdsm_name}/tests/network/tc_filter_show.out +%{_datadir}/%{vdsm_name}/tests/run_tests.sh +%{_datadir}/%{vdsm_name}/tests/toolTests_empty.conf +%{_datadir}/%{vdsm_name}/tests/toolTests_lconf_ssl.conf +%{_datadir}/%{vdsm_name}/tests/toolTests_libvirtd.conf +%{_datadir}/%{vdsm_name}/tests/toolTests_qemu_sanlock.conf +%{_datadir}/%{vdsm_name}/tests/toolTests_qemu_ssl.conf +%{_datadir}/%{vdsm_name}/tests/toolTests_vdsm_no_ssl.conf +%{_datadir}/%{vdsm_name}/tests/toolTests_vdsm_ssl.conf +%{_datadir}/%{vdsm_name}/tests/glusterGeoRepStatus.xml +%{_datadir}/%{vdsm_name}/tests/glusterVolumeGeoRepConfigList.xml +%{_datadir}/%{vdsm_name}/tests/glusterSnapshotList.xml +%{_datadir}/%{vdsm_name}/tests/glusterSnapshotListEmpty.xml +%{_datadir}/%{vdsm_name}/tests/glusterVolumeProfileInfo.xml +%{_datadir}/%{vdsm_name}/tests/glusterSnapshotConfig.xml +%{_datadir}/%{vdsm_name}/tests/glusterVolumeProfileInfoNfs.xml +%{_datadir}/%{vdsm_name}/tests/glusterVolumeRebalanceStatus.xml +%{_datadir}/%{vdsm_name}/tests/glusterVolumeRemoveBricksStatus.xml +%{_datadir}/%{vdsm_name}/tests/glusterSnapshotRestore.xml +%{_datadir}/%{vdsm_name}/tests/glusterVolumeSnapshotList.xml +%{_datadir}/%{vdsm_name}/tests/glusterVolumeSnapshotListEmpty.xml +%{_datadir}/%{vdsm_name}/tests/glusterVolumeTasks.xml +%{_datadir}/%{vdsm_name}/tests/glusterVolumeHealInfo.xml +%{_datadir}/%{vdsm_name}/tests/functional/*.py* +%{_datadir}/%{vdsm_name}/tests/functional/*.policy +%{_datadir}/%{vdsm_name}/tests/integration/*.py* + +%files hook-openstacknet +%defattr(-, 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/openstacknet_utils.py* +%{_libexecdir}/%{vdsm_name}/hooks/after_device_destroy/50_openstacknet +%{_libexecdir}/%{vdsm_name}/hooks/after_device_destroy/openstacknet_utils.py* +%{_libexecdir}/%{vdsm_name}/hooks/after_device_migrate_destination/50_openstacknet +%{_libexecdir}/%{vdsm_name}/hooks/after_device_migrate_destination/openstacknet_utils.py* +%{_libexecdir}/%{vdsm_name}/hooks/after_nic_hotplug/50_openstacknet +%{_libexecdir}/%{vdsm_name}/hooks/after_nic_hotplug/openstacknet_utils.py* +%{_libexecdir}/%{vdsm_name}/hooks/after_nic_hotunplug/50_openstacknet +%{_libexecdir}/%{vdsm_name}/hooks/after_nic_hotunplug/openstacknet_utils.py* +%{_libexecdir}/%{vdsm_name}/hooks/after_vm_start/50_openstacknet +%{_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/openstacknet_utils.py* +%{_libexecdir}/%{vdsm_name}/hooks/before_device_migrate_destination/50_openstacknet +%{_libexecdir}/%{vdsm_name}/hooks/before_device_migrate_destination/openstacknet_utils.py* +%{_libexecdir}/%{vdsm_name}/hooks/before_nic_hotplug/50_openstacknet +%{_libexecdir}/%{vdsm_name}/hooks/before_nic_hotplug/openstacknet_utils.py* + +%files hook-ovs +%defattr(-, root, root, -) +%{_sysconfdir}/sudoers.d/50_vdsm_hook_ovs +%{_libexecdir}/%{vdsm_name}/ovs_migrate.py* +%{_libexecdir}/%{vdsm_name}/ovs_utils.py* +%{_libexecdir}/%{vdsm_name}/hooks/after_get_caps/50_ovs +%{_libexecdir}/%{vdsm_name}/hooks/after_get_caps/ovs_utils.py* +%{_libexecdir}/%{vdsm_name}/hooks/after_get_stats/50_ovs +%{_libexecdir}/%{vdsm_name}/hooks/after_get_stats/ovs_utils.py* +%{_libexecdir}/%{vdsm_name}/hooks/before_device_create/50_ovs +%{_libexecdir}/%{vdsm_name}/hooks/before_device_create/ovs_utils.py* +%{_libexecdir}/%{vdsm_name}/hooks/before_nic_hotplug/50_ovs +%{_libexecdir}/%{vdsm_name}/hooks/before_nic_hotplug/ovs_utils.py* +%{_libexecdir}/%{vdsm_name}/hooks/before_network_setup/50_ovs +%{_libexecdir}/%{vdsm_name}/hooks/before_network_setup/ovs_setup_ip.py* +%{_libexecdir}/%{vdsm_name}/hooks/before_network_setup/ovs_setup_libvirt.py* +%{_libexecdir}/%{vdsm_name}/hooks/before_network_setup/ovs_setup_mtu.py* +%{_libexecdir}/%{vdsm_name}/hooks/before_network_setup/ovs_setup_ovs.py* +%{_libexecdir}/%{vdsm_name}/hooks/before_network_setup/ovs_utils.py* +%{_libexecdir}/%{vdsm_name}/hooks/after_network_setup/50_ovs +%{_libexecdir}/%{vdsm_name}/hooks/after_network_setup/ovs_utils.py* +%{_libexecdir}/%{vdsm_name}/hooks/after_network_setup_fail/50_ovs +%{_libexecdir}/%{vdsm_name}/hooks/after_network_setup_fail/ovs_utils.py* + +%files hook-macspoof +%defattr(-, root, root, -) +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_macspoof +%{_libexecdir}/%{vdsm_name}/hooks/before_device_create/50_macspoof +%{_libexecdir}/%{vdsm_name}/hooks/before_nic_hotplug/50_macspoof + +%if 0%{?with_vhostmd} +%files hook-vhostmd +%defattr(-, root, root, -) +%license COPYING +%{_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 +%defattr(-, root, root, -) +%license COPYING +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_qemucmdline + +%files hook-ethtool-options +%defattr(-, root, root, -) +%{_libexecdir}/%{vdsm_name}/hooks/after_network_setup/30_ethtool_options + +%files hook-ipv6 +%defattr(-, root, root, -) +%{_libexecdir}/%{vdsm_name}/hooks/before_network_setup/50_ipv6 + +%files hook-vmfex-dev +%defattr(-, root, root, -) +%{_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 + +%if 0%{?with_hooks} +%files hook-allocate_net +%defattr(-, root, root, -) +%{_libexecdir}/%{vdsm_name}/hooks/before_device_create/10_allocate_net + +%files hook-checkimages +%defattr(-, root, root, -) +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/60_checkimages + +%files hook-fcoe +%defattr(-, root, root, -) +%{_libexecdir}/%{vdsm_name}/hooks/before_network_setup/50_fcoe + +%files hook-checkips +%defattr(-, root, root, -) +%{_libexecdir}/%{vdsm_name}/hooks/after_get_stats/10_checkips +%{_libexecdir}/%{vdsm_name}/hooks/checkipsd +%{_libexecdir}/%{vdsm_name}/hooks/after_get_stats/checkips_utils.py* +%{_unitdir}/vdsm-checkips.service + +%files hook-extra-ipv4-addrs +%defattr(-, root, root, -) +%{_libexecdir}/%{vdsm_name}/hooks/after_network_setup/40_extra_ipv4_addrs + +%files hook-diskunmap +%defattr(-, root, root, -) +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_diskunmap + +%files hook-fakevmstats +%defattr(-, root, root, -) +%{_libexecdir}/%{vdsm_name}/hooks/after_get_all_vm_stats/10_fakevmstats + +%files hook-fakesriov +%defattr(-, root, root, -) +%{_libexecdir}/%{vdsm_name}/hooks/after_hostdev_list_by_caps/10_fakesriov +%{_libexecdir}/%{vdsm_name}/hooks/after_get_caps/10_fakesriov + +%files hook-fileinject +%defattr(-, root, root, -) +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_fileinject + +%files hook-floppy +%defattr(-, root, root, -) +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_floppy +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_migrate_source/50_floppy + +%files hook-hostusb +%defattr(-, root, root, -) +%{_sysconfdir}/sudoers.d/50_vdsm_hook_hostusb +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_hostusb +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_migrate_source/50_hostusb +%{_libexecdir}/%{vdsm_name}/hooks/after_vm_destroy/50_hostusb + +%files hook-httpsisoboot +%defattr(-, root, root, -) +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_httpsisoboot + +%files hook-hugepages +%defattr(-, root, root, -) +%{_sysconfdir}/sudoers.d/50_vdsm_hook_hugepages +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_hugepages +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_migrate_destination/50_hugepages +%{_libexecdir}/%{vdsm_name}/hooks/after_vm_destroy/50_hugepages + +%files hook-isolatedprivatevlan +%defattr(-, root, root, -) +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_isolatedprivatevlan +%config(noreplace) %{_sysconfdir}/libvirt/nwfilter/isolatedprivatevlan-vdsm.xml + +%files hook-macbind +%defattr(-, root, root, -) +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_macbind + +%files hook-noipspoof +%defattr(-, root, root, -) +%{_libexecdir}/%{vdsm_name}/hooks/before_device_create/50_noipspoof +%{_libexecdir}/%{vdsm_name}/hooks/before_nic_hotplug/50_noipspoof + +%files hook-extnet +%defattr(-, root, root, -) +%{_libexecdir}/%{vdsm_name}/hooks/before_device_create/50_extnet +%{_libexecdir}/%{vdsm_name}/hooks/before_nic_hotplug/50_extnet + +%files hook-nestedvt +%defattr(-, root, root, -) +%{_sysconfdir}/modprobe.d/vdsm-nestedvt.conf +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_nestedvt + +%files hook-numa +%defattr(-, root, root, -) +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_numa + +%files hook-pincpu +%defattr(-, root, root, -) +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_pincpu + +%files hook-promisc +%defattr(-, root, root, -) +%{_sysconfdir}/sudoers.d/50_vdsm_hook_promisc +%{_libexecdir}/%{vdsm_name}/hooks/after_vm_start/50_promisc +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_destroy/50_promisc + +%files hook-qos +%defattr(-, root, root, -) +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_qos + +%files hook-scratchpad +%defattr(-, root, root, -) +%{_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 +%defattr(-, root, root, -) +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_smbios + +%files hook-spiceoptions +%defattr(-, root, root, -) +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_spiceoptions + +%files hook-vmdisk +%defattr(-, root, root, -) +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_vmdisk + +%files hook-vmfex +%defattr(-, root, root, -) +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_migrate_destination/50_vmfex +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_vmfex +%endif + +%files cli +%defattr(-, root, root, -) +%license COPYING +%{_bindir}/vdsClient +%dir %{_datadir}/%{vdsm_name} +%{_datadir}/%{vdsm_name}/vdsClient.py* +%{_datadir}/%{vdsm_name}/vdsClientGluster.py* +%{_sysconfdir}/bash_completion.d/vdsClient +%{_mandir}/man1/vdsClient.1* + +%files xmlrpc +%defattr(-, root, root, -) +%dir %{python_sitelib}/%{vdsm_name} +%dir %{python_sitelib}/%{vdsm_name}/rpc +%{python_sitelib}/%{vdsm_name}/rpc/bindingxmlrpc.py* + +%files jsonrpc +%dir %{python_sitelib}/%{vdsm_name} +%dir %{python_sitelib}/%{vdsm_name}/rpc +%{python_sitelib}/%{vdsm_name}/rpc/__init__.py* +%{python_sitelib}/%{vdsm_name}/rpc/bindingjsonrpc.py* +%{python_sitelib}/%{vdsm_name}/rpc/Bridge.py* +%{python_sitelib}/yajsonrpc/__init__.py* + +%files api +%dir %{python_sitelib}/%{vdsm_name} +%dir %{python_sitelib}/%{vdsm_name}/rpc +%{python_sitelib}/%{vdsm_name}/rpc/vdsm-api.yml +%{python_sitelib}/api/vdsmapi.py* +%{python_sitelib}/api/__init__.py* +%if ! 0%{?with_gluster_mgmt} +%exclude %{python_sitelib}/%{vdsm_name}/rpc/vdsm-api-gluster.yml +%endif + +%files yajsonrpc +%dir %{python_sitelib}/yajsonrpc +%{python_sitelib}/yajsonrpc/betterAsyncore.py* +%{python_sitelib}/yajsonrpc/stomp.py* +%{python_sitelib}/yajsonrpc/stompreactor.py* + +%files infra +%dir %{python_sitelib}/%{vdsm_name} +%dir %{python_sitelib}/%{vdsm_name}/infra +%dir %{python_sitelib}/%{vdsm_name}/infra/eventfd +%dir %{python_sitelib}/%{vdsm_name}/infra/filecontrol +%dir %{python_sitelib}/%{vdsm_name}/infra/sigutils +%dir %{python_sitelib}/%{vdsm_name}/infra/zombiereaper +%{python_sitelib}/%{vdsm_name}/infra/eventfd/__init__.py* +%{python_sitelib}/%{vdsm_name}/infra/filecontrol/__init__.py* +%{python_sitelib}/%{vdsm_name}/infra/sigutils/__init__.py* +%{python_sitelib}/%{vdsm_name}/infra/zombiereaper/__init__.py* +%{python_sitelib}/%{vdsm_name}/infra/__init__.py* + +%files hook-faqemu +%defattr(-, root, root, -) +%license COPYING +%{_libexecdir}/%{vdsm_name}/hooks/after_get_caps/10_faqemu +%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/10_faqemu + +%if 0%{?with_gluster_mgmt} +%files gluster +%defattr(-, root, root, -) +%dir %{_datadir}/%{vdsm_name} +%dir %{_datadir}/%{vdsm_name}/gluster +%dir %{python_sitelib}/%{vdsm_name} +%dir %{python_sitelib}/%{vdsm_name}/rpc +%license COPYING +%{_datadir}/%{vdsm_name}/gluster/api.py* +%{_datadir}/%{vdsm_name}/gluster/apiwrapper.py* +%{_datadir}/%{vdsm_name}/gluster/fstab.py* +%{python_sitelib}/%{vdsm_name}/rpc/vdsm-api-gluster.yml +%{_datadir}/%{vdsm_name}/gluster/gfapi.py* +%{_datadir}/%{vdsm_name}/gluster/hooks.py* +%{_datadir}/%{vdsm_name}/gluster/services.py* +%{_datadir}/%{vdsm_name}/gluster/storagedev.py* +%{_datadir}/%{vdsm_name}/gluster/tasks.py* +%endif + +%changelog +* Sun Oct 13 2013 Yaniv Bronhaim - 4.13.0 +- Removing vdsm-python-cpopen from the spec +- Adding dependency on formal cpopen package + +* Sun Apr 07 2013 Yaniv Bronhaim - 4.9.0-1 +- Adding cpopen package + +* Wed Oct 12 2011 Federico Simoncelli - 4.9.0-0 +- Initial upstream release + +* Thu Nov 02 2006 Simon Grinberg - 0.0-1 +- Initial build From be412df1ffca4a2501b59b7660184180119f0f19 Mon Sep 17 00:00:00 2001 From: Yaniv Bronhaim Date: Thu, 28 Jul 2016 20:09:24 +0300 Subject: [PATCH 03/27] Remove make check and gluster-mgmt build due to missing arch deps This build is for upstream use in master branch. We will add back those parts after having all requirements. --- vdsm.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vdsm.spec b/vdsm.spec index fdfe4d4..cf5d1c7 100644 --- a/vdsm.spec +++ b/vdsm.spec @@ -16,7 +16,7 @@ # Features %global with_ovirt_imageio 1 %global with_ovirt_vmconsole 1 -%global with_gluster_mgmt 1 +%global with_gluster_mgmt 0 %global with_hooks 1 %global with_vhostmd 0 %global with_python3 0 @@ -818,7 +818,7 @@ install -Dm 0755 vdsm/virt/libvirt-hook.sh \ %{buildroot}%{_sysconfdir}/libvirt/hooks/qemu %check -make check +#make check %clean rm -rf %{buildroot} From 9b6362d5bb1c837bc9441891e0ba806ea44fdff6 Mon Sep 17 00:00:00 2001 From: Yaniv Bronhaim Date: Sun, 14 Aug 2016 11:26:38 +0300 Subject: [PATCH 04/27] master 4.18.999 build --- .gitignore | 1 + sources | 2 +- vdsm.spec | 186 +++++++++++++++++++---------------------------------- 3 files changed, 67 insertions(+), 122 deletions(-) diff --git a/.gitignore b/.gitignore index c6f8bd5..05032c5 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /vdsm-4.18.9.tar.gz +/vdsm-4.18.999.tar.gz diff --git a/sources b/sources index 48f1d34..803ac6f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -a644fe1bd25c70b488bb8d18aba79af0 vdsm-4.18.9.tar.gz +86eef41dad36acd6c2524591c2464361 vdsm-4.18.999.tar.gz diff --git a/vdsm.spec b/vdsm.spec index cf5d1c7..72a5253 100644 --- a/vdsm.spec +++ b/vdsm.spec @@ -14,17 +14,17 @@ %global vmcon_group ovirt-vmconsole # Features -%global with_ovirt_imageio 1 -%global with_ovirt_vmconsole 1 -%global with_gluster_mgmt 0 +%global with_ovirt_imageio 0 +%global with_ovirt_vmconsole 0 +%global with_gluster_mgmt 1 %global with_hooks 1 -%global with_vhostmd 0 -%global with_python3 0 +%global with_vhostmd 1 +%global with_python3 1 %ifarch ppc64le %global with_openvswitch 0 %else -%global with_openvswitch 0 +%global with_openvswitch 1 %endif # Glusterfs package version @@ -42,20 +42,20 @@ %global _polkitdir %{_localstatedir}/lib/polkit-1/localauthority/10-vendor.d %endif -%global _udevrulesdir /usr/lib/udev/rules.d/ -%global _udevexecdir /usr/lib/udev/ +%global _udevrulesdir %{_libdir}/udev/rules.d/ +%global _udevexecdir %{_libdir}/udev/ # Disable debuginfo package, since vdsm is a meta-package %global debug_package %{nil} Name: %{vdsm_name} -Version: 4.18.9 -Release: 1%{?dist}%{?extra_release} +Version: 4.18.999 +Release: 396.gitfb69df9%{?dist}%{?extra_release} Summary: Virtual Desktop Server Manager Group: Applications/System License: GPLv2+ -Url: http://www.ovirt.org/wiki/Vdsm +Url: http://www.ovirt.org/develop/developer-guide/vdsm/vdsm/ Source0: %{vdsm_name}-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -63,7 +63,8 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: cyrus-sasl-lib BuildRequires: python -BuildRequires: python-devel +BuildRequires: python2-devel +BuildRequires: python-mock BuildRequires: python-netaddr BuildRequires: python-nose BuildRequires: python-six >= 1.9.0 @@ -128,17 +129,6 @@ Requires: dmidecode Requires: virt-v2v %endif -# Numactl is not available on s390[x] and ARM -%ifnarch s390 s390x %{arm} -Requires: numactl -%endif - -%ifarch x86_64 -Requires: python-dmidecode -Requires: dmidecode -Requires: virt-v2v -%endif - Requires: ethtool Requires: which Requires: sudo >= 1.7.3 @@ -155,7 +145,6 @@ Requires: python-ioprocess >= 0.16.1-1 Requires: python-pthreading >= 0.1.3-3 Requires: python-six >= 1.9.0 Requires: python-requests -Requires: %{name}-infra = %{version}-%{release} Requires: rpm-python Requires: nfs-utils Requires: m2crypto @@ -167,6 +156,8 @@ Requires: safelease >= 1.0-7 Requires: mom >= 0.5.3 Requires(pre): shadow-utils +Obsoletes: %{name}-infra >= 4.16.0 + %if 0%{?with_openvswitch} Requires: openvswitch >= 2.0.0 %endif @@ -209,12 +200,8 @@ Requires: sanlock >= 2.8-2, sanlock-python Requires: device-mapper-multipath >= 0.4.9-84.el7 %endif #rhel -%if 0%{?fedora} == 22 -Requires: device-mapper-multipath >= 0.4.9-73.fc22.2 -%endif - -%if 0%{?fedora} >= 23 -Requires: device-mapper-multipath >= 0.4.9-80.fc23 +%if 0%{?fedora} +Requires: device-mapper-multipath >= 0.4.9-80 %endif %if 0%{?rhel} @@ -226,6 +213,10 @@ Requires: python >= 2.7.5-18.el7_1.1 Requires: policycoreutils-python Requires: selinux-policy-targeted >= 3.13.1-16.el7 Requires: systemd >= 219-11.el7 +%if ! 0%{?centos} +# TODO drop this if when this initscripts is available on centos +Requires: initscripts >= 9.49.30-1.el7_2.3 +%endif #!centos %else Requires: fence-agents-all Requires: kernel >= 4.1.6 @@ -239,7 +230,7 @@ Requires: policycoreutils-python-utils Requires: policycoreutils-python Requires: sed >= 4.2.1-10 Requires: ed -Requires: lvm2 >= 2.02.107 +Requires: lvm2 >= 2.02.132 Requires: selinux-policy-targeted >= 3.12.1-177 # In order to avoid a policycoreutils bug (rhbz 889698) when selinux is # disabled we now require the version 2.1.13-55 (or newer) of Fedora. @@ -333,15 +324,6 @@ Requires: python >= 2.6 %description yajsonrpc A JSON RPC server and client implementation. -%package infra -Summary: Utilities and libraries for vdsm -BuildArch: noarch -Requires: python >= 2.6 -Obsoletes: %{name}-python-zombiereaper - -%description infra -Utilities and libraries for vdsm. - %package reg Summary: VDSM registration package BuildArch: noarch @@ -358,7 +340,6 @@ Manager. Summary: VDSM python libraries Requires: %{name}-api = %{version}-%{release} BuildArch: noarch -Requires: %{name}-infra = %{version}-%{release} Requires: python-cpopen >= 1.4 Requires: m2crypto Requires: python-ioprocess >= 0.16.1-1 @@ -708,6 +689,10 @@ Requires: fcoe-utils 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 + %if 0%{?with_gluster_mgmt} %package gluster Summary: Gluster Plugin for VDSM @@ -741,8 +726,8 @@ autoreconf -if %if ! 0%{?with_python3} --disable-python3 \ %endif - --with-smbios-manufacturer='Red Hat' \ - --with-smbios-osname='RHEV Hypervisor' \ + --with-smbios-manufacturer='oVirt' \ + --with-smbios-osname='oVirt Node' \ %if ! 0%{?with_ovirt_imageio} --disable-ovirt-imageio \ %endif @@ -756,8 +741,8 @@ autoreconf -if --with-ovirt-vmconsole-user='vdsm' \ --with-ovirt-vmconsole-group='kvm' \ %endif - --with-qemu-kvm='qemu-kvm-rhev' \ - --with-qemu-img='qemu-img-rhev' + --with-qemu-kvm='qemu-kvm' \ + --with-qemu-img='qemu-img' make # Setting software_version and software_revision in dsaversion.py @@ -773,8 +758,7 @@ sed -i -e 's/@SSL_IMPLEMENTATION@/m2c/g' lib/vdsm/config.py sed -i -e 's\@VDSMRPCPYLIBDIR@\%{python_sitelib}/%{vdsm_name}/rpc\g' lib/vdsm/constants.py %install -rm -rf %{buildroot} -make DESTDIR=%{buildroot} install +make %{?_smp_mflags} DESTDIR=%{buildroot} install # Creating VDSM logs in this session to avoid rpmbuild # complain during the build @@ -788,8 +772,8 @@ install -Dm 0644 vdsm/storage/vdsm-lvm.rules \ install -Dm 0644 vdsm/limits.conf \ %{buildroot}/etc/security/limits.d/99-vdsm.conf -install -Dm 0755 init/systemd/systemd-vdsmd %{buildroot}/usr/lib/systemd/systemd-vdsmd -install -Dm 0644 init/systemd/85-vdsmd.preset %{buildroot}/usr/lib/systemd/system-preset/85-vdsmd.preset +install -Dm 0755 init/systemd/systemd-vdsmd %{buildroot}%{_libdir}/systemd/systemd-vdsmd +install -Dm 0644 init/systemd/85-vdsmd.preset %{buildroot}%{_libdir}/systemd/system-preset/85-vdsmd.preset install -Dm 0644 init/systemd/vdsmd.service %{buildroot}%{_unitdir}/vdsmd.service install -Dm 0644 init/systemd/vdsm-network.service %{buildroot}%{_unitdir}/vdsm-network.service install -Dm 0644 init/systemd/supervdsmd.service %{buildroot}%{_unitdir}/supervdsmd.service @@ -798,11 +782,17 @@ install -Dm 0644 init/systemd/mom-vdsm.service %{buildroot}%{_unitdir}/mom-vdsm. install -Dm 0644 vdsm/vdsm-modules-load.d.conf \ %{buildroot}%{_sysconfdir}/modules-load.d/vdsm.conf +install -Dm 0644 vdsm/vdsm-bonding-modprobe.conf \ + %{buildroot}%{_sysconfdir}/modprobe.d/vdsm-bonding-modprobe.conf install -Dm 0644 init/systemd/vdsm-tmpfiles.d.conf \ %{buildroot}%{_tmpfilesdir}/%{vdsm_name}.conf install -Dm 0644 init/systemd/unlimited-core.conf \ %{buildroot}%{_sysconfdir}/systemd/system/libvirtd.service.d/unlimited-core.conf +%if 0%{?with_hooks} +install -Dm 0644 vdsm_hooks/fcoe/85-vdsm-hook-fcoe.preset %{buildroot}%{_libdir}/systemd/system-preset/ +%endif + %if 0%{?rhel} # This is not commonplace, but we want /var/log/core to be a world-writable # dropbox for core dumps @@ -818,10 +808,7 @@ install -Dm 0755 vdsm/virt/libvirt-hook.sh \ %{buildroot}%{_sysconfdir}/libvirt/hooks/qemu %check -#make check - -%clean -rm -rf %{buildroot} +# make tests %pre # Force standard locale behavior (English) @@ -873,9 +860,6 @@ fi %systemd_post mom-vdsm.service %systemd_post ksmtuned.service -# From VDSM version 4.18 a .conf file is deployed to /etc/NetworkManager/conf.d -/bin/systemctl reload NetworkManager >/dev/null 2>&1 || : - # VDSM installs unit files - daemon-reload will refresh systemd /bin/systemctl daemon-reload >/dev/null 2>&1 || : exit 0 @@ -921,11 +905,12 @@ fi exit 0 %files -%defattr(-, root, root, -) -%doc README lib/vdsm/vdsm.conf.sample +%doc README +%doc lib/vdsm/vdsm.conf.sample +%doc README.logging %license COPYING -/usr/lib/systemd/systemd-vdsmd -/usr/lib/systemd/system-preset/85-vdsmd.preset +%{_libdir}/systemd/systemd-vdsmd +%{_libdir}/systemd/system-preset/85-vdsmd.preset %{_unitdir}/vdsmd.service %{_unitdir}/vdsm-network.service %{_unitdir}/supervdsmd.service @@ -941,8 +926,7 @@ exit 0 %ghost %dir %attr(-, %{vdsm_user}, %{vdsm_group}) /rhev/data-center/mnt %dir %{_libexecdir}/%{vdsm_name} %dir %{_sysconfdir}/%{vdsm_name}/vdsm.conf.d -%dir %{_sysconfdir}/NetworkManager -%dir %{_sysconfdir}/NetworkManager/conf.d +%dir %{_sysconfdir}/modprobe.d/ %dir %{_sysconfdir}/%{vdsm_name} %dir %{_sysconfdir}/%{vdsm_name}/mom.d %dir %{_datadir}/%{vdsm_name} @@ -980,7 +964,6 @@ exit 0 %{_datadir}/%{vdsm_name}/virt/vmdevices/network.py* %{_datadir}/%{vdsm_name}/virt/vmdevices/storage.py* -%config(noreplace) %{_sysconfdir}/NetworkManager/conf.d/90-vdsm-monitor-connection-files.conf %config(noreplace) %{_sysconfdir}/%{vdsm_name}/vdsm.conf %config(noreplace) %{_sysconfdir}/%{vdsm_name}/logger.conf %config(noreplace) %{_sysconfdir}/%{vdsm_name}/svdsm.logger.conf @@ -990,8 +973,9 @@ exit 0 %config(noreplace) %{_sysconfdir}/rwtab.d/vdsm %config(noreplace) %{_sysconfdir}/sysctl.d/vdsm.conf %config(noreplace) %{_sysconfdir}/modules-load.d/vdsm.conf -%config(noreplace) %{_tmpfilesdir}/%{vdsm_name}.conf +%{_tmpfilesdir}/%{vdsm_name}.conf %{_sysconfdir}/dhcp/dhclient.d/sourceRoute.sh +%{_sysconfdir}/modprobe.d/vdsm-bonding-modprobe.conf %{_sysconfdir}/sudoers.d/50_vdsm %{_sysconfdir}/cron.hourly/vdsm-logrotate %{_sysconfdir}/libvirt/hooks/qemu @@ -1014,8 +998,6 @@ exit 0 %{_datadir}/%{vdsm_name}/storage/__init__.py* %{_datadir}/%{vdsm_name}/storage/blockSD.py* %{_datadir}/%{vdsm_name}/storage/blockVolume.py* -%{_datadir}/%{vdsm_name}/storage/curlImgWrap.py* -%{_datadir}/%{vdsm_name}/storage/devicemapper.py* %{_datadir}/%{vdsm_name}/storage/dispatcher.py* %{_datadir}/%{vdsm_name}/storage/monitor.py* %{_datadir}/%{vdsm_name}/storage/fileSD.py* @@ -1052,6 +1034,7 @@ exit 0 %{_datadir}/%{vdsm_name}/storage/sdm/volume_artifacts.py* %{_datadir}/%{vdsm_name}/storage/sdm/api/__init__.py* %{_datadir}/%{vdsm_name}/storage/sdm/api/base.py* +%{_datadir}/%{vdsm_name}/storage/sdm/api/copy_data.py* %{_datadir}/%{vdsm_name}/storage/sdm/api/create_volume.py* %{_libexecdir}/%{vdsm_name}/spmprotect.sh %{_libexecdir}/%{vdsm_name}/spmstop.sh @@ -1122,7 +1105,6 @@ exit 0 %dir %{_datadir}/%{vdsm_name}/gluster %{_datadir}/%{vdsm_name}/gluster/__init__.py* %{_datadir}/%{vdsm_name}/gluster/cli.py* -%{_datadir}/%{vdsm_name}/gluster/exception.py* %{python_sitelib}/sos/plugins/vdsm.py* %{_udevrulesdir}/12-vdsm-lvm.rules /etc/security/limits.d/99-vdsm.conf @@ -1157,12 +1139,12 @@ exit 0 %{_datadir}/%{vdsm_name}/bonding-name2numeric.json %files python -%defattr(-, root, root, -) %{_mandir}/man1/vdsm-tool.1* %{_bindir}/vdsm-tool %dir %{python_sitelib}/%{vdsm_name} %dir %{python_sitelib}/%{vdsm_name}/common %dir %{python_sitelib}/%{vdsm_name}/common/network +%dir %{python_sitelib}/%{vdsm_name}/gluster %dir %{python_sitelib}/%{vdsm_name}/host %dir %{python_sitelib}/%{vdsm_name}/network %dir %{python_sitelib}/%{vdsm_name}/network/configurators @@ -1195,6 +1177,10 @@ exit 0 %{python_sitelib}/%{vdsm_name}/dmidecodeUtil.py* %{python_sitelib}/%{vdsm_name}/exception.py* %{python_sitelib}/%{vdsm_name}/executor.py* +# gluster.exception is used in many places like Bridge.py. So it is required +# even without vdsm-gluster package +%{python_sitelib}/%{vdsm_name}/gluster/__init__.py* +%{python_sitelib}/%{vdsm_name}/gluster/exception.py* %{python_sitelib}/%{vdsm_name}/health.py* %{python_sitelib}/%{vdsm_name}/hooks.py* %{python_sitelib}/%{vdsm_name}/hostdev.py* @@ -1219,6 +1205,7 @@ exit 0 %{python_sitelib}/%{vdsm_name}/network/canonicalize.py* %{python_sitelib}/%{vdsm_name}/network/connectivity.py* %{python_sitelib}/%{vdsm_name}/network/ip/*.py* +%{python_sitelib}/%{vdsm_name}/network/ifacquire.py* %{python_sitelib}/%{vdsm_name}/network/ipwrapper.py* %{python_sitelib}/%{vdsm_name}/network/kernelconfig.py* %{python_sitelib}/%{vdsm_name}/network/legacy_switch.py* @@ -1263,6 +1250,9 @@ exit 0 %{python_sitelib}/%{vdsm_name}/storage/check.py* %{python_sitelib}/%{vdsm_name}/storage/clusterlock.py* %{python_sitelib}/%{vdsm_name}/storage/constants.py* +%{python_sitelib}/%{vdsm_name}/storage/curlImgWrap.py* +%{python_sitelib}/%{vdsm_name}/storage/devicemapper.py* +%{python_sitelib}/%{vdsm_name}/storage/directio.py* %{python_sitelib}/%{vdsm_name}/storage/exception.py* %{python_sitelib}/%{vdsm_name}/storage/fileUtils.py* %{python_sitelib}/%{vdsm_name}/storage/fuser.py* @@ -1275,6 +1265,7 @@ exit 0 %{python_sitelib}/%{vdsm_name}/storage/sync.py* %{python_sitelib}/%{vdsm_name}/storage/threadlocal.py* %{python_sitelib}/%{vdsm_name}/storage/volumemetadata.py* +%{python_sitelib}/%{vdsm_name}/properties.py* %{python_sitelib}/%{vdsm_name}/protocoldetector.py* %{python_sitelib}/%{vdsm_name}/pthread.py* %{python_sitelib}/%{vdsm_name}/qemuimg.py* @@ -1330,7 +1321,6 @@ exit 0 %files tests %doc %{_datadir}/%{vdsm_name}/tests/README -%defattr(-, root, root, -) %dir %{_datadir}/%{vdsm_name} %dir %{_datadir}/%{vdsm_name}/tests %dir %{_datadir}/%{vdsm_name}/tests/common @@ -1399,7 +1389,6 @@ exit 0 %{_datadir}/%{vdsm_name}/tests/integration/*.py* %files hook-openstacknet -%defattr(-, 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/openstacknet_utils.py* @@ -1421,7 +1410,6 @@ exit 0 %{_libexecdir}/%{vdsm_name}/hooks/before_nic_hotplug/openstacknet_utils.py* %files hook-ovs -%defattr(-, root, root, -) %{_sysconfdir}/sudoers.d/50_vdsm_hook_ovs %{_libexecdir}/%{vdsm_name}/ovs_migrate.py* %{_libexecdir}/%{vdsm_name}/ovs_utils.py* @@ -1445,14 +1433,12 @@ exit 0 %{_libexecdir}/%{vdsm_name}/hooks/after_network_setup_fail/ovs_utils.py* %files hook-macspoof -%defattr(-, root, root, -) %{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_macspoof %{_libexecdir}/%{vdsm_name}/hooks/before_device_create/50_macspoof %{_libexecdir}/%{vdsm_name}/hooks/before_nic_hotplug/50_macspoof %if 0%{?with_vhostmd} %files hook-vhostmd -%defattr(-, root, root, -) %license COPYING %{_sysconfdir}/sudoers.d/50_vdsm_hook_vhostmd %{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_vhostmd @@ -1468,156 +1454,125 @@ exit 0 %endif %files hook-qemucmdline -%defattr(-, root, root, -) %license COPYING %{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_qemucmdline %files hook-ethtool-options -%defattr(-, root, root, -) %{_libexecdir}/%{vdsm_name}/hooks/after_network_setup/30_ethtool_options %files hook-ipv6 -%defattr(-, root, root, -) %{_libexecdir}/%{vdsm_name}/hooks/before_network_setup/50_ipv6 %files hook-vmfex-dev -%defattr(-, root, root, -) %{_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 %if 0%{?with_hooks} %files hook-allocate_net -%defattr(-, root, root, -) %{_libexecdir}/%{vdsm_name}/hooks/before_device_create/10_allocate_net %files hook-checkimages -%defattr(-, root, root, -) %{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/60_checkimages %files hook-fcoe -%defattr(-, root, root, -) +%{_libdir}/systemd/system-preset/85-vdsm-hook-fcoe.preset %{_libexecdir}/%{vdsm_name}/hooks/before_network_setup/50_fcoe %files hook-checkips -%defattr(-, root, root, -) %{_libexecdir}/%{vdsm_name}/hooks/after_get_stats/10_checkips %{_libexecdir}/%{vdsm_name}/hooks/checkipsd %{_libexecdir}/%{vdsm_name}/hooks/after_get_stats/checkips_utils.py* %{_unitdir}/vdsm-checkips.service %files hook-extra-ipv4-addrs -%defattr(-, root, root, -) %{_libexecdir}/%{vdsm_name}/hooks/after_network_setup/40_extra_ipv4_addrs %files hook-diskunmap -%defattr(-, root, root, -) %{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_diskunmap %files hook-fakevmstats -%defattr(-, root, root, -) %{_libexecdir}/%{vdsm_name}/hooks/after_get_all_vm_stats/10_fakevmstats %files hook-fakesriov -%defattr(-, root, root, -) %{_libexecdir}/%{vdsm_name}/hooks/after_hostdev_list_by_caps/10_fakesriov %{_libexecdir}/%{vdsm_name}/hooks/after_get_caps/10_fakesriov %files hook-fileinject -%defattr(-, root, root, -) %{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_fileinject %files hook-floppy -%defattr(-, root, root, -) %{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_floppy %{_libexecdir}/%{vdsm_name}/hooks/before_vm_migrate_source/50_floppy %files hook-hostusb -%defattr(-, root, root, -) %{_sysconfdir}/sudoers.d/50_vdsm_hook_hostusb %{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_hostusb %{_libexecdir}/%{vdsm_name}/hooks/before_vm_migrate_source/50_hostusb %{_libexecdir}/%{vdsm_name}/hooks/after_vm_destroy/50_hostusb %files hook-httpsisoboot -%defattr(-, root, root, -) %{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_httpsisoboot %files hook-hugepages -%defattr(-, root, root, -) %{_sysconfdir}/sudoers.d/50_vdsm_hook_hugepages %{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_hugepages %{_libexecdir}/%{vdsm_name}/hooks/before_vm_migrate_destination/50_hugepages %{_libexecdir}/%{vdsm_name}/hooks/after_vm_destroy/50_hugepages %files hook-isolatedprivatevlan -%defattr(-, root, root, -) %{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_isolatedprivatevlan %config(noreplace) %{_sysconfdir}/libvirt/nwfilter/isolatedprivatevlan-vdsm.xml %files hook-macbind -%defattr(-, root, root, -) %{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_macbind %files hook-noipspoof -%defattr(-, root, root, -) %{_libexecdir}/%{vdsm_name}/hooks/before_device_create/50_noipspoof %{_libexecdir}/%{vdsm_name}/hooks/before_nic_hotplug/50_noipspoof %files hook-extnet -%defattr(-, root, root, -) %{_libexecdir}/%{vdsm_name}/hooks/before_device_create/50_extnet %{_libexecdir}/%{vdsm_name}/hooks/before_nic_hotplug/50_extnet %files hook-nestedvt -%defattr(-, root, root, -) %{_sysconfdir}/modprobe.d/vdsm-nestedvt.conf %{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_nestedvt %files hook-numa -%defattr(-, root, root, -) %{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_numa %files hook-pincpu -%defattr(-, root, root, -) %{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_pincpu %files hook-promisc -%defattr(-, root, root, -) %{_sysconfdir}/sudoers.d/50_vdsm_hook_promisc %{_libexecdir}/%{vdsm_name}/hooks/after_vm_start/50_promisc %{_libexecdir}/%{vdsm_name}/hooks/before_vm_destroy/50_promisc %files hook-qos -%defattr(-, root, root, -) %{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_qos %files hook-scratchpad -%defattr(-, root, root, -) %{_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 -%defattr(-, root, root, -) %{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_smbios %files hook-spiceoptions -%defattr(-, root, root, -) %{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_spiceoptions %files hook-vmdisk -%defattr(-, root, root, -) %{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_vmdisk %files hook-vmfex -%defattr(-, root, root, -) %{_libexecdir}/%{vdsm_name}/hooks/before_vm_migrate_destination/50_vmfex %{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_vmfex %endif %files cli -%defattr(-, root, root, -) %license COPYING %{_bindir}/vdsClient %dir %{_datadir}/%{vdsm_name} @@ -1627,7 +1582,6 @@ exit 0 %{_mandir}/man1/vdsClient.1* %files xmlrpc -%defattr(-, root, root, -) %dir %{python_sitelib}/%{vdsm_name} %dir %{python_sitelib}/%{vdsm_name}/rpc %{python_sitelib}/%{vdsm_name}/rpc/bindingxmlrpc.py* @@ -1644,6 +1598,7 @@ exit 0 %dir %{python_sitelib}/%{vdsm_name} %dir %{python_sitelib}/%{vdsm_name}/rpc %{python_sitelib}/%{vdsm_name}/rpc/vdsm-api.yml +%{python_sitelib}/%{vdsm_name}/rpc/vdsm-events.yml %{python_sitelib}/api/vdsmapi.py* %{python_sitelib}/api/__init__.py* %if ! 0%{?with_gluster_mgmt} @@ -1656,28 +1611,13 @@ exit 0 %{python_sitelib}/yajsonrpc/stomp.py* %{python_sitelib}/yajsonrpc/stompreactor.py* -%files infra -%dir %{python_sitelib}/%{vdsm_name} -%dir %{python_sitelib}/%{vdsm_name}/infra -%dir %{python_sitelib}/%{vdsm_name}/infra/eventfd -%dir %{python_sitelib}/%{vdsm_name}/infra/filecontrol -%dir %{python_sitelib}/%{vdsm_name}/infra/sigutils -%dir %{python_sitelib}/%{vdsm_name}/infra/zombiereaper -%{python_sitelib}/%{vdsm_name}/infra/eventfd/__init__.py* -%{python_sitelib}/%{vdsm_name}/infra/filecontrol/__init__.py* -%{python_sitelib}/%{vdsm_name}/infra/sigutils/__init__.py* -%{python_sitelib}/%{vdsm_name}/infra/zombiereaper/__init__.py* -%{python_sitelib}/%{vdsm_name}/infra/__init__.py* - %files hook-faqemu -%defattr(-, root, root, -) %license COPYING %{_libexecdir}/%{vdsm_name}/hooks/after_get_caps/10_faqemu %{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/10_faqemu %if 0%{?with_gluster_mgmt} %files gluster -%defattr(-, root, root, -) %dir %{_datadir}/%{vdsm_name} %dir %{_datadir}/%{vdsm_name}/gluster %dir %{python_sitelib}/%{vdsm_name} @@ -1686,6 +1626,7 @@ exit 0 %{_datadir}/%{vdsm_name}/gluster/api.py* %{_datadir}/%{vdsm_name}/gluster/apiwrapper.py* %{_datadir}/%{vdsm_name}/gluster/fstab.py* +%{python_sitelib}/%{vdsm_name}/gluster/fence.py* %{python_sitelib}/%{vdsm_name}/rpc/vdsm-api-gluster.yml %{_datadir}/%{vdsm_name}/gluster/gfapi.py* %{_datadir}/%{vdsm_name}/gluster/hooks.py* @@ -1695,6 +1636,9 @@ exit 0 %endif %changelog +* Wed Aug 03 2016 Yaniv Bronhaim - 4.18.999 +- Re-review of vdsm.spec to return it to fedora Bug #1361659 + * Sun Oct 13 2013 Yaniv Bronhaim - 4.13.0 - Removing vdsm-python-cpopen from the spec - Adding dependency on formal cpopen package From bf94dbfa127236e44fee90c4e81a56603a1f9073 Mon Sep 17 00:00:00 2001 From: Yaniv Bronhaim Date: Wed, 17 Aug 2016 02:01:10 +0300 Subject: [PATCH 05/27] vdsm build fedora master branch - 4.18 ovirt4.0 --- sources | 2 +- vdsm.spec | 23 +++++------------------ 2 files changed, 6 insertions(+), 19 deletions(-) diff --git a/sources b/sources index 803ac6f..a0cd42c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -86eef41dad36acd6c2524591c2464361 vdsm-4.18.999.tar.gz +ef2b487086bc44605ba6fb1c09e504d7 vdsm-4.18.999.tar.gz diff --git a/vdsm.spec b/vdsm.spec index 72a5253..8ddc392 100644 --- a/vdsm.spec +++ b/vdsm.spec @@ -42,7 +42,6 @@ %global _polkitdir %{_localstatedir}/lib/polkit-1/localauthority/10-vendor.d %endif -%global _udevrulesdir %{_libdir}/udev/rules.d/ %global _udevexecdir %{_libdir}/udev/ # Disable debuginfo package, since vdsm is a meta-package @@ -50,7 +49,7 @@ Name: %{vdsm_name} Version: 4.18.999 -Release: 396.gitfb69df9%{?dist}%{?extra_release} +Release: 417.git896954a%{?dist}%{?extra_release} Summary: Virtual Desktop Server Manager Group: Applications/System @@ -89,6 +88,7 @@ BuildRequires: python-pthreading BuildRequires: qemu-img BuildRequires: rpm-python BuildRequires: python-blivet +BuildRequires: sanlock-python %if 0%{?with_openvswitch} BuildRequires: openvswitch >= 2.0.0 @@ -347,19 +347,6 @@ Requires: python-ioprocess >= 0.16.1-1 %description python Shared libraries between the various VDSM packages. -%post python -# REQUIRED_FOR: Upgrade from 4.14 to 4.17 -# HACK: Remove vdsm python lib __init__ file if installed on old location -# https://bugzilla.redhat.com/show_bug.cgi?id=1279167 -if [ "$1" -ge 2 ]; then - if [ -d "%{python2_sitearch}/%{vdsm_name}" ]; then - logger -t '%{vdsm_name}' \ - 'Disabling old vdsm package in %{python2_sitearch}/%{vdsm_name}.' \ - 'Removing %{python2_sitearch}/%{vdsm_name}/init.py*' - rm -f %{python2_sitearch}/%{vdsm_name}/__init__.py* - fi -fi - %package tests Summary: VDSM Test Suite BuildArch: noarch @@ -758,7 +745,7 @@ sed -i -e 's/@SSL_IMPLEMENTATION@/m2c/g' lib/vdsm/config.py sed -i -e 's\@VDSMRPCPYLIBDIR@\%{python_sitelib}/%{vdsm_name}/rpc\g' lib/vdsm/constants.py %install -make %{?_smp_mflags} DESTDIR=%{buildroot} install +make DESTDIR=%{buildroot} install # Creating VDSM logs in this session to avoid rpmbuild # complain during the build @@ -954,6 +941,7 @@ exit 0 %{_datadir}/%{vdsm_name}/virt/recovery.py* %{_datadir}/%{vdsm_name}/virt/vmtune.py* %{_datadir}/%{vdsm_name}/virt/vm.py* +%{_datadir}/%{vdsm_name}/virt/vm_migrate_hook.py* %{_datadir}/%{vdsm_name}/virt/vmxml.py* %{_datadir}/%{vdsm_name}/virt/vmdevices/__init__.py* %{_datadir}/%{vdsm_name}/virt/vmdevices/common.py* @@ -986,6 +974,7 @@ exit 0 %{_libexecdir}/%{vdsm_name}/ovirt_functions.sh %{_libexecdir}/%{vdsm_name}/vdsm-gencerts.sh %{_libexecdir}/%{vdsm_name}/vdsmd_init_common.sh +%{_libexecdir}/%{vdsm_name}/vm_migrate_hook.py* %{_libexecdir}/%{vdsm_name}/kvm2ovirt %{_libexecdir}/%{vdsm_name}/wait_for_ipv4s %{_datadir}/%{vdsm_name}/supervdsm_api/__init__.py* @@ -1411,8 +1400,6 @@ exit 0 %files hook-ovs %{_sysconfdir}/sudoers.d/50_vdsm_hook_ovs -%{_libexecdir}/%{vdsm_name}/ovs_migrate.py* -%{_libexecdir}/%{vdsm_name}/ovs_utils.py* %{_libexecdir}/%{vdsm_name}/hooks/after_get_caps/50_ovs %{_libexecdir}/%{vdsm_name}/hooks/after_get_caps/ovs_utils.py* %{_libexecdir}/%{vdsm_name}/hooks/after_get_stats/50_ovs From ccb9a73c2bf80f8fa876f6949e3e6539352d3b25 Mon Sep 17 00:00:00 2001 From: Yaniv Bronhaim Date: Sat, 20 Aug 2016 16:53:16 +0300 Subject: [PATCH 06/27] Vdsm build after re-review in koji Vdsm 4.18, ovirt 4.0 component that allows to manage and monitor VMs. --- sources | 2 +- vdsm.spec | 32 +++----------------------------- 2 files changed, 4 insertions(+), 30 deletions(-) diff --git a/sources b/sources index a0cd42c..ab95b75 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -ef2b487086bc44605ba6fb1c09e504d7 vdsm-4.18.999.tar.gz +d2a6bdaf7240e150294ab3d1934897d6 vdsm-4.18.999.tar.gz diff --git a/vdsm.spec b/vdsm.spec index 8ddc392..e68dfbc 100644 --- a/vdsm.spec +++ b/vdsm.spec @@ -42,21 +42,20 @@ %global _polkitdir %{_localstatedir}/lib/polkit-1/localauthority/10-vendor.d %endif -%global _udevexecdir %{_libdir}/udev/ - # Disable debuginfo package, since vdsm is a meta-package %global debug_package %{nil} Name: %{vdsm_name} Version: 4.18.999 -Release: 417.git896954a%{?dist}%{?extra_release} +Release: 439.git6ee9d1d%{?dist}%{?extra_release} Summary: Virtual Desktop Server Manager Group: Applications/System License: GPLv2+ Url: http://www.ovirt.org/develop/developer-guide/vdsm/vdsm/ Source0: %{vdsm_name}-%{version}.tar.gz -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +ExclusiveArch: x86_64 ppc ppc64 %{!?_licensedir:%global license %%doc} @@ -324,18 +323,6 @@ Requires: python >= 2.6 %description yajsonrpc A JSON RPC server and client implementation. -%package reg -Summary: VDSM registration package -BuildArch: noarch -Requires: %{name} = %{version}-%{release} -Requires: m2crypto -Requires: openssl -Conflicts: ovirt-node < 3.0.4 - -%description reg -VDSM registration package. Used to register a Linux host to a Virtualization -Manager. - %package python Summary: VDSM python libraries Requires: %{name}-api = %{version}-%{release} @@ -668,7 +655,6 @@ properties %package hook-fcoe Summary: Hook to enable FCoE support -BuildArch: noarch Requires: %{name} = %{version}-%{release} Requires: fcoe-utils @@ -756,21 +742,9 @@ touch %{buildroot}/var/log/vdsm/{connectivity.log,mom.log,supervdsm.log,vdsm.log install -Dm 0644 vdsm/storage/vdsm-lvm.rules \ %{buildroot}%{_udevrulesdir}/12-vdsm-lvm.rules -install -Dm 0644 vdsm/limits.conf \ - %{buildroot}/etc/security/limits.d/99-vdsm.conf - install -Dm 0755 init/systemd/systemd-vdsmd %{buildroot}%{_libdir}/systemd/systemd-vdsmd install -Dm 0644 init/systemd/85-vdsmd.preset %{buildroot}%{_libdir}/systemd/system-preset/85-vdsmd.preset -install -Dm 0644 init/systemd/vdsmd.service %{buildroot}%{_unitdir}/vdsmd.service -install -Dm 0644 init/systemd/vdsm-network.service %{buildroot}%{_unitdir}/vdsm-network.service -install -Dm 0644 init/systemd/supervdsmd.service %{buildroot}%{_unitdir}/supervdsmd.service -install -Dm 0644 init/systemd/mom-vdsm.service %{buildroot}%{_unitdir}/mom-vdsm.service - -install -Dm 0644 vdsm/vdsm-modules-load.d.conf \ - %{buildroot}%{_sysconfdir}/modules-load.d/vdsm.conf -install -Dm 0644 vdsm/vdsm-bonding-modprobe.conf \ - %{buildroot}%{_sysconfdir}/modprobe.d/vdsm-bonding-modprobe.conf install -Dm 0644 init/systemd/vdsm-tmpfiles.d.conf \ %{buildroot}%{_tmpfilesdir}/%{vdsm_name}.conf install -Dm 0644 init/systemd/unlimited-core.conf \ From 1ca531003e2677d177e411fe7b26ee9be88317f5 Mon Sep 17 00:00:00 2001 From: Yaniv Bronhaim Date: Sat, 20 Aug 2016 17:05:44 +0300 Subject: [PATCH 07/27] Vdsm build after re-review in koji Vdsm 4.18, ovirt 4.0 component that allows to manage and monitor VMs. --- sources | 2 +- vdsm.spec | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sources b/sources index ab95b75..5c00d16 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -d2a6bdaf7240e150294ab3d1934897d6 vdsm-4.18.999.tar.gz +142490a0e63c0d863ee8dfa08cda8e9c vdsm-4.18.999.tar.gz diff --git a/vdsm.spec b/vdsm.spec index e68dfbc..7576e67 100644 --- a/vdsm.spec +++ b/vdsm.spec @@ -16,10 +16,10 @@ # Features %global with_ovirt_imageio 0 %global with_ovirt_vmconsole 0 -%global with_gluster_mgmt 1 +%global with_gluster_mgmt 0 %global with_hooks 1 %global with_vhostmd 1 -%global with_python3 1 +%global with_python3 0 %ifarch ppc64le %global with_openvswitch 0 From 454dac7f600ad614f57f1e990a09601f3ae6469e Mon Sep 17 00:00:00 2001 From: Yaniv Bronhaim Date: Sat, 20 Aug 2016 17:10:21 +0300 Subject: [PATCH 08/27] Vdsm build after re-review in koji Vdsm 4.18, ovirt 4.0 component that allows to manage and monitor VMs. --- sources | 2 +- vdsm.spec | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/sources b/sources index 5c00d16..e3baa78 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -142490a0e63c0d863ee8dfa08cda8e9c vdsm-4.18.999.tar.gz +fd3182d7cc167fdace022c830e7d298e vdsm-4.18.999.tar.gz diff --git a/vdsm.spec b/vdsm.spec index 7576e67..346e673 100644 --- a/vdsm.spec +++ b/vdsm.spec @@ -47,7 +47,7 @@ Name: %{vdsm_name} Version: 4.18.999 -Release: 439.git6ee9d1d%{?dist}%{?extra_release} +Release: 440.git0bb7717%{?dist}%{?extra_release} Summary: Virtual Desktop Server Manager Group: Applications/System @@ -86,7 +86,9 @@ BuildRequires: python-ioprocess >= 0.16.1-1 BuildRequires: python-pthreading BuildRequires: qemu-img BuildRequires: rpm-python +%if 0%{?with_gluster_mgmt} BuildRequires: python-blivet +%endif BuildRequires: sanlock-python %if 0%{?with_openvswitch} From 561e4a0e84b86105c84178853bf24aa2733e4e0b Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Wed, 31 Aug 2016 15:12:18 +0100 Subject: [PATCH 09/27] Build on aarch64 and ppc64le --- vdsm.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/vdsm.spec b/vdsm.spec index 346e673..6913914 100644 --- a/vdsm.spec +++ b/vdsm.spec @@ -47,7 +47,7 @@ Name: %{vdsm_name} Version: 4.18.999 -Release: 440.git0bb7717%{?dist}%{?extra_release} +Release: 441.git0bb7717%{?dist}%{?extra_release} Summary: Virtual Desktop Server Manager Group: Applications/System @@ -55,7 +55,7 @@ License: GPLv2+ Url: http://www.ovirt.org/develop/developer-guide/vdsm/vdsm/ Source0: %{vdsm_name}-%{version}.tar.gz -ExclusiveArch: x86_64 ppc ppc64 +ExclusiveArch: x86_64 %{power64} aarch64 %{!?_licensedir:%global license %%doc} @@ -1599,6 +1599,9 @@ exit 0 %endif %changelog +* Wed Aug 31 2016 Peter Robinson 4.18.999-441 +- Build on aarch64 and ppc64le + * Wed Aug 03 2016 Yaniv Bronhaim - 4.18.999 - Re-review of vdsm.spec to return it to fedora Bug #1361659 From 958c723b12efc12d8ce0a0d2c431f00b695d27fe Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 11 Feb 2017 17:01:09 +0000 Subject: [PATCH 10/27] - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild --- vdsm.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vdsm.spec b/vdsm.spec index 6913914..4a93d80 100644 --- a/vdsm.spec +++ b/vdsm.spec @@ -47,7 +47,7 @@ Name: %{vdsm_name} Version: 4.18.999 -Release: 441.git0bb7717%{?dist}%{?extra_release} +Release: 442.git0bb7717%{?dist}%{?extra_release} Summary: Virtual Desktop Server Manager Group: Applications/System @@ -1599,6 +1599,9 @@ exit 0 %endif %changelog +* Sat Feb 11 2017 Fedora Release Engineering - 4.18.999-442.git0bb7717 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + * Wed Aug 31 2016 Peter Robinson 4.18.999-441 - Build on aarch64 and ppc64le From 9810cc76734af251824e218b9d3af53f4012cde0 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 27 Jul 2017 21:15:21 +0000 Subject: [PATCH 11/27] - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild --- vdsm.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vdsm.spec b/vdsm.spec index 4a93d80..7e2ea88 100644 --- a/vdsm.spec +++ b/vdsm.spec @@ -47,7 +47,7 @@ Name: %{vdsm_name} Version: 4.18.999 -Release: 442.git0bb7717%{?dist}%{?extra_release} +Release: 443.git0bb7717%{?dist}%{?extra_release} Summary: Virtual Desktop Server Manager Group: Applications/System @@ -1599,6 +1599,9 @@ exit 0 %endif %changelog +* Thu Jul 27 2017 Fedora Release Engineering - 4.18.999-443.git0bb7717 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + * Sat Feb 11 2017 Fedora Release Engineering - 4.18.999-442.git0bb7717 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild From 3579ddc42a710163d2b638caa14252d2b9f35e91 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 3 Aug 2017 10:02:11 +0000 Subject: [PATCH 12/27] - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild --- vdsm.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vdsm.spec b/vdsm.spec index 7e2ea88..eadb1ac 100644 --- a/vdsm.spec +++ b/vdsm.spec @@ -47,7 +47,7 @@ Name: %{vdsm_name} Version: 4.18.999 -Release: 443.git0bb7717%{?dist}%{?extra_release} +Release: 444.git0bb7717%{?dist}%{?extra_release} Summary: Virtual Desktop Server Manager Group: Applications/System @@ -1599,6 +1599,9 @@ exit 0 %endif %changelog +* Thu Aug 03 2017 Fedora Release Engineering - 4.18.999-444.git0bb7717 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + * Thu Jul 27 2017 Fedora Release Engineering - 4.18.999-443.git0bb7717 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild From f525c36be4d66e68076cc54240c8f9949de65f02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Sat, 19 Aug 2017 09:44:24 -0400 Subject: [PATCH 13/27] Python 2 binary package renamed to python2-vdsm --- vdsm.spec | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/vdsm.spec b/vdsm.spec index eadb1ac..e69c85d 100644 --- a/vdsm.spec +++ b/vdsm.spec @@ -47,7 +47,7 @@ Name: %{vdsm_name} Version: 4.18.999 -Release: 444.git0bb7717%{?dist}%{?extra_release} +Release: 445.git0bb7717%{?dist}%{?extra_release} Summary: Virtual Desktop Server Manager Group: Applications/System @@ -325,7 +325,11 @@ Requires: python >= 2.6 %description yajsonrpc A JSON RPC server and client implementation. -%package python +%package -n python2-vdsm +%{?python_provide:%python_provide python2-vdsm} +# Remove before F30 +Provides: %{name}-python%{?_isa} = %{version}-%{release} +Obsoletes: %{name}-python < %{version}-%{release} Summary: VDSM python libraries Requires: %{name}-api = %{version}-%{release} BuildArch: noarch @@ -333,7 +337,7 @@ Requires: python-cpopen >= 1.4 Requires: m2crypto Requires: python-ioprocess >= 0.16.1-1 -%description python +%description -n python2-vdsm Shared libraries between the various VDSM packages. %package tests @@ -1103,7 +1107,7 @@ exit 0 %{_datadir}/%{vdsm_name}/bonding-defaults.json %{_datadir}/%{vdsm_name}/bonding-name2numeric.json -%files python +%files -n python2-vdsm %{_mandir}/man1/vdsm-tool.1* %{_bindir}/vdsm-tool %dir %{python_sitelib}/%{vdsm_name} @@ -1599,6 +1603,10 @@ exit 0 %endif %changelog +* Sat Aug 19 2017 Zbigniew Jędrzejewski-Szmek - 4.18.999-445.git0bb7717 +- Python 2 binary package renamed to python2-vdsm + See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3 + * Thu Aug 03 2017 Fedora Release Engineering - 4.18.999-444.git0bb7717 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild From 28a446966d1ec69966c30b95c0caaffc6c23dacc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Sat, 19 Aug 2017 23:14:59 -0400 Subject: [PATCH 14/27] Fix %_isa and update internal Requires --- vdsm.spec | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/vdsm.spec b/vdsm.spec index e69c85d..ba1e0b5 100644 --- a/vdsm.spec +++ b/vdsm.spec @@ -260,7 +260,7 @@ Requires: tree Requires: dosfstools Requires: genisoimage Requires: libselinux-python -Requires: %{name}-python = %{version}-%{release} +Requires: python2-%{name} = %{version}-%{release} Requires: %{name}-hook-vmfex-dev = %{version}-%{release} Requires: NetworkManager-config-server @@ -283,7 +283,7 @@ tasks, statistics gathering, and log collection. %package cli Summary: VDSM command line interface BuildArch: noarch -Requires: %{name}-python = %{version}-%{release} +Requires: python2-%{name} = %{version}-%{release} Requires: %{name}-xmlrpc = %{version}-%{release} %description cli @@ -292,7 +292,7 @@ Call VDSM commands from the command line. Used for testing and debugging. %package xmlrpc Summary: VDSM xmlrpc API BuildArch: noarch -Requires: %{name}-python = %{version}-%{release} +Requires: python2-%{name} = %{version}-%{release} %description xmlrpc @@ -309,7 +309,7 @@ Contains api schema files %package jsonrpc Summary: VDSM API Server BuildArch: noarch -Requires: %{name}-python = %{version}-%{release} +Requires: python2-%{name} = %{version}-%{release} Requires: %{name}-api = %{version}-%{release} Requires: %{name}-yajsonrpc = %{version}-%{release} Obsoletes: %{name}-api < 4.16 @@ -328,6 +328,7 @@ A JSON RPC server and client implementation. %package -n python2-vdsm %{?python_provide:%python_provide python2-vdsm} # Remove before F30 +Provides: %{name}-python = %{version}-%{release} Provides: %{name}-python%{?_isa} = %{version}-%{release} Obsoletes: %{name}-python < %{version}-%{release} Summary: VDSM python libraries From 765ec660ef1ccce95fad2470e96138d0292d4719 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Mon, 28 Aug 2017 10:38:14 -0400 Subject: [PATCH 15/27] Drop dependency on python-argparse (part of python stdlib) --- vdsm.spec | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/vdsm.spec b/vdsm.spec index ba1e0b5..ccf7970 100644 --- a/vdsm.spec +++ b/vdsm.spec @@ -47,7 +47,7 @@ Name: %{vdsm_name} Version: 4.18.999 -Release: 445.git0bb7717%{?dist}%{?extra_release} +Release: 446.git0bb7717%{?dist}%{?extra_release} Summary: Virtual Desktop Server Manager Group: Applications/System @@ -140,7 +140,6 @@ Requires: iproute >= 3.10.0 Requires: PyYAML Requires: python-netaddr Requires: python-inotify -Requires: python-argparse Requires: python-cpopen >= 1.4 Requires: python-ioprocess >= 0.16.1-1 Requires: python-pthreading >= 0.1.3-3 @@ -1604,6 +1603,9 @@ exit 0 %endif %changelog +* Mon Aug 28 2017 Zbigniew Jędrzejewski-Szmek - 4.18.999-446.git0bb7717 +- Drop dependency on python-argparse (part of python stdlib) + * Sat Aug 19 2017 Zbigniew Jędrzejewski-Szmek - 4.18.999-445.git0bb7717 - Python 2 binary package renamed to python2-vdsm See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3 From 4ba9d18ab2a162adf616755c8f2bbace716e93ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Mon, 28 Aug 2017 11:46:25 -0400 Subject: [PATCH 16/27] Fix order of BuildArch and Provides --- vdsm.spec | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/vdsm.spec b/vdsm.spec index ccf7970..7ea12a1 100644 --- a/vdsm.spec +++ b/vdsm.spec @@ -325,17 +325,17 @@ Requires: python >= 2.6 A JSON RPC server and client implementation. %package -n python2-vdsm -%{?python_provide:%python_provide python2-vdsm} -# Remove before F30 -Provides: %{name}-python = %{version}-%{release} -Provides: %{name}-python%{?_isa} = %{version}-%{release} -Obsoletes: %{name}-python < %{version}-%{release} Summary: VDSM python libraries Requires: %{name}-api = %{version}-%{release} BuildArch: noarch Requires: python-cpopen >= 1.4 Requires: m2crypto Requires: python-ioprocess >= 0.16.1-1 +%{?python_provide:%python_provide python2-vdsm} +# Remove before F30 +Provides: %{name}-python = %{version}-%{release} +Provides: %{name}-python%{?_isa} = %{version}-%{release} +Obsoletes: %{name}-python < %{version}-%{release} %description -n python2-vdsm Shared libraries between the various VDSM packages. From 09d024629f677e426a1be49c9e142f554b802ae5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Tue, 29 Aug 2017 07:50:35 -0400 Subject: [PATCH 17/27] =?UTF-8?q?Drop=20Provides=20with=20%=5Fisa=20?= =?UTF-8?q?=E2=80=94=20the=20package=20is=20noarch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vdsm.spec | 1 - 1 file changed, 1 deletion(-) diff --git a/vdsm.spec b/vdsm.spec index 7ea12a1..748a90b 100644 --- a/vdsm.spec +++ b/vdsm.spec @@ -334,7 +334,6 @@ Requires: python-ioprocess >= 0.16.1-1 %{?python_provide:%python_provide python2-vdsm} # Remove before F30 Provides: %{name}-python = %{version}-%{release} -Provides: %{name}-python%{?_isa} = %{version}-%{release} Obsoletes: %{name}-python < %{version}-%{release} %description -n python2-vdsm From 810d65931e93085ba9b9590e0fc05d0d0c79e7a7 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 9 Feb 2018 20:25:49 +0000 Subject: [PATCH 18/27] - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- vdsm.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vdsm.spec b/vdsm.spec index 748a90b..02fc44e 100644 --- a/vdsm.spec +++ b/vdsm.spec @@ -47,7 +47,7 @@ Name: %{vdsm_name} Version: 4.18.999 -Release: 446.git0bb7717%{?dist}%{?extra_release} +Release: 447.git0bb7717%{?dist}%{?extra_release} Summary: Virtual Desktop Server Manager Group: Applications/System @@ -1602,6 +1602,9 @@ exit 0 %endif %changelog +* Fri Feb 09 2018 Fedora Release Engineering - 4.18.999-447.git0bb7717 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + * Mon Aug 28 2017 Zbigniew Jędrzejewski-Szmek - 4.18.999-446.git0bb7717 - Drop dependency on python-argparse (part of python stdlib) From c29489e7cddca3429435637785fd1123a8042db8 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 14 Jul 2018 08:29:10 +0000 Subject: [PATCH 19/27] - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- vdsm.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vdsm.spec b/vdsm.spec index 02fc44e..5edcfb7 100644 --- a/vdsm.spec +++ b/vdsm.spec @@ -47,7 +47,7 @@ Name: %{vdsm_name} Version: 4.18.999 -Release: 447.git0bb7717%{?dist}%{?extra_release} +Release: 448.git0bb7717%{?dist}%{?extra_release} Summary: Virtual Desktop Server Manager Group: Applications/System @@ -1602,6 +1602,9 @@ exit 0 %endif %changelog +* Sat Jul 14 2018 Fedora Release Engineering - 4.18.999-448.git0bb7717 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + * Fri Feb 09 2018 Fedora Release Engineering - 4.18.999-447.git0bb7717 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild From be4bcec861a44602603bd463a79c258b21de2823 Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Sun, 29 Jul 2018 23:11:37 +0200 Subject: [PATCH 20/27] =?UTF-8?q?%{python=5Fsitelib}=20=E2=86=92=20%{pytho?= =?UTF-8?q?n2=5Fsitelib}?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Igor Gnatenko --- vdsm.spec | 342 +++++++++++++++++++++++++++--------------------------- 1 file changed, 171 insertions(+), 171 deletions(-) diff --git a/vdsm.spec b/vdsm.spec index 5edcfb7..05e689c 100644 --- a/vdsm.spec +++ b/vdsm.spec @@ -1073,7 +1073,7 @@ exit 0 %dir %{_datadir}/%{vdsm_name}/gluster %{_datadir}/%{vdsm_name}/gluster/__init__.py* %{_datadir}/%{vdsm_name}/gluster/cli.py* -%{python_sitelib}/sos/plugins/vdsm.py* +%{python2_sitelib}/sos/plugins/vdsm.py* %{_udevrulesdir}/12-vdsm-lvm.rules /etc/security/limits.d/99-vdsm.conf %{_mandir}/man8/vdsmd.8* @@ -1128,164 +1128,164 @@ exit 0 %dir %{python_sitelib}/%{vdsm_name}/profiling %dir %{python_sitelib}/%{vdsm_name}/storage %dir %{python_sitelib}/%{vdsm_name}/virt -%{python_sitelib}/%{vdsm_name}/__init__.py* -%{python_sitelib}/%{vdsm_name}/cmdutils.py* -%{python_sitelib}/%{vdsm_name}/compat.py* -%{python_sitelib}/%{vdsm_name}/commands.py* -%{python_sitelib}/%{vdsm_name}/common/*.py* -%{python_sitelib}/%{vdsm_name}/host/*.py* -%{python_sitelib}/%{vdsm_name}/common/network/*.py* -%{python_sitelib}/%{vdsm_name}/concurrent.py* -%{python_sitelib}/%{vdsm_name}/config.py* -%{python_sitelib}/%{vdsm_name}/constants.py* -%{python_sitelib}/%{vdsm_name}/cpuarch.py* -%{python_sitelib}/%{vdsm_name}/cpuinfo.py* -%{python_sitelib}/%{vdsm_name}/dsaversion.py* -%{python_sitelib}/%{vdsm_name}/define.py* -%{python_sitelib}/%{vdsm_name}/dmidecodeUtil.py* -%{python_sitelib}/%{vdsm_name}/exception.py* -%{python_sitelib}/%{vdsm_name}/executor.py* +%{python2_sitelib}/%{vdsm_name}/__init__.py* +%{python2_sitelib}/%{vdsm_name}/cmdutils.py* +%{python2_sitelib}/%{vdsm_name}/compat.py* +%{python2_sitelib}/%{vdsm_name}/commands.py* +%{python2_sitelib}/%{vdsm_name}/common/*.py* +%{python2_sitelib}/%{vdsm_name}/host/*.py* +%{python2_sitelib}/%{vdsm_name}/common/network/*.py* +%{python2_sitelib}/%{vdsm_name}/concurrent.py* +%{python2_sitelib}/%{vdsm_name}/config.py* +%{python2_sitelib}/%{vdsm_name}/constants.py* +%{python2_sitelib}/%{vdsm_name}/cpuarch.py* +%{python2_sitelib}/%{vdsm_name}/cpuinfo.py* +%{python2_sitelib}/%{vdsm_name}/dsaversion.py* +%{python2_sitelib}/%{vdsm_name}/define.py* +%{python2_sitelib}/%{vdsm_name}/dmidecodeUtil.py* +%{python2_sitelib}/%{vdsm_name}/exception.py* +%{python2_sitelib}/%{vdsm_name}/executor.py* # gluster.exception is used in many places like Bridge.py. So it is required # even without vdsm-gluster package -%{python_sitelib}/%{vdsm_name}/gluster/__init__.py* -%{python_sitelib}/%{vdsm_name}/gluster/exception.py* -%{python_sitelib}/%{vdsm_name}/health.py* -%{python_sitelib}/%{vdsm_name}/hooks.py* -%{python_sitelib}/%{vdsm_name}/hostdev.py* -%{python_sitelib}/%{vdsm_name}/jobs.py* -%{python_sitelib}/%{vdsm_name}/jsonrpcvdscli.py* -%{python_sitelib}/%{vdsm_name}/kaxmlrpclib.py* -%{python_sitelib}/%{vdsm_name}/libvirtconnection.py* -%{python_sitelib}/%{vdsm_name}/logUtils.py* -%{python_sitelib}/%{vdsm_name}/m2cutils.py* -%{python_sitelib}/%{vdsm_name}/machinetype.py* -%{python_sitelib}/%{vdsm_name}/metrics/*.py* -%{python_sitelib}/%{vdsm_name}/moduleloader.py* -%{python_sitelib}/%{vdsm_name}/momIF.py* -%{python_sitelib}/%{vdsm_name}/network/__init__.py* -%{python_sitelib}/%{vdsm_name}/network/api.py* -%{python_sitelib}/%{vdsm_name}/network/configurators/__init__.py* -%{python_sitelib}/%{vdsm_name}/network/configurators/ifcfg.py* -%{python_sitelib}/%{vdsm_name}/network/configurators/iproute2.py* -%{python_sitelib}/%{vdsm_name}/network/configurators/pyroute_two.py* -%{python_sitelib}/%{vdsm_name}/network/configurators/qos.py* -%{python_sitelib}/%{vdsm_name}/network/errors.py* -%{python_sitelib}/%{vdsm_name}/network/canonicalize.py* -%{python_sitelib}/%{vdsm_name}/network/connectivity.py* -%{python_sitelib}/%{vdsm_name}/network/ip/*.py* -%{python_sitelib}/%{vdsm_name}/network/ifacquire.py* -%{python_sitelib}/%{vdsm_name}/network/ipwrapper.py* -%{python_sitelib}/%{vdsm_name}/network/kernelconfig.py* -%{python_sitelib}/%{vdsm_name}/network/legacy_switch.py* -%{python_sitelib}/%{vdsm_name}/network/libvirt.py* -%{python_sitelib}/%{vdsm_name}/network/netinfo/*.py* -%{python_sitelib}/%{vdsm_name}/network/netlink/__init__.py* -%{python_sitelib}/%{vdsm_name}/network/netlink/addr.py* -%{python_sitelib}/%{vdsm_name}/network/netlink/link.py* -%{python_sitelib}/%{vdsm_name}/network/netlink/monitor.py* -%{python_sitelib}/%{vdsm_name}/network/netlink/route.py* -%{python_sitelib}/%{vdsm_name}/network/ovs/__init__.py* -%{python_sitelib}/%{vdsm_name}/network/ovs/info.py* -%{python_sitelib}/%{vdsm_name}/network/ovs/switch.py* -%{python_sitelib}/%{vdsm_name}/network/ovs/validator.py* -%{python_sitelib}/%{vdsm_name}/network/ovs/driver/__init__.py* -%{python_sitelib}/%{vdsm_name}/network/ovs/driver/vsctl.py* -%{python_sitelib}/%{vdsm_name}/network/models.py* -%{python_sitelib}/%{vdsm_name}/network/netconfpersistence.py* -%{python_sitelib}/%{vdsm_name}/network/netswitch.py* -%{python_sitelib}/%{vdsm_name}/network/sourceroute.py* -%{python_sitelib}/%{vdsm_name}/network/sourceroutethread.py* -%{python_sitelib}/%{vdsm_name}/network/tc/__init__.py* -%{python_sitelib}/%{vdsm_name}/network/tc/_parser.py* -%{python_sitelib}/%{vdsm_name}/network/tc/_wrapper.py* -%{python_sitelib}/%{vdsm_name}/network/tc/cls.py* -%{python_sitelib}/%{vdsm_name}/network/tc/filter.py* -%{python_sitelib}/%{vdsm_name}/network/tc/qdisc.py* -%{python_sitelib}/%{vdsm_name}/network/utils.py* -%{python_sitelib}/%{vdsm_name}/numa.py* -%{python_sitelib}/%{vdsm_name}/osinfo.py* -%{python_sitelib}/%{vdsm_name}/password.py* -%{python_sitelib}/%{vdsm_name}/panic.py* -%{python_sitelib}/%{vdsm_name}/ppc64HardwareInfo.py* -%{python_sitelib}/%{vdsm_name}/profiling/__init__.py* -%{python_sitelib}/%{vdsm_name}/profiling/cpu.py* -%{python_sitelib}/%{vdsm_name}/profiling/errors.py* -%{python_sitelib}/%{vdsm_name}/profiling/memory.py* -%{python_sitelib}/%{vdsm_name}/profiling/profile.py* -%{python_sitelib}/%{vdsm_name}/storage/__init__.py* -%{python_sitelib}/%{vdsm_name}/storage/asyncevent.py* -%{python_sitelib}/%{vdsm_name}/storage/blkdiscard.py* -%{python_sitelib}/%{vdsm_name}/storage/check.py* -%{python_sitelib}/%{vdsm_name}/storage/clusterlock.py* -%{python_sitelib}/%{vdsm_name}/storage/constants.py* -%{python_sitelib}/%{vdsm_name}/storage/curlImgWrap.py* -%{python_sitelib}/%{vdsm_name}/storage/devicemapper.py* -%{python_sitelib}/%{vdsm_name}/storage/directio.py* -%{python_sitelib}/%{vdsm_name}/storage/exception.py* -%{python_sitelib}/%{vdsm_name}/storage/fileUtils.py* -%{python_sitelib}/%{vdsm_name}/storage/fuser.py* -%{python_sitelib}/%{vdsm_name}/storage/hba.py* -%{python_sitelib}/%{vdsm_name}/storage/misc.py* -%{python_sitelib}/%{vdsm_name}/storage/mount.py* -%{python_sitelib}/%{vdsm_name}/storage/persistent.py* -%{python_sitelib}/%{vdsm_name}/storage/rwlock.py* -%{python_sitelib}/%{vdsm_name}/storage/securable.py* -%{python_sitelib}/%{vdsm_name}/storage/sync.py* -%{python_sitelib}/%{vdsm_name}/storage/threadlocal.py* -%{python_sitelib}/%{vdsm_name}/storage/volumemetadata.py* -%{python_sitelib}/%{vdsm_name}/properties.py* -%{python_sitelib}/%{vdsm_name}/protocoldetector.py* -%{python_sitelib}/%{vdsm_name}/pthread.py* -%{python_sitelib}/%{vdsm_name}/qemuimg.py* -%{python_sitelib}/%{vdsm_name}/response.py* -%{python_sitelib}/%{vdsm_name}/schedule.py* -%{python_sitelib}/%{vdsm_name}/sslcompat.py* -%{python_sitelib}/%{vdsm_name}/sslutils.py* -%{python_sitelib}/%{vdsm_name}/supervdsm.py* -%{python_sitelib}/%{vdsm_name}/sysctl.py* -%{python_sitelib}/%{vdsm_name}/taskset.py* -%{python_sitelib}/%{vdsm_name}/throttledlog.py* -%{python_sitelib}/%{vdsm_name}/udevadm.py* -%{python_sitelib}/%{vdsm_name}/utils.py* -%{python_sitelib}/%{vdsm_name}/v2v.py* -%{python_sitelib}/%{vdsm_name}/vdscli.py* -%{python_sitelib}/%{vdsm_name}/virtsparsify.py* -%{python_sitelib}/%{vdsm_name}/xmlrpc.py* -%{python_sitelib}/%{vdsm_name}/tool/__init__.py* -%{python_sitelib}/%{vdsm_name}/tool/configfile.py* -%{python_sitelib}/%{vdsm_name}/tool/dummybr.py* -%{python_sitelib}/%{vdsm_name}/tool/dump_bonding_opts.py* -%{python_sitelib}/%{vdsm_name}/tool/nwfilter.py* -%{python_sitelib}/%{vdsm_name}/tool/configurator.py* -%{python_sitelib}/%{vdsm_name}/tool/configurators/__init__* -%{python_sitelib}/%{vdsm_name}/tool/configurators/certificates.py* -%{python_sitelib}/%{vdsm_name}/tool/configurators/libvirt.py* -%{python_sitelib}/%{vdsm_name}/tool/configurators/passwd.py* -%{python_sitelib}/%{vdsm_name}/tool/configurators/sanlock.py* -%{python_sitelib}/%{vdsm_name}/tool/configurators/sebool.py* -%{python_sitelib}/%{vdsm_name}/tool/configurators/multipath.py* -%{python_sitelib}/%{vdsm_name}/tool/dump_volume_chains.py* -%{python_sitelib}/%{vdsm_name}/tool/register.py* -%{python_sitelib}/%{vdsm_name}/tool/restore_nets.py* -%{python_sitelib}/%{vdsm_name}/tool/service.py* -%{python_sitelib}/%{vdsm_name}/tool/transient.py* -%{python_sitelib}/%{vdsm_name}/tool/unified_persistence.py* -%{python_sitelib}/%{vdsm_name}/tool/upgrade.py* -%{python_sitelib}/%{vdsm_name}/tool/validate_ovirt_certs.py* -%{python_sitelib}/%{vdsm_name}/tool/vdsm-id.py* -%{python_sitelib}/%{vdsm_name}/virt/__init__.py* -%{python_sitelib}/%{vdsm_name}/virt/api.py* -%{python_sitelib}/%{vdsm_name}/virt/guestagent.py* -%{python_sitelib}/%{vdsm_name}/virt/periodic.py* -%{python_sitelib}/%{vdsm_name}/virt/sampling.py* -%{python_sitelib}/%{vdsm_name}/virt/secret.py* -%{python_sitelib}/%{vdsm_name}/virt/utils.py* -%{python_sitelib}/%{vdsm_name}/virt/virdomain.py* -%{python_sitelib}/%{vdsm_name}/virt/vmchannels.py* -%{python_sitelib}/%{vdsm_name}/virt/vmexitreason.py* -%{python_sitelib}/%{vdsm_name}/virt/vmpowerdown.py* -%{python_sitelib}/%{vdsm_name}/virt/vmstats.py* -%{python_sitelib}/%{vdsm_name}/virt/vmstatus.py* +%{python2_sitelib}/%{vdsm_name}/gluster/__init__.py* +%{python2_sitelib}/%{vdsm_name}/gluster/exception.py* +%{python2_sitelib}/%{vdsm_name}/health.py* +%{python2_sitelib}/%{vdsm_name}/hooks.py* +%{python2_sitelib}/%{vdsm_name}/hostdev.py* +%{python2_sitelib}/%{vdsm_name}/jobs.py* +%{python2_sitelib}/%{vdsm_name}/jsonrpcvdscli.py* +%{python2_sitelib}/%{vdsm_name}/kaxmlrpclib.py* +%{python2_sitelib}/%{vdsm_name}/libvirtconnection.py* +%{python2_sitelib}/%{vdsm_name}/logUtils.py* +%{python2_sitelib}/%{vdsm_name}/m2cutils.py* +%{python2_sitelib}/%{vdsm_name}/machinetype.py* +%{python2_sitelib}/%{vdsm_name}/metrics/*.py* +%{python2_sitelib}/%{vdsm_name}/moduleloader.py* +%{python2_sitelib}/%{vdsm_name}/momIF.py* +%{python2_sitelib}/%{vdsm_name}/network/__init__.py* +%{python2_sitelib}/%{vdsm_name}/network/api.py* +%{python2_sitelib}/%{vdsm_name}/network/configurators/__init__.py* +%{python2_sitelib}/%{vdsm_name}/network/configurators/ifcfg.py* +%{python2_sitelib}/%{vdsm_name}/network/configurators/iproute2.py* +%{python2_sitelib}/%{vdsm_name}/network/configurators/pyroute_two.py* +%{python2_sitelib}/%{vdsm_name}/network/configurators/qos.py* +%{python2_sitelib}/%{vdsm_name}/network/errors.py* +%{python2_sitelib}/%{vdsm_name}/network/canonicalize.py* +%{python2_sitelib}/%{vdsm_name}/network/connectivity.py* +%{python2_sitelib}/%{vdsm_name}/network/ip/*.py* +%{python2_sitelib}/%{vdsm_name}/network/ifacquire.py* +%{python2_sitelib}/%{vdsm_name}/network/ipwrapper.py* +%{python2_sitelib}/%{vdsm_name}/network/kernelconfig.py* +%{python2_sitelib}/%{vdsm_name}/network/legacy_switch.py* +%{python2_sitelib}/%{vdsm_name}/network/libvirt.py* +%{python2_sitelib}/%{vdsm_name}/network/netinfo/*.py* +%{python2_sitelib}/%{vdsm_name}/network/netlink/__init__.py* +%{python2_sitelib}/%{vdsm_name}/network/netlink/addr.py* +%{python2_sitelib}/%{vdsm_name}/network/netlink/link.py* +%{python2_sitelib}/%{vdsm_name}/network/netlink/monitor.py* +%{python2_sitelib}/%{vdsm_name}/network/netlink/route.py* +%{python2_sitelib}/%{vdsm_name}/network/ovs/__init__.py* +%{python2_sitelib}/%{vdsm_name}/network/ovs/info.py* +%{python2_sitelib}/%{vdsm_name}/network/ovs/switch.py* +%{python2_sitelib}/%{vdsm_name}/network/ovs/validator.py* +%{python2_sitelib}/%{vdsm_name}/network/ovs/driver/__init__.py* +%{python2_sitelib}/%{vdsm_name}/network/ovs/driver/vsctl.py* +%{python2_sitelib}/%{vdsm_name}/network/models.py* +%{python2_sitelib}/%{vdsm_name}/network/netconfpersistence.py* +%{python2_sitelib}/%{vdsm_name}/network/netswitch.py* +%{python2_sitelib}/%{vdsm_name}/network/sourceroute.py* +%{python2_sitelib}/%{vdsm_name}/network/sourceroutethread.py* +%{python2_sitelib}/%{vdsm_name}/network/tc/__init__.py* +%{python2_sitelib}/%{vdsm_name}/network/tc/_parser.py* +%{python2_sitelib}/%{vdsm_name}/network/tc/_wrapper.py* +%{python2_sitelib}/%{vdsm_name}/network/tc/cls.py* +%{python2_sitelib}/%{vdsm_name}/network/tc/filter.py* +%{python2_sitelib}/%{vdsm_name}/network/tc/qdisc.py* +%{python2_sitelib}/%{vdsm_name}/network/utils.py* +%{python2_sitelib}/%{vdsm_name}/numa.py* +%{python2_sitelib}/%{vdsm_name}/osinfo.py* +%{python2_sitelib}/%{vdsm_name}/password.py* +%{python2_sitelib}/%{vdsm_name}/panic.py* +%{python2_sitelib}/%{vdsm_name}/ppc64HardwareInfo.py* +%{python2_sitelib}/%{vdsm_name}/profiling/__init__.py* +%{python2_sitelib}/%{vdsm_name}/profiling/cpu.py* +%{python2_sitelib}/%{vdsm_name}/profiling/errors.py* +%{python2_sitelib}/%{vdsm_name}/profiling/memory.py* +%{python2_sitelib}/%{vdsm_name}/profiling/profile.py* +%{python2_sitelib}/%{vdsm_name}/storage/__init__.py* +%{python2_sitelib}/%{vdsm_name}/storage/asyncevent.py* +%{python2_sitelib}/%{vdsm_name}/storage/blkdiscard.py* +%{python2_sitelib}/%{vdsm_name}/storage/check.py* +%{python2_sitelib}/%{vdsm_name}/storage/clusterlock.py* +%{python2_sitelib}/%{vdsm_name}/storage/constants.py* +%{python2_sitelib}/%{vdsm_name}/storage/curlImgWrap.py* +%{python2_sitelib}/%{vdsm_name}/storage/devicemapper.py* +%{python2_sitelib}/%{vdsm_name}/storage/directio.py* +%{python2_sitelib}/%{vdsm_name}/storage/exception.py* +%{python2_sitelib}/%{vdsm_name}/storage/fileUtils.py* +%{python2_sitelib}/%{vdsm_name}/storage/fuser.py* +%{python2_sitelib}/%{vdsm_name}/storage/hba.py* +%{python2_sitelib}/%{vdsm_name}/storage/misc.py* +%{python2_sitelib}/%{vdsm_name}/storage/mount.py* +%{python2_sitelib}/%{vdsm_name}/storage/persistent.py* +%{python2_sitelib}/%{vdsm_name}/storage/rwlock.py* +%{python2_sitelib}/%{vdsm_name}/storage/securable.py* +%{python2_sitelib}/%{vdsm_name}/storage/sync.py* +%{python2_sitelib}/%{vdsm_name}/storage/threadlocal.py* +%{python2_sitelib}/%{vdsm_name}/storage/volumemetadata.py* +%{python2_sitelib}/%{vdsm_name}/properties.py* +%{python2_sitelib}/%{vdsm_name}/protocoldetector.py* +%{python2_sitelib}/%{vdsm_name}/pthread.py* +%{python2_sitelib}/%{vdsm_name}/qemuimg.py* +%{python2_sitelib}/%{vdsm_name}/response.py* +%{python2_sitelib}/%{vdsm_name}/schedule.py* +%{python2_sitelib}/%{vdsm_name}/sslcompat.py* +%{python2_sitelib}/%{vdsm_name}/sslutils.py* +%{python2_sitelib}/%{vdsm_name}/supervdsm.py* +%{python2_sitelib}/%{vdsm_name}/sysctl.py* +%{python2_sitelib}/%{vdsm_name}/taskset.py* +%{python2_sitelib}/%{vdsm_name}/throttledlog.py* +%{python2_sitelib}/%{vdsm_name}/udevadm.py* +%{python2_sitelib}/%{vdsm_name}/utils.py* +%{python2_sitelib}/%{vdsm_name}/v2v.py* +%{python2_sitelib}/%{vdsm_name}/vdscli.py* +%{python2_sitelib}/%{vdsm_name}/virtsparsify.py* +%{python2_sitelib}/%{vdsm_name}/xmlrpc.py* +%{python2_sitelib}/%{vdsm_name}/tool/__init__.py* +%{python2_sitelib}/%{vdsm_name}/tool/configfile.py* +%{python2_sitelib}/%{vdsm_name}/tool/dummybr.py* +%{python2_sitelib}/%{vdsm_name}/tool/dump_bonding_opts.py* +%{python2_sitelib}/%{vdsm_name}/tool/nwfilter.py* +%{python2_sitelib}/%{vdsm_name}/tool/configurator.py* +%{python2_sitelib}/%{vdsm_name}/tool/configurators/__init__* +%{python2_sitelib}/%{vdsm_name}/tool/configurators/certificates.py* +%{python2_sitelib}/%{vdsm_name}/tool/configurators/libvirt.py* +%{python2_sitelib}/%{vdsm_name}/tool/configurators/passwd.py* +%{python2_sitelib}/%{vdsm_name}/tool/configurators/sanlock.py* +%{python2_sitelib}/%{vdsm_name}/tool/configurators/sebool.py* +%{python2_sitelib}/%{vdsm_name}/tool/configurators/multipath.py* +%{python2_sitelib}/%{vdsm_name}/tool/dump_volume_chains.py* +%{python2_sitelib}/%{vdsm_name}/tool/register.py* +%{python2_sitelib}/%{vdsm_name}/tool/restore_nets.py* +%{python2_sitelib}/%{vdsm_name}/tool/service.py* +%{python2_sitelib}/%{vdsm_name}/tool/transient.py* +%{python2_sitelib}/%{vdsm_name}/tool/unified_persistence.py* +%{python2_sitelib}/%{vdsm_name}/tool/upgrade.py* +%{python2_sitelib}/%{vdsm_name}/tool/validate_ovirt_certs.py* +%{python2_sitelib}/%{vdsm_name}/tool/vdsm-id.py* +%{python2_sitelib}/%{vdsm_name}/virt/__init__.py* +%{python2_sitelib}/%{vdsm_name}/virt/api.py* +%{python2_sitelib}/%{vdsm_name}/virt/guestagent.py* +%{python2_sitelib}/%{vdsm_name}/virt/periodic.py* +%{python2_sitelib}/%{vdsm_name}/virt/sampling.py* +%{python2_sitelib}/%{vdsm_name}/virt/secret.py* +%{python2_sitelib}/%{vdsm_name}/virt/utils.py* +%{python2_sitelib}/%{vdsm_name}/virt/virdomain.py* +%{python2_sitelib}/%{vdsm_name}/virt/vmchannels.py* +%{python2_sitelib}/%{vdsm_name}/virt/vmexitreason.py* +%{python2_sitelib}/%{vdsm_name}/virt/vmpowerdown.py* +%{python2_sitelib}/%{vdsm_name}/virt/vmstats.py* +%{python2_sitelib}/%{vdsm_name}/virt/vmstatus.py* %files tests %doc %{_datadir}/%{vdsm_name}/tests/README @@ -1550,32 +1550,32 @@ exit 0 %files xmlrpc %dir %{python_sitelib}/%{vdsm_name} %dir %{python_sitelib}/%{vdsm_name}/rpc -%{python_sitelib}/%{vdsm_name}/rpc/bindingxmlrpc.py* +%{python2_sitelib}/%{vdsm_name}/rpc/bindingxmlrpc.py* %files jsonrpc %dir %{python_sitelib}/%{vdsm_name} %dir %{python_sitelib}/%{vdsm_name}/rpc -%{python_sitelib}/%{vdsm_name}/rpc/__init__.py* -%{python_sitelib}/%{vdsm_name}/rpc/bindingjsonrpc.py* -%{python_sitelib}/%{vdsm_name}/rpc/Bridge.py* -%{python_sitelib}/yajsonrpc/__init__.py* +%{python2_sitelib}/%{vdsm_name}/rpc/__init__.py* +%{python2_sitelib}/%{vdsm_name}/rpc/bindingjsonrpc.py* +%{python2_sitelib}/%{vdsm_name}/rpc/Bridge.py* +%{python2_sitelib}/yajsonrpc/__init__.py* %files api %dir %{python_sitelib}/%{vdsm_name} %dir %{python_sitelib}/%{vdsm_name}/rpc -%{python_sitelib}/%{vdsm_name}/rpc/vdsm-api.yml -%{python_sitelib}/%{vdsm_name}/rpc/vdsm-events.yml -%{python_sitelib}/api/vdsmapi.py* -%{python_sitelib}/api/__init__.py* +%{python2_sitelib}/%{vdsm_name}/rpc/vdsm-api.yml +%{python2_sitelib}/%{vdsm_name}/rpc/vdsm-events.yml +%{python2_sitelib}/api/vdsmapi.py* +%{python2_sitelib}/api/__init__.py* %if ! 0%{?with_gluster_mgmt} %exclude %{python_sitelib}/%{vdsm_name}/rpc/vdsm-api-gluster.yml %endif %files yajsonrpc %dir %{python_sitelib}/yajsonrpc -%{python_sitelib}/yajsonrpc/betterAsyncore.py* -%{python_sitelib}/yajsonrpc/stomp.py* -%{python_sitelib}/yajsonrpc/stompreactor.py* +%{python2_sitelib}/yajsonrpc/betterAsyncore.py* +%{python2_sitelib}/yajsonrpc/stomp.py* +%{python2_sitelib}/yajsonrpc/stompreactor.py* %files hook-faqemu %license COPYING @@ -1592,8 +1592,8 @@ exit 0 %{_datadir}/%{vdsm_name}/gluster/api.py* %{_datadir}/%{vdsm_name}/gluster/apiwrapper.py* %{_datadir}/%{vdsm_name}/gluster/fstab.py* -%{python_sitelib}/%{vdsm_name}/gluster/fence.py* -%{python_sitelib}/%{vdsm_name}/rpc/vdsm-api-gluster.yml +%{python2_sitelib}/%{vdsm_name}/gluster/fence.py* +%{python2_sitelib}/%{vdsm_name}/rpc/vdsm-api-gluster.yml %{_datadir}/%{vdsm_name}/gluster/gfapi.py* %{_datadir}/%{vdsm_name}/gluster/hooks.py* %{_datadir}/%{vdsm_name}/gluster/services.py* From b6e78808605d47b77271eab2329bd4c5f030d2df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Thu, 15 Nov 2018 12:53:57 +0100 Subject: [PATCH 21/27] https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompilation_phase_2 --- vdsm.spec | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/vdsm.spec b/vdsm.spec index 05e689c..e438a69 100644 --- a/vdsm.spec +++ b/vdsm.spec @@ -1,3 +1,7 @@ +# This package depends on automagic byte compilation +# https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompilation_phase_2 +%global _python_bytecompile_extra 1 + # Packages names %global vdsm_name vdsm From fe5e9df1b4c27e6824a065a9d33627294a07b863 Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Mon, 28 Jan 2019 20:18:29 +0100 Subject: [PATCH 22/27] Remove obsolete Group tag References: https://fedoraproject.org/wiki/Changes/Remove_Group_Tag --- vdsm.spec | 1 - 1 file changed, 1 deletion(-) diff --git a/vdsm.spec b/vdsm.spec index e438a69..3d66823 100644 --- a/vdsm.spec +++ b/vdsm.spec @@ -54,7 +54,6 @@ Version: 4.18.999 Release: 448.git0bb7717%{?dist}%{?extra_release} Summary: Virtual Desktop Server Manager -Group: Applications/System License: GPLv2+ Url: http://www.ovirt.org/develop/developer-guide/vdsm/vdsm/ Source0: %{vdsm_name}-%{version}.tar.gz From ccda24edbd2dc72ffb1bf6397084660507affbaa Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sun, 3 Feb 2019 11:12:02 +0000 Subject: [PATCH 23/27] - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- vdsm.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vdsm.spec b/vdsm.spec index 3d66823..6fa372d 100644 --- a/vdsm.spec +++ b/vdsm.spec @@ -51,7 +51,7 @@ Name: %{vdsm_name} Version: 4.18.999 -Release: 448.git0bb7717%{?dist}%{?extra_release} +Release: 449.git0bb7717%{?dist}%{?extra_release} Summary: Virtual Desktop Server Manager License: GPLv2+ @@ -1605,6 +1605,9 @@ exit 0 %endif %changelog +* Sun Feb 03 2019 Fedora Release Engineering - 4.18.999-449.git0bb7717 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + * Sat Jul 14 2018 Fedora Release Engineering - 4.18.999-448.git0bb7717 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild From c182e9907cf41e553a61d622f362740d9a2c319a Mon Sep 17 00:00:00 2001 From: Marcin Sobczyk Date: Wed, 12 Jun 2019 17:12:28 +0200 Subject: [PATCH 24/27] vdsm-4.30.17 --- .gitignore | 1 + fix-unversioned-python-shebangs.patch | 67 ++ sources | 2 +- vdsm.spec | 1345 ++++++++++++------------- 4 files changed, 738 insertions(+), 677 deletions(-) create mode 100644 fix-unversioned-python-shebangs.patch diff --git a/.gitignore b/.gitignore index 05032c5..94eb06d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /vdsm-4.18.9.tar.gz /vdsm-4.18.999.tar.gz +/vdsm-4.30.17.tar.gz diff --git a/fix-unversioned-python-shebangs.patch b/fix-unversioned-python-shebangs.patch new file mode 100644 index 0000000..645c653 --- /dev/null +++ b/fix-unversioned-python-shebangs.patch @@ -0,0 +1,67 @@ +From 7e70f8c91bace85f2b52ec207597414d37073abf Mon Sep 17 00:00:00 2001 +From: Marcin Sobczyk +Date: Wed, 12 Jun 2019 12:42:56 +0200 +Subject: [PATCH] fix unversioned python shebangs + +Change-Id: I52fc2a17a791ac9e60f6d886c6342f3dd5bdea08 +--- + contrib/repostat | 2 +- + tests/profile | 2 +- + tests/profile-analyze | 2 +- + vdsm_hooks/fileinject/before_vm_start.py | 2 +- + vdsm_hooks/macspoof/macspoof_vnic.py | 2 +- + 5 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/contrib/repostat b/contrib/repostat +index 8a859f512..2f433c25d 100755 +--- a/contrib/repostat ++++ b/contrib/repostat +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python2 + # + # Copyright 2015-2018 Red Hat, Inc. + # +diff --git a/tests/profile b/tests/profile +index c50a5395c..f2e556ce1 100755 +--- a/tests/profile ++++ b/tests/profile +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python2 + """ + Log resource usage info. + +diff --git a/tests/profile-analyze b/tests/profile-analyze +index 63370c953..a97815968 100755 +--- a/tests/profile-analyze ++++ b/tests/profile-analyze +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python2 + """ + Analyze commands profiled using profile tool. + """ +diff --git a/vdsm_hooks/fileinject/before_vm_start.py b/vdsm_hooks/fileinject/before_vm_start.py +index 5763b488d..5be2a7cca 100755 +--- a/vdsm_hooks/fileinject/before_vm_start.py ++++ b/vdsm_hooks/fileinject/before_vm_start.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python2 + + import os + import sys +diff --git a/vdsm_hooks/macspoof/macspoof_vnic.py b/vdsm_hooks/macspoof/macspoof_vnic.py +index 484024403..329d772f6 100755 +--- a/vdsm_hooks/macspoof/macspoof_vnic.py ++++ b/vdsm_hooks/macspoof/macspoof_vnic.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python2 + """ + Removes spoofing filtering, applied on a per vnic basis, + it gets triggered and used by two different events: +-- +2.20.1 + diff --git a/sources b/sources index e3baa78..f0fd516 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -fd3182d7cc167fdace022c830e7d298e vdsm-4.18.999.tar.gz +SHA512 (vdsm-4.30.17.tar.gz) = 1f06c1b99facc9e0f89b35ad9ffa5eaeee39bed5c445afe544ad9df1403c7a564c2d399f8d9385924e1358da36ea9141f10fbcc352d86004367a0799dc095934 diff --git a/vdsm.spec b/vdsm.spec index 6fa372d..563a8c9 100644 --- a/vdsm.spec +++ b/vdsm.spec @@ -1,7 +1,3 @@ -# This package depends on automagic byte compilation -# https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompilation_phase_2 -%global _python_bytecompile_extra 1 - # Packages names %global vdsm_name vdsm @@ -31,8 +27,11 @@ %global with_openvswitch 1 %endif -# Glusterfs package version -%global gluster_version 3.7.1 +%if 0%{?centos} || 0%{?fedora} +%global gluster_version 3.12 +%else #rhel +%global gluster_version 3.8 +%endif # Default to skipping autoreconf. Distros can change just this one line # (or provide a command-line override) if they backport any patches that @@ -45,72 +44,33 @@ %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} Name: %{vdsm_name} -Version: 4.18.999 -Release: 449.git0bb7717%{?dist}%{?extra_release} +Version: 4.30.17 +Release: 1.git114b4b7%{?dist}%{?extra_release} Summary: Virtual Desktop Server Manager +Group: Applications/System License: GPLv2+ Url: http://www.ovirt.org/develop/developer-guide/vdsm/vdsm/ Source0: %{vdsm_name}-%{version}.tar.gz -ExclusiveArch: x86_64 %{power64} aarch64 +Patch0: fix-unversioned-python-shebangs.patch %{!?_licensedir:%global license %%doc} -BuildRequires: cyrus-sasl-lib -BuildRequires: python -BuildRequires: python2-devel -BuildRequires: python-mock -BuildRequires: python-netaddr -BuildRequires: python-nose -BuildRequires: python-six >= 1.9.0 -BuildRequires: rpm-build - -# BuildRequires needed by the tests during the build -BuildRequires: dosfstools -BuildRequires: genisoimage -BuildRequires: libnl3 -BuildRequires: libselinux-python -BuildRequires: libvirt-python -BuildRequires: m2crypto -BuildRequires: mom >= 0.5.5 BuildRequires: openssl -BuildRequires: policycoreutils-python -BuildRequires: psmisc -BuildRequires: PyYAML -BuildRequires: python-cpopen >= 1.4 -BuildRequires: python-inotify -BuildRequires: python-ioprocess >= 0.16.1-1 -BuildRequires: python-pthreading -BuildRequires: qemu-img -BuildRequires: rpm-python -%if 0%{?with_gluster_mgmt} -BuildRequires: python-blivet -%endif -BuildRequires: sanlock-python - -%if 0%{?with_openvswitch} -BuildRequires: openvswitch >= 2.0.0 -%endif - -%if 0%{?with_python3} -%if 0%{?rhel} -BuildRequires: python34-nose -BuildRequires: python34-six -%else # fedora -BuildRequires: python3-nose -BuildRequires: python3-six -BuildRequires: python3-netaddr -BuildRequires: python3-yaml -BuildRequires: libselinux-python3 -BuildRequires: libvirt-python3 -%endif # rhel -%endif # support python3 +BuildRequires: python +BuildRequires: python-six >= 1.9.0 +BuildRequires: python-dateutil +BuildRequires: python-subprocess32 +BuildRequires: python2-devel +BuildRequires: rpm-build +BuildRequires: systemd-units # Autotools BuildRequires %if 0%{?enable_autotools} @@ -118,9 +78,16 @@ BuildRequires: autoconf BuildRequires: automake BuildRequires: gettext-devel BuildRequires: libtool +BuildRequires: util-linux %endif -BuildRequires: systemd-units +%if 0%{?rhel} +BuildRequires: python-enum34 +%endif + +%if 0%{?fedora} +BuildRequires: python2-enum34 +%endif # Numactl is not available on s390[x] and ARM %ifnarch s390 s390x %{arm} @@ -133,121 +100,151 @@ Requires: dmidecode Requires: virt-v2v %endif -Requires: ethtool +Requires: chrony Requires: which Requires: sudo >= 1.7.3 Requires: logrotate +Requires: lshw Requires: xz -Requires: ntp -Requires: iproute >= 3.10.0 -Requires: PyYAML Requires: python-netaddr -Requires: python-inotify -Requires: python-cpopen >= 1.4 -Requires: python-ioprocess >= 0.16.1-1 +# Requires lstat() support, see https://bugzilla.redhat.com/1560460 +Requires: python2-ioprocess >= 1.1.1 Requires: python-pthreading >= 0.1.3-3 Requires: python-six >= 1.9.0 Requires: python-requests Requires: rpm-python -Requires: nfs-utils -Requires: m2crypto -Requires: libnl3 +Requires: abrt-cli +Requires: abrt-addon-vmcore +Requires: abrt-addon-ccpp +Requires: abrt-addon-python Requires: curl -Requires: %{name}-xmlrpc = %{version}-%{release} +Requires: %{name}-http = %{version}-%{release} Requires: %{name}-jsonrpc = %{version}-%{release} Requires: safelease >= 1.0-7 -Requires: mom >= 0.5.3 +Requires: mom >= 0.5.12 +Requires: util-linux Requires(pre): shadow-utils -Obsoletes: %{name}-infra >= 4.16.0 +Obsoletes: %{name}-infra < 4.19 -%if 0%{?with_openvswitch} -Requires: openvswitch >= 2.0.0 +%if 0%{?rhel} +# Required for supporting minorversion mount option +# See https://bugzilla.redhat.com/1547681 for details. +Requires: nfs-utils >= 1.3.0-0.48.el7_4.2 +%else # fedora +Requires: nfs-utils %endif %if 0%{?with_ovirt_imageio} Requires: ovirt-imageio-common -Requires: ovirt-imageio-daemon +# For GET /tickets/* +Requires: ovirt-imageio-daemon >= 1.2.0 %endif %if 0%{?with_ovirt_vmconsole} Requires: ovirt-vmconsole >= 1.0.0-0 %endif +# Python +# For https://bugzilla.redhat.com/1518676 +%if 0%{?rhel} +Requires: python >= 2.7.5-65.el7 +%else +Requires: python >= 2.7.14-4 +%endif + Requires: libvirt-client Requires: libvirt-daemon-config-nwfilter Requires: libvirt-lock-sanlock -%if 0%{?fedora} -# TODO: bump fedora requirements to >= 1.3.5 as soon -# as we can require Fedora >= 24 + virt-preview -Requires: libvirt-python >= 1.2.18-1 -Requires: libvirt-daemon-kvm >= 1.2.18.1-1 -%else # rhel -Requires: libvirt-daemon-kvm >= 1.2.17-13.el7_2.5 -Requires: libvirt-python >= 1.2.17-2 +%if 0%{?rhel} +# 7.6 baseline +Requires: libvirt-python >= 4.5.0-1.el7 +# CVE-2018-12126, CVE-2018-12127, CVE-2018-12130, CVE-2019-11091 +Requires: libvirt-daemon-kvm >= 4.5.0-10.el7_6.9 +%else # fedora +# Required for preventing an HotPlug disk failure due to cgroups. +# See https://bugzilla.redhat.com/1540872 for details. +Requires: libvirt-python >= 3.7.0 +# Required to fix order of VM life cycle events. +# See https://bugzilla.redhat.com/1612943 for details. +%ifnarch s390 s390x +# virt-preview is not available for s390 +Requires: libvirt-daemon-kvm >= 4.9.0-1 +%else +Requires: libvirt-daemon-kvm +%endif %endif # iscsi-intiator versions -%if 0%{?rhel} -Requires: iscsi-initiator-utils -%else # fedora Requires: iscsi-initiator-utils >= 6.2.0.873-21 -%endif -Requires: sanlock >= 2.8-2, sanlock-python +Requires: sanlock >= 3.5.0-1, sanlock-python # device-mapper-multipath %if 0%{?rhel} -Requires: device-mapper-multipath >= 0.4.9-84.el7 +# Required for blacklisting multipath devices by protocol. +# See https://bugzilla.redhat.com/1016535 for more details. +Requires: device-mapper-multipath >= 0.4.9-119.el7_5.1 %endif #rhel %if 0%{?fedora} -Requires: device-mapper-multipath >= 0.4.9-80 +Requires: device-mapper-multipath >= 0.7.4-3 +%endif + +# augeas + +%if 0%{?rhel} +Requires: python-augeas +%endif + +%if 0%{?fedora} +Requires: python2-augeas +%endif + +Requires: policycoreutils-python +Requires: fence-agents-all +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 +Requires: lvm2 >= 2.02.145 %endif %if 0%{?rhel} +# CVE-2018-12126, CVE-2018-12127, CVE-2018-12130, CVE-2019-11091 +Requires: kernel >= 3.10.0-957.12.2.el7 Requires: e2fsprogs -Requires: fence-agents-all -Requires: kernel >= 3.10.0-327.18.1.el7 -Requires: lvm2 >= 7:2.02.130-5.el7_2.5 -Requires: python >= 2.7.5-18.el7_1.1 -Requires: policycoreutils-python -Requires: selinux-policy-targeted >= 3.13.1-16.el7 -Requires: systemd >= 219-11.el7 -%if ! 0%{?centos} -# TODO drop this if when this initscripts is available on centos -Requires: initscripts >= 9.49.30-1.el7_2.3 -%endif #!centos -%else -Requires: fence-agents-all -Requires: kernel >= 4.1.6 -# Subprocess and thread bug was found on python 2.7.2 -Requires: python >= 2.7.3 -Requires: initscripts >= 9.42.2-1 +Requires: selinux-policy-targeted >= 3.13.1-166.el7_4.3 +%else # fedora +# CVE-2018-12126, CVE-2018-12127, CVE-2018-12130, CVE-2019-11091 +Requires: kernel >= 5.0.16-100 Requires: e2fsprogs >= 1.41.14 -%if 0%{?fedora} >= 23 Requires: policycoreutils-python-utils -%endif # fedora 23 -Requires: policycoreutils-python Requires: sed >= 4.2.1-10 Requires: ed -Requires: lvm2 >= 2.02.132 -Requires: selinux-policy-targeted >= 3.12.1-177 +Requires: selinux-policy-targeted >= 3.13-1 # In order to avoid a policycoreutils bug (rhbz 889698) when selinux is # disabled we now require the version 2.1.13-55 (or newer) of Fedora. Requires: policycoreutils >= 2.1.13-55 -Requires: systemd >= 209 %endif %if 0%{?rhel} -Requires: qemu-kvm-rhev >= 10:2.3.0-31.el7_2.16 -Requires: qemu-img-rhev >= 10:2.3.0-31.el7_2.16 +# CVE-2018-12126, CVE-2018-12127, CVE-2018-12130, CVE-2019-11091 +Requires: qemu-kvm-rhev >= 10:2.12.0-18.el7_6.5 +%else # fedora +# qemu-kvm 2.12 is Fedora 28 virt-preview baseline +# but virt-preview is not available on s390 arch +%ifnarch s390 s390x +Requires: qemu-kvm >= 2:2.12 %else -Requires: qemu-kvm >= 2:2.3.1-1 -Requires: qemu-img >= 2:2.3.1-1 -%endif # rhel +Requires: qemu-kvm >= 2:2.11.2 +%endif +%endif # GlusterFS client-side RPMs needed for Gluster SD %ifnarch ppc64le @@ -256,15 +253,14 @@ Requires: glusterfs-fuse >= %{gluster_version} %endif Requires: psmisc >= 22.6-15 -Requires: bridge-utils Requires: sos Requires: tree Requires: dosfstools Requires: genisoimage -Requires: libselinux-python -Requires: python2-%{name} = %{version}-%{release} +Requires: libselinux-python >= 2.5-2 +Requires: %{name}-python = %{version}-%{release} Requires: %{name}-hook-vmfex-dev = %{version}-%{release} -Requires: NetworkManager-config-server +Requires: libguestfs-tools-c Requires(post): /usr/sbin/saslpasswd2 @@ -274,7 +270,21 @@ Requires(post): hostname 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: python-pyudev + Conflicts: vdsm-hook-sriov +Obsoletes: vdsm-hook-vfio-mdev +Provides: vdsm-hook-vfio-mdev %description The VDSM service is required by a Virtualization Manager to manage the @@ -282,28 +292,34 @@ 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 cli -Summary: VDSM command line interface +%package http +Summary: VDSM http API BuildArch: noarch -Requires: python2-%{name} = %{version}-%{release} -Requires: %{name}-xmlrpc = %{version}-%{release} +Provides: %{name}-xmlrpc = %{version}-%{release} +Requires: %{name}-python = %{version}-%{release} +Obsoletes: %{name}-xmlrpc < %{version}-%{release} -%description cli -Call VDSM commands from the command line. Used for testing and debugging. +%description http +A http interface for interacting with vdsmd when using OVF store image +download or upload. -%package xmlrpc -Summary: VDSM xmlrpc API +%package client +Summary: VDSM client BuildArch: noarch -Requires: python2-%{name} = %{version}-%{release} +# 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 xmlrpc -An XMLRPC interface for interacting with vdsmd. Primary control interface for -ovirt-engine and vdsClient. +%description client +Access vdsm API from the command line. %package api Summary: VDSM API BuildArch: noarch +BuildRequires: PyYAML %description api Contains api schema files @@ -311,7 +327,7 @@ Contains api schema files %package jsonrpc Summary: VDSM API Server BuildArch: noarch -Requires: python2-%{name} = %{version}-%{release} +Requires: %{name}-python = %{version}-%{release} Requires: %{name}-api = %{version}-%{release} Requires: %{name}-yajsonrpc = %{version}-%{release} Obsoletes: %{name}-api < 4.16 @@ -327,27 +343,88 @@ Requires: python >= 2.6 %description yajsonrpc A JSON RPC server and client implementation. -%package -n python2-vdsm +%package common +Summary: common VDSM python libraries, required by all subsystems +BuildArch: noarch +Requires: systemd +Requires: glibc +Requires: python-dateutil +Requires: python-six >= 1.9.0 +Requires: python-subprocess32 +%if 0%{?rhel} +Requires: python-decorator +Requires: python-enum34 +Requires: libvirt-python >= 3.2.0-3.el7_4.1 +%endif +%if 0%{?fedora} +Requires: python2-decorator +Requires: python2-enum34 +Requires: libvirt-python >= 3.7.0 +%endif + +%description common +VDSM libraries that are imported by all subsystems + +%package network +Summary: VDSM network python libraries +Requires: NetworkManager-config-server +Requires: dbus-python +Requires: dhclient +Requires: ethtool +Requires: initscripts +Requires: iproute +%if 0%{?fedora} >= 25 +Requires: iproute-tc +%endif +Requires: libnl3 +Requires: libselinux-python +Requires: lldpad +%if 0%{?with_openvswitch} +Requires: openvswitch >= 2.7.0 +%endif +Requires: python-inotify +Requires: python-ipaddress +Requires: python-netaddr +Requires: python-six +Requires: systemd +Requires: %{name}-common = %{version}-%{release} + +%description network +VDSM network python libraries + +%package python Summary: VDSM python libraries Requires: %{name}-api = %{version}-%{release} BuildArch: noarch -Requires: python-cpopen >= 1.4 -Requires: m2crypto Requires: python-ioprocess >= 0.16.1-1 -%{?python_provide:%python_provide python2-vdsm} -# Remove before F30 -Provides: %{name}-python = %{version}-%{release} -Obsoletes: %{name}-python < %{version}-%{release} +Requires: %{name}-common = %{version}-%{release} +Requires: %{name}-network = %{version}-%{release} -%description -n python2-vdsm +%description python Shared libraries between the various VDSM packages. +%post python +# REQUIRED_FOR: Upgrade from 4.14 to 4.17 +# HACK: Remove vdsm python lib __init__ file if installed on old location +# https://bugzilla.redhat.com/show_bug.cgi?id=1279167 +if [ "$1" -ge 2 ]; then + if [ -d "%{python2_sitearch}/%{vdsm_name}" ]; then + logger -t '%{vdsm_name}' \ + 'Disabling old vdsm package in %{python2_sitearch}/%{vdsm_name}.' \ + 'Removing %{python2_sitearch}/%{vdsm_name}/init.py*' + rm -f %{python2_sitearch}/%{vdsm_name}/__init__.py* + fi +fi + %package tests Summary: VDSM Test Suite BuildArch: noarch Requires: %{name} = %{version}-%{release} +Requires: %{name}-common = %{version}-%{release} +Requires: %{name}-network = %{version}-%{release} Requires: dracut -Requires: python-nose +Requires: python-nose python-ipaddress +Requires: PyYAML %description tests A test suite for verifying the functionality of a running vdsm instance @@ -360,6 +437,14 @@ 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 @@ -427,6 +512,19 @@ 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-macbind Summary: Bind a vNIC to a Bridge BuildArch: noarch @@ -444,14 +542,6 @@ VDSM hooks which allow to disable mac spoof filtering either on all the of the VM's interfaces or on specific vnics. -%package hook-noipspoof -Summary: Enables strict anti-spoofing filtering -BuildArch: noarch - -%description hook-noipspoof -VDSM hook which allows to enable strict anti-spoofing filtering -on all of the the VM's interfaces. - %package hook-extnet Summary: Force a vNIC to connect to a specific libvirt network BuildArch: noarch @@ -471,16 +561,6 @@ 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-fakesriov -Summary: Generate fake SR-IOV devices -Requires: %{name} - -%description hook-fakesriov -Hook intercepts reported host device by hostdevListByCaps and adds -1 fake sriov devices and 2 fake virtual function devices -To enable this hook on your host, set vars.fake_sriov_enable=true in your -/etc/vdsm/vdsm.conf. - %package hook-fileinject Summary: Allow uploading file to VMs disk BuildArch: noarch @@ -497,15 +577,6 @@ BuildArch: noarch %description hook-floppy Allow adding floppy to VM -%package hook-hostusb -Summary: Allow attaching USB device from host -BuildArch: noarch -Requires: usbutils - -%description hook-hostusb -Hook is getting vendor and product id of USB device -disconnect it from host and attach it to VM - %package hook-httpsisoboot Summary: Allow directly booting from an https available ISO BuildArch: noarch @@ -518,24 +589,6 @@ 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-hugepages -Summary: Huge pages enable user to handle VM with 2048KB page files. -BuildArch: noarch - -%description hook-hugepages -Hook is getting number of huge pages reserve them for the VM, -and enable user to handle VM with 2048KB page files. - -%package hook-isolatedprivatevlan -Summary: Isolated network environment for VMs -BuildArch: noarch - -%description hook-isolatedprivatevlan -limit VM traffic to a specific gateway by its mac address, -hook prevent VM from spoofing its mac or ip address -by using libvirt filter -and by adding custom filter: isolatedprivatevlan-vdsm.xml - %package hook-nestedvt Summary: Nested Virtualization support for VDSM BuildArch: noarch @@ -559,15 +612,6 @@ BuildArch: noarch %description hook-openstacknet Hook for OpenStack Network vNICs. -%package hook-ovs -Summary: Open vSwitch support for VDSM -BuildArch: noarch -Requires: %{name} = %{version}-%{release} -Requires: openvswitch >= 2.0.0 - -%description hook-ovs -Hook for Open vSwitch support. - %package hook-pincpu Summary: Hook pin VM so specific CPUs BuildArch: noarch @@ -594,13 +638,6 @@ Provides support for injecting QEMU cmdline via VDSM hook. It exploits libvirt's qemu:commandline facility available in the qemu xml namespace. -%package hook-qos -Summary: QoS network in/out traffic support for VDSM -BuildArch: noarch - -%description hook-qos -Hook adds QoS in/out traffic to VMs interfaces - %package hook-scratchpad Summary: One time disk creation for VDSM BuildArch: noarch @@ -627,14 +664,6 @@ BuildArch: noarch This vdsm hook can be used to configure some of the spice optimization attributes and values.. -%package hook-vmfex -Summary: vmfex support for VDSM -BuildArch: noarch -Conflicts: hook-vmfex-dev - -%description hook-vmfex -Hook for vmfex. - %package hook-vmfex-dev Summary: VM-FEX vNIC support for VDSM BuildArch: noarch @@ -652,17 +681,9 @@ BuildArch: noarch %description hook-vmdisk Hook adds additional disk image for a VM (raw or qcow2) -%package hook-ipv6 -Summary: Set IPv6 configuration through custom network properties -BuildArch: noarch -Requires: %{name} >= 4.16.7 - -%description hook-ipv6 -VDSM hook used for applying IPv6 configuration through custom network -properties - %package hook-fcoe Summary: Hook to enable FCoE support +BuildArch: noarch Requires: %{name} = %{version}-%{release} Requires: fcoe-utils @@ -674,17 +695,34 @@ network properties %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. + %if 0%{?with_gluster_mgmt} %package gluster Summary: Gluster Plugin for VDSM -BuildArch: noarch 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: python-magic +Requires: PyYAML +%if 0%{?fedora} +Requires: python-blivet1 >= 1.20.4-1 +%else Requires: python-blivet +%endif Requires: xfsprogs +%ifarch x86_64 +Requires: vdo +Requires: kmod-kvdo +%endif + %description gluster Gluster plugin enables VDSM to serve Gluster functionalities. @@ -693,11 +731,15 @@ Gluster plugin enables VDSM to serve Gluster functionalities. %prep %setup -q +%patch0 -p1 + %build %if 0%{?enable_autotools} autoreconf -if %endif + %configure \ + --with-data-center=/rhev/data-center \ %if 0%{?with_hooks} --enable-hooks \ %endif @@ -709,6 +751,7 @@ autoreconf -if %endif --with-smbios-manufacturer='oVirt' \ --with-smbios-osname='oVirt Node' \ + --with-polkitdir=/usr/share/polkit-1/rules.d \ %if ! 0%{?with_ovirt_imageio} --disable-ovirt-imageio \ %endif @@ -722,63 +765,12 @@ autoreconf -if --with-ovirt-vmconsole-user='vdsm' \ --with-ovirt-vmconsole-group='kvm' \ %endif - --with-qemu-kvm='qemu-kvm' \ - --with-qemu-img='qemu-img' make -# Setting software_version and software_revision in dsaversion.py -baserelease=`echo "%{release}" | sed 's/\([0-9]\+\(\.[0-9]\+\)\?\).*/\1/'` -baseversion=`echo "%{version}" | sed 's/\([0-9]\+\(\.[0-9]\+\)\?\).*/\1/'` -rawversion=%{version}-%{release} -sed -i -e 's/^software_version =.*/software_version = "'"${baseversion}"'"/' \ - -e 's/^raw_version_revision =.*/raw_version_revision = "'"${rawversion}"'"/' \ - -e 's/^software_revision =.*/software_revision = "'"${baserelease}"'"/' lib/vdsm/dsaversion.py - -sed -i -e 's/@SSL_IMPLEMENTATION@/m2c/g' lib/vdsm/config.py - -sed -i -e 's\@VDSMRPCPYLIBDIR@\%{python_sitelib}/%{vdsm_name}/rpc\g' lib/vdsm/constants.py %install make DESTDIR=%{buildroot} install -# Creating VDSM logs in this session to avoid rpmbuild -# complain during the build -install -dDm 0755 %{buildroot}/var/log/vdsm -touch %{buildroot}/var/log/vdsm/{connectivity.log,mom.log,supervdsm.log,vdsm.log} - -# Install the lvm rules -install -Dm 0644 vdsm/storage/vdsm-lvm.rules \ - %{buildroot}%{_udevrulesdir}/12-vdsm-lvm.rules - -install -Dm 0755 init/systemd/systemd-vdsmd %{buildroot}%{_libdir}/systemd/systemd-vdsmd -install -Dm 0644 init/systemd/85-vdsmd.preset %{buildroot}%{_libdir}/systemd/system-preset/85-vdsmd.preset - -install -Dm 0644 init/systemd/vdsm-tmpfiles.d.conf \ - %{buildroot}%{_tmpfilesdir}/%{vdsm_name}.conf -install -Dm 0644 init/systemd/unlimited-core.conf \ - %{buildroot}%{_sysconfdir}/systemd/system/libvirtd.service.d/unlimited-core.conf - -%if 0%{?with_hooks} -install -Dm 0644 vdsm_hooks/fcoe/85-vdsm-hook-fcoe.preset %{buildroot}%{_libdir}/systemd/system-preset/ -%endif - -%if 0%{?rhel} -# This is not commonplace, but we want /var/log/core to be a world-writable -# dropbox for core dumps -install -dDm 1777 %{buildroot}%{_localstatedir}/log/core -%endif - -# Install the polkit for libvirt -install -Dm 0644 vdsm/vdsm-libvirt-access.rules \ - %{buildroot}%{_polkitdir}/10-vdsm-libvirt-access.rules - -# Install the libvirt hook for cleaning up the XML -install -Dm 0755 vdsm/virt/libvirt-hook.sh \ - %{buildroot}%{_sysconfdir}/libvirt/hooks/qemu - -%check -# make tests - %pre # Force standard locale behavior (English) export LC_ALL=C @@ -790,19 +782,29 @@ export LC_ALL=C /usr/sbin/usermod -a -G %{cdrom_group} %{qemu_user} # We keep the previous rpm version number in a file for managing upgrade flow -# in vdsmd_init_script upgraded_version_check task 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 /var/log/vdsm/{connectivity.log,mom.log,supervdsm.log,vdsm.log} -chmod 0644 /var/log/vdsm/{connectivity.log,mom.log,supervdsm.log,vdsm.log} -chown vdsm:kvm /var/log/vdsm/{connectivity.log,mom.log,vdsm.log} -chown root:root /var/log/vdsm/supervdsm.log +touch %{_vdsm_log_dir}/{mom.log,supervdsm.log,vdsm.log} +chmod 0644 %{_vdsm_log_dir}/{mom.log,supervdsm.log,vdsm.log} +chown vdsm:kvm %{_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. @@ -811,21 +813,16 @@ if grep -q "# VDSM section begin" /etc/sysctl.conf; then /etc/sysctl.conf fi -# hack until we replace core dump with abrt -if /usr/sbin/selinuxenabled; then - /usr/sbin/semanage fcontext -a -t virt_cache_t '/var/log/core(/.*)?' -fi -/sbin/restorecon -R /var/log/core >/dev/null 2>&1 -# hack until we replace core dump with abrt - # 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 || : # The following triggers vdsmd.preset file and enables vdsm required services +%systemd_post dev-hugepages1G.mount %systemd_post vdsmd.service %systemd_post supervdsmd.service %systemd_post vdsm-network.service +%systemd_post vdsm-network-init.service %systemd_post mom-vdsm.service %systemd_post ksmtuned.service @@ -837,27 +834,33 @@ exit 0 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 vdsm-network-init.service %systemd_preun supervdsmd.service %systemd_preun mom-vdsm.service %systemd_preun ksmtuned.service exit 0 -%postun -if [ "$1" -ge 1 ]; then - supervdsmd_start_required='no' - vdsmd_start_required='no' - - # Both vdsm and supervdsm should be managed here and must be restarted if - # ran before (code might changed) - if %{_bindir}/vdsm-tool service-status vdsmd >/dev/null 2>&1; then - %{_bindir}/vdsm-tool service-stop vdsmd >/dev/null 2>&1 || : +%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 2>&1 || : fi - if %{_bindir}/vdsm-tool service-status supervdsmd >/dev/null 2>&1; then - %{_bindir}/vdsm-tool service-stop supervdsmd >/dev/null 2>&1 || : + + 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 2>&1 || : + fi + + if /bin/systemctl status vdsm-network >/dev/null 2>&1; then + /bin/systemctl stop vdsm-network >/dev/null 2>&1 || : fi if ! %{_bindir}/vdsm-tool is-configured >/dev/null 2>&1; then @@ -865,74 +868,46 @@ if [ "$1" -ge 1 ]; then fi if [ "${supervdsmd_start_required}" = 'yes' ]; then - %{_bindir}/vdsm-tool service-start supervdsmd >/dev/null 2>&1 || : + /bin/systemctl start supervdsmd >/dev/null 2>&1 || : fi if [ "${vdsmd_start_required}" = 'yes' ]; then - %{_bindir}/vdsm-tool service-start vdsmd >/dev/null 2>&1 || : + /bin/systemctl start vdsmd >/dev/null 2>&1 || : fi fi exit 0 %files -%doc README +%doc README.md %doc lib/vdsm/vdsm.conf.sample %doc README.logging %license COPYING -%{_libdir}/systemd/systemd-vdsmd -%{_libdir}/systemd/system-preset/85-vdsmd.preset +%{_presetdir}/85-vdsmd.preset +%{_unitdir}/dev-hugepages1G.mount %{_unitdir}/vdsmd.service %{_unitdir}/vdsm-network.service +%{_unitdir}/vdsm-network-init.service %{_unitdir}/supervdsmd.service %{_unitdir}/mom-vdsm.service %{_sysconfdir}/systemd/system/libvirtd.service.d/unlimited-core.conf %dir %attr(-, %{vdsm_user}, %{vdsm_group}) /rhev/data-center -%ghost %config %attr(0644, %{vdsm_user}, %{vdsm_group}) /var/log/vdsm/connectivity.log -%ghost %config %attr(0644, %{vdsm_user}, %{vdsm_group}) /var/log/vdsm/mom.log -%ghost %config %attr(0644, root, root) /var/log/vdsm/supervdsm.log -%ghost %config %attr(0644, %{vdsm_user}, %{vdsm_group}) /var/log/vdsm/vdsm.log +%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}) /rhev/data-center/hsm-tasks %ghost %dir %attr(-, %{vdsm_user}, %{vdsm_group}) /rhev/data-center/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} -%dir %{_datadir}/%{vdsm_name}/supervdsm_api -%dir %{_datadir}/%{vdsm_name}/storage -%dir %{_datadir}/%{vdsm_name}/storage/imageRepository -%dir %{_datadir}/%{vdsm_name}/virt -%dir %{_datadir}/%{vdsm_name}/virt/vmdevices -%{_datadir}/%{vdsm_name}/alignmentScan.py* -%{_datadir}/%{vdsm_name}/caps.py* -%{_datadir}/%{vdsm_name}/clientIF.py* %{_datadir}/%{vdsm_name}/daemonAdapter -%{_datadir}/%{vdsm_name}/API.py* -%{_datadir}/%{vdsm_name}/hooking.py* -%{_datadir}/%{vdsm_name}/mk_sysprep_floppy -%{_datadir}/%{vdsm_name}/mkimage.py* %{_datadir}/%{vdsm_name}/sitecustomize.py* -%{_datadir}/%{vdsm_name}/supervdsmServer -%{_datadir}/%{vdsm_name}/vdsm -%{_datadir}/%{vdsm_name}/vdsm-restore-net-config -%{_datadir}/%{vdsm_name}/vdsm-store-net-config -%{_datadir}/%{vdsm_name}/virt/__init__.py* -%{_datadir}/%{vdsm_name}/virt/domain_descriptor.py* -%{_datadir}/%{vdsm_name}/virt/migration.py* -%{_datadir}/%{vdsm_name}/virt/recovery.py* -%{_datadir}/%{vdsm_name}/virt/vmtune.py* -%{_datadir}/%{vdsm_name}/virt/vm.py* -%{_datadir}/%{vdsm_name}/virt/vm_migrate_hook.py* -%{_datadir}/%{vdsm_name}/virt/vmxml.py* -%{_datadir}/%{vdsm_name}/virt/vmdevices/__init__.py* -%{_datadir}/%{vdsm_name}/virt/vmdevices/common.py* -%{_datadir}/%{vdsm_name}/virt/vmdevices/core.py* -%{_datadir}/%{vdsm_name}/virt/vmdevices/graphics.py* -%{_datadir}/%{vdsm_name}/virt/vmdevices/hostdevice.py* -%{_datadir}/%{vdsm_name}/virt/vmdevices/hwclass.py* -%{_datadir}/%{vdsm_name}/virt/vmdevices/network.py* -%{_datadir}/%{vdsm_name}/virt/vmdevices/storage.py* +%{_datadir}/%{vdsm_name}/supervdsmd +%{_datadir}/%{vdsm_name}/vdsmd %config(noreplace) %{_sysconfdir}/%{vdsm_name}/vdsm.conf %config(noreplace) %{_sysconfdir}/%{vdsm_name}/logger.conf @@ -940,73 +915,24 @@ exit 0 %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}/rwtab.d/vdsm %config(noreplace) %{_sysconfdir}/sysctl.d/vdsm.conf %config(noreplace) %{_sysconfdir}/modules-load.d/vdsm.conf %{_tmpfilesdir}/%{vdsm_name}.conf -%{_sysconfdir}/dhcp/dhclient.d/sourceRoute.sh +%{_sysconfdir}/dhcp/dhclient.d/dhclientmon.sh %{_sysconfdir}/modprobe.d/vdsm-bonding-modprobe.conf +%{_sysconfdir}/NetworkManager/conf.d/vdsm.conf %{_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}/persist-vdsm-hooks -%{_libexecdir}/%{vdsm_name}/unpersist-vdsm-hook -%{_libexecdir}/%{vdsm_name}/ovirt_functions.sh +%{_libexecdir}/%{vdsm_name}/managedvolume-helper %{_libexecdir}/%{vdsm_name}/vdsm-gencerts.sh %{_libexecdir}/%{vdsm_name}/vdsmd_init_common.sh -%{_libexecdir}/%{vdsm_name}/vm_migrate_hook.py* +%{_libexecdir}/%{vdsm_name}/vm_libvirt_hook.py* %{_libexecdir}/%{vdsm_name}/kvm2ovirt +%{_libexecdir}/%{vdsm_name}/fallocate %{_libexecdir}/%{vdsm_name}/wait_for_ipv4s -%{_datadir}/%{vdsm_name}/supervdsm_api/__init__.py* -%{_datadir}/%{vdsm_name}/supervdsm_api/hwinfo.py* -%{_datadir}/%{vdsm_name}/supervdsm_api/mkimage.py* -%{_datadir}/%{vdsm_name}/supervdsm_api/ksm.py* -%{_datadir}/%{vdsm_name}/supervdsm_api/network.py* -%{_datadir}/%{vdsm_name}/supervdsm_api/udev.py* -%{_datadir}/%{vdsm_name}/supervdsm_api/virt.py* -%{_datadir}/%{vdsm_name}/storage/__init__.py* -%{_datadir}/%{vdsm_name}/storage/blockSD.py* -%{_datadir}/%{vdsm_name}/storage/blockVolume.py* -%{_datadir}/%{vdsm_name}/storage/dispatcher.py* -%{_datadir}/%{vdsm_name}/storage/monitor.py* -%{_datadir}/%{vdsm_name}/storage/fileSD.py* -%{_datadir}/%{vdsm_name}/storage/fileVolume.py* -%{_datadir}/%{vdsm_name}/storage/imagetickets.py* -%{_datadir}/%{vdsm_name}/storage/glusterSD.py* -%{_datadir}/%{vdsm_name}/storage/glusterVolume.py* -%{_datadir}/%{vdsm_name}/storage/hsm.py* -%{_datadir}/%{vdsm_name}/storage/image.py* -%{_datadir}/%{vdsm_name}/storage/imageSharing.py* -%{_datadir}/%{vdsm_name}/storage/iscsiadm.py* -%{_datadir}/%{vdsm_name}/storage/iscsi.py* -%{_datadir}/%{vdsm_name}/storage/localFsSD.py* -%{_datadir}/%{vdsm_name}/storage/lvm.env -%{_datadir}/%{vdsm_name}/storage/lvm.py* -%{_datadir}/%{vdsm_name}/storage/multipath.py* -%{_datadir}/%{vdsm_name}/storage/nfsSD.py* -%{_datadir}/%{vdsm_name}/storage/outOfProcess.py* -%{_datadir}/%{vdsm_name}/storage/resourceFactories.py* -%{_datadir}/%{vdsm_name}/storage/resourceManager.py* -%{_datadir}/%{vdsm_name}/storage/sdc.py* -%{_datadir}/%{vdsm_name}/storage/sd.py* -%{_datadir}/%{vdsm_name}/storage/sp.py* -%{_datadir}/%{vdsm_name}/storage/spbackends.py* -%{_datadir}/%{vdsm_name}/storage/storage_mailbox.py* -%{_datadir}/%{vdsm_name}/storage/storageServer.py* -%{_datadir}/%{vdsm_name}/storage/taskManager.py* -%{_datadir}/%{vdsm_name}/storage/task.py* -%{_datadir}/%{vdsm_name}/storage/threadPool.py* -%{_datadir}/%{vdsm_name}/storage/volume.py* -%{_datadir}/%{vdsm_name}/storage/imageRepository/__init__.py* -%{_datadir}/%{vdsm_name}/storage/imageRepository/formatConverter.py* -%{_datadir}/%{vdsm_name}/storage/sdm/__init__.py* -%{_datadir}/%{vdsm_name}/storage/sdm/volume_artifacts.py* -%{_datadir}/%{vdsm_name}/storage/sdm/api/__init__.py* -%{_datadir}/%{vdsm_name}/storage/sdm/api/base.py* -%{_datadir}/%{vdsm_name}/storage/sdm/api/copy_data.py* -%{_datadir}/%{vdsm_name}/storage/sdm/api/create_volume.py* %{_libexecdir}/%{vdsm_name}/spmprotect.sh %{_libexecdir}/%{vdsm_name}/spmstop.sh %dir %{_libexecdir}/%{vdsm_name}/hooks @@ -1045,6 +971,7 @@ exit 0 %dir %{_libexecdir}/%{vdsm_name}/hooks/after_nic_hotunplug %dir %{_libexecdir}/%{vdsm_name}/hooks/after_nic_hotplug_fail %dir %{_libexecdir}/%{vdsm_name}/hooks/after_nic_hotunplug_fail +%dir %{_libexecdir}/%{vdsm_name}/hooks/after_disk_prepare %dir %{_libexecdir}/%{vdsm_name}/hooks/before_disk_hotplug %dir %{_libexecdir}/%{vdsm_name}/hooks/after_disk_hotplug %dir %{_libexecdir}/%{vdsm_name}/hooks/before_disk_hotunplug @@ -1070,19 +997,11 @@ exit 0 %dir %{_libexecdir}/%{vdsm_name}/hooks/before_ifcfg_write %dir %{_libexecdir}/%{vdsm_name}/hooks/after_ifcfg_write -%{_datadir}/%{vdsm_name}/dumpStorageTable.py* -%{_datadir}/%{vdsm_name}/get-conf-item -%{_datadir}/%{vdsm_name}/set-conf-item -%dir %{_datadir}/%{vdsm_name}/gluster -%{_datadir}/%{vdsm_name}/gluster/__init__.py* -%{_datadir}/%{vdsm_name}/gluster/cli.py* -%{python2_sitelib}/sos/plugins/vdsm.py* +%{_libexecdir}/%{vdsm_name}/get-conf-item +%{python_sitelib}/sos/plugins/vdsm.py* %{_udevrulesdir}/12-vdsm-lvm.rules /etc/security/limits.d/99-vdsm.conf %{_mandir}/man8/vdsmd.8* -%if 0%{?rhel} -%dir %{_localstatedir}/log/core -%endif %{_polkitdir}/10-vdsm-libvirt-access.rules %defattr(-, %{vdsm_user}, %{qemu_group}, -) @@ -1097,198 +1016,287 @@ exit 0 %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}/run/%{vdsm_name} -%dir %{_localstatedir}/run/%{vdsm_name}/sourceRoutes -%dir %{_localstatedir}/run/%{vdsm_name}/trackedInterfaces -%ghost %dir %{_localstatedir}/run/%{vdsm_name}/payload -%dir %{_localstatedir}/run/%{vdsm_name}/v2v %dir %{_localstatedir}/log/%{vdsm_name} %dir %{_localstatedir}/log/%{vdsm_name}/backup +%dir %{_localstatedir}/log/%{vdsm_name}/import %defattr(644, %{vdsm_user}, %{vdsm_group}, -) -%{_datadir}/%{vdsm_name}/bonding-defaults.json -%{_datadir}/%{vdsm_name}/bonding-name2numeric.json +%{_datadir}/%{vdsm_name}/lvmlocal.conf +%{_datadir}/%{vdsm_name}/autounattend/Win7.xml +%{_datadir}/%{vdsm_name}/autounattend/Win8.xml +%{_datadir}/%{vdsm_name}/autounattend/Win8.1.xml +%{_datadir}/%{vdsm_name}/autounattend/Win10.xml +%{_datadir}/%{vdsm_name}/autounattend/Win2008.xml +%{_datadir}/%{vdsm_name}/autounattend/Win2008R2.xml +%{_datadir}/%{vdsm_name}/autounattend/Win2012.xml +%{_datadir}/%{vdsm_name}/autounattend/Win2012R2.xml +%{_datadir}/%{vdsm_name}/autounattend/Win2016.xml -%files -n python2-vdsm -%{_mandir}/man1/vdsm-tool.1* -%{_bindir}/vdsm-tool +%{_sysconfdir}/yum/pluginconf.d/vdsmupgrade.conf +%{_datadir}/yum-plugins/*.py* + +%files common %dir %{python_sitelib}/%{vdsm_name} %dir %{python_sitelib}/%{vdsm_name}/common %dir %{python_sitelib}/%{vdsm_name}/common/network -%dir %{python_sitelib}/%{vdsm_name}/gluster -%dir %{python_sitelib}/%{vdsm_name}/host +%{python_sitelib}/%{vdsm_name}/__init__.py* +%{python_sitelib}/%{vdsm_name}/common/*.py* +%{python_sitelib}/%{vdsm_name}/common/network/*.py* + +%files network %dir %{python_sitelib}/%{vdsm_name}/network %dir %{python_sitelib}/%{vdsm_name}/network/configurators %dir %{python_sitelib}/%{vdsm_name}/network/ip +%dir %{python_sitelib}/%{vdsm_name}/network/ip/address +%dir %{python_sitelib}/%{vdsm_name}/network/ip/route +%dir %{python_sitelib}/%{vdsm_name}/network/ip/rule +%dir %{python_sitelib}/%{vdsm_name}/network/link +%dir %{python_sitelib}/%{vdsm_name}/network/link/bond +%dir %{python_sitelib}/%{vdsm_name}/network/lldp +%dir %{python_sitelib}/%{vdsm_name}/network/lldpad %dir %{python_sitelib}/%{vdsm_name}/network/netinfo %dir %{python_sitelib}/%{vdsm_name}/network/netlink +%dir %{python_sitelib}/%{vdsm_name}/network/netswitch +%dir %{python_sitelib}/%{vdsm_name}/network/nm +%dir %{python_sitelib}/%{vdsm_name}/network/nm/nmdbus %dir %{python_sitelib}/%{vdsm_name}/network/ovs %dir %{python_sitelib}/%{vdsm_name}/network/ovs/driver %dir %{python_sitelib}/%{vdsm_name}/network/tc +%{python_sitelib}/%{vdsm_name}/network/*.py* +%{python_sitelib}/%{vdsm_name}/network/*/*.py* +%{python_sitelib}/%{vdsm_name}/network/*/*/*.py* + +%files python +%{_mandir}/man1/vdsm-tool.1* +%{_bindir}/vdsm-tool +%dir %{python_sitelib}/%{vdsm_name}/gluster +%dir %{python_sitelib}/%{vdsm_name}/host %dir %{python_sitelib}/%{vdsm_name}/metrics %dir %{python_sitelib}/%{vdsm_name}/tool %dir %{python_sitelib}/%{vdsm_name}/tool/configurators %dir %{python_sitelib}/%{vdsm_name}/profiling %dir %{python_sitelib}/%{vdsm_name}/storage +%dir %{python_sitelib}/%{vdsm_name}/supervdsm_api %dir %{python_sitelib}/%{vdsm_name}/virt -%{python2_sitelib}/%{vdsm_name}/__init__.py* -%{python2_sitelib}/%{vdsm_name}/cmdutils.py* -%{python2_sitelib}/%{vdsm_name}/compat.py* -%{python2_sitelib}/%{vdsm_name}/commands.py* -%{python2_sitelib}/%{vdsm_name}/common/*.py* -%{python2_sitelib}/%{vdsm_name}/host/*.py* -%{python2_sitelib}/%{vdsm_name}/common/network/*.py* -%{python2_sitelib}/%{vdsm_name}/concurrent.py* -%{python2_sitelib}/%{vdsm_name}/config.py* -%{python2_sitelib}/%{vdsm_name}/constants.py* -%{python2_sitelib}/%{vdsm_name}/cpuarch.py* -%{python2_sitelib}/%{vdsm_name}/cpuinfo.py* -%{python2_sitelib}/%{vdsm_name}/dsaversion.py* -%{python2_sitelib}/%{vdsm_name}/define.py* -%{python2_sitelib}/%{vdsm_name}/dmidecodeUtil.py* -%{python2_sitelib}/%{vdsm_name}/exception.py* -%{python2_sitelib}/%{vdsm_name}/executor.py* +%dir %{python_sitelib}/%{vdsm_name}/virt/vmdevices +%{python_sitelib}/%{vdsm_name}/alignmentScan.py* +%{python_sitelib}/%{vdsm_name}/API.py* +%{python_sitelib}/%{vdsm_name}/client.py* +%{python_sitelib}/%{vdsm_name}/clientIF.py* +%{python_sitelib}/%{vdsm_name}/hook/*.py* +%{python_sitelib}/%{vdsm_name}/host/*.py* +%{python_sitelib}/%{vdsm_name}/config.py* +%{python_sitelib}/%{vdsm_name}/constants.py* +%{python_sitelib}/%{vdsm_name}/cpuinfo.py* +%{python_sitelib}/%{vdsm_name}/dmidecodeUtil.py* +%{python_sitelib}/%{vdsm_name}/executor.py* # gluster.exception is used in many places like Bridge.py. So it is required # even without vdsm-gluster package -%{python2_sitelib}/%{vdsm_name}/gluster/__init__.py* -%{python2_sitelib}/%{vdsm_name}/gluster/exception.py* -%{python2_sitelib}/%{vdsm_name}/health.py* -%{python2_sitelib}/%{vdsm_name}/hooks.py* -%{python2_sitelib}/%{vdsm_name}/hostdev.py* -%{python2_sitelib}/%{vdsm_name}/jobs.py* -%{python2_sitelib}/%{vdsm_name}/jsonrpcvdscli.py* -%{python2_sitelib}/%{vdsm_name}/kaxmlrpclib.py* -%{python2_sitelib}/%{vdsm_name}/libvirtconnection.py* -%{python2_sitelib}/%{vdsm_name}/logUtils.py* -%{python2_sitelib}/%{vdsm_name}/m2cutils.py* -%{python2_sitelib}/%{vdsm_name}/machinetype.py* -%{python2_sitelib}/%{vdsm_name}/metrics/*.py* -%{python2_sitelib}/%{vdsm_name}/moduleloader.py* -%{python2_sitelib}/%{vdsm_name}/momIF.py* -%{python2_sitelib}/%{vdsm_name}/network/__init__.py* -%{python2_sitelib}/%{vdsm_name}/network/api.py* -%{python2_sitelib}/%{vdsm_name}/network/configurators/__init__.py* -%{python2_sitelib}/%{vdsm_name}/network/configurators/ifcfg.py* -%{python2_sitelib}/%{vdsm_name}/network/configurators/iproute2.py* -%{python2_sitelib}/%{vdsm_name}/network/configurators/pyroute_two.py* -%{python2_sitelib}/%{vdsm_name}/network/configurators/qos.py* -%{python2_sitelib}/%{vdsm_name}/network/errors.py* -%{python2_sitelib}/%{vdsm_name}/network/canonicalize.py* -%{python2_sitelib}/%{vdsm_name}/network/connectivity.py* -%{python2_sitelib}/%{vdsm_name}/network/ip/*.py* -%{python2_sitelib}/%{vdsm_name}/network/ifacquire.py* -%{python2_sitelib}/%{vdsm_name}/network/ipwrapper.py* -%{python2_sitelib}/%{vdsm_name}/network/kernelconfig.py* -%{python2_sitelib}/%{vdsm_name}/network/legacy_switch.py* -%{python2_sitelib}/%{vdsm_name}/network/libvirt.py* -%{python2_sitelib}/%{vdsm_name}/network/netinfo/*.py* -%{python2_sitelib}/%{vdsm_name}/network/netlink/__init__.py* -%{python2_sitelib}/%{vdsm_name}/network/netlink/addr.py* -%{python2_sitelib}/%{vdsm_name}/network/netlink/link.py* -%{python2_sitelib}/%{vdsm_name}/network/netlink/monitor.py* -%{python2_sitelib}/%{vdsm_name}/network/netlink/route.py* -%{python2_sitelib}/%{vdsm_name}/network/ovs/__init__.py* -%{python2_sitelib}/%{vdsm_name}/network/ovs/info.py* -%{python2_sitelib}/%{vdsm_name}/network/ovs/switch.py* -%{python2_sitelib}/%{vdsm_name}/network/ovs/validator.py* -%{python2_sitelib}/%{vdsm_name}/network/ovs/driver/__init__.py* -%{python2_sitelib}/%{vdsm_name}/network/ovs/driver/vsctl.py* -%{python2_sitelib}/%{vdsm_name}/network/models.py* -%{python2_sitelib}/%{vdsm_name}/network/netconfpersistence.py* -%{python2_sitelib}/%{vdsm_name}/network/netswitch.py* -%{python2_sitelib}/%{vdsm_name}/network/sourceroute.py* -%{python2_sitelib}/%{vdsm_name}/network/sourceroutethread.py* -%{python2_sitelib}/%{vdsm_name}/network/tc/__init__.py* -%{python2_sitelib}/%{vdsm_name}/network/tc/_parser.py* -%{python2_sitelib}/%{vdsm_name}/network/tc/_wrapper.py* -%{python2_sitelib}/%{vdsm_name}/network/tc/cls.py* -%{python2_sitelib}/%{vdsm_name}/network/tc/filter.py* -%{python2_sitelib}/%{vdsm_name}/network/tc/qdisc.py* -%{python2_sitelib}/%{vdsm_name}/network/utils.py* -%{python2_sitelib}/%{vdsm_name}/numa.py* -%{python2_sitelib}/%{vdsm_name}/osinfo.py* -%{python2_sitelib}/%{vdsm_name}/password.py* -%{python2_sitelib}/%{vdsm_name}/panic.py* -%{python2_sitelib}/%{vdsm_name}/ppc64HardwareInfo.py* -%{python2_sitelib}/%{vdsm_name}/profiling/__init__.py* -%{python2_sitelib}/%{vdsm_name}/profiling/cpu.py* -%{python2_sitelib}/%{vdsm_name}/profiling/errors.py* -%{python2_sitelib}/%{vdsm_name}/profiling/memory.py* -%{python2_sitelib}/%{vdsm_name}/profiling/profile.py* -%{python2_sitelib}/%{vdsm_name}/storage/__init__.py* -%{python2_sitelib}/%{vdsm_name}/storage/asyncevent.py* -%{python2_sitelib}/%{vdsm_name}/storage/blkdiscard.py* -%{python2_sitelib}/%{vdsm_name}/storage/check.py* -%{python2_sitelib}/%{vdsm_name}/storage/clusterlock.py* -%{python2_sitelib}/%{vdsm_name}/storage/constants.py* -%{python2_sitelib}/%{vdsm_name}/storage/curlImgWrap.py* -%{python2_sitelib}/%{vdsm_name}/storage/devicemapper.py* -%{python2_sitelib}/%{vdsm_name}/storage/directio.py* -%{python2_sitelib}/%{vdsm_name}/storage/exception.py* -%{python2_sitelib}/%{vdsm_name}/storage/fileUtils.py* -%{python2_sitelib}/%{vdsm_name}/storage/fuser.py* -%{python2_sitelib}/%{vdsm_name}/storage/hba.py* -%{python2_sitelib}/%{vdsm_name}/storage/misc.py* -%{python2_sitelib}/%{vdsm_name}/storage/mount.py* -%{python2_sitelib}/%{vdsm_name}/storage/persistent.py* -%{python2_sitelib}/%{vdsm_name}/storage/rwlock.py* -%{python2_sitelib}/%{vdsm_name}/storage/securable.py* -%{python2_sitelib}/%{vdsm_name}/storage/sync.py* -%{python2_sitelib}/%{vdsm_name}/storage/threadlocal.py* -%{python2_sitelib}/%{vdsm_name}/storage/volumemetadata.py* -%{python2_sitelib}/%{vdsm_name}/properties.py* -%{python2_sitelib}/%{vdsm_name}/protocoldetector.py* -%{python2_sitelib}/%{vdsm_name}/pthread.py* -%{python2_sitelib}/%{vdsm_name}/qemuimg.py* -%{python2_sitelib}/%{vdsm_name}/response.py* -%{python2_sitelib}/%{vdsm_name}/schedule.py* -%{python2_sitelib}/%{vdsm_name}/sslcompat.py* -%{python2_sitelib}/%{vdsm_name}/sslutils.py* -%{python2_sitelib}/%{vdsm_name}/supervdsm.py* -%{python2_sitelib}/%{vdsm_name}/sysctl.py* -%{python2_sitelib}/%{vdsm_name}/taskset.py* -%{python2_sitelib}/%{vdsm_name}/throttledlog.py* -%{python2_sitelib}/%{vdsm_name}/udevadm.py* -%{python2_sitelib}/%{vdsm_name}/utils.py* -%{python2_sitelib}/%{vdsm_name}/v2v.py* -%{python2_sitelib}/%{vdsm_name}/vdscli.py* -%{python2_sitelib}/%{vdsm_name}/virtsparsify.py* -%{python2_sitelib}/%{vdsm_name}/xmlrpc.py* -%{python2_sitelib}/%{vdsm_name}/tool/__init__.py* -%{python2_sitelib}/%{vdsm_name}/tool/configfile.py* -%{python2_sitelib}/%{vdsm_name}/tool/dummybr.py* -%{python2_sitelib}/%{vdsm_name}/tool/dump_bonding_opts.py* -%{python2_sitelib}/%{vdsm_name}/tool/nwfilter.py* -%{python2_sitelib}/%{vdsm_name}/tool/configurator.py* -%{python2_sitelib}/%{vdsm_name}/tool/configurators/__init__* -%{python2_sitelib}/%{vdsm_name}/tool/configurators/certificates.py* -%{python2_sitelib}/%{vdsm_name}/tool/configurators/libvirt.py* -%{python2_sitelib}/%{vdsm_name}/tool/configurators/passwd.py* -%{python2_sitelib}/%{vdsm_name}/tool/configurators/sanlock.py* -%{python2_sitelib}/%{vdsm_name}/tool/configurators/sebool.py* -%{python2_sitelib}/%{vdsm_name}/tool/configurators/multipath.py* -%{python2_sitelib}/%{vdsm_name}/tool/dump_volume_chains.py* -%{python2_sitelib}/%{vdsm_name}/tool/register.py* -%{python2_sitelib}/%{vdsm_name}/tool/restore_nets.py* -%{python2_sitelib}/%{vdsm_name}/tool/service.py* -%{python2_sitelib}/%{vdsm_name}/tool/transient.py* -%{python2_sitelib}/%{vdsm_name}/tool/unified_persistence.py* -%{python2_sitelib}/%{vdsm_name}/tool/upgrade.py* -%{python2_sitelib}/%{vdsm_name}/tool/validate_ovirt_certs.py* -%{python2_sitelib}/%{vdsm_name}/tool/vdsm-id.py* -%{python2_sitelib}/%{vdsm_name}/virt/__init__.py* -%{python2_sitelib}/%{vdsm_name}/virt/api.py* -%{python2_sitelib}/%{vdsm_name}/virt/guestagent.py* -%{python2_sitelib}/%{vdsm_name}/virt/periodic.py* -%{python2_sitelib}/%{vdsm_name}/virt/sampling.py* -%{python2_sitelib}/%{vdsm_name}/virt/secret.py* -%{python2_sitelib}/%{vdsm_name}/virt/utils.py* -%{python2_sitelib}/%{vdsm_name}/virt/virdomain.py* -%{python2_sitelib}/%{vdsm_name}/virt/vmchannels.py* -%{python2_sitelib}/%{vdsm_name}/virt/vmexitreason.py* -%{python2_sitelib}/%{vdsm_name}/virt/vmpowerdown.py* -%{python2_sitelib}/%{vdsm_name}/virt/vmstats.py* -%{python2_sitelib}/%{vdsm_name}/virt/vmstatus.py* +%{python_sitelib}/%{vdsm_name}/gluster/__init__.py* +%{python_sitelib}/%{vdsm_name}/gluster/cli.py* +%{python_sitelib}/%{vdsm_name}/gluster/exception.py* +%{python_sitelib}/%{vdsm_name}/health.py* +%{python_sitelib}/%{vdsm_name}/hugepages.py* +%{python_sitelib}/%{vdsm_name}/jobs.py* +%{python_sitelib}/%{vdsm_name}/jsonrpcvdscli.py* +%{python_sitelib}/%{vdsm_name}/kvm2ovirt.py* +%{python_sitelib}/%{vdsm_name}/logUtils.py* +%{python_sitelib}/%{vdsm_name}/machinetype.py* +%{python_sitelib}/%{vdsm_name}/metrics/*.py* +%{python_sitelib}/%{vdsm_name}/moduleloader.py* +%{python_sitelib}/%{vdsm_name}/momIF.py* +%{python_sitelib}/%{vdsm_name}/mkimage.py* +%{python_sitelib}/%{vdsm_name}/numa.py* +%{python_sitelib}/%{vdsm_name}/osinfo.py* +%{python_sitelib}/%{vdsm_name}/ppc64HardwareInfo.py* +%{python_sitelib}/%{vdsm_name}/profiling/__init__.py* +%{python_sitelib}/%{vdsm_name}/profiling/cpu.py* +%{python_sitelib}/%{vdsm_name}/profiling/errors.py* +%{python_sitelib}/%{vdsm_name}/profiling/memory.py* +%{python_sitelib}/%{vdsm_name}/profiling/profile.py* +%{python_sitelib}/%{vdsm_name}/storage/__init__.py* +%{python_sitelib}/%{vdsm_name}/storage/asyncevent.py* +%{python_sitelib}/%{vdsm_name}/storage/asyncutils.py* +%{python_sitelib}/%{vdsm_name}/storage/blkdiscard.py* +%{python_sitelib}/%{vdsm_name}/storage/blockdev.py* +%{python_sitelib}/%{vdsm_name}/storage/blockSD.py* +%{python_sitelib}/%{vdsm_name}/storage/blockVolume.py* +%{python_sitelib}/%{vdsm_name}/storage/check.py* +%{python_sitelib}/%{vdsm_name}/storage/clusterlock.py* +%{python_sitelib}/%{vdsm_name}/storage/compat.py* +%{python_sitelib}/%{vdsm_name}/storage/constants.py* +%{python_sitelib}/%{vdsm_name}/storage/curlImgWrap.py* +%{python_sitelib}/%{vdsm_name}/storage/devicemapper.py* +%{python_sitelib}/%{vdsm_name}/storage/directio.py* +%{python_sitelib}/%{vdsm_name}/storage/dispatcher.py* +%{python_sitelib}/%{vdsm_name}/storage/exception.py* +%{python_sitelib}/%{vdsm_name}/storage/fallocate.py* +%{python_sitelib}/%{vdsm_name}/storage/fileSD.py* +%{python_sitelib}/%{vdsm_name}/storage/fileUtils.py* +%{python_sitelib}/%{vdsm_name}/storage/fileVolume.py* +%{python_sitelib}/%{vdsm_name}/storage/formatconverter.py* +%{python_sitelib}/%{vdsm_name}/storage/fuser.py* +%{python_sitelib}/%{vdsm_name}/storage/fsutils.py* +%{python_sitelib}/%{vdsm_name}/storage/glusterSD.py* +%{python_sitelib}/%{vdsm_name}/storage/glusterVolume.py* +%{python_sitelib}/%{vdsm_name}/storage/guarded.py* +%{python_sitelib}/%{vdsm_name}/storage/hba.py* +%{python_sitelib}/%{vdsm_name}/storage/hsm.py* +%{python_sitelib}/%{vdsm_name}/storage/image.py* +%{python_sitelib}/%{vdsm_name}/storage/imageSharing.py* +%{python_sitelib}/%{vdsm_name}/storage/imagetickets.py* +%{python_sitelib}/%{vdsm_name}/storage/iscsi.py* +%{python_sitelib}/%{vdsm_name}/storage/iscsiadm.py* +%{python_sitelib}/%{vdsm_name}/storage/localFsSD.py* +%{python_sitelib}/%{vdsm_name}/storage/lvm.env +%{python_sitelib}/%{vdsm_name}/storage/lvm.py* +%{python_sitelib}/%{vdsm_name}/storage/lvmconf.py* +%{python_sitelib}/%{vdsm_name}/storage/lvmfilter.py* +%{python_sitelib}/%{vdsm_name}/storage/mailbox.py* +%{python_sitelib}/%{vdsm_name}/storage/managedvolume.py* +%{python_sitelib}/%{vdsm_name}/storage/managedvolumedb.py* +%{python_sitelib}/%{vdsm_name}/storage/merge.py* +%{python_sitelib}/%{vdsm_name}/storage/misc.py* +%{python_sitelib}/%{vdsm_name}/storage/monitor.py* +%{python_sitelib}/%{vdsm_name}/storage/mount.py* +%{python_sitelib}/%{vdsm_name}/storage/mpathhealth.py* +%{python_sitelib}/%{vdsm_name}/storage/multipath.py* +%{python_sitelib}/%{vdsm_name}/storage/nbd.py* +%{python_sitelib}/%{vdsm_name}/storage/nfsSD.py* +%{python_sitelib}/%{vdsm_name}/storage/nos_brick.py* +%{python_sitelib}/%{vdsm_name}/storage/operation.py* +%{python_sitelib}/%{vdsm_name}/storage/outOfProcess.py* +%{python_sitelib}/%{vdsm_name}/storage/persistent.py* +%{python_sitelib}/%{vdsm_name}/storage/qemuimg.py* +%{python_sitelib}/%{vdsm_name}/storage/resourceFactories.py* +%{python_sitelib}/%{vdsm_name}/storage/resourceManager.py* +%{python_sitelib}/%{vdsm_name}/storage/rwlock.py* +%{python_sitelib}/%{vdsm_name}/storage/sd.py* +%{python_sitelib}/%{vdsm_name}/storage/sdc.py* +%{python_sitelib}/%{vdsm_name}/storage/securable.py* +%{python_sitelib}/%{vdsm_name}/storage/sp.py* +%{python_sitelib}/%{vdsm_name}/storage/spbackends.py* +%{python_sitelib}/%{vdsm_name}/storage/storageServer.py* +%{python_sitelib}/%{vdsm_name}/storage/sysfs.py* +%{python_sitelib}/%{vdsm_name}/storage/task.py* +%{python_sitelib}/%{vdsm_name}/storage/taskManager.py* +%{python_sitelib}/%{vdsm_name}/storage/threadPool.py* +%{python_sitelib}/%{vdsm_name}/storage/types.py* +%{python_sitelib}/%{vdsm_name}/storage/udev.py* +%{python_sitelib}/%{vdsm_name}/storage/volume.py* +%{python_sitelib}/%{vdsm_name}/storage/volumemetadata.py* +%{python_sitelib}/%{vdsm_name}/storage/workarounds.py* +%{python_sitelib}/%{vdsm_name}/storage/xlease.py* +%{python_sitelib}/%{vdsm_name}/storage/sdm/__init__.py* +%{python_sitelib}/%{vdsm_name}/storage/sdm/volume_info.py* +%{python_sitelib}/%{vdsm_name}/storage/sdm/api/__init__.py* +%{python_sitelib}/%{vdsm_name}/storage/sdm/api/amend_volume.py* +%{python_sitelib}/%{vdsm_name}/storage/sdm/api/base.py* +%{python_sitelib}/%{vdsm_name}/storage/sdm/api/copy_data.py* +%{python_sitelib}/%{vdsm_name}/storage/sdm/api/merge.py* +%{python_sitelib}/%{vdsm_name}/storage/sdm/api/move_device.py* +%{python_sitelib}/%{vdsm_name}/storage/sdm/api/reduce_domain.py* +%{python_sitelib}/%{vdsm_name}/storage/sdm/api/sparsify_volume.py* +%{python_sitelib}/%{vdsm_name}/storage/sdm/api/update_volume.py* +%{python_sitelib}/%{vdsm_name}/supervdsm_api/__init__.py* +%{python_sitelib}/%{vdsm_name}/supervdsm_api/managedvolume.py* +%{python_sitelib}/%{vdsm_name}/supervdsm_api/hwinfo.py* +%{python_sitelib}/%{vdsm_name}/supervdsm_api/mkimage.py* +%{python_sitelib}/%{vdsm_name}/supervdsm_api/ksm.py* +%{python_sitelib}/%{vdsm_name}/supervdsm_api/nbd.py* +%{python_sitelib}/%{vdsm_name}/supervdsm_api/network.py* +%{python_sitelib}/%{vdsm_name}/supervdsm_api/saslpasswd2.py* +%{python_sitelib}/%{vdsm_name}/supervdsm_api/systemctl.py* +%{python_sitelib}/%{vdsm_name}/supervdsm_api/test.py* +%{python_sitelib}/%{vdsm_name}/supervdsm_api/udev.py* +%{python_sitelib}/%{vdsm_name}/supervdsm_api/virt.py* +%{python_sitelib}/%{vdsm_name}/protocoldetector.py* +%{python_sitelib}/%{vdsm_name}/schedule.py* +%{python_sitelib}/%{vdsm_name}/sslutils.py* +%{python_sitelib}/%{vdsm_name}/supervdsm_server.py* +%{python_sitelib}/%{vdsm_name}/taskset.py* +%{python_sitelib}/%{vdsm_name}/throttledlog.py* +%{python_sitelib}/%{vdsm_name}/utils.py* +%{python_sitelib}/%{vdsm_name}/v2v.py* +%{python_sitelib}/%{vdsm_name}/vdsmd.py* +%{python_sitelib}/%{vdsm_name}/virtsparsify.py* +%{python_sitelib}/%{vdsm_name}/virtsysprep.py* +%{python_sitelib}/%{vdsm_name}/tool/__init__.py* +%{python_sitelib}/%{vdsm_name}/tool/common.py* +%{python_sitelib}/%{vdsm_name}/tool/check_volume_leases.py* +%{python_sitelib}/%{vdsm_name}/tool/config_lvm_filter.py* +%{python_sitelib}/%{vdsm_name}/tool/configfile.py* +%{python_sitelib}/%{vdsm_name}/tool/confmeta.py* +%{python_sitelib}/%{vdsm_name}/tool/confutils.py* +%{python_sitelib}/%{vdsm_name}/tool/dummybr.py* +%{python_sitelib}/%{vdsm_name}/tool/nwfilter.py* +%{python_sitelib}/%{vdsm_name}/tool/configurator.py* +%{python_sitelib}/%{vdsm_name}/tool/configurators/__init__* +%{python_sitelib}/%{vdsm_name}/tool/configurators/abrt.py* +%{python_sitelib}/%{vdsm_name}/tool/configurators/bond_defaults.py* +%{python_sitelib}/%{vdsm_name}/tool/configurators/certificates.py* +%{python_sitelib}/%{vdsm_name}/tool/configurators/libvirt.py* +%{python_sitelib}/%{vdsm_name}/tool/configurators/lvm.py* +%{python_sitelib}/%{vdsm_name}/tool/configurators/managedvolumedb.py* +%{python_sitelib}/%{vdsm_name}/tool/configurators/multipath.py* +%{python_sitelib}/%{vdsm_name}/tool/configurators/passwd.py* +%{python_sitelib}/%{vdsm_name}/tool/configurators/sanlock.py* +%{python_sitelib}/%{vdsm_name}/tool/configurators/sebool.py* +%{python_sitelib}/%{vdsm_name}/tool/dump_volume_chains.py* +%{python_sitelib}/%{vdsm_name}/tool/network.py* +%{python_sitelib}/%{vdsm_name}/tool/register.py* +%{python_sitelib}/%{vdsm_name}/tool/service.py* +%{python_sitelib}/%{vdsm_name}/tool/transient.py* +%{python_sitelib}/%{vdsm_name}/tool/upgrade.py* +%{python_sitelib}/%{vdsm_name}/tool/vdsm-id.py* +%{python_sitelib}/%{vdsm_name}/tool/xleases.py* +%{python_sitelib}/%{vdsm_name}/virt/__init__.py* +%{python_sitelib}/%{vdsm_name}/virt/collectd.py* +%{python_sitelib}/%{vdsm_name}/virt/displaynetwork.py* +%{python_sitelib}/%{vdsm_name}/virt/drivemonitor.py* +%{python_sitelib}/%{vdsm_name}/virt/domain_descriptor.py* +%{python_sitelib}/%{vdsm_name}/virt/domxml_preprocess.py* +%{python_sitelib}/%{vdsm_name}/virt/events.py* +%{python_sitelib}/%{vdsm_name}/virt/guestagent.py* +%{python_sitelib}/%{vdsm_name}/virt/guestagenthelpers.py* +%{python_sitelib}/%{vdsm_name}/virt/libvirtnetwork.py* +%{python_sitelib}/%{vdsm_name}/virt/libvirtxml.py* +%{python_sitelib}/%{vdsm_name}/virt/metadata.py* +%{python_sitelib}/%{vdsm_name}/virt/migration.py* +%{python_sitelib}/%{vdsm_name}/virt/periodic.py* +%{python_sitelib}/%{vdsm_name}/virt/qemuguestagent.py* +%{python_sitelib}/%{vdsm_name}/virt/recovery.py* +%{python_sitelib}/%{vdsm_name}/virt/sampling.py* +%{python_sitelib}/%{vdsm_name}/virt/saslpasswd2.py* +%{python_sitelib}/%{vdsm_name}/virt/secret.py* +%{python_sitelib}/%{vdsm_name}/virt/utils.py* +%{python_sitelib}/%{vdsm_name}/virt/virdomain.py* +%{python_sitelib}/%{vdsm_name}/virt/vm.py* +%{python_sitelib}/%{vdsm_name}/virt/jobs/__init__.py* +%{python_sitelib}/%{vdsm_name}/virt/jobs/seal.py* +%{python_sitelib}/%{vdsm_name}/virt/vmdevices/__init__.py* +%{python_sitelib}/%{vdsm_name}/virt/vmdevices/common.py* +%{python_sitelib}/%{vdsm_name}/virt/vmdevices/compat.py* +%{python_sitelib}/%{vdsm_name}/virt/vmdevices/core.py* +%{python_sitelib}/%{vdsm_name}/virt/vmdevices/drivename.py* +%{python_sitelib}/%{vdsm_name}/virt/vmdevices/graphics.py* +%{python_sitelib}/%{vdsm_name}/virt/vmdevices/hostdevice.py* +%{python_sitelib}/%{vdsm_name}/virt/vmdevices/hwclass.py* +%{python_sitelib}/%{vdsm_name}/virt/vmdevices/lease.py* +%{python_sitelib}/%{vdsm_name}/virt/vmdevices/lookup.py* +%{python_sitelib}/%{vdsm_name}/virt/vmdevices/network.py* +%{python_sitelib}/%{vdsm_name}/virt/vmdevices/storage.py* +%{python_sitelib}/%{vdsm_name}/virt/vmdevices/storagexml.py* +%{python_sitelib}/%{vdsm_name}/virt/vmchannels.py* +%{python_sitelib}/%{vdsm_name}/virt/vmexitreason.py* +%{python_sitelib}/%{vdsm_name}/virt/vmpowerdown.py* +%{python_sitelib}/%{vdsm_name}/virt/vmstats.py* +%{python_sitelib}/%{vdsm_name}/virt/vmstatus.py* +%{python_sitelib}/%{vdsm_name}/virt/vmtune.py* +%{python_sitelib}/%{vdsm_name}/virt/vmxml.py* +%{python_sitelib}/%{vdsm_name}/virt/xmlconstants.py* %files tests %doc %{_datadir}/%{vdsm_name}/tests/README @@ -1302,7 +1310,13 @@ exit 0 %dir %{_datadir}/%{vdsm_name}/tests/devices/parsing %dir %{_datadir}/%{vdsm_name}/tests/integration %dir %{_datadir}/%{vdsm_name}/tests/network -%{_datadir}/%{vdsm_name}/supervdsm_api/test.py* +%dir %{_datadir}/%{vdsm_name}/tests/network/functional +%dir %{_datadir}/%{vdsm_name}/tests/network/integration +%dir %{_datadir}/%{vdsm_name}/tests/network/integration/ovs +%dir %{_datadir}/%{vdsm_name}/tests/network/unit +%dir %{_datadir}/%{vdsm_name}/tests/network/unit/ovs +%dir %{_datadir}/%{vdsm_name}/tests/network/static +%dir %{_datadir}/%{vdsm_name}/tests/storage %{_datadir}/%{vdsm_name}/tests/*.py* %{_datadir}/%{vdsm_name}/tests/cpu_info.out %{_datadir}/%{vdsm_name}/tests/caps_libvirt_intel_E5649.out @@ -1314,33 +1328,54 @@ exit 0 %{_datadir}/%{vdsm_name}/tests/caps_libvirt_intel_i73770.out %{_datadir}/%{vdsm_name}/tests/caps_libvirt_intel_i73770_nosnap.out %{_datadir}/%{vdsm_name}/tests/caps_libvirt_multiqemu.out +%{_datadir}/%{vdsm_name}/tests/caps_libvirt_s390x.out %{_datadir}/%{vdsm_name}/tests/caps_numactl_4_nodes.out +%{_datadir}/%{vdsm_name}/tests/domcaps_libvirt_ppc64le.out +%{_datadir}/%{vdsm_name}/tests/domcaps_libvirt_s390x.out +%{_datadir}/%{vdsm_name}/tests/domcaps_libvirt_x86_64.out %{_datadir}/%{vdsm_name}/tests/common/*.py* %{_datadir}/%{vdsm_name}/tests/cpuinfo/*.out +%{_datadir}/%{vdsm_name}/tests/check_distpkg.sh +%{_datadir}/%{vdsm_name}/tests/check_rpms.sh %{_datadir}/%{vdsm_name}/tests/fake-ssh-add %{_datadir}/%{vdsm_name}/tests/fake-ssh-agent +%{_datadir}/%{vdsm_name}/tests/fake-virt-sysprep %{_datadir}/%{vdsm_name}/tests/fake-virt-v2v %{_datadir}/%{vdsm_name}/tests/fake-virt-v2v.out -%{_datadir}/%{vdsm_name}/tests/cpu_map.xml +%{_datadir}/%{vdsm_name}/tests/fake-virt-v2v.err %{_datadir}/%{vdsm_name}/tests/devices/*.py* %{_datadir}/%{vdsm_name}/tests/devices/parsing/*.py* %{_datadir}/%{vdsm_name}/tests/devices/data/*.xml -%{_datadir}/%{vdsm_name}/tests/iscsiadm_-m_iface.out -%{_datadir}/%{vdsm_name}/tests/lvs_3386c6f2-926f-42c4-839c-38287fac8998.out -%{_datadir}/%{vdsm_name}/tests/lvs_f9e55e18-67c4-4377-8e39-5833ca422bef.out %{_datadir}/%{vdsm_name}/tests/mem_info.out %{_datadir}/%{vdsm_name}/tests/network/*.py* -%{_datadir}/%{vdsm_name}/tests/network/ip_route_show_table_all.out %{_datadir}/%{vdsm_name}/tests/network/netmaskconversions %{_datadir}/%{vdsm_name}/tests/network/tc_filter_show.out +%{_datadir}/%{vdsm_name}/tests/network/functional/*.py* +%{_datadir}/%{vdsm_name}/tests/network/integration/*.py* +%{_datadir}/%{vdsm_name}/tests/network/integration/ovs/*.py* +%{_datadir}/%{vdsm_name}/tests/network/unit/*.py* +%{_datadir}/%{vdsm_name}/tests/network/unit/ovs/*.py* +%{_datadir}/%{vdsm_name}/tests/network/static/*.json +%{_datadir}/%{vdsm_name}/tests/network/static/ip_route_show_table_all.out +%{_datadir}/%{vdsm_name}/tests/storage/*.py* +%{_datadir}/%{vdsm_name}/tests/storage/*.out +%{_datadir}/%{vdsm_name}/tests/virt/*.py* +%{_datadir}/%{vdsm_name}/tests/virt/data/*.xml %{_datadir}/%{vdsm_name}/tests/run_tests.sh +%{_datadir}/%{vdsm_name}/tests/toolTests_abrt-action-save-package-data.conf +%{_datadir}/%{vdsm_name}/tests/toolTests_CCPP.conf +%{_datadir}/%{vdsm_name}/tests/toolTests_abrt.conf %{_datadir}/%{vdsm_name}/tests/toolTests_empty.conf %{_datadir}/%{vdsm_name}/tests/toolTests_lconf_ssl.conf %{_datadir}/%{vdsm_name}/tests/toolTests_libvirtd.conf +%{_datadir}/%{vdsm_name}/tests/toolTests_mtab_1g +%{_datadir}/%{vdsm_name}/tests/toolTests_mtab_default +%{_datadir}/%{vdsm_name}/tests/toolTests_mtab_nohugetlbfs %{_datadir}/%{vdsm_name}/tests/toolTests_qemu_sanlock.conf %{_datadir}/%{vdsm_name}/tests/toolTests_qemu_ssl.conf %{_datadir}/%{vdsm_name}/tests/toolTests_vdsm_no_ssl.conf %{_datadir}/%{vdsm_name}/tests/toolTests_vdsm_ssl.conf +%{_datadir}/%{vdsm_name}/tests/toolTests_vmcore.conf %{_datadir}/%{vdsm_name}/tests/glusterGeoRepStatus.xml %{_datadir}/%{vdsm_name}/tests/glusterVolumeGeoRepConfigList.xml %{_datadir}/%{vdsm_name}/tests/glusterSnapshotList.xml @@ -1363,43 +1398,18 @@ exit 0 %{_sysconfdir}/sudoers.d/50_vdsm_hook_openstacknet %{_libexecdir}/%{vdsm_name}/hooks/after_device_create/50_openstacknet %{_libexecdir}/%{vdsm_name}/hooks/after_device_create/openstacknet_utils.py* -%{_libexecdir}/%{vdsm_name}/hooks/after_device_destroy/50_openstacknet -%{_libexecdir}/%{vdsm_name}/hooks/after_device_destroy/openstacknet_utils.py* %{_libexecdir}/%{vdsm_name}/hooks/after_device_migrate_destination/50_openstacknet %{_libexecdir}/%{vdsm_name}/hooks/after_device_migrate_destination/openstacknet_utils.py* %{_libexecdir}/%{vdsm_name}/hooks/after_nic_hotplug/50_openstacknet %{_libexecdir}/%{vdsm_name}/hooks/after_nic_hotplug/openstacknet_utils.py* -%{_libexecdir}/%{vdsm_name}/hooks/after_nic_hotunplug/50_openstacknet -%{_libexecdir}/%{vdsm_name}/hooks/after_nic_hotunplug/openstacknet_utils.py* %{_libexecdir}/%{vdsm_name}/hooks/after_vm_start/50_openstacknet %{_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/openstacknet_utils.py* -%{_libexecdir}/%{vdsm_name}/hooks/before_device_migrate_destination/50_openstacknet -%{_libexecdir}/%{vdsm_name}/hooks/before_device_migrate_destination/openstacknet_utils.py* %{_libexecdir}/%{vdsm_name}/hooks/before_nic_hotplug/50_openstacknet %{_libexecdir}/%{vdsm_name}/hooks/before_nic_hotplug/openstacknet_utils.py* - -%files hook-ovs -%{_sysconfdir}/sudoers.d/50_vdsm_hook_ovs -%{_libexecdir}/%{vdsm_name}/hooks/after_get_caps/50_ovs -%{_libexecdir}/%{vdsm_name}/hooks/after_get_caps/ovs_utils.py* -%{_libexecdir}/%{vdsm_name}/hooks/after_get_stats/50_ovs -%{_libexecdir}/%{vdsm_name}/hooks/after_get_stats/ovs_utils.py* -%{_libexecdir}/%{vdsm_name}/hooks/before_device_create/50_ovs -%{_libexecdir}/%{vdsm_name}/hooks/before_device_create/ovs_utils.py* -%{_libexecdir}/%{vdsm_name}/hooks/before_nic_hotplug/50_ovs -%{_libexecdir}/%{vdsm_name}/hooks/before_nic_hotplug/ovs_utils.py* -%{_libexecdir}/%{vdsm_name}/hooks/before_network_setup/50_ovs -%{_libexecdir}/%{vdsm_name}/hooks/before_network_setup/ovs_setup_ip.py* -%{_libexecdir}/%{vdsm_name}/hooks/before_network_setup/ovs_setup_libvirt.py* -%{_libexecdir}/%{vdsm_name}/hooks/before_network_setup/ovs_setup_mtu.py* -%{_libexecdir}/%{vdsm_name}/hooks/before_network_setup/ovs_setup_ovs.py* -%{_libexecdir}/%{vdsm_name}/hooks/before_network_setup/ovs_utils.py* -%{_libexecdir}/%{vdsm_name}/hooks/after_network_setup/50_ovs -%{_libexecdir}/%{vdsm_name}/hooks/after_network_setup/ovs_utils.py* -%{_libexecdir}/%{vdsm_name}/hooks/after_network_setup_fail/50_ovs -%{_libexecdir}/%{vdsm_name}/hooks/after_network_setup_fail/ovs_utils.py* +%{_libexecdir}/%{vdsm_name}/hooks/after_get_caps/50_openstacknet +%{_libexecdir}/%{vdsm_name}/hooks/after_get_caps/openstacknet_utils.py* %files hook-macspoof %{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_macspoof @@ -1429,25 +1439,35 @@ exit 0 %files hook-ethtool-options %{_libexecdir}/%{vdsm_name}/hooks/after_network_setup/30_ethtool_options -%files hook-ipv6 -%{_libexecdir}/%{vdsm_name}/hooks/before_network_setup/50_ipv6 +%files hook-fcoe +%{_presetdir}/85-vdsm-hook-fcoe.preset +%{_libexecdir}/%{vdsm_name}/hooks/before_network_setup/50_fcoe + +%files hook-localdisk +%{_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-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 0%{?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-fcoe -%{_libdir}/systemd/system-preset/85-vdsm-hook-fcoe.preset -%{_libexecdir}/%{vdsm_name}/hooks/before_network_setup/50_fcoe - %files hook-checkips %{_libexecdir}/%{vdsm_name}/hooks/after_get_stats/10_checkips %{_libexecdir}/%{vdsm_name}/hooks/checkipsd @@ -1463,10 +1483,6 @@ exit 0 %files hook-fakevmstats %{_libexecdir}/%{vdsm_name}/hooks/after_get_all_vm_stats/10_fakevmstats -%files hook-fakesriov -%{_libexecdir}/%{vdsm_name}/hooks/after_hostdev_list_by_caps/10_fakesriov -%{_libexecdir}/%{vdsm_name}/hooks/after_get_caps/10_fakesriov - %files hook-fileinject %{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_fileinject @@ -1474,32 +1490,12 @@ exit 0 %{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_floppy %{_libexecdir}/%{vdsm_name}/hooks/before_vm_migrate_source/50_floppy -%files hook-hostusb -%{_sysconfdir}/sudoers.d/50_vdsm_hook_hostusb -%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_hostusb -%{_libexecdir}/%{vdsm_name}/hooks/before_vm_migrate_source/50_hostusb -%{_libexecdir}/%{vdsm_name}/hooks/after_vm_destroy/50_hostusb - %files hook-httpsisoboot %{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_httpsisoboot -%files hook-hugepages -%{_sysconfdir}/sudoers.d/50_vdsm_hook_hugepages -%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_hugepages -%{_libexecdir}/%{vdsm_name}/hooks/before_vm_migrate_destination/50_hugepages -%{_libexecdir}/%{vdsm_name}/hooks/after_vm_destroy/50_hugepages - -%files hook-isolatedprivatevlan -%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_isolatedprivatevlan -%config(noreplace) %{_sysconfdir}/libvirt/nwfilter/isolatedprivatevlan-vdsm.xml - %files hook-macbind %{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_macbind -%files hook-noipspoof -%{_libexecdir}/%{vdsm_name}/hooks/before_device_create/50_noipspoof -%{_libexecdir}/%{vdsm_name}/hooks/before_nic_hotplug/50_noipspoof - %files hook-extnet %{_libexecdir}/%{vdsm_name}/hooks/before_device_create/50_extnet %{_libexecdir}/%{vdsm_name}/hooks/before_nic_hotplug/50_extnet @@ -1519,9 +1515,6 @@ exit 0 %{_libexecdir}/%{vdsm_name}/hooks/after_vm_start/50_promisc %{_libexecdir}/%{vdsm_name}/hooks/before_vm_destroy/50_promisc -%files hook-qos -%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_qos - %files hook-scratchpad %{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_scratchpad %{_libexecdir}/%{vdsm_name}/hooks/before_vm_migrate_source/50_scratchpad @@ -1535,50 +1528,49 @@ exit 0 %files hook-vmdisk %{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_vmdisk - -%files hook-vmfex -%{_libexecdir}/%{vdsm_name}/hooks/before_vm_migrate_destination/50_vmfex -%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_vmfex %endif -%files cli -%license COPYING -%{_bindir}/vdsClient -%dir %{_datadir}/%{vdsm_name} -%{_datadir}/%{vdsm_name}/vdsClient.py* -%{_datadir}/%{vdsm_name}/vdsClientGluster.py* -%{_sysconfdir}/bash_completion.d/vdsClient -%{_mandir}/man1/vdsClient.1* - -%files xmlrpc +%files http %dir %{python_sitelib}/%{vdsm_name} %dir %{python_sitelib}/%{vdsm_name}/rpc -%{python2_sitelib}/%{vdsm_name}/rpc/bindingxmlrpc.py* +%{python_sitelib}/%{vdsm_name}/rpc/http.py* + +%files client +%{_bindir}/vdsm-client +%dir %{python_sitelib}/vdsmclient +%{python_sitelib}/vdsmclient/__init__.py* +%{python_sitelib}/vdsmclient/client.py* +%{python_sitelib}/yajsonrpc/__init__.py* +%{_mandir}/man1/vdsm-client.1* %files jsonrpc %dir %{python_sitelib}/%{vdsm_name} %dir %{python_sitelib}/%{vdsm_name}/rpc -%{python2_sitelib}/%{vdsm_name}/rpc/__init__.py* -%{python2_sitelib}/%{vdsm_name}/rpc/bindingjsonrpc.py* -%{python2_sitelib}/%{vdsm_name}/rpc/Bridge.py* -%{python2_sitelib}/yajsonrpc/__init__.py* +%{python_sitelib}/%{vdsm_name}/rpc/__init__.py* +%{python_sitelib}/%{vdsm_name}/rpc/bindingjsonrpc.py* +%{python_sitelib}/%{vdsm_name}/rpc/Bridge.py* +%{python_sitelib}/yajsonrpc/__init__.py* +%{python_sitelib}/yajsonrpc/jsonrpcclient.py* %files api +%doc lib/vdsm/api/vdsm-api.html %dir %{python_sitelib}/%{vdsm_name} +%dir %{python_sitelib}/%{vdsm_name}/api %dir %{python_sitelib}/%{vdsm_name}/rpc -%{python2_sitelib}/%{vdsm_name}/rpc/vdsm-api.yml -%{python2_sitelib}/%{vdsm_name}/rpc/vdsm-events.yml -%{python2_sitelib}/api/vdsmapi.py* -%{python2_sitelib}/api/__init__.py* +%{python_sitelib}/%{vdsm_name}/api/*.py* +%{python_sitelib}/%{vdsm_name}/rpc/vdsm-api.pickle +%{python_sitelib}/%{vdsm_name}/rpc/vdsm-events.pickle %if ! 0%{?with_gluster_mgmt} -%exclude %{python_sitelib}/%{vdsm_name}/rpc/vdsm-api-gluster.yml +%exclude %{python_sitelib}/%{vdsm_name}/rpc/vdsm-api-gluster.pickle %endif %files yajsonrpc %dir %{python_sitelib}/yajsonrpc -%{python2_sitelib}/yajsonrpc/betterAsyncore.py* -%{python2_sitelib}/yajsonrpc/stomp.py* -%{python2_sitelib}/yajsonrpc/stompreactor.py* +%{python_sitelib}/yajsonrpc/betterAsyncore.py* +%{python_sitelib}/yajsonrpc/exception.py* +%{python_sitelib}/yajsonrpc/stomp.py* +%{python_sitelib}/yajsonrpc/stompclient.py* +%{python_sitelib}/yajsonrpc/stompserver.py* %files hook-faqemu %license COPYING @@ -1587,21 +1579,22 @@ exit 0 %if 0%{?with_gluster_mgmt} %files gluster -%dir %{_datadir}/%{vdsm_name} -%dir %{_datadir}/%{vdsm_name}/gluster +%license COPYING %dir %{python_sitelib}/%{vdsm_name} %dir %{python_sitelib}/%{vdsm_name}/rpc -%license COPYING -%{_datadir}/%{vdsm_name}/gluster/api.py* -%{_datadir}/%{vdsm_name}/gluster/apiwrapper.py* -%{_datadir}/%{vdsm_name}/gluster/fstab.py* -%{python2_sitelib}/%{vdsm_name}/gluster/fence.py* -%{python2_sitelib}/%{vdsm_name}/rpc/vdsm-api-gluster.yml -%{_datadir}/%{vdsm_name}/gluster/gfapi.py* -%{_datadir}/%{vdsm_name}/gluster/hooks.py* -%{_datadir}/%{vdsm_name}/gluster/services.py* -%{_datadir}/%{vdsm_name}/gluster/storagedev.py* -%{_datadir}/%{vdsm_name}/gluster/tasks.py* +%dir %{python_sitelib}/%{vdsm_name}/gluster +%{python_sitelib}/%{vdsm_name}/gluster/api.py* +%{python_sitelib}/%{vdsm_name}/gluster/apiwrapper.py* +%{python_sitelib}/%{vdsm_name}/gluster/events.py* +%{python_sitelib}/%{vdsm_name}/gluster/fstab.py* +%{python_sitelib}/%{vdsm_name}/gluster/fence.py* +%{python_sitelib}/%{vdsm_name}/gluster/gfapi.py* +%{python_sitelib}/%{vdsm_name}/gluster/hooks.py* +%{python_sitelib}/%{vdsm_name}/gluster/services.py* +%{python_sitelib}/%{vdsm_name}/gluster/storagedev.py* +%{python_sitelib}/%{vdsm_name}/gluster/tasks.py* +%{python_sitelib}/%{vdsm_name}/gluster/thinstorage.py* +%{python_sitelib}/%{vdsm_name}/rpc/vdsm-api-gluster.pickle %endif %changelog From b40ba2c232953733f54a5bc472565c78970fe2c0 Mon Sep 17 00:00:00 2001 From: Marcin Sobczyk Date: Thu, 13 Jun 2019 09:50:26 +0200 Subject: [PATCH 25/27] Restore arch restrictions, use "python2_sitelib" --- vdsm.spec | 589 +++++++++++++++++++++++++++--------------------------- 1 file changed, 295 insertions(+), 294 deletions(-) diff --git a/vdsm.spec b/vdsm.spec index 563a8c9..01a01f2 100644 --- a/vdsm.spec +++ b/vdsm.spec @@ -59,6 +59,7 @@ License: GPLv2+ Url: http://www.ovirt.org/develop/developer-guide/vdsm/vdsm/ Source0: %{vdsm_name}-%{version}.tar.gz +ExclusiveArch: x86_64 %{power64} aarch64 Patch0: fix-unversioned-python-shebangs.patch %{!?_licensedir:%global license %%doc} @@ -998,7 +999,7 @@ exit 0 %dir %{_libexecdir}/%{vdsm_name}/hooks/after_ifcfg_write %{_libexecdir}/%{vdsm_name}/get-conf-item -%{python_sitelib}/sos/plugins/vdsm.py* +%{python2_sitelib}/sos/plugins/vdsm.py* %{_udevrulesdir}/12-vdsm-lvm.rules /etc/security/limits.d/99-vdsm.conf %{_mandir}/man8/vdsmd.8* @@ -1038,265 +1039,265 @@ exit 0 %{_datadir}/yum-plugins/*.py* %files common -%dir %{python_sitelib}/%{vdsm_name} -%dir %{python_sitelib}/%{vdsm_name}/common -%dir %{python_sitelib}/%{vdsm_name}/common/network -%{python_sitelib}/%{vdsm_name}/__init__.py* -%{python_sitelib}/%{vdsm_name}/common/*.py* -%{python_sitelib}/%{vdsm_name}/common/network/*.py* +%dir %{python2_sitelib}/%{vdsm_name} +%dir %{python2_sitelib}/%{vdsm_name}/common +%dir %{python2_sitelib}/%{vdsm_name}/common/network +%{python2_sitelib}/%{vdsm_name}/__init__.py* +%{python2_sitelib}/%{vdsm_name}/common/*.py* +%{python2_sitelib}/%{vdsm_name}/common/network/*.py* %files network -%dir %{python_sitelib}/%{vdsm_name}/network -%dir %{python_sitelib}/%{vdsm_name}/network/configurators -%dir %{python_sitelib}/%{vdsm_name}/network/ip -%dir %{python_sitelib}/%{vdsm_name}/network/ip/address -%dir %{python_sitelib}/%{vdsm_name}/network/ip/route -%dir %{python_sitelib}/%{vdsm_name}/network/ip/rule -%dir %{python_sitelib}/%{vdsm_name}/network/link -%dir %{python_sitelib}/%{vdsm_name}/network/link/bond -%dir %{python_sitelib}/%{vdsm_name}/network/lldp -%dir %{python_sitelib}/%{vdsm_name}/network/lldpad -%dir %{python_sitelib}/%{vdsm_name}/network/netinfo -%dir %{python_sitelib}/%{vdsm_name}/network/netlink -%dir %{python_sitelib}/%{vdsm_name}/network/netswitch -%dir %{python_sitelib}/%{vdsm_name}/network/nm -%dir %{python_sitelib}/%{vdsm_name}/network/nm/nmdbus -%dir %{python_sitelib}/%{vdsm_name}/network/ovs -%dir %{python_sitelib}/%{vdsm_name}/network/ovs/driver -%dir %{python_sitelib}/%{vdsm_name}/network/tc -%{python_sitelib}/%{vdsm_name}/network/*.py* -%{python_sitelib}/%{vdsm_name}/network/*/*.py* -%{python_sitelib}/%{vdsm_name}/network/*/*/*.py* +%dir %{python2_sitelib}/%{vdsm_name}/network +%dir %{python2_sitelib}/%{vdsm_name}/network/configurators +%dir %{python2_sitelib}/%{vdsm_name}/network/ip +%dir %{python2_sitelib}/%{vdsm_name}/network/ip/address +%dir %{python2_sitelib}/%{vdsm_name}/network/ip/route +%dir %{python2_sitelib}/%{vdsm_name}/network/ip/rule +%dir %{python2_sitelib}/%{vdsm_name}/network/link +%dir %{python2_sitelib}/%{vdsm_name}/network/link/bond +%dir %{python2_sitelib}/%{vdsm_name}/network/lldp +%dir %{python2_sitelib}/%{vdsm_name}/network/lldpad +%dir %{python2_sitelib}/%{vdsm_name}/network/netinfo +%dir %{python2_sitelib}/%{vdsm_name}/network/netlink +%dir %{python2_sitelib}/%{vdsm_name}/network/netswitch +%dir %{python2_sitelib}/%{vdsm_name}/network/nm +%dir %{python2_sitelib}/%{vdsm_name}/network/nm/nmdbus +%dir %{python2_sitelib}/%{vdsm_name}/network/ovs +%dir %{python2_sitelib}/%{vdsm_name}/network/ovs/driver +%dir %{python2_sitelib}/%{vdsm_name}/network/tc +%{python2_sitelib}/%{vdsm_name}/network/*.py* +%{python2_sitelib}/%{vdsm_name}/network/*/*.py* +%{python2_sitelib}/%{vdsm_name}/network/*/*/*.py* %files python %{_mandir}/man1/vdsm-tool.1* %{_bindir}/vdsm-tool -%dir %{python_sitelib}/%{vdsm_name}/gluster -%dir %{python_sitelib}/%{vdsm_name}/host -%dir %{python_sitelib}/%{vdsm_name}/metrics -%dir %{python_sitelib}/%{vdsm_name}/tool -%dir %{python_sitelib}/%{vdsm_name}/tool/configurators -%dir %{python_sitelib}/%{vdsm_name}/profiling -%dir %{python_sitelib}/%{vdsm_name}/storage -%dir %{python_sitelib}/%{vdsm_name}/supervdsm_api -%dir %{python_sitelib}/%{vdsm_name}/virt -%dir %{python_sitelib}/%{vdsm_name}/virt/vmdevices -%{python_sitelib}/%{vdsm_name}/alignmentScan.py* -%{python_sitelib}/%{vdsm_name}/API.py* -%{python_sitelib}/%{vdsm_name}/client.py* -%{python_sitelib}/%{vdsm_name}/clientIF.py* -%{python_sitelib}/%{vdsm_name}/hook/*.py* -%{python_sitelib}/%{vdsm_name}/host/*.py* -%{python_sitelib}/%{vdsm_name}/config.py* -%{python_sitelib}/%{vdsm_name}/constants.py* -%{python_sitelib}/%{vdsm_name}/cpuinfo.py* -%{python_sitelib}/%{vdsm_name}/dmidecodeUtil.py* -%{python_sitelib}/%{vdsm_name}/executor.py* +%dir %{python2_sitelib}/%{vdsm_name}/gluster +%dir %{python2_sitelib}/%{vdsm_name}/host +%dir %{python2_sitelib}/%{vdsm_name}/metrics +%dir %{python2_sitelib}/%{vdsm_name}/tool +%dir %{python2_sitelib}/%{vdsm_name}/tool/configurators +%dir %{python2_sitelib}/%{vdsm_name}/profiling +%dir %{python2_sitelib}/%{vdsm_name}/storage +%dir %{python2_sitelib}/%{vdsm_name}/supervdsm_api +%dir %{python2_sitelib}/%{vdsm_name}/virt +%dir %{python2_sitelib}/%{vdsm_name}/virt/vmdevices +%{python2_sitelib}/%{vdsm_name}/alignmentScan.py* +%{python2_sitelib}/%{vdsm_name}/API.py* +%{python2_sitelib}/%{vdsm_name}/client.py* +%{python2_sitelib}/%{vdsm_name}/clientIF.py* +%{python2_sitelib}/%{vdsm_name}/hook/*.py* +%{python2_sitelib}/%{vdsm_name}/host/*.py* +%{python2_sitelib}/%{vdsm_name}/config.py* +%{python2_sitelib}/%{vdsm_name}/constants.py* +%{python2_sitelib}/%{vdsm_name}/cpuinfo.py* +%{python2_sitelib}/%{vdsm_name}/dmidecodeUtil.py* +%{python2_sitelib}/%{vdsm_name}/executor.py* # gluster.exception is used in many places like Bridge.py. So it is required # even without vdsm-gluster package -%{python_sitelib}/%{vdsm_name}/gluster/__init__.py* -%{python_sitelib}/%{vdsm_name}/gluster/cli.py* -%{python_sitelib}/%{vdsm_name}/gluster/exception.py* -%{python_sitelib}/%{vdsm_name}/health.py* -%{python_sitelib}/%{vdsm_name}/hugepages.py* -%{python_sitelib}/%{vdsm_name}/jobs.py* -%{python_sitelib}/%{vdsm_name}/jsonrpcvdscli.py* -%{python_sitelib}/%{vdsm_name}/kvm2ovirt.py* -%{python_sitelib}/%{vdsm_name}/logUtils.py* -%{python_sitelib}/%{vdsm_name}/machinetype.py* -%{python_sitelib}/%{vdsm_name}/metrics/*.py* -%{python_sitelib}/%{vdsm_name}/moduleloader.py* -%{python_sitelib}/%{vdsm_name}/momIF.py* -%{python_sitelib}/%{vdsm_name}/mkimage.py* -%{python_sitelib}/%{vdsm_name}/numa.py* -%{python_sitelib}/%{vdsm_name}/osinfo.py* -%{python_sitelib}/%{vdsm_name}/ppc64HardwareInfo.py* -%{python_sitelib}/%{vdsm_name}/profiling/__init__.py* -%{python_sitelib}/%{vdsm_name}/profiling/cpu.py* -%{python_sitelib}/%{vdsm_name}/profiling/errors.py* -%{python_sitelib}/%{vdsm_name}/profiling/memory.py* -%{python_sitelib}/%{vdsm_name}/profiling/profile.py* -%{python_sitelib}/%{vdsm_name}/storage/__init__.py* -%{python_sitelib}/%{vdsm_name}/storage/asyncevent.py* -%{python_sitelib}/%{vdsm_name}/storage/asyncutils.py* -%{python_sitelib}/%{vdsm_name}/storage/blkdiscard.py* -%{python_sitelib}/%{vdsm_name}/storage/blockdev.py* -%{python_sitelib}/%{vdsm_name}/storage/blockSD.py* -%{python_sitelib}/%{vdsm_name}/storage/blockVolume.py* -%{python_sitelib}/%{vdsm_name}/storage/check.py* -%{python_sitelib}/%{vdsm_name}/storage/clusterlock.py* -%{python_sitelib}/%{vdsm_name}/storage/compat.py* -%{python_sitelib}/%{vdsm_name}/storage/constants.py* -%{python_sitelib}/%{vdsm_name}/storage/curlImgWrap.py* -%{python_sitelib}/%{vdsm_name}/storage/devicemapper.py* -%{python_sitelib}/%{vdsm_name}/storage/directio.py* -%{python_sitelib}/%{vdsm_name}/storage/dispatcher.py* -%{python_sitelib}/%{vdsm_name}/storage/exception.py* -%{python_sitelib}/%{vdsm_name}/storage/fallocate.py* -%{python_sitelib}/%{vdsm_name}/storage/fileSD.py* -%{python_sitelib}/%{vdsm_name}/storage/fileUtils.py* -%{python_sitelib}/%{vdsm_name}/storage/fileVolume.py* -%{python_sitelib}/%{vdsm_name}/storage/formatconverter.py* -%{python_sitelib}/%{vdsm_name}/storage/fuser.py* -%{python_sitelib}/%{vdsm_name}/storage/fsutils.py* -%{python_sitelib}/%{vdsm_name}/storage/glusterSD.py* -%{python_sitelib}/%{vdsm_name}/storage/glusterVolume.py* -%{python_sitelib}/%{vdsm_name}/storage/guarded.py* -%{python_sitelib}/%{vdsm_name}/storage/hba.py* -%{python_sitelib}/%{vdsm_name}/storage/hsm.py* -%{python_sitelib}/%{vdsm_name}/storage/image.py* -%{python_sitelib}/%{vdsm_name}/storage/imageSharing.py* -%{python_sitelib}/%{vdsm_name}/storage/imagetickets.py* -%{python_sitelib}/%{vdsm_name}/storage/iscsi.py* -%{python_sitelib}/%{vdsm_name}/storage/iscsiadm.py* -%{python_sitelib}/%{vdsm_name}/storage/localFsSD.py* -%{python_sitelib}/%{vdsm_name}/storage/lvm.env -%{python_sitelib}/%{vdsm_name}/storage/lvm.py* -%{python_sitelib}/%{vdsm_name}/storage/lvmconf.py* -%{python_sitelib}/%{vdsm_name}/storage/lvmfilter.py* -%{python_sitelib}/%{vdsm_name}/storage/mailbox.py* -%{python_sitelib}/%{vdsm_name}/storage/managedvolume.py* -%{python_sitelib}/%{vdsm_name}/storage/managedvolumedb.py* -%{python_sitelib}/%{vdsm_name}/storage/merge.py* -%{python_sitelib}/%{vdsm_name}/storage/misc.py* -%{python_sitelib}/%{vdsm_name}/storage/monitor.py* -%{python_sitelib}/%{vdsm_name}/storage/mount.py* -%{python_sitelib}/%{vdsm_name}/storage/mpathhealth.py* -%{python_sitelib}/%{vdsm_name}/storage/multipath.py* -%{python_sitelib}/%{vdsm_name}/storage/nbd.py* -%{python_sitelib}/%{vdsm_name}/storage/nfsSD.py* -%{python_sitelib}/%{vdsm_name}/storage/nos_brick.py* -%{python_sitelib}/%{vdsm_name}/storage/operation.py* -%{python_sitelib}/%{vdsm_name}/storage/outOfProcess.py* -%{python_sitelib}/%{vdsm_name}/storage/persistent.py* -%{python_sitelib}/%{vdsm_name}/storage/qemuimg.py* -%{python_sitelib}/%{vdsm_name}/storage/resourceFactories.py* -%{python_sitelib}/%{vdsm_name}/storage/resourceManager.py* -%{python_sitelib}/%{vdsm_name}/storage/rwlock.py* -%{python_sitelib}/%{vdsm_name}/storage/sd.py* -%{python_sitelib}/%{vdsm_name}/storage/sdc.py* -%{python_sitelib}/%{vdsm_name}/storage/securable.py* -%{python_sitelib}/%{vdsm_name}/storage/sp.py* -%{python_sitelib}/%{vdsm_name}/storage/spbackends.py* -%{python_sitelib}/%{vdsm_name}/storage/storageServer.py* -%{python_sitelib}/%{vdsm_name}/storage/sysfs.py* -%{python_sitelib}/%{vdsm_name}/storage/task.py* -%{python_sitelib}/%{vdsm_name}/storage/taskManager.py* -%{python_sitelib}/%{vdsm_name}/storage/threadPool.py* -%{python_sitelib}/%{vdsm_name}/storage/types.py* -%{python_sitelib}/%{vdsm_name}/storage/udev.py* -%{python_sitelib}/%{vdsm_name}/storage/volume.py* -%{python_sitelib}/%{vdsm_name}/storage/volumemetadata.py* -%{python_sitelib}/%{vdsm_name}/storage/workarounds.py* -%{python_sitelib}/%{vdsm_name}/storage/xlease.py* -%{python_sitelib}/%{vdsm_name}/storage/sdm/__init__.py* -%{python_sitelib}/%{vdsm_name}/storage/sdm/volume_info.py* -%{python_sitelib}/%{vdsm_name}/storage/sdm/api/__init__.py* -%{python_sitelib}/%{vdsm_name}/storage/sdm/api/amend_volume.py* -%{python_sitelib}/%{vdsm_name}/storage/sdm/api/base.py* -%{python_sitelib}/%{vdsm_name}/storage/sdm/api/copy_data.py* -%{python_sitelib}/%{vdsm_name}/storage/sdm/api/merge.py* -%{python_sitelib}/%{vdsm_name}/storage/sdm/api/move_device.py* -%{python_sitelib}/%{vdsm_name}/storage/sdm/api/reduce_domain.py* -%{python_sitelib}/%{vdsm_name}/storage/sdm/api/sparsify_volume.py* -%{python_sitelib}/%{vdsm_name}/storage/sdm/api/update_volume.py* -%{python_sitelib}/%{vdsm_name}/supervdsm_api/__init__.py* -%{python_sitelib}/%{vdsm_name}/supervdsm_api/managedvolume.py* -%{python_sitelib}/%{vdsm_name}/supervdsm_api/hwinfo.py* -%{python_sitelib}/%{vdsm_name}/supervdsm_api/mkimage.py* -%{python_sitelib}/%{vdsm_name}/supervdsm_api/ksm.py* -%{python_sitelib}/%{vdsm_name}/supervdsm_api/nbd.py* -%{python_sitelib}/%{vdsm_name}/supervdsm_api/network.py* -%{python_sitelib}/%{vdsm_name}/supervdsm_api/saslpasswd2.py* -%{python_sitelib}/%{vdsm_name}/supervdsm_api/systemctl.py* -%{python_sitelib}/%{vdsm_name}/supervdsm_api/test.py* -%{python_sitelib}/%{vdsm_name}/supervdsm_api/udev.py* -%{python_sitelib}/%{vdsm_name}/supervdsm_api/virt.py* -%{python_sitelib}/%{vdsm_name}/protocoldetector.py* -%{python_sitelib}/%{vdsm_name}/schedule.py* -%{python_sitelib}/%{vdsm_name}/sslutils.py* -%{python_sitelib}/%{vdsm_name}/supervdsm_server.py* -%{python_sitelib}/%{vdsm_name}/taskset.py* -%{python_sitelib}/%{vdsm_name}/throttledlog.py* -%{python_sitelib}/%{vdsm_name}/utils.py* -%{python_sitelib}/%{vdsm_name}/v2v.py* -%{python_sitelib}/%{vdsm_name}/vdsmd.py* -%{python_sitelib}/%{vdsm_name}/virtsparsify.py* -%{python_sitelib}/%{vdsm_name}/virtsysprep.py* -%{python_sitelib}/%{vdsm_name}/tool/__init__.py* -%{python_sitelib}/%{vdsm_name}/tool/common.py* -%{python_sitelib}/%{vdsm_name}/tool/check_volume_leases.py* -%{python_sitelib}/%{vdsm_name}/tool/config_lvm_filter.py* -%{python_sitelib}/%{vdsm_name}/tool/configfile.py* -%{python_sitelib}/%{vdsm_name}/tool/confmeta.py* -%{python_sitelib}/%{vdsm_name}/tool/confutils.py* -%{python_sitelib}/%{vdsm_name}/tool/dummybr.py* -%{python_sitelib}/%{vdsm_name}/tool/nwfilter.py* -%{python_sitelib}/%{vdsm_name}/tool/configurator.py* -%{python_sitelib}/%{vdsm_name}/tool/configurators/__init__* -%{python_sitelib}/%{vdsm_name}/tool/configurators/abrt.py* -%{python_sitelib}/%{vdsm_name}/tool/configurators/bond_defaults.py* -%{python_sitelib}/%{vdsm_name}/tool/configurators/certificates.py* -%{python_sitelib}/%{vdsm_name}/tool/configurators/libvirt.py* -%{python_sitelib}/%{vdsm_name}/tool/configurators/lvm.py* -%{python_sitelib}/%{vdsm_name}/tool/configurators/managedvolumedb.py* -%{python_sitelib}/%{vdsm_name}/tool/configurators/multipath.py* -%{python_sitelib}/%{vdsm_name}/tool/configurators/passwd.py* -%{python_sitelib}/%{vdsm_name}/tool/configurators/sanlock.py* -%{python_sitelib}/%{vdsm_name}/tool/configurators/sebool.py* -%{python_sitelib}/%{vdsm_name}/tool/dump_volume_chains.py* -%{python_sitelib}/%{vdsm_name}/tool/network.py* -%{python_sitelib}/%{vdsm_name}/tool/register.py* -%{python_sitelib}/%{vdsm_name}/tool/service.py* -%{python_sitelib}/%{vdsm_name}/tool/transient.py* -%{python_sitelib}/%{vdsm_name}/tool/upgrade.py* -%{python_sitelib}/%{vdsm_name}/tool/vdsm-id.py* -%{python_sitelib}/%{vdsm_name}/tool/xleases.py* -%{python_sitelib}/%{vdsm_name}/virt/__init__.py* -%{python_sitelib}/%{vdsm_name}/virt/collectd.py* -%{python_sitelib}/%{vdsm_name}/virt/displaynetwork.py* -%{python_sitelib}/%{vdsm_name}/virt/drivemonitor.py* -%{python_sitelib}/%{vdsm_name}/virt/domain_descriptor.py* -%{python_sitelib}/%{vdsm_name}/virt/domxml_preprocess.py* -%{python_sitelib}/%{vdsm_name}/virt/events.py* -%{python_sitelib}/%{vdsm_name}/virt/guestagent.py* -%{python_sitelib}/%{vdsm_name}/virt/guestagenthelpers.py* -%{python_sitelib}/%{vdsm_name}/virt/libvirtnetwork.py* -%{python_sitelib}/%{vdsm_name}/virt/libvirtxml.py* -%{python_sitelib}/%{vdsm_name}/virt/metadata.py* -%{python_sitelib}/%{vdsm_name}/virt/migration.py* -%{python_sitelib}/%{vdsm_name}/virt/periodic.py* -%{python_sitelib}/%{vdsm_name}/virt/qemuguestagent.py* -%{python_sitelib}/%{vdsm_name}/virt/recovery.py* -%{python_sitelib}/%{vdsm_name}/virt/sampling.py* -%{python_sitelib}/%{vdsm_name}/virt/saslpasswd2.py* -%{python_sitelib}/%{vdsm_name}/virt/secret.py* -%{python_sitelib}/%{vdsm_name}/virt/utils.py* -%{python_sitelib}/%{vdsm_name}/virt/virdomain.py* -%{python_sitelib}/%{vdsm_name}/virt/vm.py* -%{python_sitelib}/%{vdsm_name}/virt/jobs/__init__.py* -%{python_sitelib}/%{vdsm_name}/virt/jobs/seal.py* -%{python_sitelib}/%{vdsm_name}/virt/vmdevices/__init__.py* -%{python_sitelib}/%{vdsm_name}/virt/vmdevices/common.py* -%{python_sitelib}/%{vdsm_name}/virt/vmdevices/compat.py* -%{python_sitelib}/%{vdsm_name}/virt/vmdevices/core.py* -%{python_sitelib}/%{vdsm_name}/virt/vmdevices/drivename.py* -%{python_sitelib}/%{vdsm_name}/virt/vmdevices/graphics.py* -%{python_sitelib}/%{vdsm_name}/virt/vmdevices/hostdevice.py* -%{python_sitelib}/%{vdsm_name}/virt/vmdevices/hwclass.py* -%{python_sitelib}/%{vdsm_name}/virt/vmdevices/lease.py* -%{python_sitelib}/%{vdsm_name}/virt/vmdevices/lookup.py* -%{python_sitelib}/%{vdsm_name}/virt/vmdevices/network.py* -%{python_sitelib}/%{vdsm_name}/virt/vmdevices/storage.py* -%{python_sitelib}/%{vdsm_name}/virt/vmdevices/storagexml.py* -%{python_sitelib}/%{vdsm_name}/virt/vmchannels.py* -%{python_sitelib}/%{vdsm_name}/virt/vmexitreason.py* -%{python_sitelib}/%{vdsm_name}/virt/vmpowerdown.py* -%{python_sitelib}/%{vdsm_name}/virt/vmstats.py* -%{python_sitelib}/%{vdsm_name}/virt/vmstatus.py* -%{python_sitelib}/%{vdsm_name}/virt/vmtune.py* -%{python_sitelib}/%{vdsm_name}/virt/vmxml.py* -%{python_sitelib}/%{vdsm_name}/virt/xmlconstants.py* +%{python2_sitelib}/%{vdsm_name}/gluster/__init__.py* +%{python2_sitelib}/%{vdsm_name}/gluster/cli.py* +%{python2_sitelib}/%{vdsm_name}/gluster/exception.py* +%{python2_sitelib}/%{vdsm_name}/health.py* +%{python2_sitelib}/%{vdsm_name}/hugepages.py* +%{python2_sitelib}/%{vdsm_name}/jobs.py* +%{python2_sitelib}/%{vdsm_name}/jsonrpcvdscli.py* +%{python2_sitelib}/%{vdsm_name}/kvm2ovirt.py* +%{python2_sitelib}/%{vdsm_name}/logUtils.py* +%{python2_sitelib}/%{vdsm_name}/machinetype.py* +%{python2_sitelib}/%{vdsm_name}/metrics/*.py* +%{python2_sitelib}/%{vdsm_name}/moduleloader.py* +%{python2_sitelib}/%{vdsm_name}/momIF.py* +%{python2_sitelib}/%{vdsm_name}/mkimage.py* +%{python2_sitelib}/%{vdsm_name}/numa.py* +%{python2_sitelib}/%{vdsm_name}/osinfo.py* +%{python2_sitelib}/%{vdsm_name}/ppc64HardwareInfo.py* +%{python2_sitelib}/%{vdsm_name}/profiling/__init__.py* +%{python2_sitelib}/%{vdsm_name}/profiling/cpu.py* +%{python2_sitelib}/%{vdsm_name}/profiling/errors.py* +%{python2_sitelib}/%{vdsm_name}/profiling/memory.py* +%{python2_sitelib}/%{vdsm_name}/profiling/profile.py* +%{python2_sitelib}/%{vdsm_name}/storage/__init__.py* +%{python2_sitelib}/%{vdsm_name}/storage/asyncevent.py* +%{python2_sitelib}/%{vdsm_name}/storage/asyncutils.py* +%{python2_sitelib}/%{vdsm_name}/storage/blkdiscard.py* +%{python2_sitelib}/%{vdsm_name}/storage/blockdev.py* +%{python2_sitelib}/%{vdsm_name}/storage/blockSD.py* +%{python2_sitelib}/%{vdsm_name}/storage/blockVolume.py* +%{python2_sitelib}/%{vdsm_name}/storage/check.py* +%{python2_sitelib}/%{vdsm_name}/storage/clusterlock.py* +%{python2_sitelib}/%{vdsm_name}/storage/compat.py* +%{python2_sitelib}/%{vdsm_name}/storage/constants.py* +%{python2_sitelib}/%{vdsm_name}/storage/curlImgWrap.py* +%{python2_sitelib}/%{vdsm_name}/storage/devicemapper.py* +%{python2_sitelib}/%{vdsm_name}/storage/directio.py* +%{python2_sitelib}/%{vdsm_name}/storage/dispatcher.py* +%{python2_sitelib}/%{vdsm_name}/storage/exception.py* +%{python2_sitelib}/%{vdsm_name}/storage/fallocate.py* +%{python2_sitelib}/%{vdsm_name}/storage/fileSD.py* +%{python2_sitelib}/%{vdsm_name}/storage/fileUtils.py* +%{python2_sitelib}/%{vdsm_name}/storage/fileVolume.py* +%{python2_sitelib}/%{vdsm_name}/storage/formatconverter.py* +%{python2_sitelib}/%{vdsm_name}/storage/fuser.py* +%{python2_sitelib}/%{vdsm_name}/storage/fsutils.py* +%{python2_sitelib}/%{vdsm_name}/storage/glusterSD.py* +%{python2_sitelib}/%{vdsm_name}/storage/glusterVolume.py* +%{python2_sitelib}/%{vdsm_name}/storage/guarded.py* +%{python2_sitelib}/%{vdsm_name}/storage/hba.py* +%{python2_sitelib}/%{vdsm_name}/storage/hsm.py* +%{python2_sitelib}/%{vdsm_name}/storage/image.py* +%{python2_sitelib}/%{vdsm_name}/storage/imageSharing.py* +%{python2_sitelib}/%{vdsm_name}/storage/imagetickets.py* +%{python2_sitelib}/%{vdsm_name}/storage/iscsi.py* +%{python2_sitelib}/%{vdsm_name}/storage/iscsiadm.py* +%{python2_sitelib}/%{vdsm_name}/storage/localFsSD.py* +%{python2_sitelib}/%{vdsm_name}/storage/lvm.env +%{python2_sitelib}/%{vdsm_name}/storage/lvm.py* +%{python2_sitelib}/%{vdsm_name}/storage/lvmconf.py* +%{python2_sitelib}/%{vdsm_name}/storage/lvmfilter.py* +%{python2_sitelib}/%{vdsm_name}/storage/mailbox.py* +%{python2_sitelib}/%{vdsm_name}/storage/managedvolume.py* +%{python2_sitelib}/%{vdsm_name}/storage/managedvolumedb.py* +%{python2_sitelib}/%{vdsm_name}/storage/merge.py* +%{python2_sitelib}/%{vdsm_name}/storage/misc.py* +%{python2_sitelib}/%{vdsm_name}/storage/monitor.py* +%{python2_sitelib}/%{vdsm_name}/storage/mount.py* +%{python2_sitelib}/%{vdsm_name}/storage/mpathhealth.py* +%{python2_sitelib}/%{vdsm_name}/storage/multipath.py* +%{python2_sitelib}/%{vdsm_name}/storage/nbd.py* +%{python2_sitelib}/%{vdsm_name}/storage/nfsSD.py* +%{python2_sitelib}/%{vdsm_name}/storage/nos_brick.py* +%{python2_sitelib}/%{vdsm_name}/storage/operation.py* +%{python2_sitelib}/%{vdsm_name}/storage/outOfProcess.py* +%{python2_sitelib}/%{vdsm_name}/storage/persistent.py* +%{python2_sitelib}/%{vdsm_name}/storage/qemuimg.py* +%{python2_sitelib}/%{vdsm_name}/storage/resourceFactories.py* +%{python2_sitelib}/%{vdsm_name}/storage/resourceManager.py* +%{python2_sitelib}/%{vdsm_name}/storage/rwlock.py* +%{python2_sitelib}/%{vdsm_name}/storage/sd.py* +%{python2_sitelib}/%{vdsm_name}/storage/sdc.py* +%{python2_sitelib}/%{vdsm_name}/storage/securable.py* +%{python2_sitelib}/%{vdsm_name}/storage/sp.py* +%{python2_sitelib}/%{vdsm_name}/storage/spbackends.py* +%{python2_sitelib}/%{vdsm_name}/storage/storageServer.py* +%{python2_sitelib}/%{vdsm_name}/storage/sysfs.py* +%{python2_sitelib}/%{vdsm_name}/storage/task.py* +%{python2_sitelib}/%{vdsm_name}/storage/taskManager.py* +%{python2_sitelib}/%{vdsm_name}/storage/threadPool.py* +%{python2_sitelib}/%{vdsm_name}/storage/types.py* +%{python2_sitelib}/%{vdsm_name}/storage/udev.py* +%{python2_sitelib}/%{vdsm_name}/storage/volume.py* +%{python2_sitelib}/%{vdsm_name}/storage/volumemetadata.py* +%{python2_sitelib}/%{vdsm_name}/storage/workarounds.py* +%{python2_sitelib}/%{vdsm_name}/storage/xlease.py* +%{python2_sitelib}/%{vdsm_name}/storage/sdm/__init__.py* +%{python2_sitelib}/%{vdsm_name}/storage/sdm/volume_info.py* +%{python2_sitelib}/%{vdsm_name}/storage/sdm/api/__init__.py* +%{python2_sitelib}/%{vdsm_name}/storage/sdm/api/amend_volume.py* +%{python2_sitelib}/%{vdsm_name}/storage/sdm/api/base.py* +%{python2_sitelib}/%{vdsm_name}/storage/sdm/api/copy_data.py* +%{python2_sitelib}/%{vdsm_name}/storage/sdm/api/merge.py* +%{python2_sitelib}/%{vdsm_name}/storage/sdm/api/move_device.py* +%{python2_sitelib}/%{vdsm_name}/storage/sdm/api/reduce_domain.py* +%{python2_sitelib}/%{vdsm_name}/storage/sdm/api/sparsify_volume.py* +%{python2_sitelib}/%{vdsm_name}/storage/sdm/api/update_volume.py* +%{python2_sitelib}/%{vdsm_name}/supervdsm_api/__init__.py* +%{python2_sitelib}/%{vdsm_name}/supervdsm_api/managedvolume.py* +%{python2_sitelib}/%{vdsm_name}/supervdsm_api/hwinfo.py* +%{python2_sitelib}/%{vdsm_name}/supervdsm_api/mkimage.py* +%{python2_sitelib}/%{vdsm_name}/supervdsm_api/ksm.py* +%{python2_sitelib}/%{vdsm_name}/supervdsm_api/nbd.py* +%{python2_sitelib}/%{vdsm_name}/supervdsm_api/network.py* +%{python2_sitelib}/%{vdsm_name}/supervdsm_api/saslpasswd2.py* +%{python2_sitelib}/%{vdsm_name}/supervdsm_api/systemctl.py* +%{python2_sitelib}/%{vdsm_name}/supervdsm_api/test.py* +%{python2_sitelib}/%{vdsm_name}/supervdsm_api/udev.py* +%{python2_sitelib}/%{vdsm_name}/supervdsm_api/virt.py* +%{python2_sitelib}/%{vdsm_name}/protocoldetector.py* +%{python2_sitelib}/%{vdsm_name}/schedule.py* +%{python2_sitelib}/%{vdsm_name}/sslutils.py* +%{python2_sitelib}/%{vdsm_name}/supervdsm_server.py* +%{python2_sitelib}/%{vdsm_name}/taskset.py* +%{python2_sitelib}/%{vdsm_name}/throttledlog.py* +%{python2_sitelib}/%{vdsm_name}/utils.py* +%{python2_sitelib}/%{vdsm_name}/v2v.py* +%{python2_sitelib}/%{vdsm_name}/vdsmd.py* +%{python2_sitelib}/%{vdsm_name}/virtsparsify.py* +%{python2_sitelib}/%{vdsm_name}/virtsysprep.py* +%{python2_sitelib}/%{vdsm_name}/tool/__init__.py* +%{python2_sitelib}/%{vdsm_name}/tool/common.py* +%{python2_sitelib}/%{vdsm_name}/tool/check_volume_leases.py* +%{python2_sitelib}/%{vdsm_name}/tool/config_lvm_filter.py* +%{python2_sitelib}/%{vdsm_name}/tool/configfile.py* +%{python2_sitelib}/%{vdsm_name}/tool/confmeta.py* +%{python2_sitelib}/%{vdsm_name}/tool/confutils.py* +%{python2_sitelib}/%{vdsm_name}/tool/dummybr.py* +%{python2_sitelib}/%{vdsm_name}/tool/nwfilter.py* +%{python2_sitelib}/%{vdsm_name}/tool/configurator.py* +%{python2_sitelib}/%{vdsm_name}/tool/configurators/__init__* +%{python2_sitelib}/%{vdsm_name}/tool/configurators/abrt.py* +%{python2_sitelib}/%{vdsm_name}/tool/configurators/bond_defaults.py* +%{python2_sitelib}/%{vdsm_name}/tool/configurators/certificates.py* +%{python2_sitelib}/%{vdsm_name}/tool/configurators/libvirt.py* +%{python2_sitelib}/%{vdsm_name}/tool/configurators/lvm.py* +%{python2_sitelib}/%{vdsm_name}/tool/configurators/managedvolumedb.py* +%{python2_sitelib}/%{vdsm_name}/tool/configurators/multipath.py* +%{python2_sitelib}/%{vdsm_name}/tool/configurators/passwd.py* +%{python2_sitelib}/%{vdsm_name}/tool/configurators/sanlock.py* +%{python2_sitelib}/%{vdsm_name}/tool/configurators/sebool.py* +%{python2_sitelib}/%{vdsm_name}/tool/dump_volume_chains.py* +%{python2_sitelib}/%{vdsm_name}/tool/network.py* +%{python2_sitelib}/%{vdsm_name}/tool/register.py* +%{python2_sitelib}/%{vdsm_name}/tool/service.py* +%{python2_sitelib}/%{vdsm_name}/tool/transient.py* +%{python2_sitelib}/%{vdsm_name}/tool/upgrade.py* +%{python2_sitelib}/%{vdsm_name}/tool/vdsm-id.py* +%{python2_sitelib}/%{vdsm_name}/tool/xleases.py* +%{python2_sitelib}/%{vdsm_name}/virt/__init__.py* +%{python2_sitelib}/%{vdsm_name}/virt/collectd.py* +%{python2_sitelib}/%{vdsm_name}/virt/displaynetwork.py* +%{python2_sitelib}/%{vdsm_name}/virt/drivemonitor.py* +%{python2_sitelib}/%{vdsm_name}/virt/domain_descriptor.py* +%{python2_sitelib}/%{vdsm_name}/virt/domxml_preprocess.py* +%{python2_sitelib}/%{vdsm_name}/virt/events.py* +%{python2_sitelib}/%{vdsm_name}/virt/guestagent.py* +%{python2_sitelib}/%{vdsm_name}/virt/guestagenthelpers.py* +%{python2_sitelib}/%{vdsm_name}/virt/libvirtnetwork.py* +%{python2_sitelib}/%{vdsm_name}/virt/libvirtxml.py* +%{python2_sitelib}/%{vdsm_name}/virt/metadata.py* +%{python2_sitelib}/%{vdsm_name}/virt/migration.py* +%{python2_sitelib}/%{vdsm_name}/virt/periodic.py* +%{python2_sitelib}/%{vdsm_name}/virt/qemuguestagent.py* +%{python2_sitelib}/%{vdsm_name}/virt/recovery.py* +%{python2_sitelib}/%{vdsm_name}/virt/sampling.py* +%{python2_sitelib}/%{vdsm_name}/virt/saslpasswd2.py* +%{python2_sitelib}/%{vdsm_name}/virt/secret.py* +%{python2_sitelib}/%{vdsm_name}/virt/utils.py* +%{python2_sitelib}/%{vdsm_name}/virt/virdomain.py* +%{python2_sitelib}/%{vdsm_name}/virt/vm.py* +%{python2_sitelib}/%{vdsm_name}/virt/jobs/__init__.py* +%{python2_sitelib}/%{vdsm_name}/virt/jobs/seal.py* +%{python2_sitelib}/%{vdsm_name}/virt/vmdevices/__init__.py* +%{python2_sitelib}/%{vdsm_name}/virt/vmdevices/common.py* +%{python2_sitelib}/%{vdsm_name}/virt/vmdevices/compat.py* +%{python2_sitelib}/%{vdsm_name}/virt/vmdevices/core.py* +%{python2_sitelib}/%{vdsm_name}/virt/vmdevices/drivename.py* +%{python2_sitelib}/%{vdsm_name}/virt/vmdevices/graphics.py* +%{python2_sitelib}/%{vdsm_name}/virt/vmdevices/hostdevice.py* +%{python2_sitelib}/%{vdsm_name}/virt/vmdevices/hwclass.py* +%{python2_sitelib}/%{vdsm_name}/virt/vmdevices/lease.py* +%{python2_sitelib}/%{vdsm_name}/virt/vmdevices/lookup.py* +%{python2_sitelib}/%{vdsm_name}/virt/vmdevices/network.py* +%{python2_sitelib}/%{vdsm_name}/virt/vmdevices/storage.py* +%{python2_sitelib}/%{vdsm_name}/virt/vmdevices/storagexml.py* +%{python2_sitelib}/%{vdsm_name}/virt/vmchannels.py* +%{python2_sitelib}/%{vdsm_name}/virt/vmexitreason.py* +%{python2_sitelib}/%{vdsm_name}/virt/vmpowerdown.py* +%{python2_sitelib}/%{vdsm_name}/virt/vmstats.py* +%{python2_sitelib}/%{vdsm_name}/virt/vmstatus.py* +%{python2_sitelib}/%{vdsm_name}/virt/vmtune.py* +%{python2_sitelib}/%{vdsm_name}/virt/vmxml.py* +%{python2_sitelib}/%{vdsm_name}/virt/xmlconstants.py* %files tests %doc %{_datadir}/%{vdsm_name}/tests/README @@ -1531,46 +1532,46 @@ exit 0 %endif %files http -%dir %{python_sitelib}/%{vdsm_name} -%dir %{python_sitelib}/%{vdsm_name}/rpc -%{python_sitelib}/%{vdsm_name}/rpc/http.py* +%dir %{python2_sitelib}/%{vdsm_name} +%dir %{python2_sitelib}/%{vdsm_name}/rpc +%{python2_sitelib}/%{vdsm_name}/rpc/http.py* %files client %{_bindir}/vdsm-client -%dir %{python_sitelib}/vdsmclient -%{python_sitelib}/vdsmclient/__init__.py* -%{python_sitelib}/vdsmclient/client.py* -%{python_sitelib}/yajsonrpc/__init__.py* +%dir %{python2_sitelib}/vdsmclient +%{python2_sitelib}/vdsmclient/__init__.py* +%{python2_sitelib}/vdsmclient/client.py* +%{python2_sitelib}/yajsonrpc/__init__.py* %{_mandir}/man1/vdsm-client.1* %files jsonrpc -%dir %{python_sitelib}/%{vdsm_name} -%dir %{python_sitelib}/%{vdsm_name}/rpc -%{python_sitelib}/%{vdsm_name}/rpc/__init__.py* -%{python_sitelib}/%{vdsm_name}/rpc/bindingjsonrpc.py* -%{python_sitelib}/%{vdsm_name}/rpc/Bridge.py* -%{python_sitelib}/yajsonrpc/__init__.py* -%{python_sitelib}/yajsonrpc/jsonrpcclient.py* +%dir %{python2_sitelib}/%{vdsm_name} +%dir %{python2_sitelib}/%{vdsm_name}/rpc +%{python2_sitelib}/%{vdsm_name}/rpc/__init__.py* +%{python2_sitelib}/%{vdsm_name}/rpc/bindingjsonrpc.py* +%{python2_sitelib}/%{vdsm_name}/rpc/Bridge.py* +%{python2_sitelib}/yajsonrpc/__init__.py* +%{python2_sitelib}/yajsonrpc/jsonrpcclient.py* %files api %doc lib/vdsm/api/vdsm-api.html -%dir %{python_sitelib}/%{vdsm_name} -%dir %{python_sitelib}/%{vdsm_name}/api -%dir %{python_sitelib}/%{vdsm_name}/rpc -%{python_sitelib}/%{vdsm_name}/api/*.py* -%{python_sitelib}/%{vdsm_name}/rpc/vdsm-api.pickle -%{python_sitelib}/%{vdsm_name}/rpc/vdsm-events.pickle +%dir %{python2_sitelib}/%{vdsm_name} +%dir %{python2_sitelib}/%{vdsm_name}/api +%dir %{python2_sitelib}/%{vdsm_name}/rpc +%{python2_sitelib}/%{vdsm_name}/api/*.py* +%{python2_sitelib}/%{vdsm_name}/rpc/vdsm-api.pickle +%{python2_sitelib}/%{vdsm_name}/rpc/vdsm-events.pickle %if ! 0%{?with_gluster_mgmt} -%exclude %{python_sitelib}/%{vdsm_name}/rpc/vdsm-api-gluster.pickle +%exclude %{python2_sitelib}/%{vdsm_name}/rpc/vdsm-api-gluster.pickle %endif %files yajsonrpc -%dir %{python_sitelib}/yajsonrpc -%{python_sitelib}/yajsonrpc/betterAsyncore.py* -%{python_sitelib}/yajsonrpc/exception.py* -%{python_sitelib}/yajsonrpc/stomp.py* -%{python_sitelib}/yajsonrpc/stompclient.py* -%{python_sitelib}/yajsonrpc/stompserver.py* +%dir %{python2_sitelib}/yajsonrpc +%{python2_sitelib}/yajsonrpc/betterAsyncore.py* +%{python2_sitelib}/yajsonrpc/exception.py* +%{python2_sitelib}/yajsonrpc/stomp.py* +%{python2_sitelib}/yajsonrpc/stompclient.py* +%{python2_sitelib}/yajsonrpc/stompserver.py* %files hook-faqemu %license COPYING @@ -1580,21 +1581,21 @@ exit 0 %if 0%{?with_gluster_mgmt} %files gluster %license COPYING -%dir %{python_sitelib}/%{vdsm_name} -%dir %{python_sitelib}/%{vdsm_name}/rpc -%dir %{python_sitelib}/%{vdsm_name}/gluster -%{python_sitelib}/%{vdsm_name}/gluster/api.py* -%{python_sitelib}/%{vdsm_name}/gluster/apiwrapper.py* -%{python_sitelib}/%{vdsm_name}/gluster/events.py* -%{python_sitelib}/%{vdsm_name}/gluster/fstab.py* -%{python_sitelib}/%{vdsm_name}/gluster/fence.py* -%{python_sitelib}/%{vdsm_name}/gluster/gfapi.py* -%{python_sitelib}/%{vdsm_name}/gluster/hooks.py* -%{python_sitelib}/%{vdsm_name}/gluster/services.py* -%{python_sitelib}/%{vdsm_name}/gluster/storagedev.py* -%{python_sitelib}/%{vdsm_name}/gluster/tasks.py* -%{python_sitelib}/%{vdsm_name}/gluster/thinstorage.py* -%{python_sitelib}/%{vdsm_name}/rpc/vdsm-api-gluster.pickle +%dir %{python2_sitelib}/%{vdsm_name} +%dir %{python2_sitelib}/%{vdsm_name}/rpc +%dir %{python2_sitelib}/%{vdsm_name}/gluster +%{python2_sitelib}/%{vdsm_name}/gluster/api.py* +%{python2_sitelib}/%{vdsm_name}/gluster/apiwrapper.py* +%{python2_sitelib}/%{vdsm_name}/gluster/events.py* +%{python2_sitelib}/%{vdsm_name}/gluster/fstab.py* +%{python2_sitelib}/%{vdsm_name}/gluster/fence.py* +%{python2_sitelib}/%{vdsm_name}/gluster/gfapi.py* +%{python2_sitelib}/%{vdsm_name}/gluster/hooks.py* +%{python2_sitelib}/%{vdsm_name}/gluster/services.py* +%{python2_sitelib}/%{vdsm_name}/gluster/storagedev.py* +%{python2_sitelib}/%{vdsm_name}/gluster/tasks.py* +%{python2_sitelib}/%{vdsm_name}/gluster/thinstorage.py* +%{python2_sitelib}/%{vdsm_name}/rpc/vdsm-api-gluster.pickle %endif %changelog From 30079500a20f7dae72c7339b9cbc2298a9874f93 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 27 Jul 2019 02:53:48 +0000 Subject: [PATCH 26/27] - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- vdsm.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vdsm.spec b/vdsm.spec index 01a01f2..2f78d5a 100644 --- a/vdsm.spec +++ b/vdsm.spec @@ -51,7 +51,7 @@ Name: %{vdsm_name} Version: 4.30.17 -Release: 1.git114b4b7%{?dist}%{?extra_release} +Release: 2.git114b4b7%{?dist}%{?extra_release} Summary: Virtual Desktop Server Manager Group: Applications/System @@ -1599,6 +1599,9 @@ exit 0 %endif %changelog +* Sat Jul 27 2019 Fedora Release Engineering - 4.30.17-2.git114b4b7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + * Sun Feb 03 2019 Fedora Release Engineering - 4.18.999-449.git0bb7717 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild From 6f1df621f648aa3b65edfcf3389649a6d13df5d4 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 8 Aug 2019 16:48:01 +0000 Subject: [PATCH 27/27] vdsm fails to build from source: https://bugzilla.redhat.com/show_bug.cgi?id=1676186 --- .gitignore | 3 - dead.package | 1 + fix-unversioned-python-shebangs.patch | 67 - sources | 1 - vdsm.spec | 1647 ------------------------- 5 files changed, 1 insertion(+), 1718 deletions(-) delete mode 100644 .gitignore create mode 100644 dead.package delete mode 100644 fix-unversioned-python-shebangs.patch delete mode 100644 sources delete mode 100644 vdsm.spec diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 94eb06d..0000000 --- a/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -/vdsm-4.18.9.tar.gz -/vdsm-4.18.999.tar.gz -/vdsm-4.30.17.tar.gz diff --git a/dead.package b/dead.package new file mode 100644 index 0000000..9273e84 --- /dev/null +++ b/dead.package @@ -0,0 +1 @@ +vdsm fails to build from source: https://bugzilla.redhat.com/show_bug.cgi?id=1676186 diff --git a/fix-unversioned-python-shebangs.patch b/fix-unversioned-python-shebangs.patch deleted file mode 100644 index 645c653..0000000 --- a/fix-unversioned-python-shebangs.patch +++ /dev/null @@ -1,67 +0,0 @@ -From 7e70f8c91bace85f2b52ec207597414d37073abf Mon Sep 17 00:00:00 2001 -From: Marcin Sobczyk -Date: Wed, 12 Jun 2019 12:42:56 +0200 -Subject: [PATCH] fix unversioned python shebangs - -Change-Id: I52fc2a17a791ac9e60f6d886c6342f3dd5bdea08 ---- - contrib/repostat | 2 +- - tests/profile | 2 +- - tests/profile-analyze | 2 +- - vdsm_hooks/fileinject/before_vm_start.py | 2 +- - vdsm_hooks/macspoof/macspoof_vnic.py | 2 +- - 5 files changed, 5 insertions(+), 5 deletions(-) - -diff --git a/contrib/repostat b/contrib/repostat -index 8a859f512..2f433c25d 100755 ---- a/contrib/repostat -+++ b/contrib/repostat -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/python2 - # - # Copyright 2015-2018 Red Hat, Inc. - # -diff --git a/tests/profile b/tests/profile -index c50a5395c..f2e556ce1 100755 ---- a/tests/profile -+++ b/tests/profile -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/python2 - """ - Log resource usage info. - -diff --git a/tests/profile-analyze b/tests/profile-analyze -index 63370c953..a97815968 100755 ---- a/tests/profile-analyze -+++ b/tests/profile-analyze -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/python2 - """ - Analyze commands profiled using profile tool. - """ -diff --git a/vdsm_hooks/fileinject/before_vm_start.py b/vdsm_hooks/fileinject/before_vm_start.py -index 5763b488d..5be2a7cca 100755 ---- a/vdsm_hooks/fileinject/before_vm_start.py -+++ b/vdsm_hooks/fileinject/before_vm_start.py -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/python2 - - import os - import sys -diff --git a/vdsm_hooks/macspoof/macspoof_vnic.py b/vdsm_hooks/macspoof/macspoof_vnic.py -index 484024403..329d772f6 100755 ---- a/vdsm_hooks/macspoof/macspoof_vnic.py -+++ b/vdsm_hooks/macspoof/macspoof_vnic.py -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/python2 - """ - Removes spoofing filtering, applied on a per vnic basis, - it gets triggered and used by two different events: --- -2.20.1 - diff --git a/sources b/sources deleted file mode 100644 index f0fd516..0000000 --- a/sources +++ /dev/null @@ -1 +0,0 @@ -SHA512 (vdsm-4.30.17.tar.gz) = 1f06c1b99facc9e0f89b35ad9ffa5eaeee39bed5c445afe544ad9df1403c7a564c2d399f8d9385924e1358da36ea9141f10fbcc352d86004367a0799dc095934 diff --git a/vdsm.spec b/vdsm.spec deleted file mode 100644 index 2f78d5a..0000000 --- a/vdsm.spec +++ /dev/null @@ -1,1647 +0,0 @@ -# Packages names -%global vdsm_name vdsm - -# Required users and groups -%global vdsm_user vdsm -%global vdsm_group kvm -%global qemu_user qemu -%global qemu_group qemu -%global snlk_group sanlock -%global snlk_user sanlock -%global cdrom_group cdrom -# Not configurable because owned by ovirt-vmconsole package -%global vmcon_user ovirt-vmconsole -%global vmcon_group ovirt-vmconsole - -# Features -%global with_ovirt_imageio 0 -%global with_ovirt_vmconsole 0 -%global with_gluster_mgmt 0 -%global with_hooks 1 -%global with_vhostmd 1 -%global with_python3 0 - -%ifarch ppc64le -%global with_openvswitch 0 -%else -%global with_openvswitch 1 -%endif - -%if 0%{?centos} || 0%{?fedora} -%global gluster_version 3.12 -%else #rhel -%global gluster_version 3.8 -%endif - -# 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} - -Name: %{vdsm_name} -Version: 4.30.17 -Release: 2.git114b4b7%{?dist}%{?extra_release} -Summary: Virtual Desktop Server Manager - -Group: Applications/System -License: GPLv2+ -Url: http://www.ovirt.org/develop/developer-guide/vdsm/vdsm/ -Source0: %{vdsm_name}-%{version}.tar.gz - -ExclusiveArch: x86_64 %{power64} aarch64 -Patch0: fix-unversioned-python-shebangs.patch - -%{!?_licensedir:%global license %%doc} - -BuildRequires: openssl -BuildRequires: python -BuildRequires: python-six >= 1.9.0 -BuildRequires: python-dateutil -BuildRequires: python-subprocess32 -BuildRequires: python2-devel -BuildRequires: rpm-build -BuildRequires: systemd-units - -# Autotools BuildRequires -%if 0%{?enable_autotools} -BuildRequires: autoconf -BuildRequires: automake -BuildRequires: gettext-devel -BuildRequires: libtool -BuildRequires: util-linux -%endif - -%if 0%{?rhel} -BuildRequires: python-enum34 -%endif - -%if 0%{?fedora} -BuildRequires: python2-enum34 -%endif - -# Numactl is not available on s390[x] and ARM -%ifnarch s390 s390x %{arm} -Requires: numactl -%endif - -%ifarch x86_64 -Requires: python-dmidecode -Requires: dmidecode -Requires: virt-v2v -%endif - -Requires: chrony -Requires: which -Requires: sudo >= 1.7.3 -Requires: logrotate -Requires: lshw -Requires: xz -Requires: python-netaddr -# Requires lstat() support, see https://bugzilla.redhat.com/1560460 -Requires: python2-ioprocess >= 1.1.1 -Requires: python-pthreading >= 0.1.3-3 -Requires: python-six >= 1.9.0 -Requires: python-requests -Requires: rpm-python -Requires: abrt-cli -Requires: abrt-addon-vmcore -Requires: abrt-addon-ccpp -Requires: abrt-addon-python -Requires: curl -Requires: %{name}-http = %{version}-%{release} -Requires: %{name}-jsonrpc = %{version}-%{release} -Requires: safelease >= 1.0-7 -Requires: mom >= 0.5.12 -Requires: util-linux -Requires(pre): shadow-utils - -Obsoletes: %{name}-infra < 4.19 - -%if 0%{?rhel} -# Required for supporting minorversion mount option -# See https://bugzilla.redhat.com/1547681 for details. -Requires: nfs-utils >= 1.3.0-0.48.el7_4.2 -%else # fedora -Requires: nfs-utils -%endif - -%if 0%{?with_ovirt_imageio} -Requires: ovirt-imageio-common -# For GET /tickets/* -Requires: ovirt-imageio-daemon >= 1.2.0 -%endif - -%if 0%{?with_ovirt_vmconsole} -Requires: ovirt-vmconsole >= 1.0.0-0 -%endif - -# Python -# For https://bugzilla.redhat.com/1518676 -%if 0%{?rhel} -Requires: python >= 2.7.5-65.el7 -%else -Requires: python >= 2.7.14-4 -%endif - -Requires: libvirt-client -Requires: libvirt-daemon-config-nwfilter -Requires: libvirt-lock-sanlock - -%if 0%{?rhel} -# 7.6 baseline -Requires: libvirt-python >= 4.5.0-1.el7 -# CVE-2018-12126, CVE-2018-12127, CVE-2018-12130, CVE-2019-11091 -Requires: libvirt-daemon-kvm >= 4.5.0-10.el7_6.9 -%else # fedora -# Required for preventing an HotPlug disk failure due to cgroups. -# See https://bugzilla.redhat.com/1540872 for details. -Requires: libvirt-python >= 3.7.0 -# Required to fix order of VM life cycle events. -# See https://bugzilla.redhat.com/1612943 for details. -%ifnarch s390 s390x -# virt-preview is not available for s390 -Requires: libvirt-daemon-kvm >= 4.9.0-1 -%else -Requires: libvirt-daemon-kvm -%endif -%endif - -# iscsi-intiator versions -Requires: iscsi-initiator-utils >= 6.2.0.873-21 - -Requires: sanlock >= 3.5.0-1, sanlock-python - -# device-mapper-multipath - -%if 0%{?rhel} -# Required for blacklisting multipath devices by protocol. -# See https://bugzilla.redhat.com/1016535 for more details. -Requires: device-mapper-multipath >= 0.4.9-119.el7_5.1 -%endif #rhel - -%if 0%{?fedora} -Requires: device-mapper-multipath >= 0.7.4-3 -%endif - -# augeas - -%if 0%{?rhel} -Requires: python-augeas -%endif - -%if 0%{?fedora} -Requires: python2-augeas -%endif - -Requires: policycoreutils-python -Requires: fence-agents-all -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 -Requires: lvm2 >= 2.02.145 -%endif - -%if 0%{?rhel} -# CVE-2018-12126, CVE-2018-12127, CVE-2018-12130, CVE-2019-11091 -Requires: kernel >= 3.10.0-957.12.2.el7 -Requires: e2fsprogs -Requires: selinux-policy-targeted >= 3.13.1-166.el7_4.3 -%else # fedora -# CVE-2018-12126, CVE-2018-12127, CVE-2018-12130, CVE-2019-11091 -Requires: kernel >= 5.0.16-100 -Requires: e2fsprogs >= 1.41.14 -Requires: policycoreutils-python-utils -Requires: sed >= 4.2.1-10 -Requires: ed -Requires: selinux-policy-targeted >= 3.13-1 -# In order to avoid a policycoreutils bug (rhbz 889698) when selinux is -# disabled we now require the version 2.1.13-55 (or newer) of Fedora. -Requires: policycoreutils >= 2.1.13-55 -%endif - -%if 0%{?rhel} -# CVE-2018-12126, CVE-2018-12127, CVE-2018-12130, CVE-2019-11091 -Requires: qemu-kvm-rhev >= 10:2.12.0-18.el7_6.5 -%else # fedora -# qemu-kvm 2.12 is Fedora 28 virt-preview baseline -# but virt-preview is not available on s390 arch -%ifnarch s390 s390x -Requires: qemu-kvm >= 2:2.12 -%else -Requires: qemu-kvm >= 2:2.11.2 -%endif -%endif - -# 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 -Requires: sos -Requires: tree -Requires: dosfstools -Requires: genisoimage -Requires: libselinux-python >= 2.5-2 -Requires: %{name}-python = %{version}-%{release} -Requires: %{name}-hook-vmfex-dev = %{version}-%{release} -Requires: libguestfs-tools-c - -Requires(post): /usr/sbin/saslpasswd2 - -%if 0%{?fedora} -Requires(post): hostname -%else -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: python-pyudev - -Conflicts: vdsm-hook-sriov -Obsoletes: vdsm-hook-vfio-mdev -Provides: vdsm-hook-vfio-mdev - -%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: PyYAML - -%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: python >= 2.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: python-dateutil -Requires: python-six >= 1.9.0 -Requires: python-subprocess32 -%if 0%{?rhel} -Requires: python-decorator -Requires: python-enum34 -Requires: libvirt-python >= 3.2.0-3.el7_4.1 -%endif -%if 0%{?fedora} -Requires: python2-decorator -Requires: python2-enum34 -Requires: libvirt-python >= 3.7.0 -%endif - -%description common -VDSM libraries that are imported by all subsystems - -%package network -Summary: VDSM network python libraries -Requires: NetworkManager-config-server -Requires: dbus-python -Requires: dhclient -Requires: ethtool -Requires: initscripts -Requires: iproute -%if 0%{?fedora} >= 25 -Requires: iproute-tc -%endif -Requires: libnl3 -Requires: libselinux-python -Requires: lldpad -%if 0%{?with_openvswitch} -Requires: openvswitch >= 2.7.0 -%endif -Requires: python-inotify -Requires: python-ipaddress -Requires: python-netaddr -Requires: python-six -Requires: systemd -Requires: %{name}-common = %{version}-%{release} - -%description network -VDSM network python libraries - -%package python -Summary: VDSM python libraries -Requires: %{name}-api = %{version}-%{release} -BuildArch: noarch -Requires: python-ioprocess >= 0.16.1-1 -Requires: %{name}-common = %{version}-%{release} -Requires: %{name}-network = %{version}-%{release} - -%description python -Shared libraries between the various VDSM packages. - -%post python -# REQUIRED_FOR: Upgrade from 4.14 to 4.17 -# HACK: Remove vdsm python lib __init__ file if installed on old location -# https://bugzilla.redhat.com/show_bug.cgi?id=1279167 -if [ "$1" -ge 2 ]; then - if [ -d "%{python2_sitearch}/%{vdsm_name}" ]; then - logger -t '%{vdsm_name}' \ - 'Disabling old vdsm package in %{python2_sitearch}/%{vdsm_name}.' \ - 'Removing %{python2_sitearch}/%{vdsm_name}/init.py*' - rm -f %{python2_sitearch}/%{vdsm_name}/__init__.py* - fi -fi - -%package tests -Summary: VDSM Test Suite -BuildArch: noarch -Requires: %{name} = %{version}-%{release} -Requires: %{name}-common = %{version}-%{release} -Requires: %{name}-network = %{version}-%{release} -Requires: dracut -Requires: python-nose python-ipaddress -Requires: PyYAML - -%description tests -A test suite for verifying the functionality of a running vdsm instance - -%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} = %{version}-%{release} - -%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} = %{version}-%{release} - -%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 0%{?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-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-macspoof -Summary: Disables MAC spoofing filtering -BuildArch: noarch - -%description hook-macspoof -VDSM hooks which allow to disable mac spoof filtering -either on all the of the VM's interfaces or on -specific vnics. - -%package hook-extnet -Summary: Force a vNIC to connect to a specific libvirt network -BuildArch: noarch -Requires: %{name} = %{version}-%{release} - -%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: python-libguestfs - -%description hook-fileinject -Hook is getting target file name and its content and -create that file in target machine. - -%package hook-floppy -Summary: Allow adding floppy to VM -BuildArch: noarch - -%description hook-floppy -Allow adding floppy to VM - -%package hook-httpsisoboot -Summary: Allow directly booting from an https available ISO -BuildArch: noarch -%if 0%{?rhel} -Requires: qemu-kvm-rhev >= 10:2.1.2-3 -%endif - -%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-numa -Summary: NUMA support for VDSM -BuildArch: noarch - -%description hook-numa -Hooks is getting number/rage of NUMA nodes and NUMA mode, -and update the VM xml. - -%package hook-openstacknet -Summary: OpenStack Network vNICs support for VDSM -BuildArch: noarch - -%description hook-openstacknet -Hook for OpenStack Network vNICs. - -%package hook-pincpu -Summary: Hook pin VM so specific CPUs -BuildArch: noarch - -%description hook-pincpu -pincpu is hook for VDSM. -pincpu enable to pin virtual machine to a specific CPUs. - -%package hook-promisc -Summary: Network interface promiscuous mode support for VDSM -BuildArch: noarch - -%description hook-promisc -VDSM promiscuous mode let user define a VM interface that will capture -all network traffic. - -%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} = %{version}-%{release} -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-vmdisk -Summary: External disk support for VDSM -BuildArch: noarch - -%description hook-vmdisk -Hook adds additional disk image for a VM (raw or qcow2) - -%package hook-fcoe -Summary: Hook to enable FCoE support -BuildArch: noarch -Requires: %{name} = %{version}-%{release} -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. - -%if 0%{?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: python-magic -Requires: PyYAML -%if 0%{?fedora} -Requires: python-blivet1 >= 1.20.4-1 -%else -Requires: python-blivet -%endif -Requires: xfsprogs -%ifarch x86_64 -Requires: vdo -Requires: kmod-kvdo -%endif - - -%description gluster -Gluster plugin enables VDSM to serve Gluster functionalities. -%endif - -%prep -%setup -q - -%patch0 -p1 - -%build -%if 0%{?enable_autotools} -autoreconf -if -%endif - -%configure \ - --with-data-center=/rhev/data-center \ -%if 0%{?with_hooks} - --enable-hooks \ -%endif -%if ! 0%{?with_gluster_mgmt} - --disable-gluster-mgmt \ -%endif -%if ! 0%{?with_python3} - --disable-python3 \ -%endif - --with-smbios-manufacturer='oVirt' \ - --with-smbios-osname='oVirt Node' \ - --with-polkitdir=/usr/share/polkit-1/rules.d \ -%if ! 0%{?with_ovirt_imageio} - --disable-ovirt-imageio \ -%endif -%if ! 0%{?with_openvswitch} - --disable-openvswitch \ -%endif -%if 0%{?with_ovirt_vmconsole} - --with-ovirt-vmconsole-user=%{vmcon_user} \ - --with-ovirt-vmconsole-group=%{vmcon_group} \ -%else - --with-ovirt-vmconsole-user='vdsm' \ - --with-ovirt-vmconsole-group='kvm' \ -%endif - -make - -%install -make DESTDIR=%{buildroot} install - -%pre -# Force standard locale behavior (English) -export LC_ALL=C - -/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} - -# 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:kvm %{_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 || : - -# The following triggers vdsmd.preset file and enables vdsm required services -%systemd_post dev-hugepages1G.mount -%systemd_post vdsmd.service -%systemd_post supervdsmd.service -%systemd_post vdsm-network.service -%systemd_post vdsm-network-init.service -%systemd_post mom-vdsm.service -%systemd_post ksmtuned.service - -# 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 vdsm-network-init.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 2>&1 || : - 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 2>&1 || : - fi - - if /bin/systemctl status vdsm-network >/dev/null 2>&1; then - /bin/systemctl stop vdsm-network >/dev/null 2>&1 || : - fi - - if ! %{_bindir}/vdsm-tool is-configured >/dev/null 2>&1; then - %{_bindir}/vdsm-tool configure --force >/dev/null 2>&1 - fi - - if [ "${supervdsmd_start_required}" = 'yes' ]; then - /bin/systemctl start supervdsmd >/dev/null 2>&1 || : - fi - if [ "${vdsmd_start_required}" = 'yes' ]; then - /bin/systemctl start vdsmd >/dev/null 2>&1 || : - fi -fi -exit 0 - -%files -%doc README.md -%doc lib/vdsm/vdsm.conf.sample -%doc README.logging -%license COPYING -%{_presetdir}/85-vdsmd.preset -%{_unitdir}/dev-hugepages1G.mount -%{_unitdir}/vdsmd.service -%{_unitdir}/vdsm-network.service -%{_unitdir}/vdsm-network-init.service -%{_unitdir}/supervdsmd.service -%{_unitdir}/mom-vdsm.service -%{_sysconfdir}/systemd/system/libvirtd.service.d/unlimited-core.conf - -%dir %attr(-, %{vdsm_user}, %{vdsm_group}) /rhev/data-center -%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}) /rhev/data-center/hsm-tasks -%ghost %dir %attr(-, %{vdsm_user}, %{vdsm_group}) /rhev/data-center/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} -%{_datadir}/%{vdsm_name}/daemonAdapter -%{_datadir}/%{vdsm_name}/sitecustomize.py* -%{_datadir}/%{vdsm_name}/supervdsmd -%{_datadir}/%{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 -%{_tmpfilesdir}/%{vdsm_name}.conf -%{_sysconfdir}/dhcp/dhclient.d/dhclientmon.sh -%{_sysconfdir}/modprobe.d/vdsm-bonding-modprobe.conf -%{_sysconfdir}/NetworkManager/conf.d/vdsm.conf -%{_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}/wait_for_ipv4s -%{_libexecdir}/%{vdsm_name}/spmprotect.sh -%{_libexecdir}/%{vdsm_name}/spmstop.sh -%dir %{_libexecdir}/%{vdsm_name}/hooks -%dir %{_libexecdir}/%{vdsm_name}/hooks/before_device_create -%dir %{_libexecdir}/%{vdsm_name}/hooks/after_device_create -%dir %{_libexecdir}/%{vdsm_name}/hooks/before_device_destroy -%dir %{_libexecdir}/%{vdsm_name}/hooks/after_device_destroy -%dir %{_libexecdir}/%{vdsm_name}/hooks/before_vm_start -%dir %{_libexecdir}/%{vdsm_name}/hooks/after_vm_start -%dir %{_libexecdir}/%{vdsm_name}/hooks/before_vm_cont -%dir %{_libexecdir}/%{vdsm_name}/hooks/after_vm_cont -%dir %{_libexecdir}/%{vdsm_name}/hooks/before_vm_pause -%dir %{_libexecdir}/%{vdsm_name}/hooks/after_vm_pause -%dir %{_libexecdir}/%{vdsm_name}/hooks/before_vm_hibernate -%dir %{_libexecdir}/%{vdsm_name}/hooks/after_vm_hibernate -%dir %{_libexecdir}/%{vdsm_name}/hooks/before_vm_dehibernate -%dir %{_libexecdir}/%{vdsm_name}/hooks/after_vm_dehibernate -%dir %{_libexecdir}/%{vdsm_name}/hooks/before_device_migrate_source -%dir %{_libexecdir}/%{vdsm_name}/hooks/after_device_migrate_source -%dir %{_libexecdir}/%{vdsm_name}/hooks/before_device_migrate_destination -%dir %{_libexecdir}/%{vdsm_name}/hooks/after_device_migrate_destination -%dir %{_libexecdir}/%{vdsm_name}/hooks/before_vm_migrate_source -%dir %{_libexecdir}/%{vdsm_name}/hooks/after_vm_migrate_source -%dir %{_libexecdir}/%{vdsm_name}/hooks/before_vm_migrate_destination -%dir %{_libexecdir}/%{vdsm_name}/hooks/after_vm_migrate_destination -%dir %{_libexecdir}/%{vdsm_name}/hooks/before_vm_destroy -%dir %{_libexecdir}/%{vdsm_name}/hooks/after_vm_destroy -%dir %{_libexecdir}/%{vdsm_name}/hooks/before_vm_set_ticket -%dir %{_libexecdir}/%{vdsm_name}/hooks/after_vm_set_ticket -%dir %{_libexecdir}/%{vdsm_name}/hooks/before_update_device -%dir %{_libexecdir}/%{vdsm_name}/hooks/after_update_device -%dir %{_libexecdir}/%{vdsm_name}/hooks/after_update_device_fail -%dir %{_libexecdir}/%{vdsm_name}/hooks/before_nic_hotplug -%dir %{_libexecdir}/%{vdsm_name}/hooks/after_nic_hotplug -%dir %{_libexecdir}/%{vdsm_name}/hooks/before_nic_hotunplug -%dir %{_libexecdir}/%{vdsm_name}/hooks/after_nic_hotunplug -%dir %{_libexecdir}/%{vdsm_name}/hooks/after_nic_hotplug_fail -%dir %{_libexecdir}/%{vdsm_name}/hooks/after_nic_hotunplug_fail -%dir %{_libexecdir}/%{vdsm_name}/hooks/after_disk_prepare -%dir %{_libexecdir}/%{vdsm_name}/hooks/before_disk_hotplug -%dir %{_libexecdir}/%{vdsm_name}/hooks/after_disk_hotplug -%dir %{_libexecdir}/%{vdsm_name}/hooks/before_disk_hotunplug -%dir %{_libexecdir}/%{vdsm_name}/hooks/after_disk_hotunplug -%dir %{_libexecdir}/%{vdsm_name}/hooks/before_vdsm_start -%dir %{_libexecdir}/%{vdsm_name}/hooks/after_vdsm_stop -%dir %{_libexecdir}/%{vdsm_name}/hooks/before_network_setup -%dir %{_libexecdir}/%{vdsm_name}/hooks/after_network_setup -%dir %{_libexecdir}/%{vdsm_name}/hooks/after_network_setup_fail -%dir %{_libexecdir}/%{vdsm_name}/hooks/before_set_num_of_cpus -%dir %{_libexecdir}/%{vdsm_name}/hooks/after_set_num_of_cpus -%dir %{_libexecdir}/%{vdsm_name}/hooks/before_memory_hotplug -%dir %{_libexecdir}/%{vdsm_name}/hooks/after_memory_hotplug -%dir %{_libexecdir}/%{vdsm_name}/hooks/before_get_vm_stats -%dir %{_libexecdir}/%{vdsm_name}/hooks/after_get_vm_stats -%dir %{_libexecdir}/%{vdsm_name}/hooks/before_get_all_vm_stats -%dir %{_libexecdir}/%{vdsm_name}/hooks/after_get_all_vm_stats -%dir %{_libexecdir}/%{vdsm_name}/hooks/before_get_caps -%dir %{_libexecdir}/%{vdsm_name}/hooks/after_get_caps -%dir %{_libexecdir}/%{vdsm_name}/hooks/before_get_stats -%dir %{_libexecdir}/%{vdsm_name}/hooks/after_get_stats -%dir %{_libexecdir}/%{vdsm_name}/hooks/after_hostdev_list_by_caps -%dir %{_libexecdir}/%{vdsm_name}/hooks/before_ifcfg_write -%dir %{_libexecdir}/%{vdsm_name}/hooks/after_ifcfg_write - -%{_libexecdir}/%{vdsm_name}/get-conf-item -%{python2_sitelib}/sos/plugins/vdsm.py* -%{_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 -%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 %{_localstatedir}/log/%{vdsm_name}/import -%defattr(644, %{vdsm_user}, %{vdsm_group}, -) -%{_datadir}/%{vdsm_name}/lvmlocal.conf -%{_datadir}/%{vdsm_name}/autounattend/Win7.xml -%{_datadir}/%{vdsm_name}/autounattend/Win8.xml -%{_datadir}/%{vdsm_name}/autounattend/Win8.1.xml -%{_datadir}/%{vdsm_name}/autounattend/Win10.xml -%{_datadir}/%{vdsm_name}/autounattend/Win2008.xml -%{_datadir}/%{vdsm_name}/autounattend/Win2008R2.xml -%{_datadir}/%{vdsm_name}/autounattend/Win2012.xml -%{_datadir}/%{vdsm_name}/autounattend/Win2012R2.xml -%{_datadir}/%{vdsm_name}/autounattend/Win2016.xml - -%{_sysconfdir}/yum/pluginconf.d/vdsmupgrade.conf -%{_datadir}/yum-plugins/*.py* - -%files common -%dir %{python2_sitelib}/%{vdsm_name} -%dir %{python2_sitelib}/%{vdsm_name}/common -%dir %{python2_sitelib}/%{vdsm_name}/common/network -%{python2_sitelib}/%{vdsm_name}/__init__.py* -%{python2_sitelib}/%{vdsm_name}/common/*.py* -%{python2_sitelib}/%{vdsm_name}/common/network/*.py* - -%files network -%dir %{python2_sitelib}/%{vdsm_name}/network -%dir %{python2_sitelib}/%{vdsm_name}/network/configurators -%dir %{python2_sitelib}/%{vdsm_name}/network/ip -%dir %{python2_sitelib}/%{vdsm_name}/network/ip/address -%dir %{python2_sitelib}/%{vdsm_name}/network/ip/route -%dir %{python2_sitelib}/%{vdsm_name}/network/ip/rule -%dir %{python2_sitelib}/%{vdsm_name}/network/link -%dir %{python2_sitelib}/%{vdsm_name}/network/link/bond -%dir %{python2_sitelib}/%{vdsm_name}/network/lldp -%dir %{python2_sitelib}/%{vdsm_name}/network/lldpad -%dir %{python2_sitelib}/%{vdsm_name}/network/netinfo -%dir %{python2_sitelib}/%{vdsm_name}/network/netlink -%dir %{python2_sitelib}/%{vdsm_name}/network/netswitch -%dir %{python2_sitelib}/%{vdsm_name}/network/nm -%dir %{python2_sitelib}/%{vdsm_name}/network/nm/nmdbus -%dir %{python2_sitelib}/%{vdsm_name}/network/ovs -%dir %{python2_sitelib}/%{vdsm_name}/network/ovs/driver -%dir %{python2_sitelib}/%{vdsm_name}/network/tc -%{python2_sitelib}/%{vdsm_name}/network/*.py* -%{python2_sitelib}/%{vdsm_name}/network/*/*.py* -%{python2_sitelib}/%{vdsm_name}/network/*/*/*.py* - -%files python -%{_mandir}/man1/vdsm-tool.1* -%{_bindir}/vdsm-tool -%dir %{python2_sitelib}/%{vdsm_name}/gluster -%dir %{python2_sitelib}/%{vdsm_name}/host -%dir %{python2_sitelib}/%{vdsm_name}/metrics -%dir %{python2_sitelib}/%{vdsm_name}/tool -%dir %{python2_sitelib}/%{vdsm_name}/tool/configurators -%dir %{python2_sitelib}/%{vdsm_name}/profiling -%dir %{python2_sitelib}/%{vdsm_name}/storage -%dir %{python2_sitelib}/%{vdsm_name}/supervdsm_api -%dir %{python2_sitelib}/%{vdsm_name}/virt -%dir %{python2_sitelib}/%{vdsm_name}/virt/vmdevices -%{python2_sitelib}/%{vdsm_name}/alignmentScan.py* -%{python2_sitelib}/%{vdsm_name}/API.py* -%{python2_sitelib}/%{vdsm_name}/client.py* -%{python2_sitelib}/%{vdsm_name}/clientIF.py* -%{python2_sitelib}/%{vdsm_name}/hook/*.py* -%{python2_sitelib}/%{vdsm_name}/host/*.py* -%{python2_sitelib}/%{vdsm_name}/config.py* -%{python2_sitelib}/%{vdsm_name}/constants.py* -%{python2_sitelib}/%{vdsm_name}/cpuinfo.py* -%{python2_sitelib}/%{vdsm_name}/dmidecodeUtil.py* -%{python2_sitelib}/%{vdsm_name}/executor.py* -# gluster.exception is used in many places like Bridge.py. So it is required -# even without vdsm-gluster package -%{python2_sitelib}/%{vdsm_name}/gluster/__init__.py* -%{python2_sitelib}/%{vdsm_name}/gluster/cli.py* -%{python2_sitelib}/%{vdsm_name}/gluster/exception.py* -%{python2_sitelib}/%{vdsm_name}/health.py* -%{python2_sitelib}/%{vdsm_name}/hugepages.py* -%{python2_sitelib}/%{vdsm_name}/jobs.py* -%{python2_sitelib}/%{vdsm_name}/jsonrpcvdscli.py* -%{python2_sitelib}/%{vdsm_name}/kvm2ovirt.py* -%{python2_sitelib}/%{vdsm_name}/logUtils.py* -%{python2_sitelib}/%{vdsm_name}/machinetype.py* -%{python2_sitelib}/%{vdsm_name}/metrics/*.py* -%{python2_sitelib}/%{vdsm_name}/moduleloader.py* -%{python2_sitelib}/%{vdsm_name}/momIF.py* -%{python2_sitelib}/%{vdsm_name}/mkimage.py* -%{python2_sitelib}/%{vdsm_name}/numa.py* -%{python2_sitelib}/%{vdsm_name}/osinfo.py* -%{python2_sitelib}/%{vdsm_name}/ppc64HardwareInfo.py* -%{python2_sitelib}/%{vdsm_name}/profiling/__init__.py* -%{python2_sitelib}/%{vdsm_name}/profiling/cpu.py* -%{python2_sitelib}/%{vdsm_name}/profiling/errors.py* -%{python2_sitelib}/%{vdsm_name}/profiling/memory.py* -%{python2_sitelib}/%{vdsm_name}/profiling/profile.py* -%{python2_sitelib}/%{vdsm_name}/storage/__init__.py* -%{python2_sitelib}/%{vdsm_name}/storage/asyncevent.py* -%{python2_sitelib}/%{vdsm_name}/storage/asyncutils.py* -%{python2_sitelib}/%{vdsm_name}/storage/blkdiscard.py* -%{python2_sitelib}/%{vdsm_name}/storage/blockdev.py* -%{python2_sitelib}/%{vdsm_name}/storage/blockSD.py* -%{python2_sitelib}/%{vdsm_name}/storage/blockVolume.py* -%{python2_sitelib}/%{vdsm_name}/storage/check.py* -%{python2_sitelib}/%{vdsm_name}/storage/clusterlock.py* -%{python2_sitelib}/%{vdsm_name}/storage/compat.py* -%{python2_sitelib}/%{vdsm_name}/storage/constants.py* -%{python2_sitelib}/%{vdsm_name}/storage/curlImgWrap.py* -%{python2_sitelib}/%{vdsm_name}/storage/devicemapper.py* -%{python2_sitelib}/%{vdsm_name}/storage/directio.py* -%{python2_sitelib}/%{vdsm_name}/storage/dispatcher.py* -%{python2_sitelib}/%{vdsm_name}/storage/exception.py* -%{python2_sitelib}/%{vdsm_name}/storage/fallocate.py* -%{python2_sitelib}/%{vdsm_name}/storage/fileSD.py* -%{python2_sitelib}/%{vdsm_name}/storage/fileUtils.py* -%{python2_sitelib}/%{vdsm_name}/storage/fileVolume.py* -%{python2_sitelib}/%{vdsm_name}/storage/formatconverter.py* -%{python2_sitelib}/%{vdsm_name}/storage/fuser.py* -%{python2_sitelib}/%{vdsm_name}/storage/fsutils.py* -%{python2_sitelib}/%{vdsm_name}/storage/glusterSD.py* -%{python2_sitelib}/%{vdsm_name}/storage/glusterVolume.py* -%{python2_sitelib}/%{vdsm_name}/storage/guarded.py* -%{python2_sitelib}/%{vdsm_name}/storage/hba.py* -%{python2_sitelib}/%{vdsm_name}/storage/hsm.py* -%{python2_sitelib}/%{vdsm_name}/storage/image.py* -%{python2_sitelib}/%{vdsm_name}/storage/imageSharing.py* -%{python2_sitelib}/%{vdsm_name}/storage/imagetickets.py* -%{python2_sitelib}/%{vdsm_name}/storage/iscsi.py* -%{python2_sitelib}/%{vdsm_name}/storage/iscsiadm.py* -%{python2_sitelib}/%{vdsm_name}/storage/localFsSD.py* -%{python2_sitelib}/%{vdsm_name}/storage/lvm.env -%{python2_sitelib}/%{vdsm_name}/storage/lvm.py* -%{python2_sitelib}/%{vdsm_name}/storage/lvmconf.py* -%{python2_sitelib}/%{vdsm_name}/storage/lvmfilter.py* -%{python2_sitelib}/%{vdsm_name}/storage/mailbox.py* -%{python2_sitelib}/%{vdsm_name}/storage/managedvolume.py* -%{python2_sitelib}/%{vdsm_name}/storage/managedvolumedb.py* -%{python2_sitelib}/%{vdsm_name}/storage/merge.py* -%{python2_sitelib}/%{vdsm_name}/storage/misc.py* -%{python2_sitelib}/%{vdsm_name}/storage/monitor.py* -%{python2_sitelib}/%{vdsm_name}/storage/mount.py* -%{python2_sitelib}/%{vdsm_name}/storage/mpathhealth.py* -%{python2_sitelib}/%{vdsm_name}/storage/multipath.py* -%{python2_sitelib}/%{vdsm_name}/storage/nbd.py* -%{python2_sitelib}/%{vdsm_name}/storage/nfsSD.py* -%{python2_sitelib}/%{vdsm_name}/storage/nos_brick.py* -%{python2_sitelib}/%{vdsm_name}/storage/operation.py* -%{python2_sitelib}/%{vdsm_name}/storage/outOfProcess.py* -%{python2_sitelib}/%{vdsm_name}/storage/persistent.py* -%{python2_sitelib}/%{vdsm_name}/storage/qemuimg.py* -%{python2_sitelib}/%{vdsm_name}/storage/resourceFactories.py* -%{python2_sitelib}/%{vdsm_name}/storage/resourceManager.py* -%{python2_sitelib}/%{vdsm_name}/storage/rwlock.py* -%{python2_sitelib}/%{vdsm_name}/storage/sd.py* -%{python2_sitelib}/%{vdsm_name}/storage/sdc.py* -%{python2_sitelib}/%{vdsm_name}/storage/securable.py* -%{python2_sitelib}/%{vdsm_name}/storage/sp.py* -%{python2_sitelib}/%{vdsm_name}/storage/spbackends.py* -%{python2_sitelib}/%{vdsm_name}/storage/storageServer.py* -%{python2_sitelib}/%{vdsm_name}/storage/sysfs.py* -%{python2_sitelib}/%{vdsm_name}/storage/task.py* -%{python2_sitelib}/%{vdsm_name}/storage/taskManager.py* -%{python2_sitelib}/%{vdsm_name}/storage/threadPool.py* -%{python2_sitelib}/%{vdsm_name}/storage/types.py* -%{python2_sitelib}/%{vdsm_name}/storage/udev.py* -%{python2_sitelib}/%{vdsm_name}/storage/volume.py* -%{python2_sitelib}/%{vdsm_name}/storage/volumemetadata.py* -%{python2_sitelib}/%{vdsm_name}/storage/workarounds.py* -%{python2_sitelib}/%{vdsm_name}/storage/xlease.py* -%{python2_sitelib}/%{vdsm_name}/storage/sdm/__init__.py* -%{python2_sitelib}/%{vdsm_name}/storage/sdm/volume_info.py* -%{python2_sitelib}/%{vdsm_name}/storage/sdm/api/__init__.py* -%{python2_sitelib}/%{vdsm_name}/storage/sdm/api/amend_volume.py* -%{python2_sitelib}/%{vdsm_name}/storage/sdm/api/base.py* -%{python2_sitelib}/%{vdsm_name}/storage/sdm/api/copy_data.py* -%{python2_sitelib}/%{vdsm_name}/storage/sdm/api/merge.py* -%{python2_sitelib}/%{vdsm_name}/storage/sdm/api/move_device.py* -%{python2_sitelib}/%{vdsm_name}/storage/sdm/api/reduce_domain.py* -%{python2_sitelib}/%{vdsm_name}/storage/sdm/api/sparsify_volume.py* -%{python2_sitelib}/%{vdsm_name}/storage/sdm/api/update_volume.py* -%{python2_sitelib}/%{vdsm_name}/supervdsm_api/__init__.py* -%{python2_sitelib}/%{vdsm_name}/supervdsm_api/managedvolume.py* -%{python2_sitelib}/%{vdsm_name}/supervdsm_api/hwinfo.py* -%{python2_sitelib}/%{vdsm_name}/supervdsm_api/mkimage.py* -%{python2_sitelib}/%{vdsm_name}/supervdsm_api/ksm.py* -%{python2_sitelib}/%{vdsm_name}/supervdsm_api/nbd.py* -%{python2_sitelib}/%{vdsm_name}/supervdsm_api/network.py* -%{python2_sitelib}/%{vdsm_name}/supervdsm_api/saslpasswd2.py* -%{python2_sitelib}/%{vdsm_name}/supervdsm_api/systemctl.py* -%{python2_sitelib}/%{vdsm_name}/supervdsm_api/test.py* -%{python2_sitelib}/%{vdsm_name}/supervdsm_api/udev.py* -%{python2_sitelib}/%{vdsm_name}/supervdsm_api/virt.py* -%{python2_sitelib}/%{vdsm_name}/protocoldetector.py* -%{python2_sitelib}/%{vdsm_name}/schedule.py* -%{python2_sitelib}/%{vdsm_name}/sslutils.py* -%{python2_sitelib}/%{vdsm_name}/supervdsm_server.py* -%{python2_sitelib}/%{vdsm_name}/taskset.py* -%{python2_sitelib}/%{vdsm_name}/throttledlog.py* -%{python2_sitelib}/%{vdsm_name}/utils.py* -%{python2_sitelib}/%{vdsm_name}/v2v.py* -%{python2_sitelib}/%{vdsm_name}/vdsmd.py* -%{python2_sitelib}/%{vdsm_name}/virtsparsify.py* -%{python2_sitelib}/%{vdsm_name}/virtsysprep.py* -%{python2_sitelib}/%{vdsm_name}/tool/__init__.py* -%{python2_sitelib}/%{vdsm_name}/tool/common.py* -%{python2_sitelib}/%{vdsm_name}/tool/check_volume_leases.py* -%{python2_sitelib}/%{vdsm_name}/tool/config_lvm_filter.py* -%{python2_sitelib}/%{vdsm_name}/tool/configfile.py* -%{python2_sitelib}/%{vdsm_name}/tool/confmeta.py* -%{python2_sitelib}/%{vdsm_name}/tool/confutils.py* -%{python2_sitelib}/%{vdsm_name}/tool/dummybr.py* -%{python2_sitelib}/%{vdsm_name}/tool/nwfilter.py* -%{python2_sitelib}/%{vdsm_name}/tool/configurator.py* -%{python2_sitelib}/%{vdsm_name}/tool/configurators/__init__* -%{python2_sitelib}/%{vdsm_name}/tool/configurators/abrt.py* -%{python2_sitelib}/%{vdsm_name}/tool/configurators/bond_defaults.py* -%{python2_sitelib}/%{vdsm_name}/tool/configurators/certificates.py* -%{python2_sitelib}/%{vdsm_name}/tool/configurators/libvirt.py* -%{python2_sitelib}/%{vdsm_name}/tool/configurators/lvm.py* -%{python2_sitelib}/%{vdsm_name}/tool/configurators/managedvolumedb.py* -%{python2_sitelib}/%{vdsm_name}/tool/configurators/multipath.py* -%{python2_sitelib}/%{vdsm_name}/tool/configurators/passwd.py* -%{python2_sitelib}/%{vdsm_name}/tool/configurators/sanlock.py* -%{python2_sitelib}/%{vdsm_name}/tool/configurators/sebool.py* -%{python2_sitelib}/%{vdsm_name}/tool/dump_volume_chains.py* -%{python2_sitelib}/%{vdsm_name}/tool/network.py* -%{python2_sitelib}/%{vdsm_name}/tool/register.py* -%{python2_sitelib}/%{vdsm_name}/tool/service.py* -%{python2_sitelib}/%{vdsm_name}/tool/transient.py* -%{python2_sitelib}/%{vdsm_name}/tool/upgrade.py* -%{python2_sitelib}/%{vdsm_name}/tool/vdsm-id.py* -%{python2_sitelib}/%{vdsm_name}/tool/xleases.py* -%{python2_sitelib}/%{vdsm_name}/virt/__init__.py* -%{python2_sitelib}/%{vdsm_name}/virt/collectd.py* -%{python2_sitelib}/%{vdsm_name}/virt/displaynetwork.py* -%{python2_sitelib}/%{vdsm_name}/virt/drivemonitor.py* -%{python2_sitelib}/%{vdsm_name}/virt/domain_descriptor.py* -%{python2_sitelib}/%{vdsm_name}/virt/domxml_preprocess.py* -%{python2_sitelib}/%{vdsm_name}/virt/events.py* -%{python2_sitelib}/%{vdsm_name}/virt/guestagent.py* -%{python2_sitelib}/%{vdsm_name}/virt/guestagenthelpers.py* -%{python2_sitelib}/%{vdsm_name}/virt/libvirtnetwork.py* -%{python2_sitelib}/%{vdsm_name}/virt/libvirtxml.py* -%{python2_sitelib}/%{vdsm_name}/virt/metadata.py* -%{python2_sitelib}/%{vdsm_name}/virt/migration.py* -%{python2_sitelib}/%{vdsm_name}/virt/periodic.py* -%{python2_sitelib}/%{vdsm_name}/virt/qemuguestagent.py* -%{python2_sitelib}/%{vdsm_name}/virt/recovery.py* -%{python2_sitelib}/%{vdsm_name}/virt/sampling.py* -%{python2_sitelib}/%{vdsm_name}/virt/saslpasswd2.py* -%{python2_sitelib}/%{vdsm_name}/virt/secret.py* -%{python2_sitelib}/%{vdsm_name}/virt/utils.py* -%{python2_sitelib}/%{vdsm_name}/virt/virdomain.py* -%{python2_sitelib}/%{vdsm_name}/virt/vm.py* -%{python2_sitelib}/%{vdsm_name}/virt/jobs/__init__.py* -%{python2_sitelib}/%{vdsm_name}/virt/jobs/seal.py* -%{python2_sitelib}/%{vdsm_name}/virt/vmdevices/__init__.py* -%{python2_sitelib}/%{vdsm_name}/virt/vmdevices/common.py* -%{python2_sitelib}/%{vdsm_name}/virt/vmdevices/compat.py* -%{python2_sitelib}/%{vdsm_name}/virt/vmdevices/core.py* -%{python2_sitelib}/%{vdsm_name}/virt/vmdevices/drivename.py* -%{python2_sitelib}/%{vdsm_name}/virt/vmdevices/graphics.py* -%{python2_sitelib}/%{vdsm_name}/virt/vmdevices/hostdevice.py* -%{python2_sitelib}/%{vdsm_name}/virt/vmdevices/hwclass.py* -%{python2_sitelib}/%{vdsm_name}/virt/vmdevices/lease.py* -%{python2_sitelib}/%{vdsm_name}/virt/vmdevices/lookup.py* -%{python2_sitelib}/%{vdsm_name}/virt/vmdevices/network.py* -%{python2_sitelib}/%{vdsm_name}/virt/vmdevices/storage.py* -%{python2_sitelib}/%{vdsm_name}/virt/vmdevices/storagexml.py* -%{python2_sitelib}/%{vdsm_name}/virt/vmchannels.py* -%{python2_sitelib}/%{vdsm_name}/virt/vmexitreason.py* -%{python2_sitelib}/%{vdsm_name}/virt/vmpowerdown.py* -%{python2_sitelib}/%{vdsm_name}/virt/vmstats.py* -%{python2_sitelib}/%{vdsm_name}/virt/vmstatus.py* -%{python2_sitelib}/%{vdsm_name}/virt/vmtune.py* -%{python2_sitelib}/%{vdsm_name}/virt/vmxml.py* -%{python2_sitelib}/%{vdsm_name}/virt/xmlconstants.py* - -%files tests -%doc %{_datadir}/%{vdsm_name}/tests/README -%dir %{_datadir}/%{vdsm_name} -%dir %{_datadir}/%{vdsm_name}/tests -%dir %{_datadir}/%{vdsm_name}/tests/common -%dir %{_datadir}/%{vdsm_name}/tests/cpuinfo -%dir %{_datadir}/%{vdsm_name}/tests/functional -%dir %{_datadir}/%{vdsm_name}/tests/devices -%dir %{_datadir}/%{vdsm_name}/tests/devices/data -%dir %{_datadir}/%{vdsm_name}/tests/devices/parsing -%dir %{_datadir}/%{vdsm_name}/tests/integration -%dir %{_datadir}/%{vdsm_name}/tests/network -%dir %{_datadir}/%{vdsm_name}/tests/network/functional -%dir %{_datadir}/%{vdsm_name}/tests/network/integration -%dir %{_datadir}/%{vdsm_name}/tests/network/integration/ovs -%dir %{_datadir}/%{vdsm_name}/tests/network/unit -%dir %{_datadir}/%{vdsm_name}/tests/network/unit/ovs -%dir %{_datadir}/%{vdsm_name}/tests/network/static -%dir %{_datadir}/%{vdsm_name}/tests/storage -%{_datadir}/%{vdsm_name}/tests/*.py* -%{_datadir}/%{vdsm_name}/tests/cpu_info.out -%{_datadir}/%{vdsm_name}/tests/caps_libvirt_intel_E5649.out -%{_datadir}/%{vdsm_name}/tests/caps_libvirt_amd_6274.out -%{_datadir}/%{vdsm_name}/tests/caps_libvirt_ibm_S822L.out -%{_datadir}/%{vdsm_name}/tests/caps_libvirt_ibm_S822L_le.out -%{_datadir}/%{vdsm_name}/tests/caps_libvirt_intel_E31220.out -%{_datadir}/%{vdsm_name}/tests/caps_libvirt_intel_E5606.out -%{_datadir}/%{vdsm_name}/tests/caps_libvirt_intel_i73770.out -%{_datadir}/%{vdsm_name}/tests/caps_libvirt_intel_i73770_nosnap.out -%{_datadir}/%{vdsm_name}/tests/caps_libvirt_multiqemu.out -%{_datadir}/%{vdsm_name}/tests/caps_libvirt_s390x.out -%{_datadir}/%{vdsm_name}/tests/caps_numactl_4_nodes.out -%{_datadir}/%{vdsm_name}/tests/domcaps_libvirt_ppc64le.out -%{_datadir}/%{vdsm_name}/tests/domcaps_libvirt_s390x.out -%{_datadir}/%{vdsm_name}/tests/domcaps_libvirt_x86_64.out -%{_datadir}/%{vdsm_name}/tests/common/*.py* -%{_datadir}/%{vdsm_name}/tests/cpuinfo/*.out -%{_datadir}/%{vdsm_name}/tests/check_distpkg.sh -%{_datadir}/%{vdsm_name}/tests/check_rpms.sh -%{_datadir}/%{vdsm_name}/tests/fake-ssh-add -%{_datadir}/%{vdsm_name}/tests/fake-ssh-agent -%{_datadir}/%{vdsm_name}/tests/fake-virt-sysprep -%{_datadir}/%{vdsm_name}/tests/fake-virt-v2v -%{_datadir}/%{vdsm_name}/tests/fake-virt-v2v.out -%{_datadir}/%{vdsm_name}/tests/fake-virt-v2v.err -%{_datadir}/%{vdsm_name}/tests/devices/*.py* -%{_datadir}/%{vdsm_name}/tests/devices/parsing/*.py* -%{_datadir}/%{vdsm_name}/tests/devices/data/*.xml -%{_datadir}/%{vdsm_name}/tests/mem_info.out -%{_datadir}/%{vdsm_name}/tests/network/*.py* -%{_datadir}/%{vdsm_name}/tests/network/netmaskconversions -%{_datadir}/%{vdsm_name}/tests/network/tc_filter_show.out -%{_datadir}/%{vdsm_name}/tests/network/functional/*.py* -%{_datadir}/%{vdsm_name}/tests/network/integration/*.py* -%{_datadir}/%{vdsm_name}/tests/network/integration/ovs/*.py* -%{_datadir}/%{vdsm_name}/tests/network/unit/*.py* -%{_datadir}/%{vdsm_name}/tests/network/unit/ovs/*.py* -%{_datadir}/%{vdsm_name}/tests/network/static/*.json -%{_datadir}/%{vdsm_name}/tests/network/static/ip_route_show_table_all.out -%{_datadir}/%{vdsm_name}/tests/storage/*.py* -%{_datadir}/%{vdsm_name}/tests/storage/*.out -%{_datadir}/%{vdsm_name}/tests/virt/*.py* -%{_datadir}/%{vdsm_name}/tests/virt/data/*.xml -%{_datadir}/%{vdsm_name}/tests/run_tests.sh -%{_datadir}/%{vdsm_name}/tests/toolTests_abrt-action-save-package-data.conf -%{_datadir}/%{vdsm_name}/tests/toolTests_CCPP.conf -%{_datadir}/%{vdsm_name}/tests/toolTests_abrt.conf -%{_datadir}/%{vdsm_name}/tests/toolTests_empty.conf -%{_datadir}/%{vdsm_name}/tests/toolTests_lconf_ssl.conf -%{_datadir}/%{vdsm_name}/tests/toolTests_libvirtd.conf -%{_datadir}/%{vdsm_name}/tests/toolTests_mtab_1g -%{_datadir}/%{vdsm_name}/tests/toolTests_mtab_default -%{_datadir}/%{vdsm_name}/tests/toolTests_mtab_nohugetlbfs -%{_datadir}/%{vdsm_name}/tests/toolTests_qemu_sanlock.conf -%{_datadir}/%{vdsm_name}/tests/toolTests_qemu_ssl.conf -%{_datadir}/%{vdsm_name}/tests/toolTests_vdsm_no_ssl.conf -%{_datadir}/%{vdsm_name}/tests/toolTests_vdsm_ssl.conf -%{_datadir}/%{vdsm_name}/tests/toolTests_vmcore.conf -%{_datadir}/%{vdsm_name}/tests/glusterGeoRepStatus.xml -%{_datadir}/%{vdsm_name}/tests/glusterVolumeGeoRepConfigList.xml -%{_datadir}/%{vdsm_name}/tests/glusterSnapshotList.xml -%{_datadir}/%{vdsm_name}/tests/glusterSnapshotListEmpty.xml -%{_datadir}/%{vdsm_name}/tests/glusterVolumeProfileInfo.xml -%{_datadir}/%{vdsm_name}/tests/glusterSnapshotConfig.xml -%{_datadir}/%{vdsm_name}/tests/glusterVolumeProfileInfoNfs.xml -%{_datadir}/%{vdsm_name}/tests/glusterVolumeRebalanceStatus.xml -%{_datadir}/%{vdsm_name}/tests/glusterVolumeRemoveBricksStatus.xml -%{_datadir}/%{vdsm_name}/tests/glusterSnapshotRestore.xml -%{_datadir}/%{vdsm_name}/tests/glusterVolumeSnapshotList.xml -%{_datadir}/%{vdsm_name}/tests/glusterVolumeSnapshotListEmpty.xml -%{_datadir}/%{vdsm_name}/tests/glusterVolumeTasks.xml -%{_datadir}/%{vdsm_name}/tests/glusterVolumeHealInfo.xml -%{_datadir}/%{vdsm_name}/tests/functional/*.py* -%{_datadir}/%{vdsm_name}/tests/functional/*.policy -%{_datadir}/%{vdsm_name}/tests/integration/*.py* - -%files hook-openstacknet -%{_sysconfdir}/sudoers.d/50_vdsm_hook_openstacknet -%{_libexecdir}/%{vdsm_name}/hooks/after_device_create/50_openstacknet -%{_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/openstacknet_utils.py* -%{_libexecdir}/%{vdsm_name}/hooks/after_nic_hotplug/50_openstacknet -%{_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/openstacknet_utils.py* -%{_libexecdir}/%{vdsm_name}/hooks/before_device_create/50_openstacknet -%{_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/openstacknet_utils.py* -%{_libexecdir}/%{vdsm_name}/hooks/after_get_caps/50_openstacknet -%{_libexecdir}/%{vdsm_name}/hooks/after_get_caps/openstacknet_utils.py* - -%files hook-macspoof -%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_macspoof -%{_libexecdir}/%{vdsm_name}/hooks/before_device_create/50_macspoof -%{_libexecdir}/%{vdsm_name}/hooks/before_nic_hotplug/50_macspoof - -%if 0%{?with_vhostmd} -%files hook-vhostmd -%license COPYING -%{_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 -%{_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-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 0%{?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* -%{_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-floppy -%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_floppy -%{_libexecdir}/%{vdsm_name}/hooks/before_vm_migrate_source/50_floppy - -%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-numa -%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_numa - -%files hook-pincpu -%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_pincpu - -%files hook-promisc -%{_sysconfdir}/sudoers.d/50_vdsm_hook_promisc -%{_libexecdir}/%{vdsm_name}/hooks/after_vm_start/50_promisc -%{_libexecdir}/%{vdsm_name}/hooks/before_vm_destroy/50_promisc - -%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 - -%files hook-vmdisk -%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_vmdisk -%endif - -%files http -%dir %{python2_sitelib}/%{vdsm_name} -%dir %{python2_sitelib}/%{vdsm_name}/rpc -%{python2_sitelib}/%{vdsm_name}/rpc/http.py* - -%files client -%{_bindir}/vdsm-client -%dir %{python2_sitelib}/vdsmclient -%{python2_sitelib}/vdsmclient/__init__.py* -%{python2_sitelib}/vdsmclient/client.py* -%{python2_sitelib}/yajsonrpc/__init__.py* -%{_mandir}/man1/vdsm-client.1* - -%files jsonrpc -%dir %{python2_sitelib}/%{vdsm_name} -%dir %{python2_sitelib}/%{vdsm_name}/rpc -%{python2_sitelib}/%{vdsm_name}/rpc/__init__.py* -%{python2_sitelib}/%{vdsm_name}/rpc/bindingjsonrpc.py* -%{python2_sitelib}/%{vdsm_name}/rpc/Bridge.py* -%{python2_sitelib}/yajsonrpc/__init__.py* -%{python2_sitelib}/yajsonrpc/jsonrpcclient.py* - -%files api -%doc lib/vdsm/api/vdsm-api.html -%dir %{python2_sitelib}/%{vdsm_name} -%dir %{python2_sitelib}/%{vdsm_name}/api -%dir %{python2_sitelib}/%{vdsm_name}/rpc -%{python2_sitelib}/%{vdsm_name}/api/*.py* -%{python2_sitelib}/%{vdsm_name}/rpc/vdsm-api.pickle -%{python2_sitelib}/%{vdsm_name}/rpc/vdsm-events.pickle -%if ! 0%{?with_gluster_mgmt} -%exclude %{python2_sitelib}/%{vdsm_name}/rpc/vdsm-api-gluster.pickle -%endif - -%files yajsonrpc -%dir %{python2_sitelib}/yajsonrpc -%{python2_sitelib}/yajsonrpc/betterAsyncore.py* -%{python2_sitelib}/yajsonrpc/exception.py* -%{python2_sitelib}/yajsonrpc/stomp.py* -%{python2_sitelib}/yajsonrpc/stompclient.py* -%{python2_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 0%{?with_gluster_mgmt} -%files gluster -%license COPYING -%dir %{python2_sitelib}/%{vdsm_name} -%dir %{python2_sitelib}/%{vdsm_name}/rpc -%dir %{python2_sitelib}/%{vdsm_name}/gluster -%{python2_sitelib}/%{vdsm_name}/gluster/api.py* -%{python2_sitelib}/%{vdsm_name}/gluster/apiwrapper.py* -%{python2_sitelib}/%{vdsm_name}/gluster/events.py* -%{python2_sitelib}/%{vdsm_name}/gluster/fstab.py* -%{python2_sitelib}/%{vdsm_name}/gluster/fence.py* -%{python2_sitelib}/%{vdsm_name}/gluster/gfapi.py* -%{python2_sitelib}/%{vdsm_name}/gluster/hooks.py* -%{python2_sitelib}/%{vdsm_name}/gluster/services.py* -%{python2_sitelib}/%{vdsm_name}/gluster/storagedev.py* -%{python2_sitelib}/%{vdsm_name}/gluster/tasks.py* -%{python2_sitelib}/%{vdsm_name}/gluster/thinstorage.py* -%{python2_sitelib}/%{vdsm_name}/rpc/vdsm-api-gluster.pickle -%endif - -%changelog -* Sat Jul 27 2019 Fedora Release Engineering - 4.30.17-2.git114b4b7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Sun Feb 03 2019 Fedora Release Engineering - 4.18.999-449.git0bb7717 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Sat Jul 14 2018 Fedora Release Engineering - 4.18.999-448.git0bb7717 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Fri Feb 09 2018 Fedora Release Engineering - 4.18.999-447.git0bb7717 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Mon Aug 28 2017 Zbigniew Jędrzejewski-Szmek - 4.18.999-446.git0bb7717 -- Drop dependency on python-argparse (part of python stdlib) - -* Sat Aug 19 2017 Zbigniew Jędrzejewski-Szmek - 4.18.999-445.git0bb7717 -- Python 2 binary package renamed to python2-vdsm - See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3 - -* Thu Aug 03 2017 Fedora Release Engineering - 4.18.999-444.git0bb7717 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Thu Jul 27 2017 Fedora Release Engineering - 4.18.999-443.git0bb7717 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Sat Feb 11 2017 Fedora Release Engineering - 4.18.999-442.git0bb7717 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Wed Aug 31 2016 Peter Robinson 4.18.999-441 -- Build on aarch64 and ppc64le - -* Wed Aug 03 2016 Yaniv Bronhaim - 4.18.999 -- Re-review of vdsm.spec to return it to fedora Bug #1361659 - -* Sun Oct 13 2013 Yaniv Bronhaim - 4.13.0 -- Removing vdsm-python-cpopen from the spec -- Adding dependency on formal cpopen package - -* Sun Apr 07 2013 Yaniv Bronhaim - 4.9.0-1 -- Adding cpopen package - -* Wed Oct 12 2011 Federico Simoncelli - 4.9.0-0 -- Initial upstream release - -* Thu Nov 02 2006 Simon Grinberg - 0.0-1 -- Initial build