Until now, the libxl driver ignored any <hap> setting in domain XML and deferred to libxl, which enables hap if not specified. While this is a good default, it prevents disabling hap if desired. This change allows disabling hap with <hap state='off'/>. hap is explicitly enabled with <hap/> or <hap state='on/>. Absense of <hap> retains current behavior of deferring default state to libxl. Signed-off-by: Jim Fehlig <jfehlig@xxxxxxxx> --- src/libxl/libxl_conf.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c index 6efd9b5..116dc22 100644 --- a/src/libxl/libxl_conf.c +++ b/src/libxl/libxl_conf.c @@ -511,10 +511,24 @@ libxlMakeDomCreateInfo(libxl_ctx *ctx, libxl_domain_create_info_init(c_info); - if (def->os.type == VIR_DOMAIN_OSTYPE_HVM) + if (def->os.type == VIR_DOMAIN_OSTYPE_HVM) { c_info->type = LIBXL_DOMAIN_TYPE_HVM; - else + switch ((virTristateSwitch) def->features[VIR_DOMAIN_FEATURE_HAP]) { + case VIR_TRISTATE_SWITCH_OFF: + libxl_defbool_set(&c_info->hap, false); + break; + + case VIR_TRISTATE_SWITCH_ON: + libxl_defbool_set(&c_info->hap, true); + break; + + case VIR_TRISTATE_SWITCH_ABSENT: + case VIR_TRISTATE_SWITCH_LAST: + break; + } + } else { c_info->type = LIBXL_DOMAIN_TYPE_PV; + } if (VIR_STRDUP(c_info->name, def->name) < 0) goto error; -- 2.1.4 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list