Blame SOURCES/0068-RHEL-8-Disable-unsupported-remote-drive-protocols-RH.patch

b155d0
From 8ada76f33594f025bb39083b44306a1b159c4120 Mon Sep 17 00:00:00 2001
46b2f6
From: "Richard W.M. Jones" <rjones@redhat.com>
46b2f6
Date: Mon, 29 Jul 2013 14:47:56 +0100
46b2f6
Subject: [PATCH] RHEL 8: Disable unsupported remote drive protocols
46b2f6
 (RHBZ#962113).
46b2f6
46b2f6
This disables support for unsupported remote drive protocols:
46b2f6
46b2f6
 * ftp
46b2f6
 * ftps
46b2f6
 * http
46b2f6
 * https
46b2f6
 * tftp
46b2f6
 * gluster
46b2f6
 * iscsi
46b2f6
 * sheepdog
46b2f6
 * ssh
46b2f6
46b2f6
Note 'nbd' is not disabled, and of course 'file' works.
46b2f6
46b2f6
We hope to gradually add some of these back over the lifetime of RHEL 8.
46b2f6
---
46b2f6
 docs/guestfs-testing.pod               |  20 -----
46b2f6
 fish/guestfish.pod                     |  66 ++--------------
46b2f6
 fish/test-add-uri.sh                   |  32 --------
46b2f6
 generator/actions_core.ml              |  50 +------------
46b2f6
 lib/drives.c                           |   8 ++
46b2f6
 lib/guestfs.pod                        | 100 -------------------------
46b2f6
 tests/disks/test-qemu-drive-libvirt.sh |  28 -------
46b2f6
 tests/disks/test-qemu-drive.sh         |  60 ---------------
46b2f6
 8 files changed, 16 insertions(+), 348 deletions(-)
46b2f6
46b2f6
diff --git a/docs/guestfs-testing.pod b/docs/guestfs-testing.pod
46b2f6
index f558964bf..8f264ed17 100644
46b2f6
--- a/docs/guestfs-testing.pod
46b2f6
+++ b/docs/guestfs-testing.pod
46b2f6
@@ -109,26 +109,6 @@ image.  To exit, type C<exit>.
46b2f6
 If you get an error, try enabling debugging (add C<-v> to the command
46b2f6
 line).  Also make sure that L<libguestfs-test-tool(1)> succeeds.
46b2f6
 
46b2f6
-=head2 Try to open a remote guest image with guestfish.
46b2f6
-
46b2f6
-You may also have to disable libvirt by setting this:
46b2f6
-
46b2f6
- export LIBGUESTFS_BACKEND=direct
46b2f6
-
46b2f6
-If you have a disk image available over HTTP/FTP, try to open it.
46b2f6
-
46b2f6
- guestfish --ro -i --format=raw -a http://www.example.com/disk.img
46b2f6
-
46b2f6
-For SSH you will need to make sure that ssh-agent is set up so you
46b2f6
-don't need a password to log in to the remote machine.  Then a command
46b2f6
-similar to this should work:
46b2f6
-
46b2f6
- guestfish --ro -i --format=raw \
46b2f6
-   -a ssh://remote.example.com/path/to/disk.img
46b2f6
-
46b2f6
-If you get an error, try enabling debugging (add C<-v> to the command
46b2f6
-line).  Also make sure that L<libguestfs-test-tool(1)> succeeds.
46b2f6
-
46b2f6
 =head2 Run virt-alignment-scan on all your guests.
46b2f6
 
46b2f6
 Run L<virt-alignment-scan(1)> on guests or disk images:
46b2f6
diff --git a/fish/guestfish.pod b/fish/guestfish.pod
46b2f6
index f1fdf094d..bacb60e0b 100644
46b2f6
--- a/fish/guestfish.pod
46b2f6
+++ b/fish/guestfish.pod
46b2f6
@@ -131,9 +131,9 @@ To list what is available do:
46b2f6
 
46b2f6
 =head2 Remote drives
46b2f6
 
46b2f6
-Access a remote disk using ssh:
46b2f6
+Access a remote disk using NBD:
46b2f6
 
46b2f6
- guestfish -a ssh://example.com/path/to/disk.img
46b2f6
+ guestfish -a nbd://example.com
46b2f6
 
46b2f6
 =head2 Remote control
46b2f6
 
46b2f6
@@ -1145,12 +1145,12 @@ L<guestfs(3)/REMOTE STORAGE>>.
46b2f6
 On the command line, you can use the I<-a> option to add network
46b2f6
 block devices using a URI-style format, for example:
46b2f6
 
46b2f6
- guestfish -a ssh://root@example.com/disk.img
46b2f6
+ guestfish -a nbd://example.com
46b2f6
 
46b2f6
 URIs I<cannot> be used with the L</add> command.  The equivalent
46b2f6
 command using the API directly is:
46b2f6
 
46b2f6
- ><fs> add /disk.img protocol:ssh server:tcp:example.com username:root
46b2f6
+ ><fs> add /disk.img protocol:nbd server:tcp:example.com
46b2f6
 
46b2f6
 The possible I<-a URI> formats are described below.
46b2f6
 
46b2f6
@@ -1160,40 +1160,6 @@ The possible I<-a URI> formats are described below.
46b2f6
 
46b2f6
 Add the local disk image (or device) called F<disk.img>.
46b2f6
 
46b2f6
-=head2 B<-a ftp://[user@]example.com[:port]/disk.img>
46b2f6
-
46b2f6
-=head2 B<-a ftps://[user@]example.com[:port]/disk.img>
46b2f6
-
46b2f6
-=head2 B<-a http://[user@]example.com[:port]/disk.img>
46b2f6
-
46b2f6
-=head2 B<-a https://[user@]example.com[:port]/disk.img>
46b2f6
-
46b2f6
-=head2 B<-a tftp://[user@]example.com[:port]/disk.img>
46b2f6
-
46b2f6
-Add a disk located on a remote FTP, HTTP or TFTP server.
46b2f6
-
46b2f6
-The equivalent API command would be:
46b2f6
-
46b2f6
- ><fs> add /disk.img protocol:(ftp|...) server:tcp:example.com
46b2f6
-
46b2f6
-=head2 B<-a gluster://example.com[:port]/volname/image>
46b2f6
-
46b2f6
-Add a disk image located on GlusterFS storage.
46b2f6
-
46b2f6
-The server is the one running C<glusterd>, and may be C<localhost>.
46b2f6
-
46b2f6
-The equivalent API command would be:
46b2f6
-
46b2f6
- ><fs> add volname/image protocol:gluster server:tcp:example.com
46b2f6
-
46b2f6
-=head2 B<-a iscsi://example.com[:port]/target-iqn-name[/lun]>
46b2f6
-
46b2f6
-Add a disk located on an iSCSI server.
46b2f6
-
46b2f6
-The equivalent API command would be:
46b2f6
-
46b2f6
- ><fs> add target-iqn-name/lun protocol:iscsi server:tcp:example.com
46b2f6
-
46b2f6
 =head2 B<-a nbd://example.com[:port]>
46b2f6
 
46b2f6
 =head2 B<-a nbd://example.com[:port]/exportname>
46b2f6
@@ -1228,35 +1194,13 @@ The equivalent API command would be:
46b2f6
 
46b2f6
  ><fs> add pool/disk protocol:rbd server:tcp:example.com:port
46b2f6
 
46b2f6
-=head2 B<-a sheepdog://[example.com[:port]]/volume/image>
46b2f6
-
46b2f6
-Add a disk image located on a Sheepdog volume.
46b2f6
-
46b2f6
-The server name is optional.  Although libguestfs and Sheepdog
46b2f6
-supports multiple servers, only at most one server can be specified
46b2f6
-when using this URI syntax.
46b2f6
-
46b2f6
-The equivalent API command would be:
46b2f6
-
46b2f6
- ><fs> add volume protocol:sheepdog [server:tcp:example.com]
46b2f6
-
46b2f6
-=head2 B<-a ssh://[user@]example.com[:port]/disk.img>
46b2f6
-
46b2f6
-Add a disk image located on a remote server, accessed using the Secure
46b2f6
-Shell (ssh) SFTP protocol.  SFTP is supported out of the box by all
46b2f6
-major SSH servers.
46b2f6
-
46b2f6
-The equivalent API command would be:
46b2f6
-
46b2f6
- ><fs> add /disk protocol:ssh server:tcp:example.com [username:user]
46b2f6
-
46b2f6
 Note that the URIs follow the syntax of
46b2f6
 L<RFC 3986|https://tools.ietf.org/html/rfc3986>: in particular, there
46b2f6
 are restrictions on the allowed characters for the various components
46b2f6
 of the URI.  Characters such as C<:>, C<@>, and C B<must> be
46b2f6
 percent-encoded:
46b2f6
 
46b2f6
- $ guestfish -a ssh://user:pass%40word@example.com/disk.img
46b2f6
+ $ guestfish -a rbd://user:pass%40word@example.com[:port]/pool/disk
46b2f6
 
46b2f6
 In this case, the password is C<pass@word>.
46b2f6
 
46b2f6
diff --git a/fish/test-add-uri.sh b/fish/test-add-uri.sh
46b2f6
index 756df997b..8f84fd31b 100755
46b2f6
--- a/fish/test-add-uri.sh
46b2f6
+++ b/fish/test-add-uri.sh
46b2f6
@@ -40,14 +40,6 @@ function fail ()
46b2f6
 $VG guestfish -x -a file://$abs_builddir/test-add-uri.img </dev/null >test-add-uri.out 2>&1
46b2f6
 grep -sq 'add_drive ".*/test-add-uri.img"' test-add-uri.out || fail
46b2f6
 
46b2f6
-# curl
46b2f6
-$VG guestfish -x -a ftp://user@example.com/disk.img </dev/null >test-add-uri.out 2>&1
46b2f6
-grep -sq 'add_drive "/disk.img" "protocol:ftp" "server:tcp:example.com" "username:user"' test-add-uri.out || fail
46b2f6
-
46b2f6
-# gluster
46b2f6
-$VG guestfish -x -a gluster://example.com/disk </dev/null >test-add-uri.out 2>&1
46b2f6
-grep -sq 'add_drive "disk" "protocol:gluster" "server:tcp:example.com"' test-add-uri.out || fail
46b2f6
-
46b2f6
 # NBD
46b2f6
 $VG guestfish -x -a nbd://example.com </dev/null >test-add-uri.out 2>&1
46b2f6
 grep -sq 'add_drive "" "protocol:nbd" "server:tcp:example.com"' test-add-uri.out || fail
46b2f6
@@ -67,29 +59,5 @@ grep -sq 'add_drive "pool/disk" "protocol:rbd" "server:tcp:example.com:6789"' te
46b2f6
 $VG guestfish -x -a rbd:///pool/disk </dev/null >test-add-uri.out 2>&1
46b2f6
 grep -sq 'add_drive "pool/disk" "protocol:rbd"' test-add-uri.out || fail
46b2f6
 
46b2f6
-# sheepdog
46b2f6
-$VG guestfish -x -a sheepdog:///volume/image </dev/null >test-add-uri.out 2>&1
46b2f6
-grep -sq 'add_drive "volume/image" "protocol:sheepdog"' test-add-uri.out || fail
46b2f6
-
46b2f6
-$VG guestfish -x -a sheepdog://example.com:3000/volume/image </dev/null >test-add-uri.out 2>&1
46b2f6
-grep -sq 'add_drive "volume/image" "protocol:sheepdog" "server:tcp:example.com:3000"' test-add-uri.out || fail
46b2f6
-
46b2f6
-# ssh
46b2f6
-$VG guestfish -x -a ssh://example.com/disk.img </dev/null >test-add-uri.out 2>&1
46b2f6
-grep -sq 'add_drive "/disk.img" "protocol:ssh" "server:tcp:example.com"' test-add-uri.out || fail
46b2f6
-
46b2f6
-$VG guestfish -x -a ssh://user@example.com/disk.img </dev/null >test-add-uri.out 2>&1
46b2f6
-grep -sq 'add_drive "/disk.img" "protocol:ssh" "server:tcp:example.com" "username:user"' test-add-uri.out || fail
46b2f6
-
46b2f6
-$VG guestfish -x -a ssh://user@example.com:2000/disk.img </dev/null >test-add-uri.out 2>&1
46b2f6
-grep -sq 'add_drive "/disk.img" "protocol:ssh" "server:tcp:example.com:2000" "username:user"' test-add-uri.out || fail
46b2f6
-
46b2f6
-# iSCSI
46b2f6
-$VG guestfish -x -a iscsi://example.com/iqn.2015-12.com.libguestfs:test1/0 </dev/null >test-add-uri.out 2>&1
46b2f6
-grep -sq 'add_drive "iqn.2015-12.com.libguestfs:test1/0" "protocol:iscsi" "server:tcp:example.com"' test-add-uri.out || fail
46b2f6
-
46b2f6
-$VG guestfish -x -a iscsi://user:password@example.com/iqn.2015-12.com.libguestfs:test2/0 </dev/null >test-add-uri.out 2>&1
46b2f6
-grep -sq 'add_drive "iqn.2015-12.com.libguestfs:test2/0" "protocol:iscsi" "server:tcp:example.com" "username:user" "secret:password"' test-add-uri.out || fail
46b2f6
-
46b2f6
 rm test-add-uri.out
46b2f6
 rm test-add-uri.img
46b2f6
diff --git a/generator/actions_core.ml b/generator/actions_core.ml
46b2f6
index f466600df..3893d0e8d 100644
46b2f6
--- a/generator/actions_core.ml
46b2f6
+++ b/generator/actions_core.ml
46b2f6
@@ -297,29 +297,6 @@ F<filename> is interpreted as a local file or device.
46b2f6
 This is the default if the optional protocol parameter
46b2f6
 is omitted.
46b2f6
 
46b2f6
-=item C<protocol = \"ftp\"|\"ftps\"|\"http\"|\"https\"|\"tftp\">
46b2f6
-
46b2f6
-Connect to a remote FTP, HTTP or TFTP server.
46b2f6
-The C<server> parameter must also be supplied - see below.
46b2f6
-
46b2f6
-See also: L<guestfs(3)/FTP, HTTP AND TFTP>
46b2f6
-
46b2f6
-=item C<protocol = \"gluster\">
46b2f6
-
46b2f6
-Connect to the GlusterFS server.
46b2f6
-The C<server> parameter must also be supplied - see below.
46b2f6
-
46b2f6
-See also: L<guestfs(3)/GLUSTER>
46b2f6
-
46b2f6
-=item C<protocol = \"iscsi\">
46b2f6
-
46b2f6
-Connect to the iSCSI server.
46b2f6
-The C<server> parameter must also be supplied - see below.
46b2f6
-The C<username> parameter may be supplied.  See below.
46b2f6
-The C<secret> parameter may be supplied.  See below.
46b2f6
-
46b2f6
-See also: L<guestfs(3)/ISCSI>.
46b2f6
-
46b2f6
 =item C<protocol = \"nbd\">
46b2f6
 
46b2f6
 Connect to the Network Block Device server.
46b2f6
@@ -336,22 +313,6 @@ The C<secret> parameter may be supplied.  See below.
46b2f6
 
46b2f6
 See also: L<guestfs(3)/CEPH>.
46b2f6
 
46b2f6
-=item C<protocol = \"sheepdog\">
46b2f6
-
46b2f6
-Connect to the Sheepdog server.
46b2f6
-The C<server> parameter may also be supplied - see below.
46b2f6
-
46b2f6
-See also: L<guestfs(3)/SHEEPDOG>.
46b2f6
-
46b2f6
-=item C<protocol = \"ssh\">
46b2f6
-
46b2f6
-Connect to the Secure Shell (ssh) server.
46b2f6
-
46b2f6
-The C<server> parameter must be supplied.
46b2f6
-The C<username> parameter may be supplied.  See below.
46b2f6
-
46b2f6
-See also: L<guestfs(3)/SSH>.
46b2f6
-
46b2f6
 =back
46b2f6
 
46b2f6
 =item C<server>
46b2f6
@@ -362,13 +323,8 @@ is a list of server(s).
46b2f6
  Protocol       Number of servers required
46b2f6
  --------       --------------------------
46b2f6
  file           List must be empty or param not used at all
46b2f6
- ftp|ftps|http|https|tftp  Exactly one
46b2f6
- gluster        Exactly one
46b2f6
- iscsi          Exactly one
46b2f6
  nbd            Exactly one
46b2f6
  rbd            Zero or more
46b2f6
- sheepdog       Zero or more
46b2f6
- ssh            Exactly one
46b2f6
 
46b2f6
 Each list element is a string specifying a server.  The string must be
46b2f6
 in one of the following formats:
46b2f6
@@ -384,10 +340,10 @@ for the protocol is used (see F</etc/services>).
46b2f6
 
46b2f6
 =item C<username>
46b2f6
 
46b2f6
-For the C<ftp>, C<ftps>, C<http>, C<https>, C<iscsi>, C<rbd>, C<ssh>
46b2f6
-and C<tftp> protocols, this specifies the remote username.
46b2f6
+For the C<rbd>
46b2f6
+protocol, this specifies the remote username.
46b2f6
 
46b2f6
-If not given, then the local username is used for C<ssh>, and no authentication
46b2f6
+If not given, then no authentication
46b2f6
 is attempted for ceph.  But note this sometimes may give unexpected results, for
46b2f6
 example if using the libvirt backend and if the libvirt backend is configured to
46b2f6
 start the qemu appliance as a special user such as C<qemu.qemu>.  If in doubt,
46b2f6
diff --git a/lib/drives.c b/lib/drives.c
46b2f6
index 82ef30093..3d712c6e4 100644
46b2f6
--- a/lib/drives.c
46b2f6
+++ b/lib/drives.c
46b2f6
@@ -165,6 +165,7 @@ create_drive_non_file (guestfs_h *g,
46b2f6
   return drv;
46b2f6
 }
46b2f6
 
46b2f6
+#if 0 /* DISABLED IN RHEL 8 */
46b2f6
 static struct drive *
46b2f6
 create_drive_curl (guestfs_h *g,
46b2f6
                    const struct drive_create_data *data)
46b2f6
@@ -223,6 +224,7 @@ create_drive_gluster (guestfs_h *g,
46b2f6
 
46b2f6
   return create_drive_non_file (g, data);
46b2f6
 }
46b2f6
+#endif /* DISABLED IN RHEL 8 */
46b2f6
 
46b2f6
 static int
46b2f6
 nbd_port (void)
46b2f6
@@ -291,6 +293,7 @@ create_drive_rbd (guestfs_h *g,
46b2f6
   return create_drive_non_file (g, data);
46b2f6
 }
46b2f6
 
46b2f6
+#if 0 /* DISABLED IN RHEL 8 */
46b2f6
 static struct drive *
46b2f6
 create_drive_sheepdog (guestfs_h *g,
46b2f6
                        const struct drive_create_data *data)
46b2f6
@@ -391,6 +394,7 @@ create_drive_iscsi (guestfs_h *g,
46b2f6
 
46b2f6
   return create_drive_non_file (g, data);
46b2f6
 }
46b2f6
+#endif /* DISABLED IN RHEL 8 */
46b2f6
 
46b2f6
 /**
46b2f6
  * Create the special F</dev/null> drive.
46b2f6
@@ -826,6 +830,7 @@ guestfs_impl_add_drive_opts (guestfs_h *g, const char *filename,
46b2f6
       drv = create_drive_file (g, &data);
46b2f6
     }
46b2f6
   }
46b2f6
+#if 0 /* DISABLED IN RHEL 8 */
46b2f6
   else if (STREQ (protocol, "ftp")) {
46b2f6
     data.protocol = drive_protocol_ftp;
46b2f6
     drv = create_drive_curl (g, &data);
46b2f6
@@ -850,6 +855,7 @@ guestfs_impl_add_drive_opts (guestfs_h *g, const char *filename,
46b2f6
     data.protocol = drive_protocol_iscsi;
46b2f6
     drv = create_drive_iscsi (g, &data);
46b2f6
   }
46b2f6
+#endif /* DISABLED IN RHEL 8 */
46b2f6
   else if (STREQ (protocol, "nbd")) {
46b2f6
     data.protocol = drive_protocol_nbd;
46b2f6
     drv = create_drive_nbd (g, &data);
46b2f6
@@ -858,6 +864,7 @@ guestfs_impl_add_drive_opts (guestfs_h *g, const char *filename,
46b2f6
     data.protocol = drive_protocol_rbd;
46b2f6
     drv = create_drive_rbd (g, &data);
46b2f6
   }
46b2f6
+#if 0 /* DISABLED IN RHEL 8 */
46b2f6
   else if (STREQ (protocol, "sheepdog")) {
46b2f6
     data.protocol = drive_protocol_sheepdog;
46b2f6
     drv = create_drive_sheepdog (g, &data);
46b2f6
@@ -870,6 +877,7 @@ guestfs_impl_add_drive_opts (guestfs_h *g, const char *filename,
46b2f6
     data.protocol = drive_protocol_tftp;
46b2f6
     drv = create_drive_curl (g, &data);
46b2f6
   }
46b2f6
+#endif /* DISABLED IN RHEL 8 */
46b2f6
   else {
46b2f6
     error (g, _("unknown protocol ‘%s’"), protocol);
46b2f6
     drv = NULL; /*FALLTHROUGH*/
46b2f6
diff --git a/lib/guestfs.pod b/lib/guestfs.pod
46b2f6
index af944ddb7..58559a6b4 100644
46b2f6
--- a/lib/guestfs.pod
46b2f6
+++ b/lib/guestfs.pod
46b2f6
@@ -714,70 +714,6 @@ servers.  The server string is documented in
46b2f6
 L</guestfs_add_drive_opts>. The C<username> and C<secret> parameters are
46b2f6
 also optional, and if not given, then no authentication will be used.
46b2f6
 
46b2f6
-=head3 FTP, HTTP AND TFTP
46b2f6
-
46b2f6
-Libguestfs can access remote disks over FTP, FTPS, HTTP, HTTPS
46b2f6
-or TFTP protocols.
46b2f6
-
46b2f6
-To do this, set the optional C<protocol> and C<server> parameters of
46b2f6
-L</guestfs_add_drive_opts> like this:
46b2f6
-
46b2f6
- char **servers = { "www.example.org", NULL };
46b2f6
- guestfs_add_drive_opts (g, "/disk.img",
46b2f6
-                         GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw",
46b2f6
-                         GUESTFS_ADD_DRIVE_OPTS_PROTOCOL, "http",
46b2f6
-                         GUESTFS_ADD_DRIVE_OPTS_SERVER, servers,
46b2f6
-                         -1);
46b2f6
-
46b2f6
-The C<protocol> can be one of C<"ftp">, C<"ftps">, C<"http">,
46b2f6
-C<"https"> or C<"tftp">.
46b2f6
-
46b2f6
-C<servers> (the C<server> parameter) is a list which must have a
46b2f6
-single element.  The single element is a string defining the web,
46b2f6
-FTP or TFTP server.  The format of this string is documented in
46b2f6
-L</guestfs_add_drive_opts>.
46b2f6
-
46b2f6
-=head3 GLUSTER
46b2f6
-
46b2f6
-Libguestfs can access Gluster disks.
46b2f6
-
46b2f6
-To do this, set the optional C<protocol> and C<server> parameters of
46b2f6
-L</guestfs_add_drive_opts> like this:
46b2f6
-
46b2f6
- char **servers = { "gluster.example.org:24007", NULL };
46b2f6
- guestfs_add_drive_opts (g, "volname/image",
46b2f6
-                         GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw",
46b2f6
-                         GUESTFS_ADD_DRIVE_OPTS_PROTOCOL, "gluster",
46b2f6
-                         GUESTFS_ADD_DRIVE_OPTS_SERVER, servers,
46b2f6
-                         -1);
46b2f6
-
46b2f6
-C<servers> (the C<server> parameter) is a list which must have a
46b2f6
-single element.  The single element is a string defining the Gluster
46b2f6
-server.  The format of this string is documented in
46b2f6
-L</guestfs_add_drive_opts>.
46b2f6
-
46b2f6
-Note that gluster usually requires the client process (ie. libguestfs)
46b2f6
-to run as B<root> and will give unfathomable errors if it is not
46b2f6
-(eg. "No data available").
46b2f6
-
46b2f6
-=head3 ISCSI
46b2f6
-
46b2f6
-Libguestfs can access iSCSI disks remotely.
46b2f6
-
46b2f6
-To do this, set the optional C<protocol> and C<server> parameters like
46b2f6
-this:
46b2f6
-
46b2f6
- char **server = { "iscsi.example.org:3000", NULL };
46b2f6
- guestfs_add_drive_opts (g, "target-iqn-name/lun",
46b2f6
-                         GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw",
46b2f6
-                         GUESTFS_ADD_DRIVE_OPTS_PROTOCOL, "iscsi",
46b2f6
-                         GUESTFS_ADD_DRIVE_OPTS_SERVER, server,
46b2f6
-                         -1);
46b2f6
-
46b2f6
-The C<server> parameter is a list which must have a single element.
46b2f6
-The single element is a string defining the iSCSI server.  The format
46b2f6
-of this string is documented in L</guestfs_add_drive_opts>.
46b2f6
-
46b2f6
 =head3 NETWORK BLOCK DEVICE
46b2f6
 
46b2f6
 Libguestfs can access Network Block Device (NBD) disks remotely.
46b2f6
@@ -840,42 +776,6 @@ L<https://bugs.launchpad.net/qemu/+bug/1155677>
46b2f6
 
46b2f6
 =back
46b2f6
 
46b2f6
-=head3 SHEEPDOG
46b2f6
-
46b2f6
-Libguestfs can access Sheepdog disks.
46b2f6
-
46b2f6
-To do this, set the optional C<protocol> and C<server> parameters of
46b2f6
-L</guestfs_add_drive_opts> like this:
46b2f6
-
46b2f6
- char **servers = { /* optional servers ... */ NULL };
46b2f6
- guestfs_add_drive_opts (g, "volume",
46b2f6
-                         GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw",
46b2f6
-                         GUESTFS_ADD_DRIVE_OPTS_PROTOCOL, "sheepdog",
46b2f6
-                         GUESTFS_ADD_DRIVE_OPTS_SERVER, servers,
46b2f6
-                         -1);
46b2f6
-
46b2f6
-The optional list of C<servers> may be zero or more server addresses
46b2f6
-(C<"hostname:port">).  The format of the server strings is documented
46b2f6
-in L</guestfs_add_drive_opts>.
46b2f6
-
46b2f6
-=head3 SSH
46b2f6
-
46b2f6
-Libguestfs can access disks over a Secure Shell (SSH) connection.
46b2f6
-
46b2f6
-To do this, set the C<protocol> and C<server> and (optionally)
46b2f6
-C<username> parameters of L</guestfs_add_drive_opts> like this:
46b2f6
-
46b2f6
- char **server = { "remote.example.com", NULL };
46b2f6
- guestfs_add_drive_opts (g, "/path/to/disk.img",
46b2f6
-                         GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw",
46b2f6
-                         GUESTFS_ADD_DRIVE_OPTS_PROTOCOL, "ssh",
46b2f6
-                         GUESTFS_ADD_DRIVE_OPTS_SERVER, server,
46b2f6
-                         GUESTFS_ADD_DRIVE_OPTS_USERNAME, "remoteuser",
46b2f6
-                         -1);
46b2f6
-
46b2f6
-The format of the server string is documented in
46b2f6
-L</guestfs_add_drive_opts>.
46b2f6
-
46b2f6
 =head2 INSPECTION
46b2f6
 
46b2f6
 Libguestfs has APIs for inspecting an unknown disk image to find out
46b2f6
diff --git a/tests/disks/test-qemu-drive-libvirt.sh b/tests/disks/test-qemu-drive-libvirt.sh
46b2f6
index e49c69b43..9b1abc4ec 100755
46b2f6
--- a/tests/disks/test-qemu-drive-libvirt.sh
46b2f6
+++ b/tests/disks/test-qemu-drive-libvirt.sh
46b2f6
@@ -64,34 +64,6 @@ check_output
46b2f6
 grep -sq -- '-drive file=rbd:abc-def/ghi-jkl:auth_supported=none,' "$DEBUG_QEMU_FILE" || fail ceph2
46b2f6
 rm "$DEBUG_QEMU_FILE"
46b2f6
 
46b2f6
-# Gluster.
46b2f6
-
46b2f6
-$guestfish -d gluster run ||:
46b2f6
-check_output
46b2f6
-grep -sq -- '-drive file=gluster://1.2.3.4:1234/volname/image,' "$DEBUG_QEMU_FILE" || fail gluster
46b2f6
-rm "$DEBUG_QEMU_FILE"
46b2f6
-
46b2f6
-# iSCSI.
46b2f6
-
46b2f6
-$guestfish -d iscsi run ||:
46b2f6
-check_output
46b2f6
-grep -sq -- '-drive file=iscsi://1.2.3.4:1234/iqn.2003-01.org.linux-iscsi.fedora' "$DEBUG_QEMU_FILE" || fail iscsi
46b2f6
-rm "$DEBUG_QEMU_FILE"
46b2f6
-
46b2f6
-# NBD.
46b2f6
-
46b2f6
-$guestfish -d nbd run ||:
46b2f6
-check_output
46b2f6
-grep -sq -- '-drive file=nbd:1.2.3.4:1234,' "$DEBUG_QEMU_FILE" || fail nbd
46b2f6
-rm "$DEBUG_QEMU_FILE"
46b2f6
-
46b2f6
-# Sheepdog.
46b2f6
-
46b2f6
-$guestfish -d sheepdog run ||:
46b2f6
-check_output
46b2f6
-grep -sq -- '-drive file=sheepdog:volume,' "$DEBUG_QEMU_FILE" || fail sheepdog
46b2f6
-rm "$DEBUG_QEMU_FILE"
46b2f6
-
46b2f6
 # Local, stored in a pool.
46b2f6
 
46b2f6
 $guestfish -d pool1 run ||:
46b2f6
diff --git a/tests/disks/test-qemu-drive.sh b/tests/disks/test-qemu-drive.sh
46b2f6
index 19dd60a2f..583e031bd 100755
46b2f6
--- a/tests/disks/test-qemu-drive.sh
46b2f6
+++ b/tests/disks/test-qemu-drive.sh
46b2f6
@@ -62,45 +62,6 @@ check_output
46b2f6
 grep -sq -- '-drive file=rbd:abc-def/ghi-jkl:auth_supported=none,' "$DEBUG_QEMU_FILE" || fail
46b2f6
 rm "$DEBUG_QEMU_FILE"
46b2f6
 
46b2f6
-# HTTP.
46b2f6
-
46b2f6
-guestfish <
46b2f6
-  add "/disk.img" "format:raw" "protocol:http" "server:www.example.com"
46b2f6
-  run
46b2f6
-EOF
46b2f6
-check_output
46b2f6
-grep -sq -- '-drive file=http://www.example.com/disk.img,' "$DEBUG_QEMU_FILE" || fail
46b2f6
-rm "$DEBUG_QEMU_FILE"
46b2f6
-
46b2f6
-# Gluster.
46b2f6
-
46b2f6
-guestfish <
46b2f6
-  add "volname/image" "format:raw" "protocol:gluster" "server:www.example.com:24007"
46b2f6
-  run
46b2f6
-EOF
46b2f6
-check_output
46b2f6
-grep -sq -- '-drive file=gluster://www.example.com:24007/volname/image,' "$DEBUG_QEMU_FILE" || fail
46b2f6
-rm "$DEBUG_QEMU_FILE"
46b2f6
-
46b2f6
-# iSCSI.
46b2f6
-
46b2f6
-guestfish <
46b2f6
-  add "target-iqn-name/lun" "format:raw" "protocol:iscsi" "server:www.example.com:3000"
46b2f6
-  run
46b2f6
-EOF
46b2f6
-check_output
46b2f6
-grep -sq -- '-drive file=iscsi://www.example.com:3000/target-iqn-name/lun,' "$DEBUG_QEMU_FILE" || fail
46b2f6
-rm "$DEBUG_QEMU_FILE"
46b2f6
-
46b2f6
-guestfish <
46b2f6
-  add "target-iqn-name/lun" "format:raw" "protocol:iscsi" "server:www.example.com:3000" \
46b2f6
-    "username:user" "secret:pass"
46b2f6
-  run
46b2f6
-EOF
46b2f6
-check_output
46b2f6
-grep -sq -- '-drive file=iscsi://user%pass@www.example.com:3000/target-iqn-name/lun,' "$DEBUG_QEMU_FILE" || fail
46b2f6
-rm "$DEBUG_QEMU_FILE"
46b2f6
-
46b2f6
 # NBD.
46b2f6
 
46b2f6
 guestfish <
46b2f6
@@ -118,24 +79,3 @@ EOF
46b2f6
 check_output
46b2f6
 grep -sq -- '-drive file=nbd:unix:/socket,' "$DEBUG_QEMU_FILE" || fail
46b2f6
 rm "$DEBUG_QEMU_FILE"
46b2f6
-
46b2f6
-# Sheepdog.
46b2f6
-
46b2f6
-guestfish <
46b2f6
-  add "volume" "format:raw" "protocol:sheepdog"
46b2f6
-  run
46b2f6
-EOF
46b2f6
-check_output
46b2f6
-grep -sq -- '-drive file=sheepdog:volume,' "$DEBUG_QEMU_FILE" || fail
46b2f6
-rm "$DEBUG_QEMU_FILE"
46b2f6
-
46b2f6
-# SSH.
46b2f6
-
46b2f6
-guestfish <
46b2f6
-  add "/disk.img" "format:raw" "protocol:ssh" "server:example.com" \
46b2f6
-    "username:rich"
46b2f6
-  run
46b2f6
-EOF
46b2f6
-check_output
46b2f6
-grep -sq -- '-drive file=ssh://rich@example.com/disk.img,' "$DEBUG_QEMU_FILE" || fail
46b2f6
-rm "$DEBUG_QEMU_FILE"
46b2f6
-- 
b155d0
2.26.2
46b2f6