[libvirt] [PATCH 1/3] bhyve: implement support for commandline args

Daniel P. Berrangé berrange at redhat.com
Tue Jan 29 14:01:28 UTC 2019


On Fri, Jan 18, 2019 at 07:41:00PM +0400, Roman Bogorodskiy wrote:
> Implement support for passing custom command line arguments
> to bhyve using the 'bhyve:commandline' element:
> 
>   <bhyve:commandline>
>     <bhyve:arg value='-newarg'/>
>   </bhyve:commandline>
> 
>  * Define virDomainXMLNamespace for the bhyve driver, which
>    at this point supports only the 'commandline' element
>    described above,
>  * Update command generation code to inject these command line
>    arguments between driver-generated arguments and the vmname
>    positional argument.
> 
> Signed-off-by: Roman Bogorodskiy <bogorodskiy at gmail.com>
> ---
>  docs/schemas/domaincommon.rng                 |  17 +++
>  src/bhyve/bhyve_command.c                     |   9 ++
>  src/bhyve/bhyve_conf.c                        |  15 +++
>  src/bhyve/bhyve_conf.h                        |   9 ++
>  src/bhyve/bhyve_domain.c                      | 107 +++++++++++++++++-
>  src/bhyve/bhyve_domain.h                      |   1 +
>  .../bhyvexml2argv-commandline.args            |   9 ++
>  .../bhyvexml2argv-commandline.ldargs          |   3 +
>  .../bhyvexml2argv-commandline.xml             |  27 +++++
>  tests/bhyvexml2argvtest.c                     |   1 +
>  .../bhyvexml2xmlout-commandline.xml           |  37 ++++++
>  tests/bhyvexml2xmltest.c                      |   1 +
>  12 files changed, 235 insertions(+), 1 deletion(-)
>  create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-commandline.args
>  create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-commandline.ldargs
>  create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-commandline.xml
>  create mode 100644 tests/bhyvexml2xmloutdata/bhyvexml2xmlout-commandline.xml


> diff --git a/src/bhyve/bhyve_command.c b/src/bhyve/bhyve_command.c
> index 84fda08943..a1ae2026a0 100644
> --- a/src/bhyve/bhyve_command.c
> +++ b/src/bhyve/bhyve_command.c
> @@ -28,6 +28,7 @@
>  #include "bhyve_capabilities.h"
>  #include "bhyve_command.h"
>  #include "bhyve_domain.h"
> +#include "bhyve_conf.h"
>  #include "bhyve_driver.h"
>  #include "datatypes.h"
>  #include "viralloc.h"
> @@ -626,6 +627,14 @@ virBhyveProcessBuildBhyveCmd(virConnectPtr conn,
>      if (bhyveBuildConsoleArgStr(def, cmd) < 0)
>          goto error;
>  
> +    if (def->namespaceData) {
> +        bhyveDomainCmdlineDefPtr bhyvecmd;
> +
> +        bhyvecmd = def->namespaceData;
> +        for (i = 0; i < bhyvecmd->num_args; i++)
> +            virCommandAddArg(cmd, bhyvecmd->args[i]);
> +    }

There should be a VIR_WARN emitted in this block to mark the fact
that the guest is booted using command line passthrough feature
as that limits supportability of the guest.


Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|




More information about the libvir-list mailing list