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@xxxxxxxxxx> --- 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