On Fri, Sep 7, 2012 at 1:47 AM, Daniel P. Berrange <berra...@redhat.com>wrote:

> On Thu, Sep 06, 2012 at 09:10:04PM +0530, Bharata B Rao wrote:
> > On Thu, Sep 06, 2012 at 11:29:36AM +0300, Avi Kivity wrote:
> > > On 08/14/2012 12:58 PM, Kevin Wolf wrote:
> > > >
> > > >> While we are at this, let me bring out another issue. Gluster
> supports 3
> > > >> transport types:
> > > >>
> > > >> - socket in which case the server will be hostname, ipv4 or ipv4
> address.
> > > >> - rdma in which case server will be interpreted similar to socket.
> > > >> - unix in which case server will be a path to unix domain socket
> and this
> > > >>   will look like any other filesystem path. (Eg.
> /tmp/glusterd.socket)
> > > >>
> > > >> I don't think we can fit 'unix' within the standard URI scheme (RFC
> 3986)
> > > >> easily, but I am planning to specify the 'unix' transport as below:
> > > >>
> > > >> gluster://[/path/to/unix/domain/socket]/volname/image?transport=unix
> > > >>
> > > >> i,e., I am asking the user to put the unix domain socket path within
> > > >> square brackets when transport type is unix.
> > > >>
> > > >> Do you think this is fine ?
> > > >
> > > > Never saw something like this before, but it does seem reasonable to
> me.
> > > > Excludes ] from the valid characters in the file name of the socket,
> but
> > > > that shouldn't be a problem in practice.
> > >
> > > Bikeshedding, but I prefer
> > >
> > >   gluster:///path/to/unix/domain/socket:/volname/image?transport=unix
> >
> > So if the unix domain socket is /tmp/glusterd.socket, then this would
> look like:
> >
> > gluster:///tmp/glusterd.socket:/volname/image?transport=unix.
> >
> > So you are saying : will the separator b/n the unix domain socket path
> > and rest of the URI components.
> >
> > Unless you or others strongly feel about this, I would like to go with
> > [ ] based spec, which I feel is less prone to errors like missing a colon
> > by mistake :)
> >
> > >
> > > as being more similar to file://, or even
> > >
> > >   gluster:///path/to/unix/domain/socket/volname/image?transport=unix
> > >
> > > with the last two components implied to be part of the payload, not the
> > > path.
> >
> > Note that image is a file path by itself like /dir1/a.img. So I guess it
> > becomes difficult to figure out where the unix domain socket path ends
> > and rest of the URI components begin w/o a separator in between.
>
> IMHO this is all gross. URIs already have a well defined way to provide
> multiple parameters, dealing with escaping of special characters. ie query
> parameters. The whole benefit of using URI syntax is to let apps process
> the URIs using standard APIs. We should not be trying to define some extra
> magic encoding to let us stuff 2 separate parameters into the path
> component
> since that means apps have to now write custom parsing code again. Either
> the UNIX socket path, or the volume path should be in the URI path, not
> both. The other part should be a URI parameter. I'd really expect us to
> use:
>
>   gluster:///volname/image?transport=unix&sockpath=/path/to/unix/sock
>
>
+1

ronnie sahlberg

Reply via email to