2010/1/8 Daniel Veillard <veillard(a)redhat.com>:
On Tue, Jan 05, 2010 at 03:00:06AM +0100, Matthias Bolte wrote:
> ---
> src/esx/esx_driver.c | 38 +++++++++++++++++++++++++++-----------
> 1 files changed, 27 insertions(+), 11 deletions(-)
>
> diff --git a/src/esx/esx_driver.c b/src/esx/esx_driver.c
> index f86654a..ddda66e 100644
> --- a/src/esx/esx_driver.c
> +++ b/src/esx/esx_driver.c
> @@ -401,6 +401,32 @@ esxOpen(virConnectPtr conn, virConnectAuthPtr auth, int flags
ATTRIBUTE_UNUSED)
> }
> }
>
> + /* Query the host for maintenance mode and vCenter IP address */
> + if (esxVI_String_AppendValueListToList(conn, &propertyNameList,
> + "runtime.inMaintenanceMode\0"
> + "summary.managementServerIp\0")
< 0 ||
> + esxVI_LookupHostSystemByIp(conn, priv->host, hostIpAddress,
> + propertyNameList, &hostSystem) < 0) {
> + goto failure;
> + }
> +
> + /* Warn if host is in maintenance mode */
> + for (dynamicProperty = hostSystem->propSet; dynamicProperty != NULL;
> + dynamicProperty = dynamicProperty->_next) {
> + if (STREQ(dynamicProperty->name, "runtime.inMaintenanceMode"))
{
> + if (esxVI_AnyType_ExpectType(conn, dynamicProperty->val,
> + esxVI_Type_Boolean) < 0) {
> + goto failure;
> + }
> +
> + if (dynamicProperty->val->boolean == esxVI_Boolean_True) {
> + VIR_WARN0("The server is in maintenance mode");
> + }
> +
> + break;
> + }
> + }
> +
> /* Login to vCenter */
> if (vCenter != NULL) {
> VIR_FREE(url);
> @@ -415,17 +441,9 @@ esxOpen(virConnectPtr conn, virConnectAuthPtr auth, int flags
ATTRIBUTE_UNUSED)
> }
>
> /* Lookup the vCenter from the ESX host */
> - if (esxVI_String_AppendValueToList
> - (conn, &propertyNameList, "summary.managementServerIp")
< 0 ||
> - esxVI_LookupHostSystemByIp(conn, priv->host, hostIpAddress,
> - propertyNameList, &hostSystem) < 0) {
> - goto failure;
> - }
> -
> for (dynamicProperty = hostSystem->propSet; dynamicProperty != NULL;
> dynamicProperty = dynamicProperty->_next) {
> - if (STREQ(dynamicProperty->name,
> - "summary.managementServerIp")) {
> + if (STREQ(dynamicProperty->name,
"summary.managementServerIp")) {
> if (esxVI_AnyType_ExpectType(conn, dynamicProperty->val,
> esxVI_Type_String) < 0) {
> goto failure;
> @@ -461,8 +479,6 @@ esxOpen(virConnectPtr conn, virConnectAuthPtr auth, int flags
ATTRIBUTE_UNUSED)
> }
>
> break;
> - } else {
> - VIR_WARN("Unexpected '%s' property",
dynamicProperty->name);
> }
> }
>
Looks like the fix for the problem Rich reported, ACK,
Daniel
Well, the fix for Richard's problem was to leave maintenance mode :)
Now it should simpler to spot that maintenance mode may be the cause
of such problems.
Thanks, pushed together with the raw-response-dump commit.
Matthias