[libvirt] [v2 02/13] Split virDomainControllerModel to virDomainControllerModelSCSI
Daniel P. Berrange
berrange at redhat.com
Thu Sep 1 10:42:53 UTC 2011
On Fri, Aug 26, 2011 at 01:44:18AM +0300, Marc-André Lureau wrote:
> ---
> src/conf/domain_conf.c | 26 +++++++++++++++++++++++---
> src/conf/domain_conf.h | 18 ++++++++++--------
> src/esx/esx_driver.c | 8 ++++----
> src/libvirt_private.syms | 4 ++--
> src/vmx/vmx.c | 32 ++++++++++++++++----------------
> tests/xml2vmxtest.c | 2 +-
> 6 files changed, 56 insertions(+), 34 deletions(-)
>
> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> index ce1f3c5..5e91d54 100644
> --- a/src/conf/domain_conf.c
> +++ b/src/conf/domain_conf.c
> @@ -195,7 +195,7 @@ VIR_ENUM_IMPL(virDomainController, VIR_DOMAIN_CONTROLLER_TYPE_LAST,
> "virtio-serial",
> "ccid")
>
> -VIR_ENUM_IMPL(virDomainControllerModel, VIR_DOMAIN_CONTROLLER_MODEL_LAST,
> +VIR_ENUM_IMPL(virDomainControllerModelSCSI, VIR_DOMAIN_CONTROLLER_MODEL_SCSI_LAST,
> "auto",
> "buslogic",
> "lsilogic",
> @@ -2455,6 +2455,16 @@ no_memory:
> }
>
>
> +static int
> +virDomainControllerModelTypeFromString(const virDomainControllerDefPtr def,
> + const char *model)
> +{
> + if (def->type == VIR_DOMAIN_CONTROLLER_TYPE_SCSI)
> + return virDomainControllerModelSCSITypeFromString(model);
> +
> + return -1;
> +}
> +
> /* Parse the XML definition for a controller
> * @param node XML nodeset to parse for controller definition
> */
> @@ -2492,7 +2502,7 @@ virDomainControllerDefParseXML(xmlNodePtr node,
>
> model = virXMLPropString(node, "model");
> if (model) {
> - if ((def->model = virDomainControllerModelTypeFromString(model)) < 0) {
> + if ((def->model = virDomainControllerModelTypeFromString(def, model)) < 0) {
> virDomainReportError(VIR_ERR_INTERNAL_ERROR,
> _("Unknown model type '%s'"), model);
> goto error;
> @@ -8733,6 +8743,16 @@ virDomainDiskDefFormat(virBufferPtr buf,
> return 0;
> }
>
> +static const char *
> +virDomainControllerModelTypeToString(virDomainControllerDefPtr def,
> + int model)
> +{
> + if (def->type == VIR_DOMAIN_CONTROLLER_TYPE_SCSI)
> + return virDomainControllerModelSCSITypeToString(model);
> +
> + return NULL;
> +}
> +
> static int
> virDomainControllerDefFormat(virBufferPtr buf,
> virDomainControllerDefPtr def,
> @@ -8748,7 +8768,7 @@ virDomainControllerDefFormat(virBufferPtr buf,
> }
>
> if (def->model != -1) {
> - model = virDomainControllerModelTypeToString(def->model);
> + model = virDomainControllerModelTypeToString(def, def->model);
>
> if (!model) {
> virDomainReportError(VIR_ERR_INTERNAL_ERROR,
> diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
> index 2cc9b06..8a4cd11 100644
> --- a/src/conf/domain_conf.h
> +++ b/src/conf/domain_conf.h
> @@ -257,14 +257,16 @@ enum virDomainControllerType {
> };
>
>
> -enum virDomainControllerModel {
> - VIR_DOMAIN_CONTROLLER_MODEL_AUTO,
> - VIR_DOMAIN_CONTROLLER_MODEL_BUSLOGIC,
> - VIR_DOMAIN_CONTROLLER_MODEL_LSILOGIC,
> - VIR_DOMAIN_CONTROLLER_MODEL_LSISAS1068,
> - VIR_DOMAIN_CONTROLLER_MODEL_VMPVSCSI,
> +enum virDomainControllerModelSCSI {
> + VIR_DOMAIN_CONTROLLER_MODEL_SCSI_AUTO,
> + VIR_DOMAIN_CONTROLLER_MODEL_SCSI_BUSLOGIC,
> + VIR_DOMAIN_CONTROLLER_MODEL_SCSI_LSILOGIC,
> + VIR_DOMAIN_CONTROLLER_MODEL_SCSI_LSISAS1068,
> + VIR_DOMAIN_CONTROLLER_MODEL_SCSI_VMPVSCSI,
> +
> + VIR_DOMAIN_CONTROLLER_MODEL_SCSI_LAST
> +};
>
> - VIR_DOMAIN_CONTROLLER_MODEL_LAST
> };
>
> typedef struct _virDomainVirtioSerialOpts virDomainVirtioSerialOpts;
> @@ -1673,7 +1675,7 @@ VIR_ENUM_DECL(virDomainDiskIo)
> VIR_ENUM_DECL(virDomainIoEventFd)
> VIR_ENUM_DECL(virDomainVirtioEventIdx)
> VIR_ENUM_DECL(virDomainController)
> -VIR_ENUM_DECL(virDomainControllerModel)
> +VIR_ENUM_DECL(virDomainControllerModelSCSI)
> VIR_ENUM_DECL(virDomainFS)
> VIR_ENUM_DECL(virDomainFSAccessMode)
> VIR_ENUM_DECL(virDomainNet)
> diff --git a/src/esx/esx_driver.c b/src/esx/esx_driver.c
> index c097651..e603399 100644
> --- a/src/esx/esx_driver.c
> +++ b/src/esx/esx_driver.c
> @@ -412,16 +412,16 @@ esxAutodetectSCSIControllerModel(virDomainDiskDefPtr def, int *model,
>
> if (STRCASEEQ(vmDiskFileInfo->controllerType,
> "VirtualBusLogicController")) {
> - *model = VIR_DOMAIN_CONTROLLER_MODEL_BUSLOGIC;
> + *model = VIR_DOMAIN_CONTROLLER_MODEL_SCSI_BUSLOGIC;
> } else if (STRCASEEQ(vmDiskFileInfo->controllerType,
> "VirtualLsiLogicController")) {
> - *model = VIR_DOMAIN_CONTROLLER_MODEL_LSILOGIC;
> + *model = VIR_DOMAIN_CONTROLLER_MODEL_SCSI_LSILOGIC;
> } else if (STRCASEEQ(vmDiskFileInfo->controllerType,
> "VirtualLsiLogicSASController")) {
> - *model = VIR_DOMAIN_CONTROLLER_MODEL_LSISAS1068;
> + *model = VIR_DOMAIN_CONTROLLER_MODEL_SCSI_LSISAS1068;
> } else if (STRCASEEQ(vmDiskFileInfo->controllerType,
> "ParaVirtualSCSIController")) {
> - *model = VIR_DOMAIN_CONTROLLER_MODEL_VMPVSCSI;
> + *model = VIR_DOMAIN_CONTROLLER_MODEL_SCSI_VMPVSCSI;
> } else {
> ESX_ERROR(VIR_ERR_INTERNAL_ERROR,
> _("Found unexpected controller model '%s' for disk '%s'"),
> diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
> index acae122..91ecd7b 100644
> --- a/src/libvirt_private.syms
> +++ b/src/libvirt_private.syms
> @@ -248,8 +248,8 @@ virDomainConfigFile;
> virDomainControllerDefFree;
> virDomainControllerInsert;
> virDomainControllerInsertPreAlloced;
> -virDomainControllerModelTypeFromString;
> -virDomainControllerModelTypeToString;
> +virDomainControllerModelSCSITypeFromString;
> +virDomainControllerModelSCSITypeToString;
> virDomainControllerTypeToString;
> virDomainCpuSetFormat;
> virDomainCpuSetParse;
> diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c
> index 08c2716..dff3599 100644
> --- a/src/vmx/vmx.c
> +++ b/src/vmx/vmx.c
> @@ -483,8 +483,8 @@ def->parallels[0]...
> /* directly map the virDomainControllerModel to virVMXSCSIControllerModel,
> * this is good enough for now because all virDomainControllerModel values
> * are actually SCSI controller models in the ESX case */
> -VIR_ENUM_DECL(virVMXSCSIControllerModel)
> -VIR_ENUM_IMPL(virVMXSCSIControllerModel, VIR_DOMAIN_CONTROLLER_MODEL_LAST,
> +VIR_ENUM_DECL(virVMXControllerModelSCSI)
> +VIR_ENUM_IMPL(virVMXControllerModelSCSI, VIR_DOMAIN_CONTROLLER_MODEL_SCSI_LAST,
> "auto", /* just to match virDomainControllerModel, will never be used */
> "buslogic",
> "lsilogic",
> @@ -1040,7 +1040,7 @@ virVMXHandleLegacySCSIDiskDriverName(virDomainDefPtr def,
> *tmp = c_tolower(*tmp);
> }
>
> - model = virDomainControllerModelTypeFromString(disk->driverName);
> + model = virDomainControllerModelSCSITypeFromString(disk->driverName);
>
> if (model < 0) {
> VMX_ERROR(VIR_ERR_INTERNAL_ERROR,
> @@ -1068,7 +1068,7 @@ virVMXHandleLegacySCSIDiskDriverName(virDomainDefPtr def,
> VMX_ERROR(VIR_ERR_INTERNAL_ERROR,
> _("Inconsistent SCSI controller model ('%s' is not '%s') "
> "for SCSI controller index %d"), disk->driverName,
> - virDomainControllerModelTypeToString(controller->model),
> + virDomainControllerModelSCSITypeToString(controller->model),
> controller->idx);
> return -1;
> }
> @@ -1120,7 +1120,7 @@ virVMXGatherSCSIControllers(virVMXContext *ctx, virDomainDefPtr def,
> continue;
> }
>
> - if (controller->model == VIR_DOMAIN_CONTROLLER_MODEL_AUTO &&
> + if (controller->model == VIR_DOMAIN_CONTROLLER_MODEL_SCSI_AUTO &&
> ctx->autodetectSCSIControllerModel != NULL) {
> count = 0;
>
> @@ -1157,15 +1157,15 @@ virVMXGatherSCSIControllers(virVMXContext *ctx, virDomainDefPtr def,
> }
>
> if (controller->model != -1 &&
> - controller->model != VIR_DOMAIN_CONTROLLER_MODEL_BUSLOGIC &&
> - controller->model != VIR_DOMAIN_CONTROLLER_MODEL_LSILOGIC &&
> - controller->model != VIR_DOMAIN_CONTROLLER_MODEL_LSISAS1068 &&
> - controller->model != VIR_DOMAIN_CONTROLLER_MODEL_VMPVSCSI) {
> + controller->model != VIR_DOMAIN_CONTROLLER_MODEL_SCSI_BUSLOGIC &&
> + controller->model != VIR_DOMAIN_CONTROLLER_MODEL_SCSI_LSILOGIC &&
> + controller->model != VIR_DOMAIN_CONTROLLER_MODEL_SCSI_LSISAS1068 &&
> + controller->model != VIR_DOMAIN_CONTROLLER_MODEL_SCSI_VMPVSCSI) {
> VMX_ERROR(VIR_ERR_INTERNAL_ERROR,
> _("Expecting domain XML attribute 'model' of entry "
> "'controller' to be 'buslogic' or 'lsilogic' or "
> "'lsisas1068' or 'vmpvscsi' but found '%s'"),
> - virDomainControllerModelTypeToString(controller->model));
> + virDomainControllerModelSCSITypeToString(controller->model));
> goto cleanup;
> }
>
> @@ -1869,13 +1869,13 @@ virVMXParseSCSIController(virConfPtr conf, int controller, bool *present,
> *tmp = c_tolower(*tmp);
> }
>
> - *virtualDev = virVMXSCSIControllerModelTypeFromString(virtualDev_string);
> + *virtualDev = virVMXControllerModelSCSITypeFromString(virtualDev_string);
>
> if (*virtualDev == -1 ||
> - (*virtualDev != VIR_DOMAIN_CONTROLLER_MODEL_BUSLOGIC &&
> - *virtualDev != VIR_DOMAIN_CONTROLLER_MODEL_LSILOGIC &&
> - *virtualDev != VIR_DOMAIN_CONTROLLER_MODEL_LSISAS1068 &&
> - *virtualDev != VIR_DOMAIN_CONTROLLER_MODEL_VMPVSCSI)) {
> + (*virtualDev != VIR_DOMAIN_CONTROLLER_MODEL_SCSI_BUSLOGIC &&
> + *virtualDev != VIR_DOMAIN_CONTROLLER_MODEL_SCSI_LSILOGIC &&
> + *virtualDev != VIR_DOMAIN_CONTROLLER_MODEL_SCSI_LSISAS1068 &&
> + *virtualDev != VIR_DOMAIN_CONTROLLER_MODEL_SCSI_VMPVSCSI)) {
> VMX_ERROR(VIR_ERR_INTERNAL_ERROR,
> _("Expecting VMX entry '%s' to be 'buslogic' or 'lsilogic' "
> "or 'lsisas1068' or 'pvscsi' but found '%s'"),
> @@ -3088,7 +3088,7 @@ virVMXFormatConfig(virVMXContext *ctx, virCapsPtr caps, virDomainDefPtr def,
>
> if (scsi_virtualDev[i] != -1) {
> virBufferAsprintf(&buffer, "scsi%d.virtualDev = \"%s\"\n", i,
> - virVMXSCSIControllerModelTypeToString
> + virVMXControllerModelSCSITypeToString
> (scsi_virtualDev[i]));
> }
> }
> diff --git a/tests/xml2vmxtest.c b/tests/xml2vmxtest.c
> index 439ddc8..77b1611 100644
> --- a/tests/xml2vmxtest.c
> +++ b/tests/xml2vmxtest.c
> @@ -143,7 +143,7 @@ static int
> testAutodetectSCSIControllerModel(virDomainDiskDefPtr def ATTRIBUTE_UNUSED,
> int *model, void *opaque ATTRIBUTE_UNUSED)
> {
> - *model = VIR_DOMAIN_CONTROLLER_MODEL_LSILOGIC;
> + *model = VIR_DOMAIN_CONTROLLER_MODEL_SCSI_LSILOGIC;
>
> return 0;
> }
ACK
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
More information about the libvir-list
mailing list