[Libguestfs] guestfish Remote Images IPv6 Support

Jonathan Wright jonathan at knownhost.com
Mon Apr 1 13:45:48 UTC 2019


Unfortunately I do need to use the address explicitly as opposed to 
hostnames because the source of the data fed here is Ceph's monmap which 
returns the addresses explicitly.

I've tried all the common ways to escape the : in the v6 address to no 
avail.  I definitely agree that the problem looks to be it parsing the 
colons as if the port comes next and then everything after that is args.

Should I file a bug report?  There doesn't seem to be any way to prevent 
the : from getting parsed incorrectly.

On 3/30/19 2:50 AM, Richard W.M. Jones wrote:
> On Fri, Mar 29, 2019 at 06:17:17PM -0500, Jonathan Wright wrote:
>> I have scoured the web and can't find anything on the topic: Is IPv6
>> supported for remote image targets?
> It definitely should work, although I don't know if anyone has tried
> using the address explicitly (rather than a hostname which resolves to
> an AAAA record).
>
>> For example:
>>
>> guestfish --format=raw --ro -a
>> rbd://[fd00::cefc:1]:6789/images/CentOS-7-x86_64-GenericCloud-1901
>>
>> Does not work citing the following:
> The important lines are these.  Firstly guestfish parses the URL into
> an actual libguestfs API call, which looks fine to me:
>
>> libguestfs: trace: add_drive
>> "images/CentOS-7-x86_64-GenericCloud-1901" "readonly:true"
>> "format:raw" "protocol:rbd" "server:tcp:[fd00::cefc:1]:6789"
> This is probably where it goes wrong:
>
>> "/tmp/libguestfs3pGMi6/overlay1.qcow2" "qcow2" -1 "backingfile:rbd:images/CentOS-7-x86_64-GenericCloud-1901:mon_host=[fd00::cefc:1]\:6789:auth_supported=none"
>> "backingformat:raw"
>> libguestfs: command: run: \ -o backing_file=rbd:images/CentOS-7-x86_64-GenericCloud-1901:mon_host=[fd00::cefc:1]\:6789:auth_supported=none,backing_fmt=raw
>> libguestfs: command: run: \ /tmp/libguestfs3pGMi6/overlay1.qcow2
>> qemu-img: /tmp/libguestfs3pGMi6/overlay1.qcow2: invalid conf option
>> :cefc:1]:6789:auth_supported: No such file or directory
>> Could not open backing image to determine size.
> The code in libguestfs is supposed to turn the guestfs_add_drive
> ‘servers’ parameter into a Ceph URL for qemu:
>
>    https://github.com/libguestfs/libguestfs/blob/f79129b8dc92470e3a5597daf53c84038bd6859e/lib/qemu.c#L905
>
> and I suppose this is being done wrong somehow (I don't have a Ceph
> server to test).
>
> At a guess I would say that it seems as if ':' characters must be
> quoted somehow (backslash?) because they are also used to separate the
> address and port number.
>
> Rich.
>
-- 
Jonathan Wright
KnownHost, LLC
https://www.knownhost.com




More information about the Libguestfs mailing list