From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59681) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZmZWs-0003wc-6E for qemu-devel@nongnu.org; Wed, 14 Oct 2015 23:48:35 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZmZWo-0005m8-42 for qemu-devel@nongnu.org; Wed, 14 Oct 2015 23:48:34 -0400 Received: from e17.ny.us.ibm.com ([129.33.205.207]:36329) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZmZWo-0005l8-0Y for qemu-devel@nongnu.org; Wed, 14 Oct 2015 23:48:30 -0400 Received: from localhost by e17.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Wed, 14 Oct 2015 23:48:29 -0400 Received: from b01cxnp22036.gho.pok.ibm.com (b01cxnp22036.gho.pok.ibm.com [9.57.198.26]) by d01dlp03.pok.ibm.com (Postfix) with ESMTP id E1D27C90043 for ; Wed, 14 Oct 2015 23:36:38 -0400 (EDT) Received: from d01av02.pok.ibm.com (d01av02.pok.ibm.com [9.56.224.216]) by b01cxnp22036.gho.pok.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id t9F3mRtm57737460 for ; Thu, 15 Oct 2015 03:48:27 GMT Received: from d01av02.pok.ibm.com (localhost [127.0.0.1]) by d01av02.pok.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id t9F3mR8I005039 for ; Wed, 14 Oct 2015 23:48:27 -0400 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Michael Roth In-Reply-To: <561ED980.9030002@redhat.com> References: <1444853285-10643-1-git-send-email-mdroth@linux.vnet.ibm.com> <1444853285-10643-10-git-send-email-mdroth@linux.vnet.ibm.com> <561ED980.9030002@redhat.com> Message-ID: <20151015034821.23952.52907@loki> Date: Wed, 14 Oct 2015 22:48:21 -0500 Subject: Re: [Qemu-devel] [PATCH 09/12] qga: guest exec functionality List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Eric Blake , qemu-devel@nongnu.org Cc: peter.maydell@linaro.org, Yuri Pudgorodskiy , "Denis V. Lunev" Quoting Eric Blake (2015-10-14 17:38:56) > On 10/14/2015 02:08 PM, Michael Roth wrote: > > From: Yuri Pudgorodskiy > > = > > Guest-exec rewriten in platform-independant style with glib spawn. > = > s/rewriten/rewritten/ > s/independant/independent/ > = > > = > > Child process is spawn asynchroneously and exit status can later > = > s/asynchroneously/asynchronously/ > = > > be picked up by guest-exec-status command. > > = > > stdin/stdout/stderr of the child now is redirected to /dev/null > > Later we will add ability to specify stdin in guest-exec command > > and to get collected stdout/stderr with guest-exec-status. > > = > > Signed-off-by: Yuri Pudgorodskiy > > Signed-off-by: Denis V. Lunev > > CC: Michael Roth > > *use g_new0 in place of g_malloc for GuestExec struct > > Signed-off-by: Michael Roth > > --- > = > > +## > > +# @guest-exec: > > +# > > +# Execute a command in the guest > > +# > > +# @path: path or executable name to execute > > +# @arg: #optional argument list to pass to executable > > +# @env: #optional environment variables to pass to executable > > +# @inp-data: #optional data to be passed to process stdin (base64 enco= ded) > = > Should this be 'input-data' instead of abbreviating? > = > > +# @capture-output: #optional bool flags to enable capture of > > +# stdout/stderr of running process > = > Might be worth mentioning that the default is false. > = > > +# > > +# Returns: PID on success. > > +# > > +# Since: 2.5 > > +## > > +{ 'command': 'guest-exec', > > + 'data': { 'path': 'str', '*arg': ['str'], '*env': ['str'], > > + '*inp-data': 'str', '*capture-output': 'bool' }, > > + 'returns': 'GuestExec' } > = > Are there any restrictions on how elements of env must behave, such as > requiring an '=3D'? If so, does that mean we need any more structure than > a raw 'str', such as {'name':'str', 'value':'str'}? Or is that overkill? I think it's overkill, since glib's g_spawn_*() functions expect it as a string list in the same way as it does for command parameters. As a result we have common parsing code to feed both. Documenting env as something other than this will only result in extra code to turn it back into the same format we have currently. Have all other suggestions pushed to qga tree and will send a v2 Thursday morning CST: https://github.com/mdroth/qemu/commits/qga > = > -- = > Eric Blake eblake redhat com +1-919-301-3266 > Libvirt virtualization library http://libvirt.org >=20