[Cluster-devel] [PATCH] fencing: fixed pexpect TypeError exception, when using identity file for login via ssh

Ondrej Mular omular at redhat.com
Fri Mar 7 14:43:00 UTC 2014


Previously, fence-agent failed to log in (ssh) using identity file. This caused fence-agent failure because of uncaught exception.

Resolves: rhbz#1073947

---
 fence/agents/lib/fencing.py.py | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/fence/agents/lib/fencing.py.py b/fence/agents/lib/fencing.py.py
index 2006f0d..76855e1 100644
--- a/fence/agents/lib/fencing.py.py
+++ b/fence/agents/lib/fencing.py.py
@@ -1022,13 +1022,12 @@ def fence_login(options, re_login_string = "(login\s*: )|(Login Name:  )|(userna
 				"are not in the spec file and must be installed separately." + "\n")
 				sys.exit(EC_GENERIC_ERROR)
 
-			result = conn.log_expect(options, [ options["--command-prompt"], \
-				"Are you sure you want to continue connecting (yes/no)?", \
-				"Enter passphrase for key '" + options["--identity-file"] + "':" ], int(options["--login-timeout"]))
+			result = conn.log_expect(options, [ "Enter passphrase for key '" + options["--identity-file"] + "':",\
+				"Are you sure you want to continue connecting (yes/no)?" ] + options["--command-prompt"], int(options["--login-timeout"]))
 			if result == 1:
 				conn.sendline("yes")
-				conn.log_expect(options, [ options["--command-prompt"], "Enter passphrase for key '"+options["--identity-file"]+"':"] , int(options["--login-timeout"]))
-			if result != 0:
+				result = conn.log_expect(options, [ "Enter passphrase for key '"+options["--identity-file"]+"':"] + options["--command-prompt"], int(options["--login-timeout"]))
+			if result == 0:
 				if options.has_key("--password"):
 					conn.sendline(options["--password"])
 					conn.log_expect(options, options["--command-prompt"], int(options["--login-timeout"]))
-- 
1.8.3.1




More information about the Cluster-devel mailing list