fence-agents: master - fence-agents: Use default values for device options instead of per-agent solutions

Marek GrĂ¡c marx at fedoraproject.org
Mon Oct 29 11:27:56 UTC 2012


Gitweb:        http://git.fedorahosted.org/git/?p=fence-agents.git;a=commitdiff;h=b0303c783b9ee4d4214828d88344547549a04d11
Commit:        b0303c783b9ee4d4214828d88344547549a04d11
Parent:        9851b2aec92f30456fb88a1c69ca964fae58e1ec
Author:        Marek 'marx' Grac <mgrac at redhat.com>
AuthorDate:    Mon Oct 29 12:24:36 2012 +0100
Committer:     Marek 'marx' Grac <mgrac at redhat.com>
CommitterDate: Mon Oct 29 12:24:36 2012 +0100

fence-agents: Use default values for device options instead of per-agent solutions

    Majority of these changes concern:
    * (-x / ssh) to be turn on by default
    * command prompt default which differs across fence agents
---
 fence/agents/alom/fence_alom.py             |   12 ++++--------
 fence/agents/apc/fence_apc.py               |   11 +++--------
 fence/agents/drac5/fence_drac5.py           |    8 ++------
 fence/agents/eaton_snmp/fence_eaton_snmp.py |    8 ++------
 fence/agents/ibmblade/fence_ibmblade.py     |    6 +-----
 fence/agents/ifmib/fence_ifmib.py           |    5 +----
 fence/agents/ilo/fence_ilo.py               |    7 ++-----
 fence/agents/ipdu/fence_ipdu.py             |   14 +++++---------
 fence/agents/ldom/fence_ldom.py             |   15 +++++----------
 fence/agents/lpar/fence_lpar.py             |    7 +------
 fence/agents/rsa/fence_rsa.py               |    8 ++------
 fence/agents/rsb/fence_rsb.py               |    2 --
 fence/agents/sanbox2/fence_sanbox2.py       |    8 ++------
 fence/agents/virsh/fence_virsh.py           |   11 ++++-------
 fence/agents/vmware/fence_vmware.py         |   10 ++--------
 fence/agents/wti/fence_wti.py               |    8 ++------
 fence/agents/xenapi/fence_xenapi.py         |    4 +---
 17 files changed, 39 insertions(+), 105 deletions(-)

diff --git a/fence/agents/alom/fence_alom.py b/fence/agents/alom/fence_alom.py
index 6d62d73..0f68050 100644
--- a/fence/agents/alom/fence_alom.py
+++ b/fence/agents/alom/fence_alom.py
@@ -43,19 +43,15 @@ def set_power_status(conn, options):
 		fail(EC_TIMED_OUT)
 		
 def main():
-	device_opt = [  "ipaddr", "login", "passwd", "passwd_script", "secure",
+	device_opt = [  "ipaddr", "login", "passwd", "passwd_script", "cmd_prompt", "secure",
 			"identity_file", "test", "inet4_only", "inet6_only", "ipport" ]
 
 	atexit.register(atexit_handler)
-	
-	pinput = process_input(device_opt)
-	pinput["-x"] = 1
-	options = check_input(device_opt, pinput)
 
-	# Default command is sc>
-	if (not options.has_key("-c")):
-		options["-c"] = "sc\>\ "
+	all_opt["secure"]["default"] = "1"
+	all_opt["cmd_prompt"]["default"] = [ "sc\>\ " ]
 
+	options = check_input(device_opt, process_input(device_opt))
 	options["telnet_over_ssh"] = 1
 	
 	docs = { }
diff --git a/fence/agents/apc/fence_apc.py b/fence/agents/apc/fence_apc.py
index 46f8b84..0406955 100644
--- a/fence/agents/apc/fence_apc.py
+++ b/fence/agents/apc/fence_apc.py
@@ -182,22 +182,17 @@ def set_power_status(conn, options):
 		fail(EC_TIMED_OUT)
 
 def main():
-	device_opt = [  "ipaddr", "login", "passwd", "passwd_script",
+	device_opt = [  "ipaddr", "login", "passwd", "passwd_script", "cmd_prompt",
 			"secure", "port", "identity_file", "switch", "test", "separator",
 			"inet4_only", "inet6_only", "ipport" ]
 
 	atexit.register(atexit_handler)
 
-	options = check_input(device_opt, process_input(device_opt))
+	all_opt["cmd_prompt"]["default"] = "\n>"
 
-	## 
-	## Fence agent specific defaults
-	#####
+	options = check_input(device_opt, process_input(device_opt))
 	options["ssh_options"] = "-1 -c blowfish"
 
-	if 0 == options.has_key("-c"):
-		options["-c"] = "\n>"
-
 	docs = { }
 	docs["shortdesc"] = "Fence agent for APC over telnet/ssh"
 	docs["longdesc"] = "fence_apc is an I/O Fencing agent \
diff --git a/fence/agents/drac5/fence_drac5.py b/fence/agents/drac5/fence_drac5.py
index 755f2b4..b261e50 100644
--- a/fence/agents/drac5/fence_drac5.py
+++ b/fence/agents/drac5/fence_drac5.py
@@ -91,13 +91,9 @@ def main():
 
 	atexit.register(atexit_handler)
 
-	options = check_input(device_opt, process_input(device_opt))
+	all_opt["cmd_prompt"]["default"] = [ "\$" ]
 
-	## 
-	## Fence agent specific defaults
-	#####
-	if 0 == options.has_key("-c"):
-		options["-c"] = "\$"
+	options = check_input(device_opt, process_input(device_opt))
 
 	docs = { }           
 	docs["shortdesc"] = "Fence agent for Dell DRAC CMC/5" 
diff --git a/fence/agents/eaton_snmp/fence_eaton_snmp.py b/fence/agents/eaton_snmp/fence_eaton_snmp.py
index 2c0b54e..e4c3ea3 100644
--- a/fence/agents/eaton_snmp/fence_eaton_snmp.py
+++ b/fence/agents/eaton_snmp/fence_eaton_snmp.py
@@ -197,11 +197,6 @@ def get_outlets_status(conn, options):
 
 	return result
 
-# Define new options
-def eaton_snmp_define_defaults():
-	all_opt["snmp_version"]["default"]="1"
-	all_opt["community"]["default"]="private"
-
 # Main agent method
 def main():
 	device_opt = [ "ipaddr", "login", "passwd", "passwd_script",
@@ -213,10 +208,11 @@ def main():
 	atexit.register(atexit_handler)
 
 	snmp_define_defaults ()
-	eaton_snmp_define_defaults()
 
 	all_opt["switch"]["default"] = 1
 	all_opt["power_wait"]["default"] = 2
+	all_opt["snmp_version"]["default"] = "1"
+	all_opt["community"]["default"] = "private"
 	options=check_input(device_opt,process_input(device_opt))
 
 	# Plug indexing start from zero on ePDU Managed, so we substract '1' from
diff --git a/fence/agents/ibmblade/fence_ibmblade.py b/fence/agents/ibmblade/fence_ibmblade.py
index 96d2a76..ec992f4 100644
--- a/fence/agents/ibmblade/fence_ibmblade.py
+++ b/fence/agents/ibmblade/fence_ibmblade.py
@@ -48,10 +48,6 @@ def get_outlets_status(conn, options):
 
 	return result
 
-# Define new options
-def ibmblade_define_defaults():
-	all_opt["snmp_version"]["default"]="1"
-
 # Main agent method
 def main():
 	global port_oid
@@ -65,7 +61,7 @@ def main():
 	atexit.register(atexit_handler)
 
 	snmp_define_defaults ()
-	ibmblade_define_defaults()
+	all_opt["snmp_version"]["default"]="1"
 
 	options=check_input(device_opt,process_input(device_opt))
 
diff --git a/fence/agents/ifmib/fence_ifmib.py b/fence/agents/ifmib/fence_ifmib.py
index bbbec22..a43bf38 100644
--- a/fence/agents/ifmib/fence_ifmib.py
+++ b/fence/agents/ifmib/fence_ifmib.py
@@ -93,10 +93,6 @@ def get_outlets_status(conn, options):
 
 	return result
 
-# Define new options
-def ifmib_define_defaults():
-	all_opt["snmp_version"]["default"]="2c"
-
 # Main agent method
 def main():
 	global port_oid
@@ -110,6 +106,7 @@ def main():
 	atexit.register(atexit_handler)
 
 	snmp_define_defaults ()
+	all_opt["snmp_version"]["default"]="2c"
 
 	options=process_input(device_opt)
 
diff --git a/fence/agents/ilo/fence_ilo.py b/fence/agents/ilo/fence_ilo.py
index 4c8f7ca..fca72a7 100644
--- a/fence/agents/ilo/fence_ilo.py
+++ b/fence/agents/ilo/fence_ilo.py
@@ -65,12 +65,9 @@ def main():
 
 	all_opt["login_timeout"]["default"] = "10"
 	all_opt["retry_on"]["default"] = "3"
+	all_opt["ssl"]["default"] = "1"
 
-	pinput = process_input(device_opt)
-	pinput["-z"] = 1
-	options = check_input(device_opt, pinput)
-	
-	LOGIN_TIMEOUT = 10
+	options = check_input(device_opt, process_input(device_opt))
 
 	docs = { }
 	docs["shortdesc"] = "Fence agent for HP iLO"
diff --git a/fence/agents/ipdu/fence_ipdu.py b/fence/agents/ipdu/fence_ipdu.py
index 2749e44..0243afd 100644
--- a/fence/agents/ipdu/fence_ipdu.py
+++ b/fence/agents/ipdu/fence_ipdu.py
@@ -129,13 +129,6 @@ def get_outlets_status(conn, options):
 
         return result
 
-# Define new options
-def ipdu_snmp_define_defaults():
-	all_opt["snmp_version"]["default"]="3"
-	all_opt["community"]["default"]="private"
-	all_opt["switch"]["default"]="1"
-	device=IBMiPDU
-
 # Main agent method
 def main():
 	device_opt = [ "ipaddr", "login", "passwd", "passwd_script",
@@ -147,9 +140,12 @@ def main():
 	atexit.register(atexit_handler)
 
 	snmp_define_defaults ()
-	ipdu_snmp_define_defaults()
+	all_opt["snmp_version"]["default"] = "3"
+	all_opt["community"]["default"] = "private"
+	all_opt["switch"]["default"] = "1"
+	device = IBMiPDU
 
-	options=check_input(device_opt,process_input(device_opt))
+	options = check_input(device_opt,process_input(device_opt))
 
 	docs = { }
 	docs["shortdesc"] = "Fence agent for iPDU over SNMP"
diff --git a/fence/agents/ldom/fence_ldom.py b/fence/agents/ldom/fence_ldom.py
index d106255..498d0d7 100644
--- a/fence/agents/ldom/fence_ldom.py
+++ b/fence/agents/ldom/fence_ldom.py
@@ -87,16 +87,11 @@ def main():
 
 	atexit.register(atexit_handler)
 
-	pinput = process_input(device_opt)
-	pinput["-x"] = 1
-	options = check_input(device_opt, pinput)
-
-	## 
-	## Fence agent specific defaults
-	#####
-	if (not options.has_key("-c")):
-		options["-c"] = "\ $"
-	
+	all_opt["secure"]["default"] = "1"
+	all_opt["cmd_prompt"]["default"] = [ "\ $" ]
+
+	options = check_input(device_opt, process_input(device_opt))
+
 	docs = { }
 	docs["shortdesc"] = "Fence agent for Sun LDOM"
 	docs["longdesc"] = "fence_ldom is an I/O Fencing agent \
diff --git a/fence/agents/lpar/fence_lpar.py b/fence/agents/lpar/fence_lpar.py
index b9121e4..a5d4195 100644
--- a/fence/agents/lpar/fence_lpar.py
+++ b/fence/agents/lpar/fence_lpar.py
@@ -138,15 +138,10 @@ def main():
 
 	all_opt["login_timeout"]["default"] = "15"
 	all_opt["secure"]["default"] = "1"
+	all_opt["cmd_prompt"]["default"] = [ ":~>", "]\$", "\$ " ]
 
 	options = check_input(device_opt, process_input(device_opt))
 
-	## 
-	## Fence agent specific settings and default values
-	#####
-	if 0 == options.has_key("-c"):
-		options["-c"] = [ ":~>", "]\$", "\$ " ]
-
 	docs = { }
 	docs["shortdesc"] = "Fence agent for IBM LPAR"
 	docs["longdesc"] = ""
diff --git a/fence/agents/rsa/fence_rsa.py b/fence/agents/rsa/fence_rsa.py
index 3ba2c80..44ad33f 100644
--- a/fence/agents/rsa/fence_rsa.py
+++ b/fence/agents/rsa/fence_rsa.py
@@ -50,14 +50,10 @@ def main():
 	atexit.register(atexit_handler)
 
 	all_opt["login_timeout"]["default"] = 10
+	all_opt["cmd_prompt"]["default"] = [ ">" ]
+
 	options = check_input(device_opt, process_input(device_opt))
 
-	## 
-	## Fence agent specific defaults
-	#####
-	if 0 == options.has_key("-c"):
-		options["-c"] = ">"
-		
 	# This device will not allow us to login even with LANG=C
 	options["ssh_options"] = "-F /dev/null"
 
diff --git a/fence/agents/rsb/fence_rsb.py b/fence/agents/rsb/fence_rsb.py
index bc3df9a..f8cd827 100755
--- a/fence/agents/rsb/fence_rsb.py
+++ b/fence/agents/rsb/fence_rsb.py
@@ -85,8 +85,6 @@ will block any necessary fencing actions."
 	##
 	## Operate the fencing device
 	####
-	print options["-u"]
-
 	conn = fence_login(options)
 	result = fence_action(conn, options, set_power_status, get_power_status, None)
 
diff --git a/fence/agents/sanbox2/fence_sanbox2.py b/fence/agents/sanbox2/fence_sanbox2.py
index 8c67ac2..fdbea06 100644
--- a/fence/agents/sanbox2/fence_sanbox2.py
+++ b/fence/agents/sanbox2/fence_sanbox2.py
@@ -113,13 +113,9 @@ def main():
 
 	atexit.register(atexit_handler)
 
-	options = check_input(device_opt, process_input(device_opt))
+	all_opt["cmd_prompt"]["default"] = [ " #> " ]
 
-	## 
-	## Fence agent specific defaults
-	#####
-	if 0 == options.has_key("-c"):
-		options["-c"] = [ " #> " ]
+	options = check_input(device_opt, process_input(device_opt))
 
 	docs = { }
 	docs["shortdesc"] = "Fence agent for QLogic SANBox2 FC switches"
diff --git a/fence/agents/virsh/fence_virsh.py b/fence/agents/virsh/fence_virsh.py
index 6e6a43d..ebf6666 100644
--- a/fence/agents/virsh/fence_virsh.py
+++ b/fence/agents/virsh/fence_virsh.py
@@ -71,19 +71,16 @@ def set_power_status(conn, options):
 		fail(EC_TIMED_OUT)
 
 def main():
-	device_opt = [  "ipaddr", "login", "passwd", "passwd_script",
+	device_opt = [  "ipaddr", "login", "passwd", "passwd_script", "cmd_prompt",
 			"secure", "identity_file", "test", "port", "separator",
 			"inet4_only", "inet6_only", "ipport", "sudo" ]
 
 	atexit.register(atexit_handler)
 
-	pinput = process_input(device_opt)
-	pinput["-x"] = 1
-	options = check_input(device_opt, pinput)
+	all_opt["secure"]["default"] = "1"
+	all_opt["cmd_prompt"]["default"] = [ "\[EXPECT\]#\ " ]
 
-	## Defaults for fence agent
-	if 0 == options.has_key("-c"):
-		options["-c"] = "\[EXPECT\]#\ "
+	options = check_input(device_opt, process_input(device_opt))
 
 	options["ssh_options"]="-t '/bin/bash -c \"PS1=\[EXPECT\]#\  /bin/bash --noprofile --norc\"'"
 
diff --git a/fence/agents/vmware/fence_vmware.py b/fence/agents/vmware/fence_vmware.py
index 0b81d1d..885a876 100644
--- a/fence/agents/vmware/fence_vmware.py
+++ b/fence/agents/vmware/fence_vmware.py
@@ -256,10 +256,6 @@ def vmware_is_supported_vmrun_version(options):
 
 	return True
 
-# Define new options
-def vmware_define_defaults():
-	all_opt["vmware_type"]["default"]=VMWARE_DEFAULT_TYPE
-
 # Check vmware type, set vmware_internal_type to one of VMWARE_TYPE_ value and
 # options["-e"] to path (if not specified)
 def vmware_check_vmware_type(options):
@@ -290,13 +286,11 @@ def main():
 
 	atexit.register(atexit_handler)
 
-	vmware_define_defaults()
+	all_opt["secure"]["default"] = "1"
+	all_opt["vmware_type"]["default"] = VMWARE_DEFAULT_TYPE
 
 	options = check_input(device_opt, process_input(device_opt))
 
-	# Default is secure connection
-	options["-x"] = 1
-
 	docs = { }
 	docs["shortdesc"] = "Fence agent for VMWare"
 	docs["longdesc"] = "fence_vmware is an I/O Fencing agent \
diff --git a/fence/agents/wti/fence_wti.py b/fence/agents/wti/fence_wti.py
index f013953..9aa9959 100644
--- a/fence/agents/wti/fence_wti.py
+++ b/fence/agents/wti/fence_wti.py
@@ -96,13 +96,9 @@ def main():
 
 	atexit.register(atexit_handler)
 
-	options = check_input(device_opt, process_input(device_opt))
+	all_opt["cmd_prompt"]["default"] = [ "RSM>", "MPC>", "IPS>", "TPS>", "NBB>", "NPS>", "VMR>" ]
 
-	## 
-	## Fence agent specific defaults
-	#####
-	if 0 == options.has_key("-c"):
-		options["-c"] = [ "RSM>", "MPC>", "IPS>", "TPS>", "NBB>", "NPS>", "VMR>" ]
+	options = check_input(device_opt, process_input(device_opt))
 
 	docs = { }
 	docs["shortdesc"] = "Fence agent for WTI"
diff --git a/fence/agents/xenapi/fence_xenapi.py b/fence/agents/xenapi/fence_xenapi.py
index 0b07ed6..017908f 100644
--- a/fence/agents/xenapi/fence_xenapi.py
+++ b/fence/agents/xenapi/fence_xenapi.py
@@ -204,9 +204,7 @@ def main():
 
 	atexit.register(atexit_handler)
 
-	options=process_input(device_opt)
-
-	options = check_input(device_opt, options)
+	options = check_input(device_opt, process_input(device_opt))
 
 	docs = { }
 	docs["shortdesc"] = "XenAPI based fencing for the Citrix XenServer virtual machines."


More information about the cluster-commits mailing list