[libvirt PATCH 0/2] remove sheepdog support

This patch series depends on [1] otherwise you will have conflicts when applying the second patch. [1] <https://listman.redhat.com/archives/libvir-list/2021-April/msg00735.html> Pavel Hrdina (2): tests: use RBD instead of sheepdog remove sheepdog support from libvirt docs/formatdomain.rst | 13 +- docs/formatstorage.html.in | 5 +- docs/kbase/rpm-deployment.rst | 6 - docs/manpages/virsh.rst | 7 +- docs/schemas/domaincommon.rng | 1 - docs/schemas/storagepool.rng | 22 - docs/storage.html.in | 59 --- libvirt.spec.in | 36 -- meson.build | 6 - meson_options.txt | 1 - mingw-libvirt.spec.in | 1 - po/POTFILES.in | 1 - src/conf/domain_conf.c | 1 - src/conf/storage_conf.c | 12 +- src/conf/storage_conf.h | 2 - src/conf/storage_source_conf.c | 4 - src/conf/storage_source_conf.h | 1 - src/conf/virstorageobj.c | 9 - src/libvirt-storage.c | 1 - src/libxl/libxl_conf.c | 1 - src/libxl/xen_xl.c | 1 - src/qemu/qemu_block.c | 41 -- src/qemu/qemu_command.c | 20 - src/qemu/qemu_domain.c | 1 - src/qemu/qemu_snapshot.c | 3 - src/storage/meson.build | 25 -- src/storage/storage_backend.c | 6 - src/storage/storage_backend_sheepdog.c | 378 ------------------ src/storage/storage_backend_sheepdog.h | 25 -- src/storage/storage_backend_sheepdog_priv.h | 30 -- src/storage/storage_driver.c | 1 - .../storage_source_backingstore.c | 44 -- src/test/test_driver.c | 1 - tests/meson.build | 6 - tests/qemublocktest.c | 4 - .../imagecreate/network-sheepdog-qcow2.json | 20 - .../imagecreate/network-sheepdog-qcow2.xml | 12 - tests/qemusecuritytest.c | 1 - tests/qemuxml2argvdata/boot-dev+order.xml | 2 +- tests/qemuxml2argvdata/boot-order.args | 2 +- tests/qemuxml2argvdata/boot-order.xml | 2 +- .../disk-network-sheepdog.args | 30 -- .../disk-network-sheepdog.x86_64-2.12.0.args | 34 -- .../disk-network-sheepdog.x86_64-latest.args | 38 -- .../disk-network-sheepdog.xml | 37 -- tests/qemuxml2argvtest.c | 3 - tests/qemuxml2xmloutdata/boot-order.xml | 2 +- .../disk-network-sheepdog.xml | 43 -- tests/qemuxml2xmltest.c | 1 - tests/storagebackendsheepdogtest.c | 206 ---------- .../storagepoolcapsschemadata/poolcaps-fs.xml | 2 - .../poolcaps-full.xml | 2 - tests/storagepoolxml2argvtest.c | 2 - tests/storagepoolxml2xmlin/pool-sheepdog.xml | 8 - tests/storagepoolxml2xmlout/pool-sheepdog.xml | 11 - tests/storagepoolxml2xmltest.c | 1 - tests/storagevolxml2xmlin/vol-sheepdog.xml | 10 - tests/storagevolxml2xmlout/vol-sheepdog.xml | 8 - tests/storagevolxml2xmltest.c | 1 - .../deflatten-qemu-sheepdog-in.json | 11 - .../deflatten-qemu-sheepdog-out.json | 13 - tests/virjsontest.c | 1 - tests/virstoragetest.c | 21 - tools/virsh-pool.c | 3 - tools/virsh.c | 3 - 65 files changed, 12 insertions(+), 1293 deletions(-) delete mode 100644 src/storage/storage_backend_sheepdog.c delete mode 100644 src/storage/storage_backend_sheepdog.h delete mode 100644 src/storage/storage_backend_sheepdog_priv.h delete mode 100644 tests/qemublocktestdata/imagecreate/network-sheepdog-qcow2.json delete mode 100644 tests/qemublocktestdata/imagecreate/network-sheepdog-qcow2.xml delete mode 100644 tests/qemuxml2argvdata/disk-network-sheepdog.args delete mode 100644 tests/qemuxml2argvdata/disk-network-sheepdog.x86_64-2.12.0.args delete mode 100644 tests/qemuxml2argvdata/disk-network-sheepdog.x86_64-latest.args delete mode 100644 tests/qemuxml2argvdata/disk-network-sheepdog.xml delete mode 100644 tests/qemuxml2xmloutdata/disk-network-sheepdog.xml delete mode 100644 tests/storagebackendsheepdogtest.c delete mode 100644 tests/storagepoolxml2xmlin/pool-sheepdog.xml delete mode 100644 tests/storagepoolxml2xmlout/pool-sheepdog.xml delete mode 100644 tests/storagevolxml2xmlin/vol-sheepdog.xml delete mode 100644 tests/storagevolxml2xmlout/vol-sheepdog.xml delete mode 100644 tests/virjsondata/deflatten-qemu-sheepdog-in.json delete mode 100644 tests/virjsondata/deflatten-qemu-sheepdog-out.json -- 2.30.2

We will drop support for sheepdog in libvirt so we should not use it in tests. Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- tests/qemuxml2argvdata/boot-dev+order.xml | 2 +- tests/qemuxml2argvdata/boot-order.args | 2 +- tests/qemuxml2argvdata/boot-order.xml | 2 +- tests/qemuxml2xmloutdata/boot-order.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/qemuxml2argvdata/boot-dev+order.xml b/tests/qemuxml2argvdata/boot-dev+order.xml index e4bb3b1f48..95209b979f 100644 --- a/tests/qemuxml2argvdata/boot-dev+order.xml +++ b/tests/qemuxml2argvdata/boot-dev+order.xml @@ -30,7 +30,7 @@ </disk> <disk type='network' device='disk'> <driver name='qemu' type='raw'/> - <source protocol='sheepdog' name='image'> + <source protocol='rbd' name='pool/image'> <host name='example.org' port='6000'/> </source> <target dev='vda' bus='virtio'/> diff --git a/tests/qemuxml2argvdata/boot-order.args b/tests/qemuxml2argvdata/boot-order.args index fc2d3135f9..6068d13e11 100644 --- a/tests/qemuxml2argvdata/boot-order.args +++ b/tests/qemuxml2argvdata/boot-order.args @@ -28,7 +28,7 @@ QEMU_AUDIO_DRV=none \ -device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ -drive file=/root/boot.iso,format=raw,if=none,id=drive-ide0-1-0,readonly=on \ -device ide-cd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0,bootindex=1 \ --drive file=sheepdog:example.org:6000:image,format=raw,if=none,id=drive-virtio-disk0 \ +-drive 'file=rbd:pool/image:auth_supported=none:mon_host=example.org\:6000,format=raw,if=none,id=drive-virtio-disk0' \ -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=3 \ -drive file=/dev/null,format=raw,if=none,id=drive-fdc0-0-1 \ -global isa-fdc.driveB=drive-fdc0-0-1 \ diff --git a/tests/qemuxml2argvdata/boot-order.xml b/tests/qemuxml2argvdata/boot-order.xml index 6a95658ad2..08e4f9cd6d 100644 --- a/tests/qemuxml2argvdata/boot-order.xml +++ b/tests/qemuxml2argvdata/boot-order.xml @@ -27,7 +27,7 @@ </disk> <disk type='network' device='disk'> <driver name='qemu' type='raw'/> - <source protocol='sheepdog' name='image'> + <source protocol='rbd' name='pool/image'> <host name='example.org' port='6000'/> </source> <target dev='vda' bus='virtio'/> diff --git a/tests/qemuxml2xmloutdata/boot-order.xml b/tests/qemuxml2xmloutdata/boot-order.xml index bdd7e1b16f..1bf6fe8640 100644 --- a/tests/qemuxml2xmloutdata/boot-order.xml +++ b/tests/qemuxml2xmloutdata/boot-order.xml @@ -29,7 +29,7 @@ </disk> <disk type='network' device='disk'> <driver name='qemu' type='raw'/> - <source protocol='sheepdog' name='image'> + <source protocol='rbd' name='pool/image'> <host name='example.org' port='6000'/> </source> <target dev='vda' bus='virtio'/> -- 2.30.2

Upstream sheepdog project doesn't have any active development for almost 3 years as the last commit is from 28/06/2018 [1]. Looking into repology [2] the latest version 1.0.1 is included only in Fedora (since Fedora 26). There are only few other distributions having older sheepdog versions: Debian oldstable (stretch), EPEL 6, Ubuntu 18.04 and older and few other less-common distributions. Based on the data above drop support for sheepdog from libvirt. [1] <https://github.com/sheepdog/sheepdog/commits/master> [2] <https://repology.org/project/sheepdog/versions> Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- docs/formatdomain.rst | 13 +- docs/formatstorage.html.in | 5 +- docs/kbase/rpm-deployment.rst | 6 - docs/manpages/virsh.rst | 7 +- docs/schemas/domaincommon.rng | 1 - docs/schemas/storagepool.rng | 22 - docs/storage.html.in | 59 --- libvirt.spec.in | 36 -- meson.build | 6 - meson_options.txt | 1 - mingw-libvirt.spec.in | 1 - po/POTFILES.in | 1 - src/conf/domain_conf.c | 1 - src/conf/storage_conf.c | 12 +- src/conf/storage_conf.h | 2 - src/conf/storage_source_conf.c | 4 - src/conf/storage_source_conf.h | 1 - src/conf/virstorageobj.c | 9 - src/libvirt-storage.c | 1 - src/libxl/libxl_conf.c | 1 - src/libxl/xen_xl.c | 1 - src/qemu/qemu_block.c | 41 -- src/qemu/qemu_command.c | 20 - src/qemu/qemu_domain.c | 1 - src/qemu/qemu_snapshot.c | 3 - src/storage/meson.build | 25 -- src/storage/storage_backend.c | 6 - src/storage/storage_backend_sheepdog.c | 378 ------------------ src/storage/storage_backend_sheepdog.h | 25 -- src/storage/storage_backend_sheepdog_priv.h | 30 -- src/storage/storage_driver.c | 1 - .../storage_source_backingstore.c | 44 -- src/test/test_driver.c | 1 - tests/meson.build | 6 - tests/qemublocktest.c | 4 - .../imagecreate/network-sheepdog-qcow2.json | 20 - .../imagecreate/network-sheepdog-qcow2.xml | 12 - tests/qemusecuritytest.c | 1 - .../disk-network-sheepdog.args | 30 -- .../disk-network-sheepdog.x86_64-2.12.0.args | 34 -- .../disk-network-sheepdog.x86_64-latest.args | 38 -- .../disk-network-sheepdog.xml | 37 -- tests/qemuxml2argvtest.c | 3 - .../disk-network-sheepdog.xml | 43 -- tests/qemuxml2xmltest.c | 1 - tests/storagebackendsheepdogtest.c | 206 ---------- .../storagepoolcapsschemadata/poolcaps-fs.xml | 2 - .../poolcaps-full.xml | 2 - tests/storagepoolxml2argvtest.c | 2 - tests/storagepoolxml2xmlin/pool-sheepdog.xml | 8 - tests/storagepoolxml2xmlout/pool-sheepdog.xml | 11 - tests/storagepoolxml2xmltest.c | 1 - tests/storagevolxml2xmlin/vol-sheepdog.xml | 10 - tests/storagevolxml2xmlout/vol-sheepdog.xml | 8 - tests/storagevolxml2xmltest.c | 1 - .../deflatten-qemu-sheepdog-in.json | 11 - .../deflatten-qemu-sheepdog-out.json | 13 - tests/virjsontest.c | 1 - tests/virstoragetest.c | 21 - tools/virsh-pool.c | 3 - tools/virsh.c | 3 - 61 files changed, 8 insertions(+), 1289 deletions(-) delete mode 100644 src/storage/storage_backend_sheepdog.c delete mode 100644 src/storage/storage_backend_sheepdog.h delete mode 100644 src/storage/storage_backend_sheepdog_priv.h delete mode 100644 tests/qemublocktestdata/imagecreate/network-sheepdog-qcow2.json delete mode 100644 tests/qemublocktestdata/imagecreate/network-sheepdog-qcow2.xml delete mode 100644 tests/qemuxml2argvdata/disk-network-sheepdog.args delete mode 100644 tests/qemuxml2argvdata/disk-network-sheepdog.x86_64-2.12.0.args delete mode 100644 tests/qemuxml2argvdata/disk-network-sheepdog.x86_64-latest.args delete mode 100644 tests/qemuxml2argvdata/disk-network-sheepdog.xml delete mode 100644 tests/qemuxml2xmloutdata/disk-network-sheepdog.xml delete mode 100644 tests/storagebackendsheepdogtest.c delete mode 100644 tests/storagepoolxml2xmlin/pool-sheepdog.xml delete mode 100644 tests/storagepoolxml2xmlout/pool-sheepdog.xml delete mode 100644 tests/storagevolxml2xmlin/vol-sheepdog.xml delete mode 100644 tests/storagevolxml2xmlout/vol-sheepdog.xml delete mode 100644 tests/virjsondata/deflatten-qemu-sheepdog-in.json delete mode 100644 tests/virjsondata/deflatten-qemu-sheepdog-out.json diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst index 4388ad545f..215c273b39 100644 --- a/docs/formatdomain.rst +++ b/docs/formatdomain.rst @@ -2305,16 +2305,6 @@ paravirtualized driver is specified via the ``disk`` element. </serial> </disk> ... - <disk type='network'> - <driver name="qemu" type="raw" io="threads" ioeventfd="on" event_idx="off"/> - <source protocol="sheepdog" name="image_name"> - <host name="hostname" port="7000"/> - </source> - <target dev="hdb" bus="ide"/> - <boot order='1'/> - <transient/> - <address type='drive' controller='0' bus='1' unit='0'/> - </disk> <disk type='network'> <driver name="qemu" type="raw"/> <source protocol="rbd" name="image_name2"> @@ -2558,7 +2548,7 @@ paravirtualized driver is specified via the ``disk`` element. to use as the disk. :since:`Since 0.7.5` ``network`` The ``protocol`` attribute specifies the protocol to access to the - requested image. Possible values are "nbd", "iscsi", "rbd", "sheepdog", + requested image. Possible values are "nbd", "iscsi", "rbd", "gluster", "vxhs", "nfs", "http", "https", "ftp", ftps", or "tftp". For any ``protocol`` other than ``nbd`` an additional attribute ``name`` @@ -2683,7 +2673,6 @@ paravirtualized driver is specified via the ``disk`` element. nbd a server running nbd-server only one 10809 iscsi an iSCSI server only one 3260 rbd monitor servers of RBD one or more librados default - sheepdog one of the sheepdog servers (default is localhost:7000) zero or one 7000 gluster a server running glusterd daemon one or more ( :since:`Since 2.1.0` ), just one prior to that 24007 vxhs a server running Veritas HyperScale daemon only one 9999 nfs a server running Network File System only one ( :since:`Since 7.0.0` ) must be omitted diff --git a/docs/formatstorage.html.in b/docs/formatstorage.html.in index cac44503da..aac2a4a8e3 100644 --- a/docs/formatstorage.html.in +++ b/docs/formatstorage.html.in @@ -22,7 +22,6 @@ (all <span class="since">since 0.4.1</span>), <code>mpath</code> (<span class="since">since 0.7.1</span>), <code>rbd</code> (<span class="since">since 0.9.13</span>), - <code>sheepdog</code> (<span class="since">since 0.10.0</span>), <code>gluster</code> (<span class="since">since 1.2.0</span>), <code>zfs</code> (<span class="since">since 1.2.8</span>), <code>vstorage</code> (<span class="since">since 3.1.0</span>), @@ -372,7 +371,7 @@ <dd>Provides the source for pools backed by storage from a remote server (pool types <code>netfs</code>, <code>iscsi</code>, <code>iscsi-direct</code>, - <code>rbd</code>, <code>sheepdog</code>, <code>gluster</code>). Will be + <code>rbd</code>, <code>gluster</code>). Will be used in combination with a <code>directory</code> or <code>device</code> element. Contains an attribute <code>name</code> which is the hostname or IP address of the server. May optionally @@ -419,7 +418,7 @@ <dt><code>name</code></dt> <dd>Provides the source for pools backed by storage from a named element (pool types <code>logical</code>, <code>rbd</code>, - <code>sheepdog</code>, <code>gluster</code>). Contains a + <code>gluster</code>). Contains a string identifier. <span class="since">Since 0.4.5</span></dd> <dt><code>format</code></dt> diff --git a/docs/kbase/rpm-deployment.rst b/docs/kbase/rpm-deployment.rst index 568cf5b3eb..3b6b3f17f5 100644 --- a/docs/kbase/rpm-deployment.rst +++ b/docs/kbase/rpm-deployment.rst @@ -200,12 +200,6 @@ RPM packages disk storage pool type, for the storage pool management APIs. -* libvirt-daemon-driver-storage-sheepdog - - The dynamically loadable driver providing an implementation of the SheepDog - network storage pool type, for the storage pool management APIs. - - * libvirt-daemon-driver-storage-zfs The dynamically loadable driver providing an implementation of the ZFS diff --git a/docs/manpages/virsh.rst b/docs/manpages/virsh.rst index ad91cd6356..50cfee6ae8 100644 --- a/docs/manpages/virsh.rst +++ b/docs/manpages/virsh.rst @@ -5891,8 +5891,7 @@ to populate the disk pool. Therefore, it is suggested to use to properly initialize the disk pool. [*--source-host hostname*] provides the source hostname for pools backed -by storage from a remote server (pool types netfs, iscsi, rbd, sheepdog, -gluster). +by storage from a remote server (pool types netfs, iscsi, rbd, gluster). [*--source-path path*] provides the source directory path for pools backed by directories (pool type dir). @@ -5901,7 +5900,7 @@ by directories (pool type dir). devices (pool types fs, logical, disk, iscsi, zfs). [*--source-name name*] provides the source name for pools backed by storage -from a named element (pool types logical, rbd, sheepdog, gluster). +from a named element (pool types logical, rbd, gluster). [*--target path*] is the path for the mapping of the storage pool into the host file system. @@ -6100,7 +6099,7 @@ without any header. Option *--details* is mutually exclusive with options You may also want to list pools with specified types using *type*, the pool types must be separated by comma, e.g. --type dir,disk. The valid pool types include 'dir', 'fs', 'netfs', 'logical', 'disk', 'iscsi', 'scsi', -'mpath', 'rbd', 'sheepdog', 'gluster', 'zfs', 'vstorage' and 'iscsi-direct'. +'mpath', 'rbd', 'gluster', 'zfs', 'vstorage' and 'iscsi-direct'. The *--details* option instructs virsh to additionally display pool persistence and capacity related information where available. diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng index 20a43148b1..6b200e0b61 100644 --- a/docs/schemas/domaincommon.rng +++ b/docs/schemas/domaincommon.rng @@ -2002,7 +2002,6 @@ <interleave> <attribute name="protocol"> <choice> - <value>sheepdog</value> <value>ftp</value> <value>tftp</value> </choice> diff --git a/docs/schemas/storagepool.rng b/docs/schemas/storagepool.rng index bd24b8b8d0..70ad4c22ad 100644 --- a/docs/schemas/storagepool.rng +++ b/docs/schemas/storagepool.rng @@ -22,7 +22,6 @@ <ref name="poolscsi"/> <ref name="poolmpath"/> <ref name="poolrbd"/> - <ref name="poolsheepdog"/> <ref name="poolgluster"/> <ref name="poolzfs"/> <ref name="poolvstorage"/> @@ -172,18 +171,6 @@ </optional> </define> - <define name="poolsheepdog"> - <attribute name="type"> - <value>sheepdog</value> - </attribute> - <interleave> - <ref name="commonMetadataNameOptional"/> - <ref name="sizing"/> - <ref name="features"/> - <ref name="sourcesheepdog"/> - </interleave> - </define> - <define name="poolgluster"> <attribute name="type"> <value>gluster</value> @@ -699,15 +686,6 @@ </element> </define> - <define name="sourcesheepdog"> - <element name="source"> - <interleave> - <ref name="sourceinfohost"/> - <ref name="sourceinfoname"/> - </interleave> - </element> - </define> - <define name="sourcegluster"> <element name="source"> <interleave> diff --git a/docs/storage.html.in b/docs/storage.html.in index b2cf343933..04756cd06a 100644 --- a/docs/storage.html.in +++ b/docs/storage.html.in @@ -614,65 +614,6 @@ Only raw volumes are supported. </p> - <h2><a id="StorageBackendSheepdog">Sheepdog pool</a></h2> - <p> - This provides a pool based on a Sheepdog Cluster. - Sheepdog is a distributed storage system for QEMU/KVM. - It provides highly available block level storage volumes that - can be attached to QEMU/KVM virtual machines. - - The cluster must already be formatted. - - <span class="since">Since 0.9.13</span> - </p> - - <h3>Example pool input</h3> - <pre> -<pool type="sheepdog"> - <name>mysheeppool</name> - <source> - <name>mysheeppool</name> - <host name='localhost' port='7000'/> - </source> -</pool></pre> - - <h3>Example volume output</h3> - <pre> -<volume> - <name>myvol</name> - <key>sheep/myvol</key> - <source> - </source> - <capacity unit='bytes'>53687091200</capacity> - <allocation unit='bytes'>53687091200</allocation> - <target> - <path>sheepdog:myvol</path> - <format type='unknown'/> - <permissions> - <mode>00</mode> - <owner>0</owner> - <group>0</group> - </permissions> - </target> -</volume></pre> - - <h3>Example disk attachment</h3> - <p>Sheepdog images can be attached to QEMU guests. - Information about attaching a Sheepdog image to a - guest can be found - at the <a href="formatdomain.html#elementsDisks">format domain</a> - page.</p> - - <h3>Valid pool format types</h3> - <p> - The Sheepdog pool does not use the pool format type element. - </p> - - <h3>Valid volume format types</h3> - <p> - The Sheepdog pool does not use the volume format type element. - </p> - <h2><a id="StorageBackendGluster">Gluster pool</a></h2> <p> This provides a pool based on native Gluster access. Gluster is diff --git a/libvirt.spec.in b/libvirt.spec.in index f9af330186..f361303708 100644 --- a/libvirt.spec.in +++ b/libvirt.spec.in @@ -65,11 +65,6 @@ # Then the secondary host drivers, which run inside libvirtd %define with_storage_rbd 0%{!?_without_storage_rbd:1} -%if 0%{?fedora} - %define with_storage_sheepdog 0%{!?_without_storage_sheepdog:1} -%else - %define with_storage_sheepdog 0 -%endif %define with_storage_gluster 0%{!?_without_storage_gluster:1} %ifnarch %{arches_qemu_kvm} @@ -341,9 +336,6 @@ BuildRequires: librbd1-devel BuildRequires: glusterfs-api-devel >= 3.4.1 BuildRequires: glusterfs-devel >= 3.4.1 %endif -%if %{with_storage_sheepdog} -BuildRequires: sheepdog -%endif %if %{with_storage_zfs} # Support any conforming implementation of zfs. On stock Fedora # this is zfs-fuse, but could be zfsonlinux upstream RPMs @@ -667,19 +659,6 @@ volumes using the ceph protocol. %endif -%if %{with_storage_sheepdog} -%package daemon-driver-storage-sheepdog -Summary: Storage driver plugin for sheepdog -Requires: libvirt-daemon-driver-storage-core = %{version}-%{release} -Requires: libvirt-libs = %{version}-%{release} -Requires: sheepdog - -%description daemon-driver-storage-sheepdog -The storage driver backend adding implementation of the storage APIs for -sheepdog volumes using. -%endif - - %if %{with_storage_zfs} %package daemon-driver-storage-zfs Summary: Storage driver plugin for ZFS @@ -712,9 +691,6 @@ Requires: libvirt-daemon-driver-storage-gluster = %{version}-%{release} %if %{with_storage_rbd} Requires: libvirt-daemon-driver-storage-rbd = %{version}-%{release} %endif -%if %{with_storage_sheepdog} -Requires: libvirt-daemon-driver-storage-sheepdog = %{version}-%{release} -%endif %if %{with_storage_zfs} Requires: libvirt-daemon-driver-storage-zfs = %{version}-%{release} %endif @@ -1056,12 +1032,6 @@ exit 1 %define arg_storage_rbd -Dstorage_rbd=disabled %endif -%if %{with_storage_sheepdog} - %define arg_storage_sheepdog -Dstorage_sheepdog=enabled -%else - %define arg_storage_sheepdog -Dstorage_sheepdog=disabled -%endif - %if %{with_storage_gluster} %define arg_storage_gluster -Dstorage_gluster=enabled -Dglusterfs=enabled %else @@ -1172,7 +1142,6 @@ export SOURCE_DATE_EPOCH=$(stat --printf='%Y' %{_specdir}/%{name}.spec) -Dstorage_disk=enabled \ -Dstorage_mpath=enabled \ %{?arg_storage_rbd} \ - %{?arg_storage_sheepdog} \ %{?arg_storage_gluster} \ %{?arg_storage_zfs} \ -Dstorage_vstorage=disabled \ @@ -1733,11 +1702,6 @@ exit 0 %{_libdir}/%{name}/storage-backend/libvirt_storage_backend_rbd.so %endif -%if %{with_storage_sheepdog} -%files daemon-driver-storage-sheepdog -%{_libdir}/%{name}/storage-backend/libvirt_storage_backend_sheepdog.so -%endif - %if %{with_storage_zfs} %files daemon-driver-storage-zfs %{_libdir}/%{name}/storage-backend/libvirt_storage_backend_zfs.so diff --git a/meson.build b/meson.build index 7e377fab9c..c6980c941a 100644 --- a/meson.build +++ b/meson.build @@ -1791,11 +1791,6 @@ if conf.has('WITH_LIBVIRTD') conf.set('WITH_STORAGE_SCSI', 1) endif - if not get_option('storage_sheepdog').disabled() - use_storage = true - conf.set('WITH_STORAGE_SHEEPDOG', 1) - endif - if not get_option('storage_vstorage').disabled() vstorage_enable = true if host_machine.system() != 'linux' @@ -2136,7 +2131,6 @@ storagedriver_summary = { 'mpath': conf.has('WITH_STORAGE_MPATH'), 'Disk': conf.has('WITH_STORAGE_DISK'), 'RBD': conf.has('WITH_STORAGE_RBD'), - 'Sheepdog': conf.has('WITH_STORAGE_SHEEPDOG'), 'Gluster': conf.has('WITH_STORAGE_GLUSTER'), 'ZFS': conf.has('WITH_STORAGE_ZFS'), 'Virtuozzo storage': conf.has('WITH_STORAGE_VSTORAGE'), diff --git a/meson_options.txt b/meson_options.txt index 2606648b64..001954ef76 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -84,7 +84,6 @@ option('storage_lvm', type: 'feature', value: 'auto', description: 'LVM backend option('storage_mpath', type: 'feature', value: 'auto', description: 'mpath backend for the storage driver') option('storage_rbd', type: 'feature', value: 'auto', description: 'RADOS Block Device backend for the storage driver') option('storage_scsi', type: 'feature', value: 'auto', description: 'SCSI backend for the storage driver') -option('storage_sheepdog', type: 'feature', value: 'auto', description: 'Sheepdog backend for the storage driver') option('storage_vstorage', type: 'feature', value: 'auto', description: 'Virtuozzo storage backend for the storage driver') option('storage_zfs', type: 'feature', value: 'auto', description: 'ZFS backend for the storage driver') diff --git a/mingw-libvirt.spec.in b/mingw-libvirt.spec.in index 288f533d52..dc8edd4f64 100644 --- a/mingw-libvirt.spec.in +++ b/mingw-libvirt.spec.in @@ -164,7 +164,6 @@ exit 1 -Dstorage_mpath=disabled \ -Dstorage_rbd=disabled \ -Dstorage_scsi=disabled \ - -Dstorage_sheepdog=disabled \ -Dstorage_vstorage=disabled \ -Dstorage_zfs=disabled \ -Dsysctl_config=disabled \ diff --git a/po/POTFILES.in b/po/POTFILES.in index 413783ee35..71346fe36c 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -222,7 +222,6 @@ @SRCDIR@src/storage/storage_backend_mpath.c @SRCDIR@src/storage/storage_backend_rbd.c @SRCDIR@src/storage/storage_backend_scsi.c -@SRCDIR@src/storage/storage_backend_sheepdog.c @SRCDIR@src/storage/storage_backend_vstorage.c @SRCDIR@src/storage/storage_backend_zfs.c @SRCDIR@src/storage/storage_driver.c diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 17bbeddec6..421b370d51 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -32349,7 +32349,6 @@ virDomainStorageSourceTranslateSourcePool(virStorageSource *src, case VIR_STORAGE_POOL_MPATH: case VIR_STORAGE_POOL_RBD: - case VIR_STORAGE_POOL_SHEEPDOG: case VIR_STORAGE_POOL_GLUSTER: case VIR_STORAGE_POOL_LAST: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, diff --git a/src/conf/storage_conf.c b/src/conf/storage_conf.c index 66419616da..dfcc907e02 100644 --- a/src/conf/storage_conf.c +++ b/src/conf/storage_conf.c @@ -59,7 +59,7 @@ VIR_ENUM_IMPL(virStoragePool, "dir", "fs", "netfs", "logical", "disk", "iscsi", "iscsi-direct", "scsi", "mpath", - "rbd", "sheepdog", "gluster", + "rbd", "gluster", "zfs", "vstorage", ); @@ -246,13 +246,6 @@ static virStoragePoolTypeInfo poolTypeInfo[] = { .formatToString = virStorageFileFormatTypeToString, } }, - {.poolType = VIR_STORAGE_POOL_SHEEPDOG, - .poolOptions = { - .flags = (VIR_STORAGE_POOL_SOURCE_HOST | - VIR_STORAGE_POOL_SOURCE_NETWORK | - VIR_STORAGE_POOL_SOURCE_NAME), - }, - }, {.poolType = VIR_STORAGE_POOL_GLUSTER, .poolOptions = { .flags = (VIR_STORAGE_POOL_SOURCE_HOST | @@ -1212,10 +1205,9 @@ virStoragePoolDefFormatBuf(virBuffer *buf, if (virStoragePoolSourceFormat(buf, options, &def->source) < 0) return -1; - /* RBD, Sheepdog, Gluster and Iscsi-direct devices are not local block devs nor + /* RBD, Gluster and Iscsi-direct devices are not local block devs nor * files, so they don't have a target */ if (def->type != VIR_STORAGE_POOL_RBD && - def->type != VIR_STORAGE_POOL_SHEEPDOG && def->type != VIR_STORAGE_POOL_GLUSTER && def->type != VIR_STORAGE_POOL_ISCSI_DIRECT) { virBufferAddLit(buf, "<target>\n"); diff --git a/src/conf/storage_conf.h b/src/conf/storage_conf.h index 345026aa37..523f67229e 100644 --- a/src/conf/storage_conf.h +++ b/src/conf/storage_conf.h @@ -102,7 +102,6 @@ typedef enum { VIR_STORAGE_POOL_SCSI, /* SCSI HBA */ VIR_STORAGE_POOL_MPATH, /* Multipath devices */ VIR_STORAGE_POOL_RBD, /* RADOS Block Device */ - VIR_STORAGE_POOL_SHEEPDOG, /* Sheepdog device */ VIR_STORAGE_POOL_GLUSTER, /* Gluster device */ VIR_STORAGE_POOL_ZFS, /* ZFS */ VIR_STORAGE_POOL_VSTORAGE, /* Virtuozzo Storage */ @@ -460,7 +459,6 @@ VIR_ENUM_DECL(virStoragePartedFs); VIR_CONNECT_LIST_STORAGE_POOLS_SCSI | \ VIR_CONNECT_LIST_STORAGE_POOLS_MPATH | \ VIR_CONNECT_LIST_STORAGE_POOLS_RBD | \ - VIR_CONNECT_LIST_STORAGE_POOLS_SHEEPDOG | \ VIR_CONNECT_LIST_STORAGE_POOLS_GLUSTER | \ VIR_CONNECT_LIST_STORAGE_POOLS_ZFS | \ VIR_CONNECT_LIST_STORAGE_POOLS_VSTORAGE | \ diff --git a/src/conf/storage_source_conf.c b/src/conf/storage_source_conf.c index 05939181d6..9a4de4fa1a 100644 --- a/src/conf/storage_source_conf.c +++ b/src/conf/storage_source_conf.c @@ -74,7 +74,6 @@ VIR_ENUM_IMPL(virStorageNetProtocol, "none", "nbd", "rbd", - "sheepdog", "gluster", "iscsi", "http", @@ -1247,9 +1246,6 @@ virStorageSourceNetworkDefaultPort(virStorageNetProtocol protocol) case VIR_STORAGE_NET_PROTOCOL_TFTP: return 69; - case VIR_STORAGE_NET_PROTOCOL_SHEEPDOG: - return 7000; - case VIR_STORAGE_NET_PROTOCOL_NBD: return 10809; diff --git a/src/conf/storage_source_conf.h b/src/conf/storage_source_conf.h index 389c7b56d1..b1391d9417 100644 --- a/src/conf/storage_source_conf.h +++ b/src/conf/storage_source_conf.h @@ -116,7 +116,6 @@ typedef enum { VIR_STORAGE_NET_PROTOCOL_NONE, VIR_STORAGE_NET_PROTOCOL_NBD, VIR_STORAGE_NET_PROTOCOL_RBD, - VIR_STORAGE_NET_PROTOCOL_SHEEPDOG, VIR_STORAGE_NET_PROTOCOL_GLUSTER, VIR_STORAGE_NET_PROTOCOL_ISCSI, VIR_STORAGE_NET_PROTOCOL_HTTP, diff --git a/src/conf/virstorageobj.c b/src/conf/virstorageobj.c index 24957d6012..3b7fc07410 100644 --- a/src/conf/virstorageobj.c +++ b/src/conf/virstorageobj.c @@ -1468,13 +1468,6 @@ virStoragePoolObjSourceFindDuplicateCb(const void *payload, return 1; break; - case VIR_STORAGE_POOL_SHEEPDOG: - if (data->def->type == obj->def->type && - virStoragePoolSourceMatchSingleHost(&obj->def->source, - &data->def->source)) - return 1; - break; - case VIR_STORAGE_POOL_MPATH: /* Only one mpath pool is valid per host */ if (data->def->type == obj->def->type) @@ -1986,8 +1979,6 @@ virStoragePoolObjMatch(virStoragePoolObj *obj, (obj->def->type == VIR_STORAGE_POOL_MPATH)) || (MATCH(VIR_CONNECT_LIST_STORAGE_POOLS_RBD) && (obj->def->type == VIR_STORAGE_POOL_RBD)) || - (MATCH(VIR_CONNECT_LIST_STORAGE_POOLS_SHEEPDOG) && - (obj->def->type == VIR_STORAGE_POOL_SHEEPDOG)) || (MATCH(VIR_CONNECT_LIST_STORAGE_POOLS_GLUSTER) && (obj->def->type == VIR_STORAGE_POOL_GLUSTER)) || (MATCH(VIR_CONNECT_LIST_STORAGE_POOLS_ZFS) && diff --git a/src/libvirt-storage.c b/src/libvirt-storage.c index 2a7cdca234..05288c68e0 100644 --- a/src/libvirt-storage.c +++ b/src/libvirt-storage.c @@ -92,7 +92,6 @@ virStoragePoolGetConnect(virStoragePoolPtr pool) * VIR_CONNECT_LIST_STORAGE_POOLS_SCSI * VIR_CONNECT_LIST_STORAGE_POOLS_MPATH * VIR_CONNECT_LIST_STORAGE_POOLS_RBD - * VIR_CONNECT_LIST_STORAGE_POOLS_SHEEPDOG * VIR_CONNECT_LIST_STORAGE_POOLS_GLUSTER * VIR_CONNECT_LIST_STORAGE_POOLS_ZFS * VIR_CONNECT_LIST_STORAGE_POOLS_VSTORAGE diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c index 3ccb00ec35..1d3ecbf52c 100644 --- a/src/libxl/libxl_conf.c +++ b/src/libxl/libxl_conf.c @@ -934,7 +934,6 @@ libxlMakeNetworkDiskSrcStr(virStorageSource *src, case VIR_STORAGE_NET_PROTOCOL_TFTP: case VIR_STORAGE_NET_PROTOCOL_ISCSI: case VIR_STORAGE_NET_PROTOCOL_GLUSTER: - case VIR_STORAGE_NET_PROTOCOL_SHEEPDOG: case VIR_STORAGE_NET_PROTOCOL_SSH: case VIR_STORAGE_NET_PROTOCOL_VXHS: case VIR_STORAGE_NET_PROTOCOL_NFS: diff --git a/src/libxl/xen_xl.c b/src/libxl/xen_xl.c index 8fa91ce66a..c4526db60b 100644 --- a/src/libxl/xen_xl.c +++ b/src/libxl/xen_xl.c @@ -1554,7 +1554,6 @@ xenFormatXLDiskSrcNet(virStorageSource *src) case VIR_STORAGE_NET_PROTOCOL_TFTP: case VIR_STORAGE_NET_PROTOCOL_ISCSI: case VIR_STORAGE_NET_PROTOCOL_GLUSTER: - case VIR_STORAGE_NET_PROTOCOL_SHEEPDOG: case VIR_STORAGE_NET_PROTOCOL_SSH: case VIR_STORAGE_NET_PROTOCOL_VXHS: case VIR_STORAGE_NET_PROTOCOL_NFS: diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c index 6845e25176..aa19104303 100644 --- a/src/qemu/qemu_block.c +++ b/src/qemu/qemu_block.c @@ -927,34 +927,6 @@ qemuBlockStorageSourceGetRBDProps(virStorageSource *src, } -static virJSONValue * -qemuBlockStorageSourceGetSheepdogProps(virStorageSource *src) -{ - g_autoptr(virJSONValue) serverprops = NULL; - virJSONValue *ret = NULL; - - if (src->nhosts != 1) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("sheepdog protocol accepts only one host")); - return NULL; - } - - serverprops = qemuBlockStorageSourceBuildJSONSocketAddress(&src->hosts[0], - false); - if (!serverprops) - return NULL; - - /* libvirt does not support the 'snap-id' and 'tag' properties */ - if (virJSONValueObjectCreate(&ret, - "a:server", &serverprops, - "s:vdi", src->path, - NULL) < 0) - return NULL; - - return ret; -} - - static virJSONValue * qemuBlockStorageSourceGetSshProps(virStorageSource *src) { @@ -1217,12 +1189,6 @@ qemuBlockStorageSourceGetBackendProps(virStorageSource *src, return NULL; break; - case VIR_STORAGE_NET_PROTOCOL_SHEEPDOG: - driver = "sheepdog"; - if (!(fileprops = qemuBlockStorageSourceGetSheepdogProps(src))) - return NULL; - break; - case VIR_STORAGE_NET_PROTOCOL_SSH: driver = "ssh"; if (!(fileprops = qemuBlockStorageSourceGetSshProps(src))) @@ -2216,7 +2182,6 @@ qemuBlockGetBackingStoreString(virStorageSource *src, return virURIFormat(uri); - case VIR_STORAGE_NET_PROTOCOL_SHEEPDOG: case VIR_STORAGE_NET_PROTOCOL_RBD: case VIR_STORAGE_NET_PROTOCOL_VXHS: case VIR_STORAGE_NET_PROTOCOL_NFS: @@ -2595,12 +2560,6 @@ qemuBlockStorageSourceCreateGetStorageProps(virStorageSource *src, return -1; break; - case VIR_STORAGE_NET_PROTOCOL_SHEEPDOG: - driver = "sheepdog"; - if (!(location = qemuBlockStorageSourceGetSheepdogProps(src))) - return -1; - break; - case VIR_STORAGE_NET_PROTOCOL_SSH: driver = "ssh"; if (!(location = qemuBlockStorageSourceGetSshProps(src))) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 278590c2c1..e756636d7f 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -1056,26 +1056,6 @@ qemuBuildNetworkDriveStr(virStorageSource *src, ret = qemuBuildNetworkDriveURI(src, secinfo); break; - case VIR_STORAGE_NET_PROTOCOL_SHEEPDOG: - if (!src->path) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("missing disk source for 'sheepdog' protocol")); - return NULL; - } - - if (src->nhosts == 0) { - ret = g_strdup_printf("sheepdog:%s", src->path); - } else if (src->nhosts == 1) { - ret = g_strdup_printf("sheepdog:%s:%u:%s", src->hosts->name, - src->hosts->port, src->path); - } else { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("protocol 'sheepdog' accepts up to one host")); - return NULL; - } - - break; - case VIR_STORAGE_NET_PROTOCOL_RBD: if (strchr(src->path, ':')) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 6e3e3555c7..4daff5b2dc 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -10033,7 +10033,6 @@ qemuDomainPrepareStorageSourceTLS(virStorageSource *src, break; case VIR_STORAGE_NET_PROTOCOL_RBD: - case VIR_STORAGE_NET_PROTOCOL_SHEEPDOG: case VIR_STORAGE_NET_PROTOCOL_GLUSTER: case VIR_STORAGE_NET_PROTOCOL_ISCSI: case VIR_STORAGE_NET_PROTOCOL_HTTP: diff --git a/src/qemu/qemu_snapshot.c b/src/qemu/qemu_snapshot.c index fd6669433b..4afebca8f6 100644 --- a/src/qemu/qemu_snapshot.c +++ b/src/qemu/qemu_snapshot.c @@ -402,7 +402,6 @@ qemuSnapshotPrepareDiskExternalInactive(virDomainSnapshotDiskDef *snapdisk, case VIR_STORAGE_NET_PROTOCOL_NONE: case VIR_STORAGE_NET_PROTOCOL_NBD: case VIR_STORAGE_NET_PROTOCOL_RBD: - case VIR_STORAGE_NET_PROTOCOL_SHEEPDOG: case VIR_STORAGE_NET_PROTOCOL_GLUSTER: case VIR_STORAGE_NET_PROTOCOL_ISCSI: case VIR_STORAGE_NET_PROTOCOL_HTTP: @@ -494,7 +493,6 @@ qemuSnapshotPrepareDiskExternalActive(virDomainObj *vm, case VIR_STORAGE_NET_PROTOCOL_NONE: case VIR_STORAGE_NET_PROTOCOL_NBD: case VIR_STORAGE_NET_PROTOCOL_RBD: - case VIR_STORAGE_NET_PROTOCOL_SHEEPDOG: case VIR_STORAGE_NET_PROTOCOL_ISCSI: case VIR_STORAGE_NET_PROTOCOL_HTTP: case VIR_STORAGE_NET_PROTOCOL_HTTPS: @@ -625,7 +623,6 @@ qemuSnapshotPrepareDiskInternal(virDomainDiskDef *disk, case VIR_STORAGE_NET_PROTOCOL_NONE: case VIR_STORAGE_NET_PROTOCOL_NBD: case VIR_STORAGE_NET_PROTOCOL_RBD: - case VIR_STORAGE_NET_PROTOCOL_SHEEPDOG: case VIR_STORAGE_NET_PROTOCOL_GLUSTER: case VIR_STORAGE_NET_PROTOCOL_ISCSI: case VIR_STORAGE_NET_PROTOCOL_HTTP: diff --git a/src/storage/meson.build b/src/storage/meson.build index 915ae46f61..a10049ceb4 100644 --- a/src/storage/meson.build +++ b/src/storage/meson.build @@ -51,10 +51,6 @@ storage_backend_scsi_sources = [ 'storage_backend_scsi.c', ] -storage_backend_sheepdog_sources = [ - 'storage_backend_sheepdog.c', -] - storage_backend_vstorage_sources = [ 'storage_backend_vstorage.c', ] @@ -238,27 +234,6 @@ if conf.has('WITH_STORAGE_SCSI') } endif -if conf.has('WITH_STORAGE_SHEEPDOG') - storage_backend_sheepdog_priv_lib = static_library( - 'virt_storage_backend_sheepdog_priv', - storage_backend_sheepdog_sources, - dependencies: [ - src_dep, - ], - include_directories: [ - conf_inc_dir, - ], - ) - - virt_modules += { - 'name': 'virt_storage_backend_sheepdog', - 'link_whole': [ - storage_backend_sheepdog_priv_lib, - ], - 'install_dir': storage_backend_install_dir, - } -endif - if conf.has('WITH_STORAGE_VSTORAGE') virt_modules += { 'name': 'virt_storage_backend_vstorage', diff --git a/src/storage/storage_backend.c b/src/storage/storage_backend.c index c5b36801ba..afe7bebb10 100644 --- a/src/storage/storage_backend.c +++ b/src/storage/storage_backend.c @@ -58,9 +58,6 @@ #if WITH_STORAGE_RBD # include "storage_backend_rbd.h" #endif -#if WITH_STORAGE_SHEEPDOG -# include "storage_backend_sheepdog.h" -#endif #if WITH_STORAGE_GLUSTER # include "storage_backend_gluster.h" #endif @@ -132,9 +129,6 @@ virStorageBackendDriversRegister(bool allbackends G_GNUC_UNUSED) #if WITH_STORAGE_RBD VIR_STORAGE_BACKEND_REGISTER(virStorageBackendRBDRegister, "rbd"); #endif -#if WITH_STORAGE_SHEEPDOG - VIR_STORAGE_BACKEND_REGISTER(virStorageBackendSheepdogRegister, "sheepdog"); -#endif #if WITH_STORAGE_GLUSTER VIR_STORAGE_BACKEND_REGISTER(virStorageBackendGlusterRegister, "gluster"); #endif diff --git a/src/storage/storage_backend_sheepdog.c b/src/storage/storage_backend_sheepdog.c deleted file mode 100644 index beb6445e1e..0000000000 --- a/src/storage/storage_backend_sheepdog.c +++ /dev/null @@ -1,378 +0,0 @@ -/* - * storage_backend_sheepdog.c: storage backend for Sheepdog handling - * - * Copyright (C) 2013-2014 Red Hat, Inc. - * Copyright (C) 2012 Wido den Hollander - * Copyright (C) 2012 Frank Spijkerman - * Copyright (C) 2012 Sebastian Wiedenroth - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library. If not, see - * <http://www.gnu.org/licenses/>. - */ - -#include <config.h> - -#include "virerror.h" -#include "storage_backend_sheepdog.h" -#define LIBVIRT_STORAGE_BACKEND_SHEEPDOG_PRIV_H_ALLOW -#include "storage_backend_sheepdog_priv.h" -#include "storage_conf.h" -#include "vircommand.h" -#include "viralloc.h" -#include "virstring.h" -#include "storage_util.h" - -#define VIR_FROM_THIS VIR_FROM_STORAGE - -#define SHEEPDOGCLI "dog" - -static int virStorageBackendSheepdogRefreshVol(virStoragePoolObj *pool, - virStorageVolDef *vol); - -void virStorageBackendSheepdogAddHostArg(virCommand *cmd, - virStoragePoolObj *pool); - -int -virStorageBackendSheepdogParseNodeInfo(virStoragePoolDef *pool, - char *output) -{ - /* fields: - * node id/total, size, used, use%, [total vdi size] - * - * example output: - * 0 15245667872 117571104 0% - * Total 15245667872 117571104 0% 20972341 - */ - - const char *p, *next; - - pool->allocation = pool->capacity = pool->available = 0; - - p = output; - do { - char *end; - - if ((next = strchr(p, '\n'))) - ++next; - else - break; - - if (!STRPREFIX(p, "Total ")) - continue; - - p = p + 6; - - if (virStrToLong_ull(p, &end, 10, &pool->capacity) < 0) - break; - - if ((p = end + 1) > next) - break; - - if (virStrToLong_ull(p, &end, 10, &pool->allocation) < 0) - break; - - pool->available = pool->capacity - pool->allocation; - return 0; - - } while ((p = next)); - - return -1; -} - -void -virStorageBackendSheepdogAddHostArg(virCommand *cmd, - virStoragePoolObj *pool) -{ - virStoragePoolDef *def = virStoragePoolObjGetDef(pool); - const char *address = "localhost"; - int port = 7000; - if (def->source.nhost > 0) { - if (def->source.hosts[0].name != NULL) - address = def->source.hosts[0].name; - if (def->source.hosts[0].port) - port = def->source.hosts[0].port; - } - virCommandAddArg(cmd, "-a"); - virCommandAddArgFormat(cmd, "%s", address); - virCommandAddArg(cmd, "-p"); - virCommandAddArgFormat(cmd, "%d", port); -} - -static int -virStorageBackendSheepdogAddVolume(virStoragePoolObj *pool, const char *diskInfo) -{ - g_autoptr(virStorageVolDef) vol = NULL; - - if (diskInfo == NULL) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("Missing disk info when adding volume")); - return -1; - } - - vol = g_new0(virStorageVolDef, 1); - - vol->name = g_strdup(diskInfo); - - vol->type = VIR_STORAGE_VOL_NETWORK; - - if (virStorageBackendSheepdogRefreshVol(pool, vol) < 0) - return -1; - - if (virStoragePoolObjAddVol(pool, vol) < 0) - return -1; - vol = NULL; - - return 0; -} - -static int -virStorageBackendSheepdogRefreshAllVol(virStoragePoolObj *pool) -{ - size_t i; - g_autofree char *output = NULL; - g_auto(GStrv) lines = NULL; - g_autoptr(virCommand) cmd = NULL; - - cmd = virCommandNewArgList(SHEEPDOGCLI, "vdi", "list", "-r", NULL); - virStorageBackendSheepdogAddHostArg(cmd, pool); - virCommandSetOutputBuffer(cmd, &output); - if (virCommandRun(cmd, NULL) < 0) - return -1; - - lines = g_strsplit(output, "\n", 0); - if (lines == NULL) - return -1; - - for (i = 0; lines[i]; i++) { - g_auto(GStrv) cells = NULL; - - cells = g_strsplit(lines[i], " ", 0); - - if (cells != NULL && cells[0] && cells[1]) { - if (virStorageBackendSheepdogAddVolume(pool, cells[1]) < 0) - return -1; - } - } - - return 0; -} - - -static int -virStorageBackendSheepdogRefreshPool(virStoragePoolObj *pool) -{ - g_autofree char *output = NULL; - g_autoptr(virCommand) cmd = NULL; - - cmd = virCommandNewArgList(SHEEPDOGCLI, "node", "info", "-r", NULL); - virStorageBackendSheepdogAddHostArg(cmd, pool); - virCommandSetOutputBuffer(cmd, &output); - if (virCommandRun(cmd, NULL) < 0) - return -1; - - if (virStorageBackendSheepdogParseNodeInfo(virStoragePoolObjGetDef(pool), - output) < 0) - return -1; - - return virStorageBackendSheepdogRefreshAllVol(pool); -} - - -static int -virStorageBackendSheepdogDeleteVol(virStoragePoolObj *pool, - virStorageVolDef *vol, - unsigned int flags) -{ - g_autoptr(virCommand) cmd = NULL; - - virCheckFlags(0, -1); - - cmd = virCommandNewArgList(SHEEPDOGCLI, "vdi", "delete", vol->name, NULL); - virStorageBackendSheepdogAddHostArg(cmd, pool); - return virCommandRun(cmd, NULL); -} - - -static int -virStorageBackendSheepdogCreateVol(virStoragePoolObj *pool, - virStorageVolDef *vol) -{ - virStoragePoolDef *def = virStoragePoolObjGetDef(pool); - - if (vol->target.encryption != NULL) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - "%s", _("storage pool does not support encrypted " - "volumes")); - return -1; - } - - vol->type = VIR_STORAGE_VOL_NETWORK; - - VIR_FREE(vol->key); - vol->key = g_strdup_printf("%s/%s", def->source.name, vol->name); - - VIR_FREE(vol->target.path); - vol->target.path = g_strdup(vol->name); - - return 0; -} - - -static int -virStorageBackendSheepdogBuildVol(virStoragePoolObj *pool, - virStorageVolDef *vol, - unsigned int flags) -{ - g_autoptr(virCommand) cmd = NULL; - - virCheckFlags(0, -1); - - if (!vol->target.capacity) { - virReportError(VIR_ERR_NO_SUPPORT, "%s", - _("volume capacity required for this pool")); - return -1; - } - - cmd = virCommandNewArgList(SHEEPDOGCLI, "vdi", "create", vol->name, NULL); - virCommandAddArgFormat(cmd, "%llu", vol->target.capacity); - virStorageBackendSheepdogAddHostArg(cmd, pool); - return virCommandRun(cmd, NULL); -} - - -int -virStorageBackendSheepdogParseVdiList(virStorageVolDef *vol, - char *output) -{ - /* fields: - * current/clone/snapshot, name, id, size, used, shared, creation time, vdi id, [tag] - * - * example output: - * s test 1 10 0 0 1336556634 7c2b25 - * s test 2 10 0 0 1336557203 7c2b26 - * = test 3 10 0 0 1336557216 7c2b27 - */ - - int id; - const char *p, *next; - - vol->target.allocation = vol->target.capacity = 0; - - p = output; - do { - char *end; - - if ((next = strchr(p, '\n'))) - ++next; - - /* ignore snapshots */ - if (*p != '=') - continue; - - /* skip space */ - if (p + 2 < next) - p += 2; - else - return -1; - - /* skip name */ - while (*p != '\0' && *p != ' ') { - if (*p == '\\') - ++p; - ++p; - } - - if (virStrToLong_i(p, &end, 10, &id) < 0) - return -1; - - p = end + 1; - - if (virStrToLong_ull(p, &end, 10, &vol->target.capacity) < 0) - return -1; - - p = end + 1; - - if (virStrToLong_ull(p, &end, 10, &vol->target.allocation) < 0) - return -1; - - return 0; - } while ((p = next)); - - return -1; -} - -static int -virStorageBackendSheepdogRefreshVol(virStoragePoolObj *pool, - virStorageVolDef *vol) -{ - char *output = NULL; - virStoragePoolDef *def = virStoragePoolObjGetDef(pool); - g_autoptr(virCommand) cmd = NULL; - - cmd = virCommandNewArgList(SHEEPDOGCLI, "vdi", "list", vol->name, "-r", NULL); - virStorageBackendSheepdogAddHostArg(cmd, pool); - virCommandSetOutputBuffer(cmd, &output); - if (virCommandRun(cmd, NULL) < 0) - return -1; - - if (virStorageBackendSheepdogParseVdiList(vol, output) < 0) - return -1; - - vol->type = VIR_STORAGE_VOL_NETWORK; - - VIR_FREE(vol->key); - vol->key = g_strdup_printf("%s/%s", def->source.name, vol->name); - - VIR_FREE(vol->target.path); - vol->target.path = g_strdup(vol->name); - - return 0; -} - - -static int -virStorageBackendSheepdogResizeVol(virStoragePoolObj *pool, - virStorageVolDef *vol, - unsigned long long capacity, - unsigned int flags) -{ - g_autoptr(virCommand) cmd = NULL; - - virCheckFlags(0, -1); - - cmd = virCommandNewArgList(SHEEPDOGCLI, "vdi", "resize", vol->name, NULL); - virCommandAddArgFormat(cmd, "%llu", capacity); - virStorageBackendSheepdogAddHostArg(cmd, pool); - return virCommandRun(cmd, NULL); -} - - - -virStorageBackend virStorageBackendSheepdog = { - .type = VIR_STORAGE_POOL_SHEEPDOG, - - .refreshPool = virStorageBackendSheepdogRefreshPool, - .createVol = virStorageBackendSheepdogCreateVol, - .buildVol = virStorageBackendSheepdogBuildVol, - .refreshVol = virStorageBackendSheepdogRefreshVol, - .deleteVol = virStorageBackendSheepdogDeleteVol, - .resizeVol = virStorageBackendSheepdogResizeVol, -}; - - -int -virStorageBackendSheepdogRegister(void) -{ - return virStorageBackendRegister(&virStorageBackendSheepdog); -} diff --git a/src/storage/storage_backend_sheepdog.h b/src/storage/storage_backend_sheepdog.h deleted file mode 100644 index e1fde6373b..0000000000 --- a/src/storage/storage_backend_sheepdog.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * storage_backend_sheepdog.h: storage backend for Sheepdog handling - * - * Copyright (C) 2012 Wido den Hollander - * Copyright (C) 2012 Frank Spijkerman - * Copyright (C) 2012 Sebastian Wiedenroth - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library. If not, see - * <http://www.gnu.org/licenses/>. - */ - -#pragma once - -int virStorageBackendSheepdogRegister(void); diff --git a/src/storage/storage_backend_sheepdog_priv.h b/src/storage/storage_backend_sheepdog_priv.h deleted file mode 100644 index a8cadb5542..0000000000 --- a/src/storage/storage_backend_sheepdog_priv.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * storage_backend_sheepdog_priv.h: header for functions necessary in tests - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library. If not, see - * <http://www.gnu.org/licenses/>. - */ - -#ifndef LIBVIRT_STORAGE_BACKEND_SHEEPDOG_PRIV_H_ALLOW -# error "storage_backend_sheepdog_priv.h may only be included by storage_backend_sheepdog.c or test suites" -#endif /* LIBVIRT_STORAGE_BACKEND_SHEEPDOG_PRIV_H_ALLOW */ - -#pragma once - -#include "conf/storage_conf.h" - -int virStorageBackendSheepdogParseNodeInfo(virStoragePoolDef *pool, - char *output); -int virStorageBackendSheepdogParseVdiList(virStorageVolDef *vol, - char *output); diff --git a/src/storage/storage_driver.c b/src/storage/storage_driver.c index c2ff4b8d06..f93aa733b9 100644 --- a/src/storage/storage_driver.c +++ b/src/storage/storage_driver.c @@ -1644,7 +1644,6 @@ storageVolLookupByPathCallback(virStoragePoolObj *obj, case VIR_STORAGE_POOL_GLUSTER: case VIR_STORAGE_POOL_RBD: - case VIR_STORAGE_POOL_SHEEPDOG: case VIR_STORAGE_POOL_ZFS: case VIR_STORAGE_POOL_LAST: stable_path = g_strdup(data->path); diff --git a/src/storage_file/storage_source_backingstore.c b/src/storage_file/storage_source_backingstore.c index 9021b9da0c..00d5342b9a 100644 --- a/src/storage_file/storage_source_backingstore.c +++ b/src/storage_file/storage_source_backingstore.c @@ -396,7 +396,6 @@ virStorageSourceParseBackingColon(virStorageSource *src, return -1; break; - case VIR_STORAGE_NET_PROTOCOL_SHEEPDOG: case VIR_STORAGE_NET_PROTOCOL_LAST: case VIR_STORAGE_NET_PROTOCOL_NONE: virReportError(VIR_ERR_INTERNAL_ERROR, @@ -843,48 +842,6 @@ virStorageSourceParseBackingJSONNbd(virStorageSource *src, } -static int -virStorageSourceParseBackingJSONSheepdog(virStorageSource *src, - virJSONValue *json, - const char *jsonstr G_GNUC_UNUSED, - int opaque G_GNUC_UNUSED) -{ - const char *filename; - const char *vdi = virJSONValueObjectGetString(json, "vdi"); - virJSONValue *server = virJSONValueObjectGetObject(json, "server"); - - /* legacy URI based syntax passed via 'filename' option */ - if ((filename = virJSONValueObjectGetString(json, "filename"))) { - if (strstr(filename, "://")) - return virStorageSourceParseBackingJSONUriStr(src, filename, - VIR_STORAGE_NET_PROTOCOL_SHEEPDOG); - - /* libvirt doesn't implement a parser for the legacy non-URI syntax */ - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("missing sheepdog URI in JSON backing volume definition")); - return -1; - } - - src->type = VIR_STORAGE_TYPE_NETWORK; - src->protocol = VIR_STORAGE_NET_PROTOCOL_SHEEPDOG; - - if (!vdi) { - virReportError(VIR_ERR_INVALID_ARG, "%s", _("missing sheepdog vdi name")); - return -1; - } - - src->path = g_strdup(vdi); - - src->hosts = g_new0(virStorageNetHostDef, 1); - src->nhosts = 1; - - if (virStorageSourceParseBackingJSONSocketAddress(src->hosts, server) < 0) - return -1; - - return 0; -} - - static int virStorageSourceParseBackingJSONSSH(virStorageSource *src, virJSONValue *json, @@ -1159,7 +1116,6 @@ static const struct virStorageSourceJSONDriverParser jsonParsers[] = { {"gluster", false, virStorageSourceParseBackingJSONGluster, 0}, {"iscsi", false, virStorageSourceParseBackingJSONiSCSI, 0}, {"nbd", false, virStorageSourceParseBackingJSONNbd, 0}, - {"sheepdog", false, virStorageSourceParseBackingJSONSheepdog, 0}, {"ssh", false, virStorageSourceParseBackingJSONSSH, 0}, {"rbd", false, virStorageSourceParseBackingJSONRBD, 0}, {"raw", true, virStorageSourceParseBackingJSONRaw, 0}, diff --git a/src/test/test_driver.c b/src/test/test_driver.c index 15e9018803..88f4fbc5bc 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -7065,7 +7065,6 @@ testStorageVolumeTypeForPool(int pooltype) case VIR_STORAGE_POOL_NETFS: case VIR_STORAGE_POOL_VSTORAGE: return VIR_STORAGE_VOL_FILE; - case VIR_STORAGE_POOL_SHEEPDOG: case VIR_STORAGE_POOL_ISCSI_DIRECT: case VIR_STORAGE_POOL_GLUSTER: case VIR_STORAGE_POOL_RBD: diff --git a/tests/meson.build b/tests/meson.build index 05c3e90195..5e1955a625 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -514,12 +514,6 @@ if conf.has('WITH_STORAGE_FS') ] endif -if conf.has('WITH_STORAGE_SHEEPDOG') - tests += [ - { 'name': 'storagebackendsheepdogtest', 'link_with': [ storage_driver_impl_lib, storage_backend_sheepdog_priv_lib ] }, - ] -endif - if conf.has('WITH_VBOX') tests += [ { 'name': 'vboxsnapshotxmltest', 'link_with': [ vbox_driver_impl ] }, diff --git a/tests/qemublocktest.c b/tests/qemublocktest.c index 3f3e6d1532..6a46a6da72 100644 --- a/tests/qemublocktest.c +++ b/tests/qemublocktest.c @@ -1094,9 +1094,6 @@ mymain(void) TEST_JSON_FORMAT_NET("<source protocol='iscsi' name='iqn.2016-12.com.virttest:emulated-iscsi-noauth.target/6'>\n" " <host name='test.org' port='1234'/>\n" "</source>\n"); - TEST_JSON_FORMAT_NET("<source protocol='sheepdog' name='test'>\n" - " <host name='example.com' port='321'/>\n" - "</source>\n"); TEST_JSON_FORMAT_NET("<source protocol='vxhs' name='c6718f6b-0401-441d-a8c3-1f0064d75ee0'>\n" " <host name='example.com' port='9999'/>\n" "</source>\n"); @@ -1223,7 +1220,6 @@ mymain(void) TEST_IMAGE_CREATE("network-gluster-qcow2", NULL); TEST_IMAGE_CREATE("network-rbd-qcow2", NULL); TEST_IMAGE_CREATE("network-ssh-qcow2", NULL); - TEST_IMAGE_CREATE("network-sheepdog-qcow2", NULL); #define TEST_BITMAP_DETECT(testname) \ do { \ diff --git a/tests/qemublocktestdata/imagecreate/network-sheepdog-qcow2.json b/tests/qemublocktestdata/imagecreate/network-sheepdog-qcow2.json deleted file mode 100644 index d86bef6bc8..0000000000 --- a/tests/qemublocktestdata/imagecreate/network-sheepdog-qcow2.json +++ /dev/null @@ -1,20 +0,0 @@ -protocol: -{ - "driver": "sheepdog", - "location": { - "server": { - "type": "inet", - "host": "example.com", - "port": "1234" - }, - "vdi": "asdf/i.qcow2" - }, - "size": 4294967296 -} - -format: -{ - "driver": "qcow2", - "file": "0123456789ABCDEF0123456789ABCDE", - "size": 8589934590 -} diff --git a/tests/qemublocktestdata/imagecreate/network-sheepdog-qcow2.xml b/tests/qemublocktestdata/imagecreate/network-sheepdog-qcow2.xml deleted file mode 100644 index 1145daafdd..0000000000 --- a/tests/qemublocktestdata/imagecreate/network-sheepdog-qcow2.xml +++ /dev/null @@ -1,12 +0,0 @@ -<disk device='disk' name='vda' type='network'> - <driver type='qcow2'/> - <source protocol='sheepdog' name='asdf/i.qcow2'> - <host name='example.com' port='1234'/> - <privateData> - <nodenames> - <nodename type='storage' name='0123456789ABCDEF0123456789ABCDE'/> - <nodename type='format' name='0123456789ABCDEF0123456789ABCDE'/> - </nodenames> - </privateData> - </source> -</disk> diff --git a/tests/qemusecuritytest.c b/tests/qemusecuritytest.c index 184ffca15f..5006824d10 100644 --- a/tests/qemusecuritytest.c +++ b/tests/qemusecuritytest.c @@ -221,7 +221,6 @@ mymain(void) DO_TEST_DOMAIN("disk-network-iscsi"); DO_TEST_DOMAIN("disk-network-nbd"); DO_TEST_DOMAIN("disk-network-rbd"); - DO_TEST_DOMAIN("disk-network-sheepdog"); DO_TEST_DOMAIN("disk-network-source-auth"); DO_TEST_DOMAIN("disk-network-tlsx509-nbd"); DO_TEST_DOMAIN("disk-network-tlsx509-vxhs"); diff --git a/tests/qemuxml2argvdata/disk-network-sheepdog.args b/tests/qemuxml2argvdata/disk-network-sheepdog.args deleted file mode 100644 index fb7102fbb8..0000000000 --- a/tests/qemuxml2argvdata/disk-network-sheepdog.args +++ /dev/null @@ -1,30 +0,0 @@ -LC_ALL=C \ -PATH=/bin \ -HOME=/tmp/lib/domain--1-QEMUGuest1 \ -USER=test \ -LOGNAME=test \ -XDG_DATA_HOME=/tmp/lib/domain--1-QEMUGuest1/.local/share \ -XDG_CACHE_HOME=/tmp/lib/domain--1-QEMUGuest1/.cache \ -XDG_CONFIG_HOME=/tmp/lib/domain--1-QEMUGuest1/.config \ -QEMU_AUDIO_DRV=none \ -/usr/bin/qemu-system-i386 \ --name QEMUGuest1 \ --S \ --machine pc,accel=tcg,usb=off,dump-guest-core=off \ --m 214 \ --realtime mlock=off \ --smp 1,sockets=1,cores=1,threads=1 \ --uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ --display none \ --no-user-config \ --nodefaults \ --chardev socket,id=charmonitor,path=/tmp/lib/domain--1-QEMUGuest1/monitor.sock,server=on,wait=off \ --mon chardev=charmonitor,id=monitor,mode=control \ --rtc base=utc \ --no-shutdown \ --no-acpi \ --usb \ --drive file=/dev/HostVG/QEMU,,Guest,,,,1,format=raw,if=none,id=drive-ide0-0-0 \ --device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 \ --drive file=sheepdog:example.org:6000:image,,with,,commas,format=raw,if=none,id=drive-virtio-disk0 \ --device virtio-blk-pci,bus=pci.0,addr=0x3,drive=drive-virtio-disk0,id=virtio-disk0 diff --git a/tests/qemuxml2argvdata/disk-network-sheepdog.x86_64-2.12.0.args b/tests/qemuxml2argvdata/disk-network-sheepdog.x86_64-2.12.0.args deleted file mode 100644 index 4d3b051da2..0000000000 --- a/tests/qemuxml2argvdata/disk-network-sheepdog.x86_64-2.12.0.args +++ /dev/null @@ -1,34 +0,0 @@ -LC_ALL=C \ -PATH=/bin \ -HOME=/tmp/lib/domain--1-QEMUGuest1 \ -USER=test \ -LOGNAME=test \ -XDG_DATA_HOME=/tmp/lib/domain--1-QEMUGuest1/.local/share \ -XDG_CACHE_HOME=/tmp/lib/domain--1-QEMUGuest1/.cache \ -XDG_CONFIG_HOME=/tmp/lib/domain--1-QEMUGuest1/.config \ -QEMU_AUDIO_DRV=none \ -/usr/bin/qemu-system-i386 \ --name guest=QEMUGuest1,debug-threads=on \ --S \ --object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \ --machine pc-i440fx-2.12,accel=tcg,usb=off,dump-guest-core=off \ --m 214 \ --realtime mlock=off \ --smp 1,sockets=1,cores=1,threads=1 \ --uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ --display none \ --no-user-config \ --nodefaults \ --chardev socket,id=charmonitor,fd=1729,server=on,wait=off \ --mon chardev=charmonitor,id=monitor,mode=control \ --rtc base=utc \ --no-shutdown \ --no-acpi \ --boot strict=on \ --device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 \ --drive file=/dev/HostVG/QEMU,,Guest,,,,1,format=raw,if=none,id=drive-ide0-0-0 \ --device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 \ --drive file=sheepdog:example.org:6000:image,,with,,commas,format=raw,if=none,id=drive-virtio-disk0 \ --device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x2,drive=drive-virtio-disk0,id=virtio-disk0 \ --sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \ --msg timestamp=on diff --git a/tests/qemuxml2argvdata/disk-network-sheepdog.x86_64-latest.args b/tests/qemuxml2argvdata/disk-network-sheepdog.x86_64-latest.args deleted file mode 100644 index a0c663229c..0000000000 --- a/tests/qemuxml2argvdata/disk-network-sheepdog.x86_64-latest.args +++ /dev/null @@ -1,38 +0,0 @@ -LC_ALL=C \ -PATH=/bin \ -HOME=/tmp/lib/domain--1-QEMUGuest1 \ -USER=test \ -LOGNAME=test \ -XDG_DATA_HOME=/tmp/lib/domain--1-QEMUGuest1/.local/share \ -XDG_CACHE_HOME=/tmp/lib/domain--1-QEMUGuest1/.cache \ -XDG_CONFIG_HOME=/tmp/lib/domain--1-QEMUGuest1/.config \ -/usr/bin/qemu-system-i386 \ --name guest=QEMUGuest1,debug-threads=on \ --S \ --object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/tmp/lib/domain--1-QEMUGuest1/master-key.aes"}' \ --machine pc,accel=tcg,usb=off,dump-guest-core=off,memory-backend=pc.ram \ --cpu qemu64 \ --m 214 \ --object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \ --overcommit mem-lock=off \ --smp 1,sockets=1,cores=1,threads=1 \ --uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ --display none \ --no-user-config \ --nodefaults \ --chardev socket,id=charmonitor,fd=1729,server=on,wait=off \ --mon chardev=charmonitor,id=monitor,mode=control \ --rtc base=utc \ --no-shutdown \ --no-acpi \ --boot strict=on \ --device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 \ --blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMU,Guest,,1","node-name":"libvirt-2-storage","auto-read-only":true,"discard":"unmap"}' \ --blockdev '{"node-name":"libvirt-2-format","read-only":false,"driver":"raw","file":"libvirt-2-storage"}' \ --device ide-hd,bus=ide.0,unit=0,drive=libvirt-2-format,id=ide0-0-0,bootindex=1 \ --blockdev '{"driver":"sheepdog","server":{"type":"inet","host":"example.org","port":"6000"},"vdi":"image,with,commas","node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ --blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw","file":"libvirt-1-storage"}' \ --device virtio-blk-pci,bus=pci.0,addr=0x2,drive=libvirt-1-format,id=virtio-disk0 \ --audiodev id=audio1,driver=none \ --sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \ --msg timestamp=on diff --git a/tests/qemuxml2argvdata/disk-network-sheepdog.xml b/tests/qemuxml2argvdata/disk-network-sheepdog.xml deleted file mode 100644 index 3d6d3b2ae9..0000000000 --- a/tests/qemuxml2argvdata/disk-network-sheepdog.xml +++ /dev/null @@ -1,37 +0,0 @@ -<domain type='qemu'> - <name>QEMUGuest1</name> - <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> - <memory unit='KiB'>219136</memory> - <currentMemory unit='KiB'>219136</currentMemory> - <vcpu placement='static'>1</vcpu> - <os> - <type arch='i686' machine='pc'>hvm</type> - <boot dev='hd'/> - </os> - <clock offset='utc'/> - <on_poweroff>destroy</on_poweroff> - <on_reboot>restart</on_reboot> - <on_crash>destroy</on_crash> - <devices> - <emulator>/usr/bin/qemu-system-i386</emulator> - <disk type='block' device='disk'> - <driver name='qemu' type='raw'/> - <source dev='/dev/HostVG/QEMU,Guest,,1'/> - <target dev='hda' bus='ide'/> - <address type='drive' controller='0' bus='0' target='0' unit='0'/> - </disk> - <disk type='network' device='disk'> - <driver name='qemu' type='raw'/> - <source protocol='sheepdog' name='image,with,commas'> - <host name='example.org' port='6000'/> - </source> - <target dev='vda' bus='virtio'/> - </disk> - <controller type='usb' index='0'/> - <controller type='ide' index='0'/> - <controller type='pci' index='0' model='pci-root'/> - <input type='mouse' bus='ps2'/> - <input type='keyboard' bus='ps2'/> - <memballoon model='none'/> - </devices> -</domain> diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 572c7b251a..fa4fa8d3c3 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -1399,9 +1399,6 @@ mymain(void) DO_TEST_CAPS_VER("disk-network-rbd", "2.12.0"); DO_TEST_CAPS_LATEST("disk-network-rbd"); DO_TEST_FAILURE("disk-network-rbd-no-colon", NONE); - DO_TEST("disk-network-sheepdog", NONE); - DO_TEST_CAPS_VER("disk-network-sheepdog", "2.12.0"); - DO_TEST_CAPS_LATEST("disk-network-sheepdog"); DO_TEST("disk-network-source-auth", NONE); DO_TEST_CAPS_VER("disk-network-source-auth", "2.12.0"); DO_TEST_CAPS_LATEST("disk-network-source-auth"); diff --git a/tests/qemuxml2xmloutdata/disk-network-sheepdog.xml b/tests/qemuxml2xmloutdata/disk-network-sheepdog.xml deleted file mode 100644 index c1862e5a54..0000000000 --- a/tests/qemuxml2xmloutdata/disk-network-sheepdog.xml +++ /dev/null @@ -1,43 +0,0 @@ -<domain type='qemu'> - <name>QEMUGuest1</name> - <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> - <memory unit='KiB'>219136</memory> - <currentMemory unit='KiB'>219136</currentMemory> - <vcpu placement='static'>1</vcpu> - <os> - <type arch='i686' machine='pc'>hvm</type> - <boot dev='hd'/> - </os> - <clock offset='utc'/> - <on_poweroff>destroy</on_poweroff> - <on_reboot>restart</on_reboot> - <on_crash>destroy</on_crash> - <devices> - <emulator>/usr/bin/qemu-system-i386</emulator> - <disk type='block' device='disk'> - <driver name='qemu' type='raw'/> - <source dev='/dev/HostVG/QEMU,Guest,,1'/> - <target dev='hda' bus='ide'/> - <address type='drive' controller='0' bus='0' target='0' unit='0'/> - </disk> - <disk type='network' device='disk'> - <driver name='qemu' type='raw'/> - <source protocol='sheepdog' name='image,with,commas'> - <host name='example.org' port='6000'/> - </source> - <target dev='vda' bus='virtio'/> - <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> - </disk> - <controller type='usb' index='0'> - <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/> - </controller> - <controller type='ide' index='0'> - <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/> - </controller> - <controller type='pci' index='0' model='pci-root'/> - <input type='mouse' bus='ps2'/> - <input type='keyboard' bus='ps2'/> - <audio id='1' type='none'/> - <memballoon model='none'/> - </devices> -</domain> diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c index 32b68fcfb0..0b6b841ea5 100644 --- a/tests/qemuxml2xmltest.c +++ b/tests/qemuxml2xmltest.c @@ -320,7 +320,6 @@ mymain(void) DO_TEST("disk-network-gluster", NONE); DO_TEST("disk-network-rbd", NONE); DO_TEST("disk-network-source-auth", NONE); - DO_TEST("disk-network-sheepdog", NONE); DO_TEST("disk-network-vxhs", NONE); DO_TEST_CAPS_LATEST("disk-network-nfs"); DO_TEST("disk-network-tlsx509-nbd", NONE); diff --git a/tests/storagebackendsheepdogtest.c b/tests/storagebackendsheepdogtest.c deleted file mode 100644 index c7dabd976b..0000000000 --- a/tests/storagebackendsheepdogtest.c +++ /dev/null @@ -1,206 +0,0 @@ -/* - * storagebackendsheepdogtest.c: storage backend for Sheepdog handling - * - * Copyright (C) 2014 Red Hat, Inc. - * Copyright (C) 2012 Sebastian Wiedenroth - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library. If not, see - * <http://www.gnu.org/licenses/>. - */ - -#include <config.h> - -#include <unistd.h> - -#include <fcntl.h> - -#include "internal.h" -#include "testutils.h" -#define LIBVIRT_STORAGE_BACKEND_SHEEPDOG_PRIV_H_ALLOW -#include "storage/storage_backend_sheepdog_priv.h" -#include "virstring.h" - -#define VIR_FROM_THIS VIR_FROM_NONE - -typedef struct { - const char *output; - int expected_return; - uint64_t expected_capacity; - uint64_t expected_allocation; -} collie_test; - -struct testNodeInfoParserData { - collie_test data; - const char *poolxml; -}; - -struct testVDIListParserData { - collie_test data; - const char *poolxml; - const char *volxml; -}; - - -static int -test_node_info_parser(const void *opaque) -{ - const struct testNodeInfoParserData *data = opaque; - collie_test test = data->data; - g_autofree char *output = NULL; - g_autoptr(virStoragePoolDef) pool = NULL; - - if (!(pool = virStoragePoolDefParseFile(data->poolxml))) - return -1; - - output = g_strdup(test.output); - - if (virStorageBackendSheepdogParseNodeInfo(pool, output) != - test.expected_return) - return -1; - - if (test.expected_return) - return 0; - - if (pool->capacity == test.expected_capacity && - pool->allocation == test.expected_allocation) - return 0; - - return -1; -} - -static int -test_vdi_list_parser(const void *opaque) -{ - const struct testVDIListParserData *data = opaque; - collie_test test = data->data; - g_autofree char *output = NULL; - g_autoptr(virStoragePoolDef) pool = NULL; - g_autoptr(virStorageVolDef) vol = NULL; - - if (!(pool = virStoragePoolDefParseFile(data->poolxml))) - return -1; - - if (!(vol = virStorageVolDefParseFile(pool, data->volxml, 0))) - return -1; - - output = g_strdup(test.output); - - if (virStorageBackendSheepdogParseVdiList(vol, output) != - test.expected_return) - return -1; - - if (test.expected_return) - return 0; - - if (vol->target.capacity == test.expected_capacity && - vol->target.allocation == test.expected_allocation) - return 0; - - return -1; -} - - -static int -mymain(void) -{ - int ret = 0; - g_autofree char *poolxml = NULL; - g_autofree char *volxml = NULL; - - collie_test node_info_tests[] = { - {"", -1, 0, 0}, - {"Total 15245667872 117571104 0% 20972341\n", 0, 15245667872, 117571104}, - {"To", -1, 0, 0}, - {"asdf\nasdf", -1, 0, 0}, - {"Total ", -1, 0, 0}, - {"Total 1", -1, 0, 0}, - {"Total 1\n", -1, 0, 0}, - {"Total 1 ", -1, 0, 0}, - {"Total 1 2", -1, 0, 0}, - {"Total 1 2 ", -1, 0, 0}, - {"Total 1 2\n", 0, 1, 2}, - {"Total 1 2 \n", 0, 1, 2}, - {"Total a 2 \n", -1, 0, 0}, - {"Total 1 b \n", -1, 0, 0}, - {"Total a b \n", -1, 0, 0}, - {"stuff\nTotal 1 2 \n", 0, 1, 2}, - {"0 1 2 3\nTotal 1 2 \n", 0, 1, 2}, - {NULL, 0, 0, 0} - }; - - collie_test vdi_list_tests[] = { - {"", -1, 0, 0}, - {"= test 3 10 20 0 1336557216 7c2b27\n", 0, 10, 20}, - {"= test\\ with\\ spaces 3 10 20 0 1336557216 7c2b27\n", 0, 10, 20}, - {"= backslashattheend\\\\ 3 10 20 0 1336557216 7c2b27\n", 0, 10, 20}, - {"s test 1 10 20 0 1336556634 7c2b25\n= test 3 50 60 0 1336557216 7c2b27\n", 0, 50, 60}, - {"=", -1, 0, 0}, - {"= test", -1, 0, 0}, - {"= test ", -1, 0, 0}, - {"= test 1", -1, 0, 0}, - {"= test 1 ", -1, 0, 0}, - {"= test 1 2", -1, 0, 0}, - {"= test 1 2 ", -1, 0, 0}, - {"= test 1 2 3", -1, 0, 0}, - {NULL, 0, 0, 0} - }; - - collie_test *test = node_info_tests; - - poolxml = g_strdup_printf("%s/storagepoolxml2xmlin/pool-sheepdog.xml", - abs_srcdir); - - volxml = g_strdup_printf("%s/storagevolxml2xmlin/vol-sheepdog.xml", - abs_srcdir); - -#define DO_TEST_NODE(collie) \ - do { \ - struct testNodeInfoParserData data = { \ - .data = collie, \ - .poolxml = poolxml, \ - }; \ - if (virTestRun("node_info_parser", test_node_info_parser, \ - &data) < 0) \ - ret = -1; \ - } while (0) - - while (test->output != NULL) { - DO_TEST_NODE(*test); - ++test; - } - - -#define DO_TEST_VDI(collie) \ - do { \ - struct testVDIListParserData data = { \ - .data = collie, \ - .poolxml = poolxml, \ - .volxml = volxml, \ - }; \ - if (virTestRun("vdi_list_parser", test_vdi_list_parser, \ - &data) < 0) \ - ret = -1; \ - } while (0) - - test = vdi_list_tests; - - while (test->output != NULL) { - DO_TEST_VDI(*test); - ++test; - } - - return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE; -} - -VIR_TEST_MAIN(mymain) diff --git a/tests/storagepoolcapsschemadata/poolcaps-fs.xml b/tests/storagepoolcapsschemadata/poolcaps-fs.xml index eee75af746..ab5204b981 100644 --- a/tests/storagepoolcapsschemadata/poolcaps-fs.xml +++ b/tests/storagepoolcapsschemadata/poolcaps-fs.xml @@ -152,8 +152,6 @@ </enum> </volOptions> </pool> - <pool type='sheepdog' supported='no'> - </pool> <pool type='gluster' supported='no'> <volOptions> <defaultFormat type='raw'/> diff --git a/tests/storagepoolcapsschemadata/poolcaps-full.xml b/tests/storagepoolcapsschemadata/poolcaps-full.xml index 805950a937..a1aaa7623e 100644 --- a/tests/storagepoolcapsschemadata/poolcaps-full.xml +++ b/tests/storagepoolcapsschemadata/poolcaps-full.xml @@ -152,8 +152,6 @@ </enum> </volOptions> </pool> - <pool type='sheepdog' supported='yes'> - </pool> <pool type='gluster' supported='yes'> <volOptions> <defaultFormat type='raw'/> diff --git a/tests/storagepoolxml2argvtest.c b/tests/storagepoolxml2argvtest.c index 449b745519..95feaaf9a9 100644 --- a/tests/storagepoolxml2argvtest.c +++ b/tests/storagepoolxml2argvtest.c @@ -64,7 +64,6 @@ testCompareXMLToArgvFiles(bool shouldFail, case VIR_STORAGE_POOL_SCSI: case VIR_STORAGE_POOL_MPATH: case VIR_STORAGE_POOL_RBD: - case VIR_STORAGE_POOL_SHEEPDOG: case VIR_STORAGE_POOL_GLUSTER: case VIR_STORAGE_POOL_ZFS: case VIR_STORAGE_POOL_VSTORAGE: @@ -178,7 +177,6 @@ mymain(void) DO_TEST_FAIL("pool-mpath"); DO_TEST_FAIL("pool-iscsi-multiiqn"); DO_TEST_FAIL("pool-iscsi-vendor-product"); - DO_TEST_FAIL("pool-sheepdog"); DO_TEST_FAIL("pool-gluster"); DO_TEST_FAIL("pool-gluster-sub"); DO_TEST_FAIL("pool-scsi-type-scsi-host-stable"); diff --git a/tests/storagepoolxml2xmlin/pool-sheepdog.xml b/tests/storagepoolxml2xmlin/pool-sheepdog.xml deleted file mode 100644 index 49b6baf014..0000000000 --- a/tests/storagepoolxml2xmlin/pool-sheepdog.xml +++ /dev/null @@ -1,8 +0,0 @@ -<pool type='sheepdog'> - <source> - <name>sheepdog</name> - <host name='localhost' port='7000'/> - </source> - <uuid>65fcba04-5b13-bd93-cff3-52ce48e11ad7</uuid> - <name>sheepdog</name> -</pool> diff --git a/tests/storagepoolxml2xmlout/pool-sheepdog.xml b/tests/storagepoolxml2xmlout/pool-sheepdog.xml deleted file mode 100644 index 000c068677..0000000000 --- a/tests/storagepoolxml2xmlout/pool-sheepdog.xml +++ /dev/null @@ -1,11 +0,0 @@ -<pool type='sheepdog'> - <name>sheepdog</name> - <uuid>65fcba04-5b13-bd93-cff3-52ce48e11ad7</uuid> - <capacity unit='bytes'>0</capacity> - <allocation unit='bytes'>0</allocation> - <available unit='bytes'>0</available> - <source> - <host name='localhost' port='7000'/> - <name>sheepdog</name> - </source> -</pool> diff --git a/tests/storagepoolxml2xmltest.c b/tests/storagepoolxml2xmltest.c index f21f20357a..945802d567 100644 --- a/tests/storagepoolxml2xmltest.c +++ b/tests/storagepoolxml2xmltest.c @@ -88,7 +88,6 @@ mymain(void) DO_TEST("pool-mpath"); DO_TEST("pool-iscsi-multiiqn"); DO_TEST("pool-iscsi-vendor-product"); - DO_TEST("pool-sheepdog"); DO_TEST("pool-gluster"); DO_TEST("pool-gluster-sub"); DO_TEST("pool-scsi-type-scsi-host-stable"); diff --git a/tests/storagevolxml2xmlin/vol-sheepdog.xml b/tests/storagevolxml2xmlin/vol-sheepdog.xml deleted file mode 100644 index d6e920bb81..0000000000 --- a/tests/storagevolxml2xmlin/vol-sheepdog.xml +++ /dev/null @@ -1,10 +0,0 @@ -<volume type='network'> - <name>test2</name> - <source> - </source> - <capacity unit='bytes'>1024</capacity> - <allocation unit='bytes'>0</allocation> - <target> - <path>sheepdog:test2</path> - </target> -</volume> diff --git a/tests/storagevolxml2xmlout/vol-sheepdog.xml b/tests/storagevolxml2xmlout/vol-sheepdog.xml deleted file mode 100644 index 47fb8eb418..0000000000 --- a/tests/storagevolxml2xmlout/vol-sheepdog.xml +++ /dev/null @@ -1,8 +0,0 @@ -<volume type='network'> - <name>test2</name> - <capacity unit='bytes'>1024</capacity> - <allocation unit='bytes'>0</allocation> - <target> - <path>sheepdog:test2</path> - </target> -</volume> diff --git a/tests/storagevolxml2xmltest.c b/tests/storagevolxml2xmltest.c index ed24d98426..792bc5502a 100644 --- a/tests/storagevolxml2xmltest.c +++ b/tests/storagevolxml2xmltest.c @@ -93,7 +93,6 @@ mymain(void) DO_TEST("pool-disk", "vol-partition"); DO_TEST("pool-logical", "vol-logical"); DO_TEST("pool-logical", "vol-logical-backing"); - DO_TEST("pool-sheepdog", "vol-sheepdog"); DO_TEST("pool-gluster", "vol-gluster-dir"); DO_TEST("pool-gluster", "vol-gluster-dir-neg-uid"); DO_TEST_FULL("pool-dir", "vol-qcow2-nocapacity", diff --git a/tests/virjsondata/deflatten-qemu-sheepdog-in.json b/tests/virjsondata/deflatten-qemu-sheepdog-in.json deleted file mode 100644 index 7c0286300f..0000000000 --- a/tests/virjsondata/deflatten-qemu-sheepdog-in.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "driver": "raw", - "file": { - "server.host": "10.10.10.10", - "server.port": "7000", - "tag": "", - "driver": "sheepdog", - "server.type": "inet", - "vdi": "Alice" - } -} diff --git a/tests/virjsondata/deflatten-qemu-sheepdog-out.json b/tests/virjsondata/deflatten-qemu-sheepdog-out.json deleted file mode 100644 index 258b44a76c..0000000000 --- a/tests/virjsondata/deflatten-qemu-sheepdog-out.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "driver": "raw", - "file": { - "server": { - "host": "10.10.10.10", - "port": "7000", - "type": "inet" - }, - "tag": "", - "driver": "sheepdog", - "vdi": "Alice" - } -} diff --git a/tests/virjsontest.c b/tests/virjsontest.c index 5e26de1f22..c200843245 100644 --- a/tests/virjsontest.c +++ b/tests/virjsontest.c @@ -608,7 +608,6 @@ mymain(void) DO_TEST_DEFLATTEN("double-key", false); DO_TEST_DEFLATTEN("concat", true); DO_TEST_DEFLATTEN("concat-double-key", false); - DO_TEST_DEFLATTEN("qemu-sheepdog", true); DO_TEST_DEFLATTEN("dotted-array", true); return (ret == 0) ? EXIT_SUCCESS : EXIT_FAILURE; diff --git a/tests/virstoragetest.c b/tests/virstoragetest.c index 1b211b60e6..6c5d35568d 100644 --- a/tests/virstoragetest.c +++ b/tests/virstoragetest.c @@ -1465,27 +1465,6 @@ mymain(void) "<source protocol='iscsi' name='iqn.2016-12.com.virttest:emulated-iscsi-noauth.target/6'>\n" " <host name='[2001::0]' port='3260'/>\n" "</source>\n"); - TEST_BACKING_PARSE("json:{\"file\":{\"driver\":\"sheepdog\"," - "\"vdi\":\"test\"," - "\"server\":{ \"type\":\"inet\"," - "\"host\":\"example.com\"," - "\"port\":\"321\"" - "}" - "}" - "}", - "<source protocol='sheepdog' name='test'>\n" - " <host name='example.com' port='321'/>\n" - "</source>\n"); - TEST_BACKING_PARSE("json:{\"driver\": \"raw\"," - "\"file\": {\"server.host\": \"10.10.10.10\"," - "\"server.port\": \"7000\"," - "\"tag\": \"\"," - "\"driver\": \"sheepdog\"," - "\"server.type\": \"inet\"," - "\"vdi\": \"Alice\"}}", - "<source protocol='sheepdog' name='Alice'>\n" - " <host name='10.10.10.10' port='7000'/>\n" - "</source>\n"); TEST_BACKING_PARSE("json:{\"file\":{\"driver\":\"vxhs\"," "\"vdisk-id\":\"c6718f6b-0401-441d-a8c3-1f0064d75ee0\"," "\"server\": { \"host\":\"example.com\"," diff --git a/tools/virsh-pool.c b/tools/virsh-pool.c index e8d3c33506..831eabae85 100644 --- a/tools/virsh-pool.c +++ b/tools/virsh-pool.c @@ -1224,9 +1224,6 @@ cmdPoolList(vshControl *ctl, const vshCmd *cmd G_GNUC_UNUSED) case VIR_STORAGE_POOL_RBD: flags |= VIR_CONNECT_LIST_STORAGE_POOLS_RBD; break; - case VIR_STORAGE_POOL_SHEEPDOG: - flags |= VIR_CONNECT_LIST_STORAGE_POOLS_SHEEPDOG; - break; case VIR_STORAGE_POOL_GLUSTER: flags |= VIR_CONNECT_LIST_STORAGE_POOLS_GLUSTER; break; diff --git a/tools/virsh.c b/tools/virsh.c index 7d7109cfdf..0060628a53 100644 --- a/tools/virsh.c +++ b/tools/virsh.c @@ -577,9 +577,6 @@ virshShowVersion(vshControl *ctl G_GNUC_UNUSED) #ifdef WITH_STORAGE_RBD vshPrint(ctl, " RBD"); #endif -#ifdef WITH_STORAGE_SHEEPDOG - vshPrint(ctl, " Sheepdog"); -#endif #ifdef WITH_STORAGE_GLUSTER vshPrint(ctl, " Gluster"); #endif -- 2.30.2

On Mon, Apr 19, 2021 at 12:47:59 +0200, Pavel Hrdina wrote:
Upstream sheepdog project doesn't have any active development for almost 3 years as the last commit is from 28/06/2018 [1].
Looking into repology [2] the latest version 1.0.1 is included only in Fedora (since Fedora 26). There are only few other distributions having older sheepdog versions: Debian oldstable (stretch), EPEL 6, Ubuntu 18.04 and older and few other less-common distributions.
Based on the data above drop support for sheepdog from libvirt.
[1] <https://github.com/sheepdog/sheepdog/commits/master> [2] <https://repology.org/project/sheepdog/versions>
Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- docs/formatdomain.rst | 13 +- docs/formatstorage.html.in | 5 +- docs/kbase/rpm-deployment.rst | 6 - docs/manpages/virsh.rst | 7 +- docs/schemas/domaincommon.rng | 1 - docs/schemas/storagepool.rng | 22 - docs/storage.html.in | 59 --- libvirt.spec.in | 36 -- meson.build | 6 - meson_options.txt | 1 - mingw-libvirt.spec.in | 1 - po/POTFILES.in | 1 - src/conf/domain_conf.c | 1 - src/conf/storage_conf.c | 12 +- src/conf/storage_conf.h | 2 - src/conf/storage_source_conf.c | 4 - src/conf/storage_source_conf.h | 1 - src/conf/virstorageobj.c | 9 - src/libvirt-storage.c | 1 - src/libxl/libxl_conf.c | 1 - src/libxl/xen_xl.c | 1 - src/qemu/qemu_block.c | 41 -- src/qemu/qemu_command.c | 20 - src/qemu/qemu_domain.c | 1 - src/qemu/qemu_snapshot.c | 3 - src/storage/meson.build | 25 -- src/storage/storage_backend.c | 6 - src/storage/storage_backend_sheepdog.c | 378 ------------------ src/storage/storage_backend_sheepdog.h | 25 -- src/storage/storage_backend_sheepdog_priv.h | 30 -- src/storage/storage_driver.c | 1 - .../storage_source_backingstore.c | 44 -- src/test/test_driver.c | 1 - tests/meson.build | 6 - tests/qemublocktest.c | 4 - .../imagecreate/network-sheepdog-qcow2.json | 20 - .../imagecreate/network-sheepdog-qcow2.xml | 12 - tests/qemusecuritytest.c | 1 - .../disk-network-sheepdog.args | 30 -- .../disk-network-sheepdog.x86_64-2.12.0.args | 34 -- .../disk-network-sheepdog.x86_64-latest.args | 38 -- .../disk-network-sheepdog.xml | 37 -- tests/qemuxml2argvtest.c | 3 - .../disk-network-sheepdog.xml | 43 -- tests/qemuxml2xmltest.c | 1 - tests/storagebackendsheepdogtest.c | 206 ---------- .../storagepoolcapsschemadata/poolcaps-fs.xml | 2 - .../poolcaps-full.xml | 2 - tests/storagepoolxml2argvtest.c | 2 - tests/storagepoolxml2xmlin/pool-sheepdog.xml | 8 - tests/storagepoolxml2xmlout/pool-sheepdog.xml | 11 - tests/storagepoolxml2xmltest.c | 1 - tests/storagevolxml2xmlin/vol-sheepdog.xml | 10 - tests/storagevolxml2xmlout/vol-sheepdog.xml | 8 - tests/storagevolxml2xmltest.c | 1 - .../deflatten-qemu-sheepdog-in.json | 11 - .../deflatten-qemu-sheepdog-out.json | 13 - tests/virjsontest.c | 1 - tests/virstoragetest.c | 21 - tools/virsh-pool.c | 3 - tools/virsh.c | 3 - 61 files changed, 8 insertions(+), 1289 deletions(-) delete mode 100644 src/storage/storage_backend_sheepdog.c delete mode 100644 src/storage/storage_backend_sheepdog.h delete mode 100644 src/storage/storage_backend_sheepdog_priv.h delete mode 100644 tests/qemublocktestdata/imagecreate/network-sheepdog-qcow2.json delete mode 100644 tests/qemublocktestdata/imagecreate/network-sheepdog-qcow2.xml delete mode 100644 tests/qemuxml2argvdata/disk-network-sheepdog.args delete mode 100644 tests/qemuxml2argvdata/disk-network-sheepdog.x86_64-2.12.0.args delete mode 100644 tests/qemuxml2argvdata/disk-network-sheepdog.x86_64-latest.args delete mode 100644 tests/qemuxml2argvdata/disk-network-sheepdog.xml delete mode 100644 tests/qemuxml2xmloutdata/disk-network-sheepdog.xml delete mode 100644 tests/storagebackendsheepdogtest.c delete mode 100644 tests/storagepoolxml2xmlin/pool-sheepdog.xml delete mode 100644 tests/storagepoolxml2xmlout/pool-sheepdog.xml delete mode 100644 tests/storagevolxml2xmlin/vol-sheepdog.xml delete mode 100644 tests/storagevolxml2xmlout/vol-sheepdog.xml delete mode 100644 tests/virjsondata/deflatten-qemu-sheepdog-in.json delete mode 100644 tests/virjsondata/deflatten-qemu-sheepdog-out.json
While I don't have any problems with removing the sheepdog storage driver I don't think we should remove both the storage driver and qemu driver interactions in one commit and at the same time I also don't think we should remove the support for launching QEMU guests with sheepdog backing as that has negligible maint burden.

On Mon, Apr 19, 2021 at 12:53:11PM +0200, Peter Krempa wrote:
On Mon, Apr 19, 2021 at 12:47:59 +0200, Pavel Hrdina wrote:
Upstream sheepdog project doesn't have any active development for almost 3 years as the last commit is from 28/06/2018 [1].
Looking into repology [2] the latest version 1.0.1 is included only in Fedora (since Fedora 26). There are only few other distributions having older sheepdog versions: Debian oldstable (stretch), EPEL 6, Ubuntu 18.04 and older and few other less-common distributions.
Based on the data above drop support for sheepdog from libvirt.
[1] <https://github.com/sheepdog/sheepdog/commits/master> [2] <https://repology.org/project/sheepdog/versions>
Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- docs/formatdomain.rst | 13 +- docs/formatstorage.html.in | 5 +- docs/kbase/rpm-deployment.rst | 6 - docs/manpages/virsh.rst | 7 +- docs/schemas/domaincommon.rng | 1 - docs/schemas/storagepool.rng | 22 - docs/storage.html.in | 59 --- libvirt.spec.in | 36 -- meson.build | 6 - meson_options.txt | 1 - mingw-libvirt.spec.in | 1 - po/POTFILES.in | 1 - src/conf/domain_conf.c | 1 - src/conf/storage_conf.c | 12 +- src/conf/storage_conf.h | 2 - src/conf/storage_source_conf.c | 4 - src/conf/storage_source_conf.h | 1 - src/conf/virstorageobj.c | 9 - src/libvirt-storage.c | 1 - src/libxl/libxl_conf.c | 1 - src/libxl/xen_xl.c | 1 - src/qemu/qemu_block.c | 41 -- src/qemu/qemu_command.c | 20 - src/qemu/qemu_domain.c | 1 - src/qemu/qemu_snapshot.c | 3 - src/storage/meson.build | 25 -- src/storage/storage_backend.c | 6 - src/storage/storage_backend_sheepdog.c | 378 ------------------ src/storage/storage_backend_sheepdog.h | 25 -- src/storage/storage_backend_sheepdog_priv.h | 30 -- src/storage/storage_driver.c | 1 - .../storage_source_backingstore.c | 44 -- src/test/test_driver.c | 1 - tests/meson.build | 6 - tests/qemublocktest.c | 4 - .../imagecreate/network-sheepdog-qcow2.json | 20 - .../imagecreate/network-sheepdog-qcow2.xml | 12 - tests/qemusecuritytest.c | 1 - .../disk-network-sheepdog.args | 30 -- .../disk-network-sheepdog.x86_64-2.12.0.args | 34 -- .../disk-network-sheepdog.x86_64-latest.args | 38 -- .../disk-network-sheepdog.xml | 37 -- tests/qemuxml2argvtest.c | 3 - .../disk-network-sheepdog.xml | 43 -- tests/qemuxml2xmltest.c | 1 - tests/storagebackendsheepdogtest.c | 206 ---------- .../storagepoolcapsschemadata/poolcaps-fs.xml | 2 - .../poolcaps-full.xml | 2 - tests/storagepoolxml2argvtest.c | 2 - tests/storagepoolxml2xmlin/pool-sheepdog.xml | 8 - tests/storagepoolxml2xmlout/pool-sheepdog.xml | 11 - tests/storagepoolxml2xmltest.c | 1 - tests/storagevolxml2xmlin/vol-sheepdog.xml | 10 - tests/storagevolxml2xmlout/vol-sheepdog.xml | 8 - tests/storagevolxml2xmltest.c | 1 - .../deflatten-qemu-sheepdog-in.json | 11 - .../deflatten-qemu-sheepdog-out.json | 13 - tests/virjsontest.c | 1 - tests/virstoragetest.c | 21 - tools/virsh-pool.c | 3 - tools/virsh.c | 3 - 61 files changed, 8 insertions(+), 1289 deletions(-) delete mode 100644 src/storage/storage_backend_sheepdog.c delete mode 100644 src/storage/storage_backend_sheepdog.h delete mode 100644 src/storage/storage_backend_sheepdog_priv.h delete mode 100644 tests/qemublocktestdata/imagecreate/network-sheepdog-qcow2.json delete mode 100644 tests/qemublocktestdata/imagecreate/network-sheepdog-qcow2.xml delete mode 100644 tests/qemuxml2argvdata/disk-network-sheepdog.args delete mode 100644 tests/qemuxml2argvdata/disk-network-sheepdog.x86_64-2.12.0.args delete mode 100644 tests/qemuxml2argvdata/disk-network-sheepdog.x86_64-latest.args delete mode 100644 tests/qemuxml2argvdata/disk-network-sheepdog.xml delete mode 100644 tests/qemuxml2xmloutdata/disk-network-sheepdog.xml delete mode 100644 tests/storagebackendsheepdogtest.c delete mode 100644 tests/storagepoolxml2xmlin/pool-sheepdog.xml delete mode 100644 tests/storagepoolxml2xmlout/pool-sheepdog.xml delete mode 100644 tests/storagevolxml2xmlin/vol-sheepdog.xml delete mode 100644 tests/storagevolxml2xmlout/vol-sheepdog.xml delete mode 100644 tests/virjsondata/deflatten-qemu-sheepdog-in.json delete mode 100644 tests/virjsondata/deflatten-qemu-sheepdog-out.json
While I don't have any problems with removing the sheepdog storage driver I don't think we should remove both the storage driver and qemu driver interactions in one commit and at the same time I also don't
Make sense, I'll split it into separate commits.
think we should remove the support for launching QEMU guests with sheepdog backing as that has negligible maint burden.
Well it is marked as deprecated in QEMU [1] so I don't agree with this argument. We would eventually drop it from libvirt as well once it is removed from QEMU and I don't see any reason keeping the code in libvirt for something that doesn't have any future. Pavel [1] <https://gitlab.com/qemu-project/qemu/-/commit/e1c4269763999e3b359fff19ad170e0110d3b457>

On Mon, Apr 19, 2021 at 13:12:07 +0200, Pavel Hrdina wrote:
On Mon, Apr 19, 2021 at 12:53:11PM +0200, Peter Krempa wrote:
On Mon, Apr 19, 2021 at 12:47:59 +0200, Pavel Hrdina wrote:
Upstream sheepdog project doesn't have any active development for almost 3 years as the last commit is from 28/06/2018 [1].
Looking into repology [2] the latest version 1.0.1 is included only in Fedora (since Fedora 26). There are only few other distributions having older sheepdog versions: Debian oldstable (stretch), EPEL 6, Ubuntu 18.04 and older and few other less-common distributions.
Based on the data above drop support for sheepdog from libvirt.
[1] <https://github.com/sheepdog/sheepdog/commits/master> [2] <https://repology.org/project/sheepdog/versions>
Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- docs/formatdomain.rst | 13 +- docs/formatstorage.html.in | 5 +- docs/kbase/rpm-deployment.rst | 6 - docs/manpages/virsh.rst | 7 +- docs/schemas/domaincommon.rng | 1 - docs/schemas/storagepool.rng | 22 - docs/storage.html.in | 59 --- libvirt.spec.in | 36 -- meson.build | 6 - meson_options.txt | 1 - mingw-libvirt.spec.in | 1 - po/POTFILES.in | 1 - src/conf/domain_conf.c | 1 - src/conf/storage_conf.c | 12 +- src/conf/storage_conf.h | 2 - src/conf/storage_source_conf.c | 4 - src/conf/storage_source_conf.h | 1 - src/conf/virstorageobj.c | 9 - src/libvirt-storage.c | 1 - src/libxl/libxl_conf.c | 1 - src/libxl/xen_xl.c | 1 - src/qemu/qemu_block.c | 41 -- src/qemu/qemu_command.c | 20 - src/qemu/qemu_domain.c | 1 - src/qemu/qemu_snapshot.c | 3 - src/storage/meson.build | 25 -- src/storage/storage_backend.c | 6 - src/storage/storage_backend_sheepdog.c | 378 ------------------ src/storage/storage_backend_sheepdog.h | 25 -- src/storage/storage_backend_sheepdog_priv.h | 30 -- src/storage/storage_driver.c | 1 - .../storage_source_backingstore.c | 44 -- src/test/test_driver.c | 1 - tests/meson.build | 6 - tests/qemublocktest.c | 4 - .../imagecreate/network-sheepdog-qcow2.json | 20 - .../imagecreate/network-sheepdog-qcow2.xml | 12 - tests/qemusecuritytest.c | 1 - .../disk-network-sheepdog.args | 30 -- .../disk-network-sheepdog.x86_64-2.12.0.args | 34 -- .../disk-network-sheepdog.x86_64-latest.args | 38 -- .../disk-network-sheepdog.xml | 37 -- tests/qemuxml2argvtest.c | 3 - .../disk-network-sheepdog.xml | 43 -- tests/qemuxml2xmltest.c | 1 - tests/storagebackendsheepdogtest.c | 206 ---------- .../storagepoolcapsschemadata/poolcaps-fs.xml | 2 - .../poolcaps-full.xml | 2 - tests/storagepoolxml2argvtest.c | 2 - tests/storagepoolxml2xmlin/pool-sheepdog.xml | 8 - tests/storagepoolxml2xmlout/pool-sheepdog.xml | 11 - tests/storagepoolxml2xmltest.c | 1 - tests/storagevolxml2xmlin/vol-sheepdog.xml | 10 - tests/storagevolxml2xmlout/vol-sheepdog.xml | 8 - tests/storagevolxml2xmltest.c | 1 - .../deflatten-qemu-sheepdog-in.json | 11 - .../deflatten-qemu-sheepdog-out.json | 13 - tests/virjsontest.c | 1 - tests/virstoragetest.c | 21 - tools/virsh-pool.c | 3 - tools/virsh.c | 3 - 61 files changed, 8 insertions(+), 1289 deletions(-) delete mode 100644 src/storage/storage_backend_sheepdog.c delete mode 100644 src/storage/storage_backend_sheepdog.h delete mode 100644 src/storage/storage_backend_sheepdog_priv.h delete mode 100644 tests/qemublocktestdata/imagecreate/network-sheepdog-qcow2.json delete mode 100644 tests/qemublocktestdata/imagecreate/network-sheepdog-qcow2.xml delete mode 100644 tests/qemuxml2argvdata/disk-network-sheepdog.args delete mode 100644 tests/qemuxml2argvdata/disk-network-sheepdog.x86_64-2.12.0.args delete mode 100644 tests/qemuxml2argvdata/disk-network-sheepdog.x86_64-latest.args delete mode 100644 tests/qemuxml2argvdata/disk-network-sheepdog.xml delete mode 100644 tests/qemuxml2xmloutdata/disk-network-sheepdog.xml delete mode 100644 tests/storagebackendsheepdogtest.c delete mode 100644 tests/storagepoolxml2xmlin/pool-sheepdog.xml delete mode 100644 tests/storagepoolxml2xmlout/pool-sheepdog.xml delete mode 100644 tests/storagevolxml2xmlin/vol-sheepdog.xml delete mode 100644 tests/storagevolxml2xmlout/vol-sheepdog.xml delete mode 100644 tests/virjsondata/deflatten-qemu-sheepdog-in.json delete mode 100644 tests/virjsondata/deflatten-qemu-sheepdog-out.json
While I don't have any problems with removing the sheepdog storage driver I don't think we should remove both the storage driver and qemu driver interactions in one commit and at the same time I also don't
Make sense, I'll split it into separate commits.
think we should remove the support for launching QEMU guests with sheepdog backing as that has negligible maint burden.
Well it is marked as deprecated in QEMU [1] so I don't agree with this argument. We would eventually drop it from libvirt as well once it is removed from QEMU and I don't see any reason keeping the code in libvirt for something that doesn't have any future.
Our usuall approach is that until we support a qemu version which does support the feature, we should keep the code. Same way we keep code for vxhs storage driver despite it being removed already in qemu upstream.

On Mon, Apr 19, 2021 at 01:24:26PM +0200, Peter Krempa wrote:
On Mon, Apr 19, 2021 at 13:12:07 +0200, Pavel Hrdina wrote:
On Mon, Apr 19, 2021 at 12:53:11PM +0200, Peter Krempa wrote:
On Mon, Apr 19, 2021 at 12:47:59 +0200, Pavel Hrdina wrote:
Upstream sheepdog project doesn't have any active development for almost 3 years as the last commit is from 28/06/2018 [1].
Looking into repology [2] the latest version 1.0.1 is included only in Fedora (since Fedora 26). There are only few other distributions having older sheepdog versions: Debian oldstable (stretch), EPEL 6, Ubuntu 18.04 and older and few other less-common distributions.
Based on the data above drop support for sheepdog from libvirt.
[1] <https://github.com/sheepdog/sheepdog/commits/master> [2] <https://repology.org/project/sheepdog/versions>
Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- docs/formatdomain.rst | 13 +- docs/formatstorage.html.in | 5 +- docs/kbase/rpm-deployment.rst | 6 - docs/manpages/virsh.rst | 7 +- docs/schemas/domaincommon.rng | 1 - docs/schemas/storagepool.rng | 22 - docs/storage.html.in | 59 --- libvirt.spec.in | 36 -- meson.build | 6 - meson_options.txt | 1 - mingw-libvirt.spec.in | 1 - po/POTFILES.in | 1 - src/conf/domain_conf.c | 1 - src/conf/storage_conf.c | 12 +- src/conf/storage_conf.h | 2 - src/conf/storage_source_conf.c | 4 - src/conf/storage_source_conf.h | 1 - src/conf/virstorageobj.c | 9 - src/libvirt-storage.c | 1 - src/libxl/libxl_conf.c | 1 - src/libxl/xen_xl.c | 1 - src/qemu/qemu_block.c | 41 -- src/qemu/qemu_command.c | 20 - src/qemu/qemu_domain.c | 1 - src/qemu/qemu_snapshot.c | 3 - src/storage/meson.build | 25 -- src/storage/storage_backend.c | 6 - src/storage/storage_backend_sheepdog.c | 378 ------------------ src/storage/storage_backend_sheepdog.h | 25 -- src/storage/storage_backend_sheepdog_priv.h | 30 -- src/storage/storage_driver.c | 1 - .../storage_source_backingstore.c | 44 -- src/test/test_driver.c | 1 - tests/meson.build | 6 - tests/qemublocktest.c | 4 - .../imagecreate/network-sheepdog-qcow2.json | 20 - .../imagecreate/network-sheepdog-qcow2.xml | 12 - tests/qemusecuritytest.c | 1 - .../disk-network-sheepdog.args | 30 -- .../disk-network-sheepdog.x86_64-2.12.0.args | 34 -- .../disk-network-sheepdog.x86_64-latest.args | 38 -- .../disk-network-sheepdog.xml | 37 -- tests/qemuxml2argvtest.c | 3 - .../disk-network-sheepdog.xml | 43 -- tests/qemuxml2xmltest.c | 1 - tests/storagebackendsheepdogtest.c | 206 ---------- .../storagepoolcapsschemadata/poolcaps-fs.xml | 2 - .../poolcaps-full.xml | 2 - tests/storagepoolxml2argvtest.c | 2 - tests/storagepoolxml2xmlin/pool-sheepdog.xml | 8 - tests/storagepoolxml2xmlout/pool-sheepdog.xml | 11 - tests/storagepoolxml2xmltest.c | 1 - tests/storagevolxml2xmlin/vol-sheepdog.xml | 10 - tests/storagevolxml2xmlout/vol-sheepdog.xml | 8 - tests/storagevolxml2xmltest.c | 1 - .../deflatten-qemu-sheepdog-in.json | 11 - .../deflatten-qemu-sheepdog-out.json | 13 - tests/virjsontest.c | 1 - tests/virstoragetest.c | 21 - tools/virsh-pool.c | 3 - tools/virsh.c | 3 - 61 files changed, 8 insertions(+), 1289 deletions(-) delete mode 100644 src/storage/storage_backend_sheepdog.c delete mode 100644 src/storage/storage_backend_sheepdog.h delete mode 100644 src/storage/storage_backend_sheepdog_priv.h delete mode 100644 tests/qemublocktestdata/imagecreate/network-sheepdog-qcow2.json delete mode 100644 tests/qemublocktestdata/imagecreate/network-sheepdog-qcow2.xml delete mode 100644 tests/qemuxml2argvdata/disk-network-sheepdog.args delete mode 100644 tests/qemuxml2argvdata/disk-network-sheepdog.x86_64-2.12.0.args delete mode 100644 tests/qemuxml2argvdata/disk-network-sheepdog.x86_64-latest.args delete mode 100644 tests/qemuxml2argvdata/disk-network-sheepdog.xml delete mode 100644 tests/qemuxml2xmloutdata/disk-network-sheepdog.xml delete mode 100644 tests/storagebackendsheepdogtest.c delete mode 100644 tests/storagepoolxml2xmlin/pool-sheepdog.xml delete mode 100644 tests/storagepoolxml2xmlout/pool-sheepdog.xml delete mode 100644 tests/storagevolxml2xmlin/vol-sheepdog.xml delete mode 100644 tests/storagevolxml2xmlout/vol-sheepdog.xml delete mode 100644 tests/virjsondata/deflatten-qemu-sheepdog-in.json delete mode 100644 tests/virjsondata/deflatten-qemu-sheepdog-out.json
While I don't have any problems with removing the sheepdog storage driver I don't think we should remove both the storage driver and qemu driver interactions in one commit and at the same time I also don't
Make sense, I'll split it into separate commits.
think we should remove the support for launching QEMU guests with sheepdog backing as that has negligible maint burden.
Well it is marked as deprecated in QEMU [1] so I don't agree with this argument. We would eventually drop it from libvirt as well once it is removed from QEMU and I don't see any reason keeping the code in libvirt for something that doesn't have any future.
Our usuall approach is that until we support a qemu version which does support the feature, we should keep the code. Same way we keep code for vxhs storage driver despite it being removed already in qemu upstream.
In some cases it would be nice to have an exception to the support policy. I doubt we have users for qemu sheepdog backend. Anyway I'll keep this part in libvirt as well. Pavel

On Mon, Apr 19, 2021 at 02:45:52PM +0200, Pavel Hrdina wrote:
On Mon, Apr 19, 2021 at 01:24:26PM +0200, Peter Krempa wrote:
On Mon, Apr 19, 2021 at 13:12:07 +0200, Pavel Hrdina wrote:
On Mon, Apr 19, 2021 at 12:53:11PM +0200, Peter Krempa wrote:
On Mon, Apr 19, 2021 at 12:47:59 +0200, Pavel Hrdina wrote:
Upstream sheepdog project doesn't have any active development for almost 3 years as the last commit is from 28/06/2018 [1].
Looking into repology [2] the latest version 1.0.1 is included only in Fedora (since Fedora 26). There are only few other distributions having older sheepdog versions: Debian oldstable (stretch), EPEL 6, Ubuntu 18.04 and older and few other less-common distributions.
Based on the data above drop support for sheepdog from libvirt.
[1] <https://github.com/sheepdog/sheepdog/commits/master> [2] <https://repology.org/project/sheepdog/versions>
Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- docs/formatdomain.rst | 13 +- docs/formatstorage.html.in | 5 +- docs/kbase/rpm-deployment.rst | 6 - docs/manpages/virsh.rst | 7 +- docs/schemas/domaincommon.rng | 1 - docs/schemas/storagepool.rng | 22 - docs/storage.html.in | 59 --- libvirt.spec.in | 36 -- meson.build | 6 - meson_options.txt | 1 - mingw-libvirt.spec.in | 1 - po/POTFILES.in | 1 - src/conf/domain_conf.c | 1 - src/conf/storage_conf.c | 12 +- src/conf/storage_conf.h | 2 - src/conf/storage_source_conf.c | 4 - src/conf/storage_source_conf.h | 1 - src/conf/virstorageobj.c | 9 - src/libvirt-storage.c | 1 - src/libxl/libxl_conf.c | 1 - src/libxl/xen_xl.c | 1 - src/qemu/qemu_block.c | 41 -- src/qemu/qemu_command.c | 20 - src/qemu/qemu_domain.c | 1 - src/qemu/qemu_snapshot.c | 3 - src/storage/meson.build | 25 -- src/storage/storage_backend.c | 6 - src/storage/storage_backend_sheepdog.c | 378 ------------------ src/storage/storage_backend_sheepdog.h | 25 -- src/storage/storage_backend_sheepdog_priv.h | 30 -- src/storage/storage_driver.c | 1 - .../storage_source_backingstore.c | 44 -- src/test/test_driver.c | 1 - tests/meson.build | 6 - tests/qemublocktest.c | 4 - .../imagecreate/network-sheepdog-qcow2.json | 20 - .../imagecreate/network-sheepdog-qcow2.xml | 12 - tests/qemusecuritytest.c | 1 - .../disk-network-sheepdog.args | 30 -- .../disk-network-sheepdog.x86_64-2.12.0.args | 34 -- .../disk-network-sheepdog.x86_64-latest.args | 38 -- .../disk-network-sheepdog.xml | 37 -- tests/qemuxml2argvtest.c | 3 - .../disk-network-sheepdog.xml | 43 -- tests/qemuxml2xmltest.c | 1 - tests/storagebackendsheepdogtest.c | 206 ---------- .../storagepoolcapsschemadata/poolcaps-fs.xml | 2 - .../poolcaps-full.xml | 2 - tests/storagepoolxml2argvtest.c | 2 - tests/storagepoolxml2xmlin/pool-sheepdog.xml | 8 - tests/storagepoolxml2xmlout/pool-sheepdog.xml | 11 - tests/storagepoolxml2xmltest.c | 1 - tests/storagevolxml2xmlin/vol-sheepdog.xml | 10 - tests/storagevolxml2xmlout/vol-sheepdog.xml | 8 - tests/storagevolxml2xmltest.c | 1 - .../deflatten-qemu-sheepdog-in.json | 11 - .../deflatten-qemu-sheepdog-out.json | 13 - tests/virjsontest.c | 1 - tests/virstoragetest.c | 21 - tools/virsh-pool.c | 3 - tools/virsh.c | 3 - 61 files changed, 8 insertions(+), 1289 deletions(-) delete mode 100644 src/storage/storage_backend_sheepdog.c delete mode 100644 src/storage/storage_backend_sheepdog.h delete mode 100644 src/storage/storage_backend_sheepdog_priv.h delete mode 100644 tests/qemublocktestdata/imagecreate/network-sheepdog-qcow2.json delete mode 100644 tests/qemublocktestdata/imagecreate/network-sheepdog-qcow2.xml delete mode 100644 tests/qemuxml2argvdata/disk-network-sheepdog.args delete mode 100644 tests/qemuxml2argvdata/disk-network-sheepdog.x86_64-2.12.0.args delete mode 100644 tests/qemuxml2argvdata/disk-network-sheepdog.x86_64-latest.args delete mode 100644 tests/qemuxml2argvdata/disk-network-sheepdog.xml delete mode 100644 tests/qemuxml2xmloutdata/disk-network-sheepdog.xml delete mode 100644 tests/storagebackendsheepdogtest.c delete mode 100644 tests/storagepoolxml2xmlin/pool-sheepdog.xml delete mode 100644 tests/storagepoolxml2xmlout/pool-sheepdog.xml delete mode 100644 tests/storagevolxml2xmlin/vol-sheepdog.xml delete mode 100644 tests/storagevolxml2xmlout/vol-sheepdog.xml delete mode 100644 tests/virjsondata/deflatten-qemu-sheepdog-in.json delete mode 100644 tests/virjsondata/deflatten-qemu-sheepdog-out.json
While I don't have any problems with removing the sheepdog storage driver I don't think we should remove both the storage driver and qemu driver interactions in one commit and at the same time I also don't
Make sense, I'll split it into separate commits.
think we should remove the support for launching QEMU guests with sheepdog backing as that has negligible maint burden.
Well it is marked as deprecated in QEMU [1] so I don't agree with this argument. We would eventually drop it from libvirt as well once it is removed from QEMU and I don't see any reason keeping the code in libvirt for something that doesn't have any future.
Our usuall approach is that until we support a qemu version which does support the feature, we should keep the code. Same way we keep code for vxhs storage driver despite it being removed already in qemu upstream.
In some cases it would be nice to have an exception to the support policy. I doubt we have users for qemu sheepdog backend.
The point of the policy is that we can never answer these kind of usage questions in any definitive sense - there's always doubt at what users might exist and what they have deployed. The support policy gives us an unambiguous way to decide whether to keep/remove functionality without having to debate unanswerable questions, and likewise gives users the knowledge about the likely lifetime of support. Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

On Mon, Apr 19, 2021 at 01:51:36PM +0100, Daniel P. Berrangé wrote:
On Mon, Apr 19, 2021 at 02:45:52PM +0200, Pavel Hrdina wrote:
On Mon, Apr 19, 2021 at 01:24:26PM +0200, Peter Krempa wrote:
On Mon, Apr 19, 2021 at 13:12:07 +0200, Pavel Hrdina wrote:
On Mon, Apr 19, 2021 at 12:53:11PM +0200, Peter Krempa wrote:
On Mon, Apr 19, 2021 at 12:47:59 +0200, Pavel Hrdina wrote:
Upstream sheepdog project doesn't have any active development for almost 3 years as the last commit is from 28/06/2018 [1].
Looking into repology [2] the latest version 1.0.1 is included only in Fedora (since Fedora 26). There are only few other distributions having older sheepdog versions: Debian oldstable (stretch), EPEL 6, Ubuntu 18.04 and older and few other less-common distributions.
Based on the data above drop support for sheepdog from libvirt.
[1] <https://github.com/sheepdog/sheepdog/commits/master> [2] <https://repology.org/project/sheepdog/versions>
Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- docs/formatdomain.rst | 13 +- docs/formatstorage.html.in | 5 +- docs/kbase/rpm-deployment.rst | 6 - docs/manpages/virsh.rst | 7 +- docs/schemas/domaincommon.rng | 1 - docs/schemas/storagepool.rng | 22 - docs/storage.html.in | 59 --- libvirt.spec.in | 36 -- meson.build | 6 - meson_options.txt | 1 - mingw-libvirt.spec.in | 1 - po/POTFILES.in | 1 - src/conf/domain_conf.c | 1 - src/conf/storage_conf.c | 12 +- src/conf/storage_conf.h | 2 - src/conf/storage_source_conf.c | 4 - src/conf/storage_source_conf.h | 1 - src/conf/virstorageobj.c | 9 - src/libvirt-storage.c | 1 - src/libxl/libxl_conf.c | 1 - src/libxl/xen_xl.c | 1 - src/qemu/qemu_block.c | 41 -- src/qemu/qemu_command.c | 20 - src/qemu/qemu_domain.c | 1 - src/qemu/qemu_snapshot.c | 3 - src/storage/meson.build | 25 -- src/storage/storage_backend.c | 6 - src/storage/storage_backend_sheepdog.c | 378 ------------------ src/storage/storage_backend_sheepdog.h | 25 -- src/storage/storage_backend_sheepdog_priv.h | 30 -- src/storage/storage_driver.c | 1 - .../storage_source_backingstore.c | 44 -- src/test/test_driver.c | 1 - tests/meson.build | 6 - tests/qemublocktest.c | 4 - .../imagecreate/network-sheepdog-qcow2.json | 20 - .../imagecreate/network-sheepdog-qcow2.xml | 12 - tests/qemusecuritytest.c | 1 - .../disk-network-sheepdog.args | 30 -- .../disk-network-sheepdog.x86_64-2.12.0.args | 34 -- .../disk-network-sheepdog.x86_64-latest.args | 38 -- .../disk-network-sheepdog.xml | 37 -- tests/qemuxml2argvtest.c | 3 - .../disk-network-sheepdog.xml | 43 -- tests/qemuxml2xmltest.c | 1 - tests/storagebackendsheepdogtest.c | 206 ---------- .../storagepoolcapsschemadata/poolcaps-fs.xml | 2 - .../poolcaps-full.xml | 2 - tests/storagepoolxml2argvtest.c | 2 - tests/storagepoolxml2xmlin/pool-sheepdog.xml | 8 - tests/storagepoolxml2xmlout/pool-sheepdog.xml | 11 - tests/storagepoolxml2xmltest.c | 1 - tests/storagevolxml2xmlin/vol-sheepdog.xml | 10 - tests/storagevolxml2xmlout/vol-sheepdog.xml | 8 - tests/storagevolxml2xmltest.c | 1 - .../deflatten-qemu-sheepdog-in.json | 11 - .../deflatten-qemu-sheepdog-out.json | 13 - tests/virjsontest.c | 1 - tests/virstoragetest.c | 21 - tools/virsh-pool.c | 3 - tools/virsh.c | 3 - 61 files changed, 8 insertions(+), 1289 deletions(-) delete mode 100644 src/storage/storage_backend_sheepdog.c delete mode 100644 src/storage/storage_backend_sheepdog.h delete mode 100644 src/storage/storage_backend_sheepdog_priv.h delete mode 100644 tests/qemublocktestdata/imagecreate/network-sheepdog-qcow2.json delete mode 100644 tests/qemublocktestdata/imagecreate/network-sheepdog-qcow2.xml delete mode 100644 tests/qemuxml2argvdata/disk-network-sheepdog.args delete mode 100644 tests/qemuxml2argvdata/disk-network-sheepdog.x86_64-2.12.0.args delete mode 100644 tests/qemuxml2argvdata/disk-network-sheepdog.x86_64-latest.args delete mode 100644 tests/qemuxml2argvdata/disk-network-sheepdog.xml delete mode 100644 tests/qemuxml2xmloutdata/disk-network-sheepdog.xml delete mode 100644 tests/storagebackendsheepdogtest.c delete mode 100644 tests/storagepoolxml2xmlin/pool-sheepdog.xml delete mode 100644 tests/storagepoolxml2xmlout/pool-sheepdog.xml delete mode 100644 tests/storagevolxml2xmlin/vol-sheepdog.xml delete mode 100644 tests/storagevolxml2xmlout/vol-sheepdog.xml delete mode 100644 tests/virjsondata/deflatten-qemu-sheepdog-in.json delete mode 100644 tests/virjsondata/deflatten-qemu-sheepdog-out.json
While I don't have any problems with removing the sheepdog storage driver I don't think we should remove both the storage driver and qemu driver interactions in one commit and at the same time I also don't
Make sense, I'll split it into separate commits.
think we should remove the support for launching QEMU guests with sheepdog backing as that has negligible maint burden.
Well it is marked as deprecated in QEMU [1] so I don't agree with this argument. We would eventually drop it from libvirt as well once it is removed from QEMU and I don't see any reason keeping the code in libvirt for something that doesn't have any future.
Our usuall approach is that until we support a qemu version which does support the feature, we should keep the code. Same way we keep code for vxhs storage driver despite it being removed already in qemu upstream.
In some cases it would be nice to have an exception to the support policy. I doubt we have users for qemu sheepdog backend.
The point of the policy is that we can never answer these kind of usage questions in any definitive sense - there's always doubt at what users might exist and what they have deployed. The support policy gives us an unambiguous way to decide whether to keep/remove functionality without having to debate unanswerable questions, and likewise gives users the knowledge about the likely lifetime of support.
True, we can never be 100% sure so unfortunately any argument that I could come up with would still not help. I'll keep the qemu bits and remove only storage pool. Pavel

On Mon, Apr 19, 2021 at 12:47:59PM +0200, Pavel Hrdina wrote:
Upstream sheepdog project doesn't have any active development for almost 3 years as the last commit is from 28/06/2018 [1].
Looking into repology [2] the latest version 1.0.1 is included only in Fedora (since Fedora 26). There are only few other distributions having older sheepdog versions: Debian oldstable (stretch), EPEL 6, Ubuntu 18.04 and older and few other less-common distributions.
Based on the data above drop support for sheepdog from libvirt.
[1] <https://github.com/sheepdog/sheepdog/commits/master> [2] <https://repology.org/project/sheepdog/versions>
Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- docs/formatdomain.rst | 13 +- docs/formatstorage.html.in | 5 +-
docs/schemas/domaincommon.rng | 1 - docs/schemas/storagepool.rng | 22 - docs/storage.html.in | 59 ---
src/conf/domain_conf.c | 1 - src/conf/storage_conf.c | 12 +- src/conf/storage_conf.h | 2 - src/conf/storage_source_conf.c | 4 - src/conf/storage_source_conf.h | 1 - src/conf/virstorageobj.c | 9 -
We don't remove stuff from the XML parser/schema when we drop features, only remove the implementations behind it, so most of this is not stuff that should be removed. Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

On Mon, Apr 19, 2021 at 12:04:16PM +0100, Daniel P. Berrangé wrote:
On Mon, Apr 19, 2021 at 12:47:59PM +0200, Pavel Hrdina wrote:
Upstream sheepdog project doesn't have any active development for almost 3 years as the last commit is from 28/06/2018 [1].
Looking into repology [2] the latest version 1.0.1 is included only in Fedora (since Fedora 26). There are only few other distributions having older sheepdog versions: Debian oldstable (stretch), EPEL 6, Ubuntu 18.04 and older and few other less-common distributions.
Based on the data above drop support for sheepdog from libvirt.
[1] <https://github.com/sheepdog/sheepdog/commits/master> [2] <https://repology.org/project/sheepdog/versions>
Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- docs/formatdomain.rst | 13 +- docs/formatstorage.html.in | 5 +-
docs/schemas/domaincommon.rng | 1 - docs/schemas/storagepool.rng | 22 - docs/storage.html.in | 59 ---
src/conf/domain_conf.c | 1 - src/conf/storage_conf.c | 12 +- src/conf/storage_conf.h | 2 - src/conf/storage_source_conf.c | 4 - src/conf/storage_source_conf.h | 1 - src/conf/virstorageobj.c | 9 -
We don't remove stuff from the XML parser/schema when we drop features, only remove the implementations behind it, so most of this is not stuff that should be removed.
Noted, thanks. I'll keep in while posting v2. It would be nice to figure out some process that would allow us dropping deprecated features from parser/schema as well so we don't have to keep the code around. Pavel
participants (3)
-
Daniel P. Berrangé
-
Pavel Hrdina
-
Peter Krempa