From ec4708916389461782d18a5e40e460f61dd1ea8d Mon Sep 17 00:00:00 2001 From: Vincent Untz Date: Wed, 3 Feb 2016 13:45:52 +0100 Subject: [PATCH 1/2] fence_compute: Fix disabling force_down on node when action is on When the action is on, the goal is to disable force_down for the nova-compute service on the node. However, we were only doing that if the nova-compute service was up; which is impossible if it's forced to be down... So just always disable force_down, and then, if it's up, do more things. --- fence/agents/compute/fence_compute.py | 30 +++++++++++++-------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/fence/agents/compute/fence_compute.py b/fence/agents/compute/fence_compute.py index 1845cc492..da9e47d69 100644 --- a/fence/agents/compute/fence_compute.py +++ b/fence/agents/compute/fence_compute.py @@ -160,23 +160,23 @@ def set_power_status(_, options): return if options["--action"] == "on": - if get_power_status(_, options) != "on": + try: + # Forcing the host back up + nova.services.force_down( + options["--plug"], "nova-compute", force_down=False) + except Exception as e: + # In theory, if force_down=False fails, that's for the exact + # same possible reasons that below with force_down=True + # eg. either an incompatible version or an old client. + # Since it's about forcing back to a default value, there is + # no real worries to just consider it's still okay even if the + # command failed + logging.info("Exception from attempt to force " + "host back up via nova API: " + "%s: %s" % (e.__class__.__name__, e)) + if get_power_status(_, options) == "on": # Forcing the service back up in case it was disabled nova.services.enable(options["--plug"], 'nova-compute') - try: - # Forcing the host back up - nova.services.force_down( - options["--plug"], "nova-compute", force_down=False) - except Exception as e: - # In theory, if force_down=False fails, that's for the exact - # same possible reasons that below with force_down=True - # eg. either an incompatible version or an old client. - # Since it's about forcing back to a default value, there is - # no real worries to just consider it's still okay even if the - # command failed - logging.info("Exception from attempt to force " - "host back up via nova API: " - "%s: %s" % (e.__class__.__name__, e)) else: # Pretend we're 'on' so that the fencing library doesn't loop forever waiting for the node to boot override_status = "on" From 3ceebb957480b18be0f9f07bd565810d96b21bb7 Mon Sep 17 00:00:00 2001 From: Vincent Untz Date: Thu, 1 Dec 2016 14:04:19 +0100 Subject: [PATCH 2/2] Fix travis Regression introduced in 0f170a937bd0944e172004dc30df2fc240d9ca20 --- tests/data/metadata/fence_compute.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/metadata/fence_compute.xml b/tests/data/metadata/fence_compute.xml index 83bdb53f7..58f77a665 100644 --- a/tests/data/metadata/fence_compute.xml +++ b/tests/data/metadata/fence_compute.xml @@ -9,7 +9,7 @@ Fencing action - + Keystone Admin Auth URL