Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
libvirt
提交
23b24972
L
libvirt
项目概览
openeuler
/
libvirt
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
L
libvirt
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
23b24972
编写于
9月 23, 2009
作者:
M
Matthias Bolte
提交者:
Daniel Veillard
9月 23, 2009
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ESX remove phantom mode
* src/esx/esx_driver.c: remove phantom mode
上级
8ce9f2b1
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
132 addition
and
378 deletion
+132
-378
src/esx/esx_driver.c
src/esx/esx_driver.c
+132
-378
未找到文件。
src/esx/esx_driver.c
浏览文件 @
23b24972
...
...
@@ -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
->
serv
er
);
password
=
esxUtil_RequestPassword
(
auth
,
username
,
vCent
er
);
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
;
}
...
...
@@ -948,15 +878,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
);
...
...
@@ -978,12 +900,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
;
}
...
...
@@ -1050,12 +966,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
;
}
...
...
@@ -1080,12 +990,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
;
}
...
...
@@ -1169,12 +1073,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
;
}
...
...
@@ -1261,12 +1159,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
;
}
...
...
@@ -1347,12 +1239,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
;
}
...
...
@@ -1413,12 +1299,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
;
}
...
...
@@ -1477,12 +1357,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
;
}
...
...
@@ -1532,12 +1406,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
;
}
...
...
@@ -1588,12 +1456,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
;
}
...
...
@@ -1667,12 +1529,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
;
}
...
...
@@ -1732,12 +1588,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
;
}
...
...
@@ -1792,12 +1642,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
;
}
...
...
@@ -1866,12 +1710,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
;
}
...
...
@@ -2123,12 +1961,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"
);
...
...
@@ -2200,12 +2032,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
;
}
...
...
@@ -2275,12 +2101,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
;
}
...
...
@@ -2371,8 +2191,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
;
...
...
@@ -2382,12 +2200,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
);
...
...
@@ -2409,12 +2223,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
);
...
...
@@ -2447,12 +2255,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
;
}
...
...
@@ -2531,12 +2333,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
;
}
...
...
@@ -2559,12 +2355,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
;
}
...
...
@@ -2634,12 +2424,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
;
}
...
...
@@ -2812,12 +2596,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
;
}
...
...
@@ -2918,12 +2696,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"
);
...
...
@@ -3055,12 +2827,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
;
}
...
...
@@ -3239,12 +3005,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"
);
...
...
@@ -3379,12 +3139,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
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录