fence-agents: master - fencing: Propagate 'list' only when it makes sense
Marek GrĂ¡c
marx at fedoraproject.org
Wed Mar 4 10:48:19 UTC 2015
Gitweb: http://git.fedorahosted.org/git/?p=fence-agents.git;a=commitdiff;h=25b4aaafedb2711b239cc572a276155dfcdd2028
Commit: 25b4aaafedb2711b239cc572a276155dfcdd2028
Parent: 73637997375d6667cb031883d28c199e33a27a65
Author: Marek 'marx' Grac <mgrac at redhat.com>
AuthorDate: Wed Mar 4 11:47:34 2015 +0100
Committer: Marek 'marx' Grac <mgrac at redhat.com>
CommitterDate: Wed Mar 4 11:47:34 2015 +0100
fencing: Propagate 'list' only when it makes sense
Previously, action 'list' was propagagated also for fence agents which
work with only one machine, so list makes no sense. Return was always N/A.
This was done together with simplification of removing duplicity code.
---
fence/agents/lib/fencing.py.py | 52 ++++++++++++++++---------------
tests/data/metadata/fence_alom.xml | 1 -
tests/data/metadata/fence_amt.xml | 1 -
tests/data/metadata/fence_drac.xml | 1 -
tests/data/metadata/fence_idrac.xml | 1 -
tests/data/metadata/fence_ilo.xml | 1 -
tests/data/metadata/fence_ilo2.xml | 1 -
tests/data/metadata/fence_ilo3.xml | 1 -
tests/data/metadata/fence_ilo3_ssh.xml | 1 -
tests/data/metadata/fence_ilo4.xml | 1 -
tests/data/metadata/fence_ilo4_ssh.xml | 1 -
tests/data/metadata/fence_ilo_mp.xml | 1 -
tests/data/metadata/fence_ilo_ssh.xml | 1 -
tests/data/metadata/fence_imm.xml | 1 -
tests/data/metadata/fence_ipmilan.xml | 1 -
tests/data/metadata/fence_mpath.xml | 1 -
tests/data/metadata/fence_rsa.xml | 1 -
tests/data/metadata/fence_rsb.xml | 1 -
tests/data/metadata/fence_scsi.xml | 1 -
19 files changed, 27 insertions(+), 43 deletions(-)
diff --git a/fence/agents/lib/fencing.py.py b/fence/agents/lib/fencing.py.py
index 22d462c..febc64e 100644
--- a/fence/agents/lib/fencing.py.py
+++ b/fence/agents/lib/fencing.py.py
@@ -584,19 +584,16 @@ def metadata(avail_opt, docs):
print "</parameters>"
print "<actions>"
+ (available_actions, _) = _get_available_actions(avail_opt)
+
+ if "on" in available_actions:
+ available_actions.remove("on")
+
on_target = ' on_target="1"' if avail_opt.count("on_target") else ''
print "\t<action name=\"on\"%s automatic=\"%d\"/>" % (on_target, avail_opt.count("fabric_fencing"))
- print "\t<action name=\"off\" />"
-
- if avail_opt.count("fabric_fencing") == 0:
- print "\t<action name=\"reboot\" />"
- if avail_opt.count("no_status") == 0:
- print "\t<action name=\"status\" />"
- print "\t<action name=\"list\" />"
- print "\t<action name=\"monitor\" />"
- print "\t<action name=\"metadata\" />"
- print "\t<action name=\"validate-all\" />"
+ for action in available_actions:
+ print "\t<action name=\"%s\" />" % (action)
print "</actions>"
print "</resource-agent>"
@@ -645,17 +642,11 @@ def check_input(device_opt, opt, other_conditions = False):
## add logging to stderr
logging.getLogger().addHandler(logging.StreamHandler(stream=sys.stderr))
- acceptable_actions = ["on", "off", "status", "list", "monitor", "validate-all"]
+ (acceptable_actions, _) = _get_available_actions(device_opt)
+
+ ## Compatibility layer
if 1 == device_opt.count("fabric_fencing"):
- ## Compatibility layer
- #####
acceptable_actions.extend(["enable", "disable"])
- else:
- acceptable_actions.extend(["reboot"])
-
- if 1 == device_opt.count("no_status"):
- acceptable_actions.remove("status")
-
if 0 == acceptable_actions.count(options["--action"]):
fail_usage("Failed: Unrecognised action '" + options["--action"] + "'")
@@ -1109,12 +1100,9 @@ def _update_metadata(options):
else:
all_opt["login"]["required"] = "0"
- available_actions = ["status", "reboot", "off", "on"]
- if device_opt.count("fabric_fencing"):
- available_actions.remove("reboot")
- all_opt["action"]["default"] = "off"
- if device_opt.count("no_status"):
- available_actions.remove("status")
+ (available_actions, default_value) = _get_available_actions(device_opt)
+ all_opt["action"]["default"] = default_value
+
actions_with_default = \
[x if not x == all_opt["action"]["default"] else x + " (default)" for x in available_actions]
all_opt["action"]["help"] = \
@@ -1322,3 +1310,17 @@ def _verify_unique_getopt(avail_opt):
fail_usage("Short getopt for %s (-%s) is not unique" % (opt, getopt_value))
else:
used_getopt.add(getopt_value)
+
+def _get_available_actions(device_opt):
+ available_actions = ["on", "off", "reboot", "status", "list", "monitor", "metadata", "validate-all"]
+ default_value = "reboot"
+
+ if device_opt.count("fabric_fencing"):
+ available_actions.remove("reboot")
+ default_value = "off"
+ if device_opt.count("no_status"):
+ available_actions.remove("status")
+ if not device_opt.count("separator"):
+ available_actions.remove("list")
+
+ return (available_actions, default_value)
diff --git a/tests/data/metadata/fence_alom.xml b/tests/data/metadata/fence_alom.xml
index 0fd66b1..1c89991 100644
--- a/tests/data/metadata/fence_alom.xml
+++ b/tests/data/metadata/fence_alom.xml
@@ -124,7 +124,6 @@
<action name="off" />
<action name="reboot" />
<action name="status" />
- <action name="list" />
<action name="monitor" />
<action name="metadata" />
<action name="validate-all" />
diff --git a/tests/data/metadata/fence_amt.xml b/tests/data/metadata/fence_amt.xml
index 721dfb7..f6d1757 100644
--- a/tests/data/metadata/fence_amt.xml
+++ b/tests/data/metadata/fence_amt.xml
@@ -128,7 +128,6 @@
<action name="off" />
<action name="reboot" />
<action name="status" />
- <action name="list" />
<action name="monitor" />
<action name="metadata" />
<action name="validate-all" />
diff --git a/tests/data/metadata/fence_drac.xml b/tests/data/metadata/fence_drac.xml
index ccda928..6d3c934 100644
--- a/tests/data/metadata/fence_drac.xml
+++ b/tests/data/metadata/fence_drac.xml
@@ -109,7 +109,6 @@
<action name="off" />
<action name="reboot" />
<action name="status" />
- <action name="list" />
<action name="monitor" />
<action name="metadata" />
<action name="validate-all" />
diff --git a/tests/data/metadata/fence_idrac.xml b/tests/data/metadata/fence_idrac.xml
index 4e7a846..daddd86 100644
--- a/tests/data/metadata/fence_idrac.xml
+++ b/tests/data/metadata/fence_idrac.xml
@@ -155,7 +155,6 @@
<action name="off" />
<action name="reboot" />
<action name="status" />
- <action name="list" />
<action name="monitor" />
<action name="metadata" />
<action name="validate-all" />
diff --git a/tests/data/metadata/fence_ilo.xml b/tests/data/metadata/fence_ilo.xml
index d9aac6c..e816f0b 100644
--- a/tests/data/metadata/fence_ilo.xml
+++ b/tests/data/metadata/fence_ilo.xml
@@ -130,7 +130,6 @@
<action name="off" />
<action name="reboot" />
<action name="status" />
- <action name="list" />
<action name="monitor" />
<action name="metadata" />
<action name="validate-all" />
diff --git a/tests/data/metadata/fence_ilo2.xml b/tests/data/metadata/fence_ilo2.xml
index 372224c..0442016 100644
--- a/tests/data/metadata/fence_ilo2.xml
+++ b/tests/data/metadata/fence_ilo2.xml
@@ -130,7 +130,6 @@
<action name="off" />
<action name="reboot" />
<action name="status" />
- <action name="list" />
<action name="monitor" />
<action name="metadata" />
<action name="validate-all" />
diff --git a/tests/data/metadata/fence_ilo3.xml b/tests/data/metadata/fence_ilo3.xml
index 66db51b..22ecee7 100644
--- a/tests/data/metadata/fence_ilo3.xml
+++ b/tests/data/metadata/fence_ilo3.xml
@@ -155,7 +155,6 @@
<action name="off" />
<action name="reboot" />
<action name="status" />
- <action name="list" />
<action name="monitor" />
<action name="metadata" />
<action name="validate-all" />
diff --git a/tests/data/metadata/fence_ilo3_ssh.xml b/tests/data/metadata/fence_ilo3_ssh.xml
index 4171a61..fe5eabf 100644
--- a/tests/data/metadata/fence_ilo3_ssh.xml
+++ b/tests/data/metadata/fence_ilo3_ssh.xml
@@ -139,7 +139,6 @@
<action name="off" />
<action name="reboot" />
<action name="status" />
- <action name="list" />
<action name="monitor" />
<action name="metadata" />
<action name="validate-all" />
diff --git a/tests/data/metadata/fence_ilo4.xml b/tests/data/metadata/fence_ilo4.xml
index e9747e5..86b85c3 100644
--- a/tests/data/metadata/fence_ilo4.xml
+++ b/tests/data/metadata/fence_ilo4.xml
@@ -155,7 +155,6 @@
<action name="off" />
<action name="reboot" />
<action name="status" />
- <action name="list" />
<action name="monitor" />
<action name="metadata" />
<action name="validate-all" />
diff --git a/tests/data/metadata/fence_ilo4_ssh.xml b/tests/data/metadata/fence_ilo4_ssh.xml
index 0cd79a9..de64cf1 100644
--- a/tests/data/metadata/fence_ilo4_ssh.xml
+++ b/tests/data/metadata/fence_ilo4_ssh.xml
@@ -139,7 +139,6 @@
<action name="off" />
<action name="reboot" />
<action name="status" />
- <action name="list" />
<action name="monitor" />
<action name="metadata" />
<action name="validate-all" />
diff --git a/tests/data/metadata/fence_ilo_mp.xml b/tests/data/metadata/fence_ilo_mp.xml
index a900828..093d848 100644
--- a/tests/data/metadata/fence_ilo_mp.xml
+++ b/tests/data/metadata/fence_ilo_mp.xml
@@ -129,7 +129,6 @@
<action name="off" />
<action name="reboot" />
<action name="status" />
- <action name="list" />
<action name="monitor" />
<action name="metadata" />
<action name="validate-all" />
diff --git a/tests/data/metadata/fence_ilo_ssh.xml b/tests/data/metadata/fence_ilo_ssh.xml
index 7428a75..338dc56 100644
--- a/tests/data/metadata/fence_ilo_ssh.xml
+++ b/tests/data/metadata/fence_ilo_ssh.xml
@@ -139,7 +139,6 @@
<action name="off" />
<action name="reboot" />
<action name="status" />
- <action name="list" />
<action name="monitor" />
<action name="metadata" />
<action name="validate-all" />
diff --git a/tests/data/metadata/fence_imm.xml b/tests/data/metadata/fence_imm.xml
index 8132dd9..421f24f 100644
--- a/tests/data/metadata/fence_imm.xml
+++ b/tests/data/metadata/fence_imm.xml
@@ -155,7 +155,6 @@
<action name="off" />
<action name="reboot" />
<action name="status" />
- <action name="list" />
<action name="monitor" />
<action name="metadata" />
<action name="validate-all" />
diff --git a/tests/data/metadata/fence_ipmilan.xml b/tests/data/metadata/fence_ipmilan.xml
index 6a6114d..469c65c 100644
--- a/tests/data/metadata/fence_ipmilan.xml
+++ b/tests/data/metadata/fence_ipmilan.xml
@@ -155,7 +155,6 @@
<action name="off" />
<action name="reboot" />
<action name="status" />
- <action name="list" />
<action name="monitor" />
<action name="metadata" />
<action name="validate-all" />
diff --git a/tests/data/metadata/fence_mpath.xml b/tests/data/metadata/fence_mpath.xml
index b800271..c805331 100644
--- a/tests/data/metadata/fence_mpath.xml
+++ b/tests/data/metadata/fence_mpath.xml
@@ -93,7 +93,6 @@ The fence_mpath agent works by having an unique key for each pair of node and de
<action name="on" on_target="1" automatic="1"/>
<action name="off" />
<action name="status" />
- <action name="list" />
<action name="monitor" />
<action name="metadata" />
<action name="validate-all" />
diff --git a/tests/data/metadata/fence_rsa.xml b/tests/data/metadata/fence_rsa.xml
index 40dfae9..de2ef23 100644
--- a/tests/data/metadata/fence_rsa.xml
+++ b/tests/data/metadata/fence_rsa.xml
@@ -129,7 +129,6 @@
<action name="off" />
<action name="reboot" />
<action name="status" />
- <action name="list" />
<action name="monitor" />
<action name="metadata" />
<action name="validate-all" />
diff --git a/tests/data/metadata/fence_rsb.xml b/tests/data/metadata/fence_rsb.xml
index 0c9bbe2..ff4450e 100644
--- a/tests/data/metadata/fence_rsb.xml
+++ b/tests/data/metadata/fence_rsb.xml
@@ -129,7 +129,6 @@
<action name="off" />
<action name="reboot" />
<action name="status" />
- <action name="list" />
<action name="monitor" />
<action name="metadata" />
<action name="validate-all" />
diff --git a/tests/data/metadata/fence_scsi.xml b/tests/data/metadata/fence_scsi.xml
index a023fdd..01e5648 100644
--- a/tests/data/metadata/fence_scsi.xml
+++ b/tests/data/metadata/fence_scsi.xml
@@ -109,7 +109,6 @@ The fence_scsi agent works by having each node in the cluster register a unique
<action name="on" on_target="1" automatic="1"/>
<action name="off" />
<action name="status" />
- <action name="list" />
<action name="monitor" />
<action name="metadata" />
<action name="validate-all" />
More information about the cluster-commits
mailing list