From 7ba594c0e79d18c3daf196f1143886e2d92dd5a8 Mon Sep 17 00:00:00 2001 From: Guido Trotter <ultrotter@google.com> Date: Wed, 31 Mar 2010 16:37:09 +0100 Subject: [PATCH] kvm_flag hypervisor parameter Signed-off-by: Guido Trotter <ultrotter@google.com> Reviewed-by: Iustin Pop <iustin@google.com> --- lib/constants.py | 9 +++++++++ lib/hypervisor/hv_kvm.py | 7 +++++++ man/gnt-instance.sgml | 14 ++++++++++++++ 3 files changed, 30 insertions(+) diff --git a/lib/constants.py b/lib/constants.py index 4addd97ae..51a628653 100644 --- a/lib/constants.py +++ b/lib/constants.py @@ -429,6 +429,7 @@ HV_USE_LOCALTIME = "use_localtime" HV_DISK_CACHE = "disk_cache" HV_SECURITY_MODEL = "security_model" HV_SECURITY_DOMAIN = "security_domain" +HV_KVM_FLAG = "kvm_flag" HVS_PARAMETER_TYPES = { HV_BOOT_ORDER: VTYPE_STRING, @@ -458,6 +459,7 @@ HVS_PARAMETER_TYPES = { HV_DISK_CACHE: VTYPE_STRING, HV_SECURITY_MODEL: VTYPE_STRING, HV_SECURITY_DOMAIN: VTYPE_STRING, + HV_KVM_FLAG: VTYPE_STRING, } HVS_PARAMETERS = frozenset(HVS_PARAMETER_TYPES.keys()) @@ -566,6 +568,12 @@ HT_SM_POOL = "pool" HT_KVM_VALID_SM_TYPES = frozenset([HT_SM_NONE, HT_SM_USER, HT_SM_POOL]) +# Kvm flag values +HT_KVM_ENABLED = "enabled" +HT_KVM_DISABLED = "disabled" + +HT_KVM_FLAG_VALUES = frozenset([HT_KVM_ENABLED, HT_KVM_DISABLED]) + # Cluster Verify steps VERIFY_NPLUSONE_MEM = 'nplusone_mem' VERIFY_OPTIONAL_CHECKS = frozenset([VERIFY_NPLUSONE_MEM]) @@ -712,6 +720,7 @@ HVC_DEFAULTS = { HV_DISK_CACHE: HT_CACHE_DEFAULT, HV_SECURITY_MODEL: HT_SM_NONE, HV_SECURITY_DOMAIN: '', + HV_KVM_FLAG: "", }, HT_FAKE: { }, diff --git a/lib/hypervisor/hv_kvm.py b/lib/hypervisor/hv_kvm.py index a8a5c3868..fd36efeb2 100644 --- a/lib/hypervisor/hv_kvm.py +++ b/lib/hypervisor/hv_kvm.py @@ -80,6 +80,8 @@ class KVMHypervisor(hv_base.BaseHypervisor): constants.HV_SECURITY_MODEL: hv_base.ParamInSet(True, constants.HT_KVM_VALID_SM_TYPES), constants.HV_SECURITY_DOMAIN: hv_base.NO_CHECK, + constants.HV_KVM_FLAG: + hv_base.ParamInSet(False, constants.HT_KVM_FLAG_VALUES), } _MIGRATION_STATUS_RE = re.compile('Migration\s+status:\s+(\w+)', @@ -366,6 +368,11 @@ class KVMHypervisor(hv_base.BaseHypervisor): boot_cdrom = hvp[constants.HV_BOOT_ORDER] == constants.HT_BO_CDROM boot_network = hvp[constants.HV_BOOT_ORDER] == constants.HT_BO_NETWORK + if hvp[constants.HV_KVM_FLAG] == constants.HT_KVM_ENABLED: + kvm_cmd.extend(["-enable-kvm"]) + elif hvp[constants.HV_KVM_FLAG] == constants.HT_KVM_DISABLED: + kvm_cmd.extend(["-disable-kvm"]) + if boot_network: kvm_cmd.extend(['-boot', 'n']) diff --git a/man/gnt-instance.sgml b/man/gnt-instance.sgml index 178a3596f..a1217b4f0 100644 --- a/man/gnt-instance.sgml +++ b/man/gnt-instance.sgml @@ -644,6 +644,20 @@ </listitem> </varlistentry> + <varlistentry> + <term>kvm_flag</term> + <listitem> + <simpara>Valid for the KVM hypervisor.</simpara> + + <simpara>If <quote>enabled</quote> the -enable-kvm flag is + passed to kvm. If <quote>disabled</quote> -disable-kvm is + passed. If unset no flag is passed, and the default running + mode for your kvm binary will be used. + </simpara> + + </listitem> + </varlistentry> + </variablelist> </para> -- GitLab