Blob Blame History Raw
diff -uNr a/fence/agents/ipmilan/fence_ipmilan.py b/fence/agents/ipmilan/fence_ipmilan.py
--- a/fence/agents/ipmilan/fence_ipmilan.py	2017-05-04 14:32:36.357497106 +0200
+++ b/fence/agents/ipmilan/fence_ipmilan.py	2017-05-04 14:37:32.567801127 +0200
@@ -39,9 +39,18 @@
 		cmd += " -I lanplus"
 	else:
 		cmd += " -I lan"
+
 	# --ip / -a
 	cmd += " -H " + options["--ip"]
 
+	# --port / -n
+	if options.has_key("--ipport"):
+		cmd += " -p " + options["--ipport"]
+
+	# --target
+	if "--target" in options:
+		cmd += " -t " + options["--target"]
+
 	# --username / -l
 	if options.has_key("--username") and len(options["--username"]) != 0:
 		cmd += " -U " + quote(options["--username"])
@@ -60,10 +69,6 @@
 	if "--cipher" in options:
 		cmd += " -C " + options["--cipher"]
 
-	# --port / -n
-	if options.has_key("--ipport"):
-		cmd += " -p " + options["--ipport"]
-
 	if options.has_key("--privlvl"):
 		cmd += " -L " + options["--privlvl"]
 
@@ -123,6 +128,14 @@
 		"default" : "@IPMITOOL_PATH@",
 		"order": 200
 	}
+	all_opt["target"] = {
+		"getopt" : ":",
+		"longopt" : "target",
+		"help" : "--target=[targetaddress]       Bridge IPMI requests to the remote target address",
+		"required" : "0",
+		"shortdesc" : "Bridge IPMI requests to the remote target address",
+		"order": 1
+	}
 	all_opt["obsolete_ip"] = {
 		"getopt" : "i:",
 		"longopt" : "obsolete-ip",
@@ -141,9 +154,9 @@
 def main():
 	atexit.register(atexit_handler)
 
-	device_opt = ["ipaddr", "login", "no_login", "no_password", "passwd", "diag", 
-		"lanplus", "auth", "cipher", "privlvl", "sudo", "ipmitool_path", "method",
-		"obsolete_ip", "timeout"]
+	device_opt = ["ipaddr", "login", "no_login", "no_password", "passwd",
+		"diag", "lanplus", "auth", "cipher", "privlvl", "sudo",
+		"ipmitool_path", "method", "target", "obsolete_ip", "timeout"]
 	define_new_opts()
 
 	all_opt["power_wait"]["default"] = 2
diff -uNr a/fence/agents/lib/fencing.py.py b/fence/agents/lib/fencing.py.py
--- a/fence/agents/lib/fencing.py.py	2017-05-04 14:32:36.408496642 +0200
+++ b/fence/agents/lib/fencing.py.py	2017-05-04 14:33:30.160007419 +0200
@@ -845,7 +845,7 @@
 			device_opt.count("login") and (device_opt.count("no_login") == 0):
 		fail_usage("Failed: You have to set login name")
 
-	if device_opt.count("ipaddr") and not options.has_key("--ip") and not options.has_key("--managed"):
+	if device_opt.count("ipaddr") and not options.has_key("--ip") and not options.has_key("--managed") and not options.has_key("--target"):
 		fail_usage("Failed: You have to enter fence address")
 
 	if device_opt.count("no_password") == 0:
diff -uNr a/tests/data/metadata/fence_idrac.xml b/tests/data/metadata/fence_idrac.xml
--- a/tests/data/metadata/fence_idrac.xml	2017-05-04 14:32:36.410496624 +0200
+++ b/tests/data/metadata/fence_idrac.xml	2017-05-04 14:33:30.160007419 +0200
@@ -74,6 +74,11 @@
 		<content type="string"  />
 		<shortdesc lang="en">Ciphersuite to use (same as ipmitool -C parameter)</shortdesc>
 	</parameter>
+	<parameter name="target" unique="0" required="0">
+		<getopt mixed="--target=[targetaddress]" />
+		<content type="string"  />
+		<shortdesc lang="en">Bridge IPMI requests to the remote target address</shortdesc>
+	</parameter>
 	<parameter name="privlvl" unique="0" required="0">
 		<getopt mixed="-L, --privlvl=[level]" />
 		<content type="select" default="administrator"  >
diff -uNr a/tests/data/metadata/fence_ilo3.xml b/tests/data/metadata/fence_ilo3.xml
--- a/tests/data/metadata/fence_ilo3.xml	2017-05-04 14:32:36.411496614 +0200
+++ b/tests/data/metadata/fence_ilo3.xml	2017-05-04 14:33:30.161007410 +0200
@@ -74,6 +74,11 @@
 		<content type="string"  />
 		<shortdesc lang="en">Ciphersuite to use (same as ipmitool -C parameter)</shortdesc>
 	</parameter>
+	<parameter name="target" unique="0" required="0">
+		<getopt mixed="--target=[targetaddress]" />
+		<content type="string"  />
+		<shortdesc lang="en">Bridge IPMI requests to the remote target address</shortdesc>
+	</parameter>
 	<parameter name="privlvl" unique="0" required="0">
 		<getopt mixed="-L, --privlvl=[level]" />
 		<content type="select" default="administrator"  >
diff -uNr a/tests/data/metadata/fence_ilo4.xml b/tests/data/metadata/fence_ilo4.xml
--- a/tests/data/metadata/fence_ilo4.xml	2017-05-04 14:32:36.411496614 +0200
+++ b/tests/data/metadata/fence_ilo4.xml	2017-05-04 14:33:30.161007410 +0200
@@ -74,6 +74,11 @@
 		<content type="string"  />
 		<shortdesc lang="en">Ciphersuite to use (same as ipmitool -C parameter)</shortdesc>
 	</parameter>
+	<parameter name="target" unique="0" required="0">
+		<getopt mixed="--target=[targetaddress]" />
+		<content type="string"  />
+		<shortdesc lang="en">Bridge IPMI requests to the remote target address</shortdesc>
+	</parameter>
 	<parameter name="privlvl" unique="0" required="0">
 		<getopt mixed="-L, --privlvl=[level]" />
 		<content type="select" default="administrator"  >
diff -uNr a/tests/data/metadata/fence_imm.xml b/tests/data/metadata/fence_imm.xml
--- a/tests/data/metadata/fence_imm.xml	2017-05-04 14:32:36.412496605 +0200
+++ b/tests/data/metadata/fence_imm.xml	2017-05-04 14:33:30.162007401 +0200
@@ -74,6 +74,11 @@
 		<content type="string"  />
 		<shortdesc lang="en">Ciphersuite to use (same as ipmitool -C parameter)</shortdesc>
 	</parameter>
+	<parameter name="target" unique="0" required="0">
+		<getopt mixed="--target=[targetaddress]" />
+		<content type="string"  />
+		<shortdesc lang="en">Bridge IPMI requests to the remote target address</shortdesc>
+	</parameter>
 	<parameter name="privlvl" unique="0" required="0">
 		<getopt mixed="-L, --privlvl=[level]" />
 		<content type="select" default="administrator"  >
diff -uNr a/tests/data/metadata/fence_ipmilan.xml b/tests/data/metadata/fence_ipmilan.xml
--- a/tests/data/metadata/fence_ipmilan.xml	2017-05-04 14:32:36.412496605 +0200
+++ b/tests/data/metadata/fence_ipmilan.xml	2017-05-04 14:33:30.162007401 +0200
@@ -74,6 +74,11 @@
 		<content type="string"  />
 		<shortdesc lang="en">Ciphersuite to use (same as ipmitool -C parameter)</shortdesc>
 	</parameter>
+	<parameter name="target" unique="0" required="0">
+		<getopt mixed="--target=[targetaddress]" />
+		<content type="string"  />
+		<shortdesc lang="en">Bridge IPMI requests to the remote target address</shortdesc>
+	</parameter>
 	<parameter name="privlvl" unique="0" required="0">
 		<getopt mixed="-L, --privlvl=[level]" />
 		<content type="select" default="administrator"  >