public inbox for cluster-cvs@sourceware.org
help / color / mirror / Atom feed
From: mgrac@sourceware.org
To: cluster-cvs@sources.redhat.com, cluster-devel@redhat.com
Subject: Cluster Project branch, master, updated. gfs-kernel_0_1_22-104-g4a91131
Date: Fri, 28 Mar 2008 16:23:00 -0000	[thread overview]
Message-ID: <20080328162337.8866.qmail@sourceware.org> (raw)

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Cluster Project".

http://sources.redhat.com/git/gitweb.cgi?p=cluster.git;a=commitdiff;h=4a91131c548a5127431255f47ad96889cb1f4d07

The branch, master has been updated
       via  4a91131c548a5127431255f47ad96889cb1f4d07 (commit)
      from  2c60eddf3d7bedfd452c9583a7e957103e1eaa16 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 4a91131c548a5127431255f47ad96889cb1f4d07
Author: Marek 'marx' Grac <mgrac@redhat.com>
Date:   Fri Mar 28 17:18:42 2008 +0100

    fence/agents:	WTI agents merged
    
    Fencing devices from WTI can use password or login/password for loging in.
    This patch merge two fencing agents together so it will be same as old agent.

-----------------------------------------------------------------------

Summary of changes:
 fence/agents/lib/fencing.py             |    6 ++-
 fence/agents/wti/wti-ips.py             |  100 -------------------------------
 fence/agents/wti/{wti-rsm.py => wti.py} |   22 ++++++-
 3 files changed, 24 insertions(+), 104 deletions(-)
 delete mode 100755 fence/agents/wti/wti-ips.py
 rename fence/agents/wti/{wti-rsm.py => wti.py} (76%)

diff --git a/fence/agents/lib/fencing.py b/fence/agents/lib/fencing.py
index 56c89a7..f0fe163 100644
--- a/fence/agents/lib/fencing.py
+++ b/fence/agents/lib/fencing.py
@@ -59,6 +59,10 @@ all_opt = {
 		"getopt" : "l:",
 		"help" : "-l <name>      Login name",
 		"order" : 1 },
+	"no_login" : {
+		"getopt" : "",
+		"help" : "",
+		"order" : 1 },
 	"passwd" : {
 		"getopt" : "p:",
 		"help" : "-p <password>  Login password",
@@ -204,7 +208,7 @@ def check_input(device_opt, opt):
 	if 0 == ["on", "off", "reboot", "status"].count(options["-o"].lower()):
 		fail_usage("Failed: Unrecognised action '" + options["-o"] + "'")
 
-	if (0 == options.has_key("-l")) and (device_opt.count("login")):
+	if (0 == options.has_key("-l")) and device_opt.count("login") and (device_opt.count("no_login") == 0):
 		fail_usage("Failed: You have to set login name")
 
 	if 0 == options.has_key("-a"):
diff --git a/fence/agents/wti/wti-ips.py b/fence/agents/wti/wti-ips.py
deleted file mode 100755
index 16d8db2..0000000
--- a/fence/agents/wti/wti-ips.py
+++ /dev/null
@@ -1,100 +0,0 @@
-#!/usr/bin/python
-
-##
-## Copyright (C) 2008 Red Hat, Inc. All Rights Reserved.
-##
-## The Following Agent Has Been Tested On:
-##
-##  Version            Firmware
-## +-----------------+---------------------------+
-##  WTI IPS-800-CE     v1.40h
-##
-#####
-
-import sys, re, pexpect
-sys.path.append("../lib/")
-from fencing import *
-
-def get_power_status(conn, options):
-	try:
-		conn.send("/S"+"\r\n")
-		conn.log_expect(options, options["-c"], SHELL_TIMEOUT)
-	except pexpect.EOF:
-		fail(EC_CONNECTION_LOST)
-	except pexpect.TIMEOUT:
-		fail(EC_TIMED_OUT)
-	
-	plug_section = 0
-	for line in conn.before.splitlines():
-		if (plug_section == 2) and line.find("|") >= 0:
-			plug_line = [x.strip().lower() for x in line.split("|")]
-			if len(plug_line) < len(plug_header):
-				plug_section = -1
-				pass
-			if options["-n"] == plug_line[plug_index]:
-				return plug_line[status_index]
-		elif (plug_section == 1):
-			plug_section = 2
-			pass
-		elif (line.upper().startswith("PLUG")):
-			plug_section = 1
-			plug_header = [x.strip().lower() for x in line.split("|")]
-			plug_index = plug_header.index("plug")
-			status_index = plug_header.index("status")
-
-	return "PROBLEM"
-
-def set_power_status(conn, options):
-	action = {
-		'on' : "/on",
-		'off': "/off"
-	}[options["-o"]]
-
-	try:
-		conn.send(action + " " + options["-n"] + ",y\r\n")
-		conn.log_expect(options, options["-c"], POWER_TIMEOUT)
-	except pexcept.EOF:
-		fail(EC_CONNECTION_LOST)
-	except pexcept.TIMEOUT:
-		fail(EC_TIMED_OUT)
-
-def main():
-	device_opt = [  "help", "version", "agent", "quiet", "verbose", "debug",
-			"action", "ipaddr", "passwd", "passwd_script",
-			"cmd_prompt", "port" ]
-
-	options = check_input(device_opt, process_input(device_opt))
-
-	## 
-	## Fence agent specific defaults
-	#####
-	if 0 == options.has_key("-c"):
-		options["-c"] = "IPS>"
-
-	##
-	## Login to system
-	## @note: there is no username so we can't use fence_login()
-	####
-	try:
-		conn = fspawn ('telnet ' + options["-a"])
-		conn.log_expect(options, "Password: ", SHELL_TIMEOUT)
-		conn.send(options["-p"]+"\r\n")
-		conn.log_expect(options, options["-c"], SHELL_TIMEOUT)
-	except pexpect.EOF:
-		fail(EC_LOGIN_DENIED) 
-	except pexpect.TIMEOUT:
-		fail(EC_LOGIN_DENIED)
-
-	##
-	## Operate the fecing device
-	######
-	fence_action(conn, options, set_power_status, get_power_status)
-
-	##
-	## Logout from system
-	######
-	conn.send("/X,Y"+"\r\n")
-	conn.close()
-
-if __name__ == "__main__":
-	main()
diff --git a/fence/agents/wti/wti-rsm.py b/fence/agents/wti/wti.py
similarity index 76%
rename from fence/agents/wti/wti-rsm.py
rename to fence/agents/wti/wti.py
index 3e40aa2..ccec9dd 100755
--- a/fence/agents/wti/wti-rsm.py
+++ b/fence/agents/wti/wti.py
@@ -9,6 +9,7 @@
 ## +-----------------+---------------------------+
 ##  WTI RSM-8R4         ?? unable to find out ??
 ##  WTI MPC-??? 	?? unable to find out ??
+##  WTI IPS-800-CE     v1.40h		(no username)
 #####
 
 import sys, re, pexpect
@@ -61,7 +62,7 @@ def set_power_status(conn, options):
 def main():
 	device_opt = [  "help", "version", "agent", "quiet", "verbose", "debug",
 			"action", "ipaddr", "login", "passwd", "passwd_script",
-			"cmd_prompt", "secure", "port" ]
+			"cmd_prompt", "secure", "port", "no_login" ]
 
 	options = check_input(device_opt, process_input(device_opt))
 
@@ -69,12 +70,27 @@ def main():
 	## Fence agent specific defaults
 	#####
 	if 0 == options.has_key("-c"):
-		options["-c"] = [ "RSM>", "MPC>" ]
+		options["-c"] = [ "RSM>", "MPC>", "IPS>" ]
 
 	##
 	## Operate the fencing device
+	##
+	## @note: if there is not a login name then we assume that it is WTI-IPS
+	##        where no login name is used
 	#####	
-	conn = fence_login(options)
+	if (0 == options.has_key("-l")):
+		try:
+			conn = fspawn ('telnet ' + options["-a"])
+			conn.log_expect(options, "Password: ", SHELL_TIMEOUT)
+			conn.send(options["-p"]+"\r\n")
+			conn.log_expect(options, options["-c"], SHELL_TIMEOUT)
+		except pexpect.EOF:
+			fail(EC_LOGIN_DENIED) 
+		except pexpect.TIMEOUT:
+			fail(EC_LOGIN_DENIED)		
+	else:
+		conn = fence_login(options)
+
 	fence_action(conn, options, set_power_status, get_power_status)
 
 	##


hooks/post-receive
--
Cluster Project


                 reply	other threads:[~2008-03-28 16:23 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080328162337.8866.qmail@sourceware.org \
    --to=mgrac@sourceware.org \
    --cc=cluster-cvs@sources.redhat.com \
    --cc=cluster-devel@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).