[libvirt] [PATCH] esx: Warn if the ESX server is in maintenance mode
Daniel Veillard
veillard at redhat.com
Fri Jan 8 17:22:02 UTC 2010
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
--
Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
daniel at veillard.com | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library http://libvirt.org/
More information about the libvir-list
mailing list