* src/esx/esx_driver.c: remove phantom mode
diff --git a/src/esx/esx_driver.c b/src/esx/esx_driver.c index 91de407..bbba445 100644 --- a/src/esx/esx_driver.c +++ b/src/esx/esx_driver.c @@ -58,7 +58,6 @@ static int esxDomainGetMaxVcpus(virDomainPtr domain); typedef struct _esxPrivate { esxVI_Context *host; esxVI_Context *vCenter; - int phantom; // boolean virCapsPtr caps; char *transport; int32_t maxVcpus; @@ -81,12 +80,6 @@ esxSupportsLongMode(virConnectPtr conn) char edxLongModeBit = '?'; char edxFirstBit = '?'; - if (priv->phantom) { - ESX_ERROR(conn, VIR_ERR_OPERATION_INVALID, - "Not possible with a phantom connection"); - goto failure; - } - if (priv->supportsLongMode != esxVI_Boolean_Undefined) { return priv->supportsLongMode; } @@ -179,19 +172,10 @@ esxSupportsLongMode(virConnectPtr conn) static virCapsPtr esxCapsInit(virConnectPtr conn) { - esxPrivate *priv = (esxPrivate *)conn->privateData; - esxVI_Boolean supportsLongMode = esxVI_Boolean_Undefined; + esxVI_Boolean supportsLongMode = esxSupportsLongMode(conn); virCapsPtr caps = NULL; virCapsGuestPtr guest = NULL; - if (priv->phantom) { - ESX_ERROR(conn, VIR_ERR_OPERATION_INVALID, - "Not possible with a phantom connection"); - return NULL; - } - - supportsLongMode = esxSupportsLongMode(conn); - if (supportsLongMode == esxVI_Boolean_Undefined) { return NULL; } @@ -258,7 +242,6 @@ esxCapsInit(virConnectPtr conn) /* * URI format: {esx|gsx}://[<user>@]<server>[:<port>][?transport={http|https}][&vcenter=<vcenter>][&no_verify={0|1}] - * esx:///phantom * * If no port is specified the default port is set dependent on the scheme and * transport parameter: @@ -274,11 +257,6 @@ esxCapsInit(virConnectPtr conn) * * If the no_verify parameter is set to 1, this disables libcurl client checks * of the server's certificate. The default value it 0. - * - * The esx:///phantom URI may be used for tasks that don't require an actual - * connection to the hypervisor like domxml-{from,to}-native: - * - * virsh -c esx:///phantom domxml-from-native vmware-vmx dummy.vmx */ static virDrvOpenStatus esxOpen(virConnectPtr conn, virConnectAuthPtr auth, int flags ATTRIBUTE_UNUSED) @@ -291,7 +269,6 @@ esxOpen(virConnectPtr conn, virConnectAuthPtr auth, int flags ATTRIBUTE_UNUSED) int noVerify = 0; // boolean char *username = NULL; char *password = NULL; - int phantom = 0; // boolean /* Decline if the URI is NULL or the scheme is neither 'esx' nor 'gsx' */ if (conn->uri == NULL || conn->uri->scheme == NULL || @@ -300,21 +277,13 @@ esxOpen(virConnectPtr conn, virConnectAuthPtr auth, int flags ATTRIBUTE_UNUSED) return VIR_DRV_OPEN_DECLINED; } - /* Check for 'esx:///phantom' URI */ - if (conn->uri->server == NULL && conn->uri->path != NULL && - STREQ(conn->uri->path, "/phantom")) { - phantom = 1; + /* Decline URIs without server part, or missing auth */ + if (conn->uri->server == NULL || auth == NULL || auth->cb == NULL) { + return VIR_DRV_OPEN_DECLINED; } - if (! phantom) { - /* Decline non-phantom URIs without server part, or missing auth */ - if (conn->uri->server == NULL || auth == NULL || auth->cb == NULL) { - return VIR_DRV_OPEN_DECLINED; - } - - if (conn->uri->path != NULL) { - VIR_WARN("Ignoring unexpected path '%s' in URI", conn->uri->path); - } + if (conn->uri->path != NULL) { + VIR_WARN("Ignoring unexpected path '%s' in URI", conn->uri->path); } /* Allocate per-connection private data */ @@ -323,171 +292,164 @@ esxOpen(virConnectPtr conn, virConnectAuthPtr auth, int flags ATTRIBUTE_UNUSED) goto failure; } - priv->phantom = phantom; priv->maxVcpus = -1; priv->supportsVMotion = esxVI_Boolean_Undefined; priv->supportsLongMode = esxVI_Boolean_Undefined; priv->usedCpuTimeCounterId = -1; - /* Request credentials and login to non-phantom host/vCenter */ - if (! phantom) { - if (esxUtil_ParseQuery(conn, &priv->transport, &vCenter, - &noVerify) < 0) { - goto failure; + /* Request credentials and login to host/vCenter */ + if (esxUtil_ParseQuery(conn, &priv->transport, &vCenter, &noVerify) < 0) { + goto failure; + } + + if (esxUtil_ResolveHostname(conn, conn->uri->server, hostIpAddress, + NI_MAXHOST) < 0) { + goto failure; + } + + if (vCenter != NULL && + esxUtil_ResolveHostname(conn, vCenter, vCenterIpAddress, + NI_MAXHOST) < 0) { + goto failure; + } + + /* + * Set the port dependent on the transport protocol if no port is + * specified. This allows us to rely on the port parameter being + * correctly set when building URIs later on, without the need to + * distinguish between the situations port == 0 and port != 0 + */ + if (conn->uri->port == 0) { + if (STRCASEEQ(conn->uri->scheme, "esx")) { + if (STRCASEEQ(priv->transport, "https")) { + conn->uri->port = 443; + } else { + conn->uri->port = 80; + } + } else { /* GSX */ + if (STRCASEEQ(priv->transport, "https")) { + conn->uri->port = 8333; + } else { + conn->uri->port = 8222; + } } + } - if (esxUtil_ResolveHostname(conn, conn->uri->server, hostIpAddress, - NI_MAXHOST) < 0) { + /* Login to host */ + if (virAsprintf(&url, "%s://%s:%d/sdk", priv->transport, + conn->uri->server, conn->uri->port) < 0) { + virReportOOMError(conn); + goto failure; + } + + if (conn->uri->user != NULL) { + username = strdup(conn->uri->user); + + if (username == NULL) { + virReportOOMError(conn); goto failure; } + } else { + username = esxUtil_RequestUsername(auth, "root", conn->uri->server); - if (vCenter != NULL && - esxUtil_ResolveHostname(conn, vCenter, vCenterIpAddress, - NI_MAXHOST) < 0) { + if (username == NULL) { + ESX_ERROR(conn, VIR_ERR_AUTH_FAILED, "Username request failed"); goto failure; } + } - /* - * Set the port dependent on the transport protocol if no port is - * specified. This allows us to rely on the port parameter being - * correctly set when building URIs later on, without the need to - * distinguish between the situations port == 0 and port != 0 - */ - if (conn->uri->port == 0) { - if (STRCASEEQ(conn->uri->scheme, "esx")) { - if (STRCASEEQ(priv->transport, "https")) { - conn->uri->port = 443; - } else { - conn->uri->port = 80; - } - } else { /* GSX */ - if (STRCASEEQ(priv->transport, "https")) { - conn->uri->port = 8333; - } else { - conn->uri->port = 8222; - } - } - } + if (esxVI_Context_Alloc(conn, &priv->host) < 0) { + goto failure; + } - /* Login to host */ - if (virAsprintf(&url, "%s://%s:%d/sdk", priv->transport, - conn->uri->server, conn->uri->port) < 0) { - virReportOOMError(conn); + password = esxUtil_RequestPassword(auth, username, conn->uri->server); + + if (password == NULL) { + ESX_ERROR(conn, VIR_ERR_AUTH_FAILED, "Password request failed"); + goto failure; + } + + if (esxVI_Context_Connect(conn, priv->host, url, hostIpAddress, + username, password, noVerify) < 0) { + goto failure; + } + + if (STRCASEEQ(conn->uri->scheme, "esx")) { + if (priv->host->productVersion != esxVI_ProductVersion_ESX35 && + priv->host->productVersion != esxVI_ProductVersion_ESX40) { + ESX_ERROR(conn, VIR_ERR_INTERNAL_ERROR, + "%s is neither an ESX 3.5 host nor an ESX 4.0 host", + conn->uri->server); goto failure; } + } else { /* GSX */ + if (priv->host->productVersion != esxVI_ProductVersion_GSX20) { + ESX_ERROR(conn, VIR_ERR_INTERNAL_ERROR, + "%s isn't a GSX 2.0 host", conn->uri->server); + goto failure; + } + } - if (conn->uri->user != NULL) { - username = strdup(conn->uri->user); + VIR_FREE(url); + VIR_FREE(password); + VIR_FREE(username); - if (username == NULL) { - virReportOOMError(conn); - goto failure; - } - } else { - username = esxUtil_RequestUsername(auth, "root", conn->uri->server); + /* Login to vCenter */ + if (vCenter != NULL) { + if (virAsprintf(&url, "%s://%s/sdk", priv->transport, + vCenter) < 0) { + virReportOOMError(conn); + goto failure; + } - if (username == NULL) { - ESX_ERROR(conn, VIR_ERR_AUTH_FAILED, "Username request failed"); - goto failure; - } + if (esxVI_Context_Alloc(conn, &priv->vCenter) < 0) { + goto failure; } - if (esxVI_Context_Alloc(conn, &priv->host) < 0) { + username = esxUtil_RequestUsername(auth, "administrator", vCenter); + + if (username == NULL) { + ESX_ERROR(conn, VIR_ERR_AUTH_FAILED, + "Username request failed"); goto failure; } - password = esxUtil_RequestPassword(auth, username, conn->uri->server); + password = esxUtil_RequestPassword(auth, username, vCenter); if (password == NULL) { - ESX_ERROR(conn, VIR_ERR_AUTH_FAILED, "Password request failed"); + ESX_ERROR(conn, VIR_ERR_AUTH_FAILED, + "Password request failed"); goto failure; } - if (esxVI_Context_Connect(conn, priv->host, url, hostIpAddress, - username, password, noVerify) < 0) { + if (esxVI_Context_Connect(conn, priv->vCenter, url, + vCenterIpAddress, username, password, + noVerify) < 0) { goto failure; } - if (STRCASEEQ(conn->uri->scheme, "esx")) { - if (priv->host->productVersion != esxVI_ProductVersion_ESX35 && - priv->host->productVersion != esxVI_ProductVersion_ESX40) { - ESX_ERROR(conn, VIR_ERR_INTERNAL_ERROR, - "%s is neither an ESX 3.5 host nor an ESX 4.0 host", - conn->uri->server); - goto failure; - } - } else { /* GSX */ - if (priv->host->productVersion != esxVI_ProductVersion_GSX20) { - ESX_ERROR(conn, VIR_ERR_INTERNAL_ERROR, - "%s isn't a GSX 2.0 host", conn->uri->server); - goto failure; - } + if (priv->vCenter->productVersion != esxVI_ProductVersion_VPX25 && + priv->vCenter->productVersion != esxVI_ProductVersion_VPX40) { + ESX_ERROR(conn, VIR_ERR_INTERNAL_ERROR, + "%s is neither a vCenter 2.5 server nor a vCenter " + "4.0 server", + conn->uri->server); + goto failure; } VIR_FREE(url); + VIR_FREE(vCenter); VIR_FREE(password); VIR_FREE(username); - - /* Login to vCenter */ - if (vCenter != NULL) { - if (virAsprintf(&url, "%s://%s/sdk", priv->transport, - vCenter) < 0) { - virReportOOMError(conn); - goto failure; - } - - if (esxVI_Context_Alloc(conn, &priv->vCenter) < 0) { - goto failure; - } - - username = esxUtil_RequestUsername(auth, "administrator", vCenter); - - if (username == NULL) { - ESX_ERROR(conn, VIR_ERR_AUTH_FAILED, - "Username request failed"); - goto failure; - } - - password = esxUtil_RequestPassword(auth, username, vCenter); - - if (password == NULL) { - ESX_ERROR(conn, VIR_ERR_AUTH_FAILED, - "Password request failed"); - goto failure; - } - - if (esxVI_Context_Connect(conn, priv->vCenter, url, - vCenterIpAddress, username, password, - noVerify) < 0) { - goto failure; - } - - if (priv->vCenter->productVersion != esxVI_ProductVersion_VPX25 && - priv->vCenter->productVersion != esxVI_ProductVersion_VPX40) { - ESX_ERROR(conn, VIR_ERR_INTERNAL_ERROR, - "%s is neither a vCenter 2.5 server nor a vCenter " - "4.0 server", - conn->uri->server); - goto failure; - } - - VIR_FREE(url); - VIR_FREE(password); - VIR_FREE(username); - } - - VIR_FREE(vCenter); } conn->privateData = priv; - if (! phantom) { - /* Setup capabilities */ - priv->caps = esxCapsInit(conn); + /* Setup capabilities */ + priv->caps = esxCapsInit(conn); - if (priv->caps == NULL) { - goto failure; - } + if (priv->caps == NULL) { + goto failure; } return VIR_DRV_OPEN_SUCCESS; @@ -518,18 +480,16 @@ esxClose(virConnectPtr conn) { esxPrivate *priv = (esxPrivate *)conn->privateData; - if (! priv->phantom) { - esxVI_EnsureSession(conn, priv->host); + esxVI_EnsureSession(conn, priv->host); - esxVI_Logout(conn, priv->host); - esxVI_Context_Free(&priv->host); + esxVI_Logout(conn, priv->host); + esxVI_Context_Free(&priv->host); - if (priv->vCenter != NULL) { - esxVI_EnsureSession(conn, priv->vCenter); + if (priv->vCenter != NULL) { + esxVI_EnsureSession(conn, priv->vCenter); - esxVI_Logout(conn, priv->vCenter); - esxVI_Context_Free(&priv->vCenter); - } + esxVI_Logout(conn, priv->vCenter); + esxVI_Context_Free(&priv->vCenter); } virCapabilitiesFree(priv->caps); @@ -552,12 +512,6 @@ esxSupportsVMotion(virConnectPtr conn) esxVI_ObjectContent *hostSystem = NULL; esxVI_DynamicProperty *dynamicProperty = NULL; - if (priv->phantom) { - ESX_ERROR(conn, VIR_ERR_OPERATION_INVALID, - "Not possible with a phantom connection"); - goto failure; - } - if (priv->supportsVMotion != esxVI_Boolean_Undefined) { return priv->supportsVMotion; } @@ -615,12 +569,6 @@ esxSupportsFeature(virConnectPtr conn, int feature) esxPrivate *priv = (esxPrivate *)conn->privateData; esxVI_Boolean supportsVMotion = esxVI_Boolean_Undefined; - if (priv->phantom) { - ESX_ERROR(conn, VIR_ERR_OPERATION_INVALID, - "Not possible with a phantom connection"); - return -1; - } - switch (feature) { case VIR_DRV_FEATURE_MIGRATION_V1: supportsVMotion = esxSupportsVMotion(conn); @@ -655,12 +603,6 @@ esxGetVersion(virConnectPtr conn, unsigned long *version) char *temp; unsigned int major, minor, release; - if (priv->phantom) { - ESX_ERROR(conn, VIR_ERR_OPERATION_INVALID, - "Not possible with a phantom connection"); - return -1; - } - temp = (char *)priv->host->service->about->version; /* Expecting 'major.minor.release' format */ @@ -703,12 +645,6 @@ esxGetHostname(virConnectPtr conn) const char *domainName = NULL; char *complete = NULL; - if (priv->phantom) { - ESX_ERROR(conn, VIR_ERR_OPERATION_INVALID, - "Not possible with a phantom connection"); - goto failure; - } - if (esxVI_EnsureSession(conn, priv->host) < 0) { goto failure; } @@ -802,12 +738,6 @@ esxNodeGetInfo(virConnectPtr conn, virNodeInfoPtr nodeinfo) memset(nodeinfo, 0, sizeof(virNodeInfo)); - if (priv->phantom) { - ESX_ERROR(conn, VIR_ERR_OPERATION_INVALID, - "Not possible with a phantom connection"); - goto failure; - } - if (esxVI_EnsureSession(conn, priv->host) < 0) { goto failure; } @@ -943,15 +873,7 @@ static char * esxGetCapabilities(virConnectPtr conn) { esxPrivate *priv = (esxPrivate *)conn->privateData; - char *xml = NULL; - - if (priv->phantom) { - ESX_ERROR(conn, VIR_ERR_OPERATION_INVALID, - "Not possible with a phantom connection"); - return NULL; - } - - xml = virCapabilitiesFormatXML(priv->caps); + char *xml = virCapabilitiesFormatXML(priv->caps); if (xml == NULL) { virReportOOMError(conn); @@ -973,12 +895,6 @@ esxListDomains(virConnectPtr conn, int *ids, int maxids) esxVI_VirtualMachinePowerState powerState; int count = 0; - if (priv->phantom) { - ESX_ERROR(conn, VIR_ERR_OPERATION_INVALID, - "Not possible with a phantom connection"); - goto failure; - } - if (ids == NULL || maxids < 0) { goto failure; } @@ -1045,12 +961,6 @@ esxNumberOfDomains(virConnectPtr conn) { esxPrivate *priv = (esxPrivate *)conn->privateData; - if (priv->phantom) { - ESX_ERROR(conn, VIR_ERR_OPERATION_INVALID, - "Not possible with a phantom connection"); - return -1; - } - if (esxVI_EnsureSession(conn, priv->host) < 0) { return -1; } @@ -1075,12 +985,6 @@ esxDomainLookupByID(virConnectPtr conn, int id) unsigned char uuid_candidate[VIR_UUID_BUFLEN]; virDomainPtr domain = NULL; - if (priv->phantom) { - ESX_ERROR(conn, VIR_ERR_OPERATION_INVALID, - "Not possible with a phantom connection"); - goto failure; - } - if (esxVI_EnsureSession(conn, priv->host) < 0) { goto failure; } @@ -1164,12 +1068,6 @@ esxDomainLookupByUUID(virConnectPtr conn, const unsigned char *uuid) char uuid_string[VIR_UUID_STRING_BUFLEN]; virDomainPtr domain = NULL; - if (priv->phantom) { - ESX_ERROR(conn, VIR_ERR_OPERATION_INVALID, - "Not possible with a phantom connection"); - goto failure; - } - if (esxVI_EnsureSession(conn, priv->host) < 0) { goto failure; } @@ -1256,12 +1154,6 @@ esxDomainLookupByName(virConnectPtr conn, const char *name) unsigned char uuid_candidate[VIR_UUID_BUFLEN]; virDomainPtr domain = NULL; - if (priv->phantom) { - ESX_ERROR(conn, VIR_ERR_OPERATION_INVALID, - "Not possible with a phantom connection"); - goto failure; - } - if (esxVI_EnsureSession(conn, priv->host) < 0) { goto failure; } @@ -1342,12 +1234,6 @@ esxDomainSuspend(virDomainPtr domain) esxVI_ManagedObjectReference *task = NULL; esxVI_TaskInfoState taskInfoState; - if (priv->phantom) { - ESX_ERROR(domain->conn, VIR_ERR_OPERATION_INVALID, - "Not possible with a phantom connection"); - goto failure; - } - if (esxVI_EnsureSession(domain->conn, priv->host) < 0) { goto failure; } @@ -1408,12 +1294,6 @@ esxDomainResume(virDomainPtr domain) esxVI_ManagedObjectReference *task = NULL; esxVI_TaskInfoState taskInfoState; - if (priv->phantom) { - ESX_ERROR(domain->conn, VIR_ERR_OPERATION_INVALID, - "Not possible with a phantom connection"); - goto failure; - } - if (esxVI_EnsureSession(domain->conn, priv->host) < 0) { goto failure; } @@ -1472,12 +1352,6 @@ esxDomainShutdown(virDomainPtr domain) esxVI_String *propertyNameList = NULL; esxVI_VirtualMachinePowerState powerState; - if (priv->phantom) { - ESX_ERROR(domain->conn, VIR_ERR_OPERATION_INVALID, - "Not possible with a phantom connection"); - goto failure; - } - if (esxVI_EnsureSession(domain->conn, priv->host) < 0) { goto failure; } @@ -1527,12 +1401,6 @@ esxDomainReboot(virDomainPtr domain, unsigned int flags ATTRIBUTE_UNUSED) esxVI_String *propertyNameList = NULL; esxVI_VirtualMachinePowerState powerState; - if (priv->phantom) { - ESX_ERROR(domain->conn, VIR_ERR_OPERATION_INVALID, - "Not possible with a phantom connection"); - goto failure; - } - if (esxVI_EnsureSession(domain->conn, priv->host) < 0) { goto failure; } @@ -1583,12 +1451,6 @@ esxDomainDestroy(virDomainPtr domain) esxVI_ManagedObjectReference *task = NULL; esxVI_TaskInfoState taskInfoState; - if (priv->phantom) { - ESX_ERROR(domain->conn, VIR_ERR_OPERATION_INVALID, - "Not possible with a phantom connection"); - goto failure; - } - if (esxVI_EnsureSession(domain->conn, priv->host) < 0) { goto failure; } @@ -1662,12 +1524,6 @@ esxDomainGetMaxMemory(virDomainPtr domain) esxVI_DynamicProperty *dynamicProperty = NULL; unsigned long memoryMB = 0; - if (priv->phantom) { - ESX_ERROR(domain->conn, VIR_ERR_OPERATION_INVALID, - "Not possible with a phantom connection"); - goto failure; - } - if (esxVI_EnsureSession(domain->conn, priv->host) < 0) { goto failure; } @@ -1727,12 +1583,6 @@ esxDomainSetMaxMemory(virDomainPtr domain, unsigned long memory) esxVI_ManagedObjectReference *task = NULL; esxVI_TaskInfoState taskInfoState; - if (priv->phantom) { - ESX_ERROR(domain->conn, VIR_ERR_OPERATION_INVALID, - "Not possible with a phantom connection"); - goto failure; - } - if (esxVI_EnsureSession(domain->conn, priv->host) < 0) { goto failure; } @@ -1787,12 +1637,6 @@ esxDomainSetMemory(virDomainPtr domain, unsigned long memory) esxVI_ManagedObjectReference *task = NULL; esxVI_TaskInfoState taskInfoState; - if (priv->phantom) { - ESX_ERROR(domain->conn, VIR_ERR_OPERATION_INVALID, - "Not possible with a phantom connection"); - goto failure; - } - if (esxVI_EnsureSession(domain->conn, priv->host) < 0) { goto failure; } @@ -1861,12 +1705,6 @@ esxDomainGetInfo(virDomainPtr domain, virDomainInfoPtr info) esxVI_PerfMetricIntSeries *perfMetricIntSeries = NULL; esxVI_Long *value = NULL; - if (priv->phantom) { - ESX_ERROR(domain->conn, VIR_ERR_OPERATION_INVALID, - "Not possible with a phantom connection"); - goto failure; - } - if (esxVI_EnsureSession(domain->conn, priv->host) < 0) { goto failure; } @@ -2118,12 +1956,6 @@ esxDomainSetVcpus(virDomainPtr domain, unsigned int nvcpus) esxVI_ManagedObjectReference *task = NULL; esxVI_TaskInfoState taskInfoState; - if (priv->phantom) { - ESX_ERROR(domain->conn, VIR_ERR_OPERATION_INVALID, - "Not possible with a phantom connection"); - goto failure; - } - if (nvcpus < 1) { ESX_ERROR(domain->conn, VIR_ERR_INVALID_ARG, "Requested number of virtual CPUs must al least be 1"); @@ -2195,12 +2027,6 @@ esxDomainGetMaxVcpus(virDomainPtr domain) esxVI_ObjectContent *hostSystem = NULL; esxVI_DynamicProperty *dynamicProperty = NULL; - if (priv->phantom) { - ESX_ERROR(domain->conn, VIR_ERR_OPERATION_INVALID, - "Not possible with a phantom connection"); - goto failure; - } - if (priv->maxVcpus > 0) { return priv->maxVcpus; } @@ -2270,12 +2096,6 @@ esxDomainDumpXML(virDomainPtr domain, int flags) virDomainDefPtr def = NULL; char *xml = NULL; - if (priv->phantom) { - ESX_ERROR(domain->conn, VIR_ERR_OPERATION_INVALID, - "Not possible with a phantom connection"); - return NULL; - } - if (esxVI_EnsureSession(domain->conn, priv->host) < 0) { goto failure; } @@ -2366,8 +2186,6 @@ esxDomainXMLFromNative(virConnectPtr conn, const char *nativeFormat, unsigned int flags ATTRIBUTE_UNUSED) { esxPrivate *priv = (esxPrivate *)conn->privateData; - esxVI_Context *ctx = NULL; - esxVI_APIVersion apiVersion = esxVI_APIVersion_Unknown; virDomainDefPtr def = NULL; char *xml = NULL; @@ -2377,12 +2195,8 @@ esxDomainXMLFromNative(virConnectPtr conn, const char *nativeFormat, return NULL; } - if (! priv->phantom) { - ctx = priv->host; - apiVersion = priv->host->apiVersion; - } - - def = esxVMX_ParseConfig(conn, ctx, nativeConfig, "?", "?", apiVersion); + def = esxVMX_ParseConfig(conn, priv->host, nativeConfig, "?", "?", + priv->host->apiVersion); if (def != NULL) { xml = virDomainDefFormat(conn, def, VIR_DOMAIN_XML_INACTIVE); @@ -2404,12 +2218,6 @@ esxDomainXMLToNative(virConnectPtr conn, const char *nativeFormat, virDomainDefPtr def = NULL; char *vmx = NULL; - if (priv->phantom) { - ESX_ERROR(conn, VIR_ERR_OPERATION_INVALID, - "Not possible with a phantom connection"); - return NULL; - } - if (STRNEQ(nativeFormat, "vmware-vmx")) { ESX_ERROR(conn, VIR_ERR_INVALID_ARG, "Unsupported config format '%s'", nativeFormat); @@ -2442,12 +2250,6 @@ esxListDefinedDomains(virConnectPtr conn, char **const names, int maxnames) esxVI_VirtualMachinePowerState powerState; int count = 0; - if (priv->phantom) { - ESX_ERROR(conn, VIR_ERR_OPERATION_INVALID, - "Not possible with a phantom connection"); - goto failure; - } - if (names == NULL || maxnames < 0) { goto failure; } @@ -2526,12 +2328,6 @@ esxNumberOfDefinedDomains(virConnectPtr conn) { esxPrivate *priv = (esxPrivate *)conn->privateData; - if (priv->phantom) { - ESX_ERROR(conn, VIR_ERR_OPERATION_INVALID, - "Not possible with a phantom connection"); - return -1; - } - if (esxVI_EnsureSession(conn, priv->host) < 0) { return -1; } @@ -2554,12 +2350,6 @@ esxDomainCreate(virDomainPtr domain) esxVI_ManagedObjectReference *task = NULL; esxVI_TaskInfoState taskInfoState; - if (priv->phantom) { - ESX_ERROR(domain->conn, VIR_ERR_OPERATION_INVALID, - "Not possible with a phantom connection"); - goto failure; - } - if (esxVI_EnsureSession(domain->conn, priv->host) < 0) { goto failure; } @@ -2629,12 +2419,6 @@ esxDomainDefineXML(virConnectPtr conn, const char *xml ATTRIBUTE_UNUSED) esxVI_TaskInfoState taskInfoState; virDomainPtr domain = NULL; - if (priv->phantom) { - ESX_ERROR(conn, VIR_ERR_OPERATION_INVALID, - "Not possible with a phantom connection"); - goto failure; - } - if (esxVI_EnsureSession(conn, priv->host) < 0) { goto failure; } @@ -2767,7 +2551,7 @@ esxDomainDefineXML(virConnectPtr conn, const char *xml ATTRIBUTE_UNUSED) } domain = virGetDomain(conn, def->name, def->uuid); - + if (domain != NULL) { domain->id = -1; } @@ -2807,12 +2591,6 @@ esxDomainUndefine(virDomainPtr domain) esxVI_String *propertyNameList = NULL; esxVI_VirtualMachinePowerState powerState; - if (priv->phantom) { - ESX_ERROR(domain->conn, VIR_ERR_OPERATION_INVALID, - "Not possible with a phantom connection"); - goto failure; - } - if (esxVI_EnsureSession(domain->conn, priv->host) < 0) { goto failure; } @@ -2913,12 +2691,6 @@ esxDomainGetSchedulerParameters(virDomainPtr domain, unsigned int mask = 0; int i = 0; - if (priv->phantom) { - ESX_ERROR(domain->conn, VIR_ERR_OPERATION_INVALID, - "Not possible with a phantom connection"); - goto failure; - } - if (*nparams < 3) { ESX_ERROR(domain->conn, VIR_ERR_INVALID_ARG, "Parameter array must have space for 3 items"); @@ -3050,12 +2822,6 @@ esxDomainSetSchedulerParameters(virDomainPtr domain, esxVI_TaskInfoState taskInfoState; int i; - if (priv->phantom) { - ESX_ERROR(domain->conn, VIR_ERR_OPERATION_INVALID, - "Not possible with a phantom connection"); - goto failure; - } - if (esxVI_EnsureSession(domain->conn, priv->host) < 0) { goto failure; } @@ -3234,12 +3000,6 @@ esxDomainMigratePerform(virDomainPtr domain, esxVI_ManagedObjectReference *task = NULL; esxVI_TaskInfoState taskInfoState; - if (priv->phantom) { - ESX_ERROR(domain->conn, VIR_ERR_OPERATION_INVALID, - "Not possible with a phantom connection"); - goto failure; - } - if (priv->vCenter == NULL) { ESX_ERROR(domain->conn, VIR_ERR_INVALID_ARG, "Migration not possible without a vCenter"); @@ -3374,12 +3134,6 @@ esxNodeGetFreeMemory(virConnectPtr conn) esxVI_DynamicProperty *dynamicProperty = NULL; esxVI_ResourcePoolResourceUsage *resourcePoolResourceUsage = NULL; - if (priv->phantom) { - ESX_ERROR(conn, VIR_ERR_OPERATION_INVALID, - "Not possible with a phantom connection"); - goto failure; - } - if (esxVI_EnsureSession(conn, priv->host) < 0) { goto failure; }
-- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list