[lxc-devel] [PATCH] lxc_create: add outfile option

Dwight Engen dwight.engen at oracle.com
Thu Jul 11 21:39:23 UTC 2013


On Thu, 11 Jul 2013 16:22:11 -0500
Serge Hallyn <serge.hallyn at ubuntu.com> wrote:

> Quoting Dwight Engen (dwight.engen at oracle.com):
> > On Thu, 11 Jul 2013 15:40:10 -0500
> > Serge Hallyn <serge.hallyn at ubuntu.com> wrote:
> > 
> > > Quoting Dwight Engen (dwight.engen at oracle.com):
> > > > On Thu, 11 Jul 2013 14:48:21 -0500
> > > > Serge Hallyn <serge.hallyn at ubuntu.com> wrote:
> > > > 
> > > > > lxc-create ... -o -
> > > > > 
> > > > > will send template output to standard output (the old
> > > > > default).
> > > > > 
> > > > > lxc-create ... without any -o will hide template output.
> > > > > 
> > > > > lxc-create -o /tmp/xxx will send template output to the file
> > > > > /tmp/xxx.
> > > > 
> > > > I like having a -o for lxc-create, but I'm not sure we should
> > > > change the
> > > 
> > > Sorry, that was wrong in my commit msg.
> > > 
> > > only '--outfile' works (because 'o' is used by the common options
> > > for logfile output)
> > > 
> > > > default of lxc-create to not show the template output. For
> > > > interactive
> > > 
> > > We could swap the meanings so that '--outfile -' means on output,
> > > and not listing '--outfile' shows the output on stdout.
> > 
> > Sorry, I'm not getting the difference between --outfile - and just
> > getting output on stdout? My main concern was that lxc-create
> > without any extra args do what it does today (shows output).
> 
> With this current patch:
> 
> 	lxc-create with no extra args does not show output
> 	"lxc-create --outfile -" shows output to stdout
> 
> I'm suggesting we just flip those.

Ahh, yep, I'd like it better flipped then as the no args case won't
change today's behavior, but if others feel strongly I don't really
care too much. So this is what I think you're proposing:

 lxc-create with no extra args -> shows output on stdout
 lxc-create --outfile -        -> shows output on stdout
 lxc-create --outfile /tmp/xxx -> output in /tmp/xxx

> > > > use it can be quite useful, whereas I think silent certainly
> > > > makes sense for the API (which is what I think Çağlars original
> > > > concern was).
> > > 
> > > Oh, hm, yeah.  So my approach actually doesn't suffice.  I was
> > > thinking callers could do the same thing, but that's somewhat
> > > silly.
> > > 
> > > > Maybe the API should take fds which we can dup2() onto 0,1,2 of
> > > > the forked create process to handle both cases? (and would
> > > > allow the API to capture the output if so desired)
> > > 
> > > pass in an int* which is either NULL or contains 3 ints (i.e.
> > > -1, 10, 10 if 10 is an output file)?
> > 
> > Yeah I think that would work, or 3 separate ints like we do for
> > lxcapi_console(). Either way, if the caller passes -1, does that
> > mean we would use the callers existing stdin,out,err i.e. don't
> > dup2() that fd
> 
> I was thinking -1 would mean leave that fd alone, but
> 
> > at all, or that we will ensure stdin,out,err are /dev/null? The
> > later is probably easier for API callers and lxc-create can just
> > pass the fd's it wants.
> 
> Agreed, that seems to make sense.





More information about the lxc-devel mailing list