- def CheckParameterSyntax(cls, hvparams):
- """Check the given parameter syntax.
-
- """
- super(XenHvmHypervisor, cls).CheckParameterSyntax(hvparams)
- # boot order verification
- boot_order = hvparams[constants.HV_BOOT_ORDER]
- if len(boot_order.strip("acdn")) != 0:
- raise errors.HypervisorError("Invalid boot order '%s' specified,"
- " must be one or more of [acdn]" %
- boot_order)
- # device type checks
- nic_type = hvparams[constants.HV_NIC_TYPE]
- if nic_type not in constants.HT_HVM_VALID_NIC_TYPES:
- raise errors.HypervisorError("Invalid NIC type %s specified for Xen HVM"
- " hypervisor" % nic_type)
- disk_type = hvparams[constants.HV_DISK_TYPE]
- if disk_type not in constants.HT_HVM_VALID_DISK_TYPES:
- raise errors.HypervisorError("Invalid disk type %s specified for Xen HVM"
- " hypervisor" % disk_type)
- # vnc_bind_address verification
- vnc_bind_address = hvparams[constants.HV_VNC_BIND_ADDRESS]
- if vnc_bind_address is not None:
- if not utils.IsValidIP(vnc_bind_address):
- raise errors.OpPrereqError("given VNC bind address '%s' doesn't look"
- " like a valid IP address" %
- vnc_bind_address)
-
- iso_path = hvparams[constants.HV_CDROM_IMAGE_PATH]
- if iso_path and not os.path.isabs(iso_path):
- raise errors.HypervisorError("The path to the HVM CDROM image must"
- " be an absolute path or None, not %s" %
- iso_path)
-
- def ValidateParameters(self, hvparams):
- """Check the given parameters for validity.
-
- For the PVM hypervisor, this only check the existence of the
- kernel.
-
- @type hvparams: dict
- @param hvparams: dictionary with parameter names/value
- @raise errors.HypervisorError: when a parameter is not valid
-
- """
- super(XenHvmHypervisor, self).ValidateParameters(hvparams)
-
- # hvm_cdrom_image_path verification
- iso_path = hvparams[constants.HV_CDROM_IMAGE_PATH]
- if iso_path and not os.path.isfile(iso_path):
- raise errors.HypervisorError("The HVM CDROM image must either be a"
- " regular file or a symlink pointing to"
- " an existing regular file, not %s" %
- iso_path)
-
- @classmethod
- def _WriteConfigFile(cls, instance, block_devices, extra_args):