fence-agents/0002-fence_compute-Don-t-list-hypervisors-but-nova-comput.patch
Kristoffer Gronlund 0876d5cd99 - Update to version 4.0.24+git.1480563949.e67fcd4:
* fence_azure_arm: add fencing agent for Azure Resource Manager
  * fence_lpar: Add support for IVM
  * fence_lpar: Handle exceptions when invalid output is read
  * fence_zvmip: Update XML metadata
  * fence_compute: fix ConnectionError by using full module name
  * fence_powerman: add fence agent for powerman
  * Suppress InsecureRequestWarning when ssl_insecure is given
  * compute: Correctly handle installations without tagged flavours
  * compute: Use the best available nova API version
  * compute: correctly implement 'on' when the force-down API call is available
  * compute: Correctly identify when the nodename already includes the supplied domain
  * compute: Ensure we can connect to nova when fixing the plug name
  * compute: Simpler check for nova force down compatibility
- Rebase and remove merged patches:
  * Remove 0001-fence_compute-Create-nova-client-with-API-2.11.patch
  * Remove 0002-fence_compute-Keep-compatibility-with-python-novacli.patch
  * Remove 0003-fence_compute-Only-list-nova-compute-services-when-g.patch
  * Remove 0004-fence_compute-Don-t-list-hypervisors-but-nova-comput.patch
  * Remove 0005-fence_compute-Do-not-override-domain-if-it-is-alread.patch
  * Remove 0006-fence_compute-Fix-use-of-undefined-variable.patch
  * Remove 0007-fence_compute-Fix-fix_domain-to-not-return-too-early.patch
  * Remove 0008-fence_compute-Fix-fix_plug_name-when-looking-if-plug.patch
  * Add 0001-fence_compute-Only-list-nova-compute-services-when-g.patch
  * Add 0002-fence_compute-Don-t-list-hypervisors-but-nova-comput.patch
  * Add 0003-fence_compute-Do-not-override-domain-if-it-is-alread.patch
  * Add 0004-fence_compute-Fix-handling-of-domain-None.patch
  * Add 0005-fence_compute-Fix-fix_domain-to-not-return-too-early.patch
  * Add 0006-fence_compute-Fix-fix_plug_name-when-looking-if-plug.patch
  * Add 0007-fence_compute-Remove-duplicate-check-for-binary-name.patch

OBS-URL: https://build.opensuse.org/package/show/network:ha-clustering:Factory/fence-agents?expand=0&rev=56
2016-12-01 13:22:57 +00:00

85 lines
3.1 KiB
Diff

From 77a6ad6383ae1ffd26f771e394263e0d2fc4df5e Mon Sep 17 00:00:00 2001
From: Vincent Untz <vuntz@suse.com>
Date: Thu, 4 Feb 2016 09:59:43 +0100
Subject: [PATCH 2/9] fence_compute: Don't list hypervisors but nova-compute
services
Everything we do (evacuate, force_down) is on nova-compute services, so
there's no reason to list hypervisors; just directly look for
nova-compute services.
This matters as hypervisors are always FQDN, while nova service hosts
can be short hostnames.
---
fence/agents/compute/fence_compute.py | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/fence/agents/compute/fence_compute.py b/fence/agents/compute/fence_compute.py
index 6237f5e..e38c7bb 100644
--- a/fence/agents/compute/fence_compute.py
+++ b/fence/agents/compute/fence_compute.py
@@ -218,23 +218,23 @@ def fix_domain(options):
if nova:
# Find it in nova
- hypervisors = nova.hypervisors.list()
- for hypervisor in hypervisors:
- shorthost = hypervisor.hypervisor_hostname.split('.')[0]
+ services = nova.services.list(binary="nova-compute")
+ for service in services:
+ shorthost = service.host.split('.')[0]
- if shorthost == hypervisor.hypervisor_hostname:
+ if shorthost == service.host:
# Nova is not using FQDN
calculated = ""
else:
# Compute nodes are named as FQDN, strip off the hostname
- calculated = hypervisor.hypervisor_hostname.replace(shorthost+".", "")
+ calculated = service.host.replace(shorthost+".", "")
domains[calculated] = shorthost
if calculated == last_domain:
# Avoid complaining for each compute node with the same name
# One hopes they don't appear interleaved as A.com B.com A.com B.com
- logging.debug("Calculated the same domain from: %s" % hypervisor.hypervisor_hostname)
+ logging.debug("Calculated the same domain from: %s" % service.host)
elif "--domain" in options and options["--domain"] == calculated:
# Supplied domain name is valid
@@ -243,7 +243,7 @@ def fix_domain(options):
elif "--domain" in options:
# Warn in case nova isn't available at some point
logging.warning("Supplied domain '%s' does not match the one calculated from: %s"
- % (options["--domain"], hypervisor.hypervisor_hostname))
+ % (options["--domain"], service.host))
last_domain = calculated
@@ -256,7 +256,7 @@ def fix_domain(options):
elif len(domains) == 1:
logging.error("Overriding supplied domain '%s' does not match the one calculated from: %s"
- % (options["--domain"], hypervisor.hypervisor_hostname))
+ % (options["--domain"], service.host))
options["--domain"] = last_domain
return options["--domain"]
@@ -298,9 +298,9 @@ def get_plugs_list(_, options):
result = {}
if nova:
- hypervisors = nova.hypervisors.list()
- for hypervisor in hypervisors:
- longhost = hypervisor.hypervisor_hostname
+ services = nova.services.list(binary="nova-compute")
+ for service in services:
+ longhost = service.host
shorthost = longhost.split('.')[0]
result[longhost] = ("", None)
result[shorthost] = ("", None)
--
2.10.1