All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anthony Liguori <anthony@codemonkey.ws>
To: "Daniel P. Berrange" <berrange@redhat.com>
Cc: Kevin Wolf <kwolf@redhat.com>,
	alex@csgraf.de, nolan@sigbus.net, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] Add HTTP protocol using curl v2
Date: Wed, 06 May 2009 08:08:24 -0500	[thread overview]
Message-ID: <4A018BC8.8040206@codemonkey.ws> (raw)
In-Reply-To: <20090506093143.GC23167@redhat.com>

Daniel P. Berrange wrote:
> On Wed, May 06, 2009 at 11:14:17AM +0200, Kevin Wolf wrote:
>   
>> Daniel P. Berrange schrieb:
>>     
>>> On Wed, May 06, 2009 at 03:00:50AM +0200, alex@csgraf.de wrote:
>>>       
>>>> From: Alexander Graf <alex@csgraf.de>
>>>>
>>>> Currently Qemu can read from posix I/O and NBD. This patch adds a
>>>> third protocol to the game: HTTP.
>>>>
>>>> In certain situations it can be useful to access HTTP data directly,
>>>> for example if you want to try out an http provided OS image, but
>>>> don't know if you want to download it yet.
>>>>
>>>> Using this patch you can now try it on on the fly. Just use it like:
>>>>
>>>> qemu -cdrom http://host/path/my.iso
>>>>         
>>> I rather think there should be an explicit flag to allow use of http://
>>> URLs in filenames at runtime, not just 'configure' time. There are many
>>> apps out there using QEMU which will be assuming QEMU treats all disk
>>> paths as local files, and thus not got explicit code to check whether 
>>> a URI is passed. I could well see that some will consider it a security
>>> issue to allow QEMU to download off the net, but if they updated to
>>> a new QEMU with this patch, downloading would be allowed by default.
>>>       
>> If apps want to be sure that they are accessing a local file, they must
>> ensure not to have a colon in the file name. Otherwise this specifies a
>> protocol for the qemu block layer.
>>     
>
> Using paths with a colon in the file name is pretty critical if
> you wish to configure VMs with block devices using a stable path
> like those under /dev/disk/by-path/ - they pretty much all contain
> colons, and are the only good stable path for iSCSI or FibreChannel
> block devices.
>
>   
>> Btw, we could use a way to escape colons in a file name. Using such
>> files isn't possible currently.
>>
>>     
>>> Perhaps only enable these remote URIs with the -drive parameter, when
>>> an explicit fmt=http option is set. But can this be layered into the
>>> other protocols, eg could the remote URI be in qcow, vmdk, etc formats,
>>> or are you assuming the remote uri is raw file ?
>>>       
>> It should work with all formats. This is why fmt=http is wrong. It's not
>> a format, but a protocol.
>>     
>
> Then I'd prefer we add a protocol=XXX option for magic protocols. This 
> would be easier to use & clearer than requiring escaping of magic 
> characters, eg
>   

It just exacerbates the problem.  The comma is also a special character 
so now to avoid problems with ':' as a special character, you're relying 
on another special character.

We absolutely need escaping.  I have no doubt about that.

 From a human readable perspective though, I think we could introduce a 
"file:" protocol which ensured that we used a local file protocol.  For 
instance,

 -drive file=file:/some/path

Regards,

Anthony Liguori

  parent reply	other threads:[~2009-05-06 13:08 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-06  1:00 [Qemu-devel] [PATCH] Add HTTP protocol using curl v2 alex
2009-05-06  8:28 ` Daniel P. Berrange
2009-05-06  9:14   ` Kevin Wolf
2009-05-06  9:31     ` Daniel P. Berrange
2009-05-06  9:40       ` Alexander Graf
2009-05-06  9:57       ` Avi Kivity
2009-05-06 10:00         ` Kevin Wolf
2009-05-06 10:06         ` Daniel P. Berrange
2009-05-06 10:13           ` Daniel P. Berrange
2009-05-06 10:15             ` Avi Kivity
2009-05-06 10:15             ` Alexander Graf
2009-05-06 13:11               ` Anthony Liguori
2009-05-06 10:16             ` Kevin Wolf
2009-05-06 10:23               ` Alexander Graf
2009-05-06 10:24               ` Daniel P. Berrange
2009-05-06 10:09         ` Alexander Graf
2009-05-06 13:09         ` Anthony Liguori
2009-05-06 13:59           ` Avi Kivity
2009-05-06 14:08             ` Anthony Liguori
2009-05-06 14:14               ` François Revol
2009-05-06 13:12         ` Anthony Liguori
2009-05-06 13:39           ` Daniel P. Berrange
2009-05-06 13:43             ` Anthony Liguori
2009-05-06 13:50             ` Kevin Wolf
2009-05-06 13:59               ` Anthony Liguori
2009-05-06 14:11                 ` Kevin Wolf
2009-05-06 14:39                   ` Anthony Liguori
2009-05-06 14:48                     ` Alexander Graf
2009-05-06 14:49                     ` Avi Kivity
2009-05-06 16:51                       ` Anthony Liguori
2009-05-08 17:00                         ` Jamie Lokier
2009-05-06 14:49                     ` Kevin Wolf
2009-05-06 13:08       ` Anthony Liguori [this message]
2009-05-06 10:43     ` Jamie Lokier
2009-05-06 12:59   ` Anthony Liguori

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4A018BC8.8040206@codemonkey.ws \
    --to=anthony@codemonkey.ws \
    --cc=alex@csgraf.de \
    --cc=berrange@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=nolan@sigbus.net \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.