Use a loop to check if the user specified any SPICE option and SPICE support is disabled.
Signed-off-by: Andrea Spadaccini <[email protected]> --- lib/hypervisor/hv_kvm.py | 21 ++++++++++----------- 1 files changed, 10 insertions(+), 11 deletions(-) diff --git a/lib/hypervisor/hv_kvm.py b/lib/hypervisor/hv_kvm.py index fe9b9c8..5546ac0 100644 --- a/lib/hypervisor/hv_kvm.py +++ b/lib/hypervisor/hv_kvm.py @@ -1582,7 +1582,6 @@ class KVMHypervisor(hv_base.BaseHypervisor): spice_bind = hvparams[constants.HV_KVM_SPICE_BIND] spice_ip_version = hvparams[constants.HV_KVM_SPICE_IP_VERSION] - spice_password_file = hvparams[constants.HV_KVM_SPICE_PASSWORD_FILE] if spice_bind: if spice_ip_version != constants.IFACE_NO_IP_VERSION_SPECIFIED: # if an IP version is specified, the spice_bind parameter must be an @@ -1599,16 +1598,16 @@ class KVMHypervisor(hv_base.BaseHypervisor): " the specified IP version is %s" % (spice_bind, spice_ip_version)) else: - if spice_ip_version: - raise errors.HypervisorError("spice: the %s option is useless" - " without %s" % - (constants.HV_KVM_SPICE_IP_VERSION, - constants.HV_KVM_SPICE_BIND)) - if spice_password_file: - raise errors.HypervisorError("spice: the %s option is useless" - " without %s" % - (constants.HV_KVM_SPICE_PASSWORD_FILE, - constants.HV_KVM_SPICE_BIND)) + # All the other SPICE parameters depend on spice_bind being set. Raise an + # error if any of them is set without it. + spice_additional_params = frozenset([ + constants.HV_KVM_SPICE_IP_VERSION, + constants.HV_KVM_SPICE_PASSWORD_FILE, + ]) + for param in spice_additional_params: + if hvparams[param]: + raise errors.HypervisorError("spice: %s requires %s to be set" % + (param, constants.HV_KVM_SPICE_BIND)) @classmethod def ValidateParameters(cls, hvparams): -- 1.7.3.1
