cluster-devel.redhat.com archive mirror
 help / color / mirror / Atom feed
* [Cluster-devel] cluster/fence/agents/apc fence_apc.py
@ 2007-02-27 16:07 kupcevic
  0 siblings, 0 replies; 10+ messages in thread
From: kupcevic @ 2007-02-27 16:07 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	cluster
Branch: 	RHEL4
Changes by:	kupcevic at sourceware.org	2007-02-27 16:07:59

Modified files:
	fence/agents/apc: fence_apc.py 

Log message:
	Fix for bz230134 (can't fence port 1:1 with fence_apc)

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/fence/agents/apc/fence_apc.py.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.2&r2=1.1.2.3

--- cluster/fence/agents/apc/fence_apc.py	2007/02/14 17:03:01	1.1.2.2
+++ cluster/fence/agents/apc/fence_apc.py	2007/02/27 16:07:59	1.1.2.3
@@ -718,7 +718,7 @@
       for l in ls:
         words = l.strip().split()
         if len(words) > 3:
-          if words[3].strip() == portval:
+          if '----' not in words[0] and words[3].strip() == portval:
             outlet_str = words[0]
             dex = outlet_str.find("-")
             if dex <= (0):



^ permalink raw reply	[flat|nested] 10+ messages in thread
* [Cluster-devel] cluster/fence/agents/apc fence_apc.py
@ 2007-10-09 14:56 jparsons
  0 siblings, 0 replies; 10+ messages in thread
From: jparsons @ 2007-10-09 14:56 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	cluster
Branch: 	RHEL4
Changes by:	jparsons at sourceware.org	2007-10-09 14:56:15

Modified files:
	fence/agents/apc: fence_apc.py 

Log message:
	Fix for bz299191

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/fence/agents/apc/fence_apc.py.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.4&r2=1.1.2.5

--- cluster/fence/agents/apc/fence_apc.py	2007/07/17 18:34:28	1.1.2.4
+++ cluster/fence/agents/apc/fence_apc.py	2007/10/09 14:56:15	1.1.2.5
@@ -663,7 +663,9 @@
         if FIRMWARE_REV == 2:
           res = "3\r"
         elif FIRMWARE_REV == 3:
-          res = "2\r1\r"
+          #Changed for bz299191
+          #res = "2\r1\r"
+          res = "2\r"
         else: #placeholder for future revisions - sheesh
           res = "3\r"
       return (NOT_COMPLETE, res)
@@ -687,8 +689,9 @@
       return (NOT_COMPLETE, "1\r")
     
     elif i.find(OUTLET_MANAGE) != (-1):
-      #return (NOT_COMPLETE, "1\r")
-      return (NOT_COMPLETE, "\r")
+      #Changed for bz299191
+      #return (NOT_COMPLETE, "\r")
+      return (NOT_COMPLETE, "1\r")
 
     #elif i.find(OUTLET_CONTROL) != (-1) or i.find(OUTLET_MANAGE) != (-1):
     elif i.find(OUTLET_CONTROL) != (-1):



^ permalink raw reply	[flat|nested] 10+ messages in thread
* [Cluster-devel] cluster/fence/agents/apc fence_apc.py
@ 2007-07-17 18:38 rmccabe
  0 siblings, 0 replies; 10+ messages in thread
From: rmccabe @ 2007-07-17 18:38 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	cluster
Branch: 	RHEL45
Changes by:	rmccabe at sourceware.org	2007-07-17 18:38:34

Modified files:
	fence/agents/apc: fence_apc.py 

Log message:
	Fix for 246675

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/fence/agents/apc/fence_apc.py.diff?cvsroot=cluster&only_with_tag=RHEL45&r1=1.1.2.3&r2=1.1.2.3.2.1

--- cluster/fence/agents/apc/fence_apc.py	2007/02/27 16:07:59	1.1.2.3
+++ cluster/fence/agents/apc/fence_apc.py	2007/07/17 18:38:33	1.1.2.3.2.1
@@ -59,6 +59,7 @@
 CONTROL_CONSOLE = "Control Console -----"
 DEVICE_MANAGER = "Device Manager -----"
 OUTLET_CONTROL = "- Outlet Control/Configuration -----"
+OUTLET_MANAGE = "- Outlet Management -----"
 CONTROL_OUTLET = "- Control Outlet -----"
 CONTROL_OUTLET_2 = "- Outlet Control "
 COMMAND_SUCCESS = "Command successfully issued."
@@ -70,9 +71,12 @@
 USERNAME = "User Name :"
 PASSWORD = "Password  :"
 MASTER = "------- MasterSwitch"
+FIRMWARE_STR = "Rack PDU APP"
 
 CONTINUE_INDEX = 0
 
+FIRMWARE_REV = 2
+
 regex_list = list()
 regex_list.append(CONTINUE)
 regex_list.append(SCREEN_END)
@@ -468,6 +472,7 @@
         sys.exit(1)
 
 def log_in(buffer):
+  global FIRMWARE_REV
   lines = buffer.splitlines()
 
   for i in lines:
@@ -480,6 +485,17 @@
         logit("Sending password: %s\n" % passwd)
       return (NOT_COMPLETE, passwd + "\r")
     elif i.find(CONTROL_CONSOLE) != (-1):
+      #while we are here, grab the firmware revision
+      rev_search_lines = buffer.splitlines()
+      for rev_search_line in rev_search_lines: #search screen again
+        rev_dex = rev_search_line.find(FIRMWARE_STR)
+        if rev_dex != (-1): #found revision line
+          scratch_rev = rev_search_line[rev_dex:]
+          v_dex = scratch_rev.find("v")
+          if v_dex != (-1):
+            if scratch_rev[v_dex + 1] == "3": #format is v3.3.4
+              FIRMWARE_REV = 3
+              break
       return (COMPLETE, "1\r") 
 
 def do_status_check(sock):
@@ -537,7 +553,12 @@
       if switchnum != "":
         res = switchnum + "\r"
       else:
-        res = "3\r"
+        if FIRMWARE_REV == 2:
+          res = "3\r"
+        elif FIRMWARE_REV == 3:
+          res = "2\r1\r"
+        else: #placeholder for future revisions 
+          res = "3\r"
       return (NOT_COMPLETE, res, "Status Unknown")
     elif i.find(OUTLET_CONTROL) != (-1):
       ls = buffer.splitlines()
@@ -639,7 +660,12 @@
       if switchnum != "":
         res = switchnum + "\r"
       else:
-        res = "3\r"
+        if FIRMWARE_REV == 2:
+          res = "3\r"
+        elif FIRMWARE_REV == 3:
+          res = "2\r1\r"
+        else: #placeholder for future revisions - sheesh
+          res = "3\r"
       return (NOT_COMPLETE, res)
       
     elif (i.find(master_search_str1) != (-1)):
@@ -660,6 +686,11 @@
     elif i == outlet_search_str5:
       return (NOT_COMPLETE, "1\r")
     
+    elif i.find(OUTLET_MANAGE) != (-1):
+      #return (NOT_COMPLETE, "1\r")
+      return (NOT_COMPLETE, "\r")
+
+    #elif i.find(OUTLET_CONTROL) != (-1) or i.find(OUTLET_MANAGE) != (-1):
     elif i.find(OUTLET_CONTROL) != (-1):
       ls = buffer.splitlines()
       portval = port.strip()



^ permalink raw reply	[flat|nested] 10+ messages in thread
* [Cluster-devel] cluster/fence/agents/apc fence_apc.py
@ 2007-07-17 18:34 rmccabe
  0 siblings, 0 replies; 10+ messages in thread
From: rmccabe @ 2007-07-17 18:34 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	cluster
Branch: 	RHEL4
Changes by:	rmccabe at sourceware.org	2007-07-17 18:34:28

Modified files:
	fence/agents/apc: fence_apc.py 

Log message:
	Committing for Jim to address bz246675

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/fence/agents/apc/fence_apc.py.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4

--- cluster/fence/agents/apc/fence_apc.py	2007/02/27 16:07:59	1.1.2.3
+++ cluster/fence/agents/apc/fence_apc.py	2007/07/17 18:34:28	1.1.2.4
@@ -59,6 +59,7 @@
 CONTROL_CONSOLE = "Control Console -----"
 DEVICE_MANAGER = "Device Manager -----"
 OUTLET_CONTROL = "- Outlet Control/Configuration -----"
+OUTLET_MANAGE = "- Outlet Management -----"
 CONTROL_OUTLET = "- Control Outlet -----"
 CONTROL_OUTLET_2 = "- Outlet Control "
 COMMAND_SUCCESS = "Command successfully issued."
@@ -70,9 +71,12 @@
 USERNAME = "User Name :"
 PASSWORD = "Password  :"
 MASTER = "------- MasterSwitch"
+FIRMWARE_STR = "Rack PDU APP"
 
 CONTINUE_INDEX = 0
 
+FIRMWARE_REV = 2
+
 regex_list = list()
 regex_list.append(CONTINUE)
 regex_list.append(SCREEN_END)
@@ -468,6 +472,7 @@
         sys.exit(1)
 
 def log_in(buffer):
+  global FIRMWARE_REV
   lines = buffer.splitlines()
 
   for i in lines:
@@ -480,6 +485,17 @@
         logit("Sending password: %s\n" % passwd)
       return (NOT_COMPLETE, passwd + "\r")
     elif i.find(CONTROL_CONSOLE) != (-1):
+      #while we are here, grab the firmware revision
+      rev_search_lines = buffer.splitlines()
+      for rev_search_line in rev_search_lines: #search screen again
+        rev_dex = rev_search_line.find(FIRMWARE_STR)
+        if rev_dex != (-1): #found revision line
+          scratch_rev = rev_search_line[rev_dex:]
+          v_dex = scratch_rev.find("v")
+          if v_dex != (-1):
+            if scratch_rev[v_dex + 1] == "3": #format is v3.3.4
+              FIRMWARE_REV = 3
+              break
       return (COMPLETE, "1\r") 
 
 def do_status_check(sock):
@@ -537,7 +553,12 @@
       if switchnum != "":
         res = switchnum + "\r"
       else:
-        res = "3\r"
+        if FIRMWARE_REV == 2:
+          res = "3\r"
+        elif FIRMWARE_REV == 3:
+          res = "2\r1\r"
+        else: #placeholder for future revisions 
+          res = "3\r"
       return (NOT_COMPLETE, res, "Status Unknown")
     elif i.find(OUTLET_CONTROL) != (-1):
       ls = buffer.splitlines()
@@ -639,7 +660,12 @@
       if switchnum != "":
         res = switchnum + "\r"
       else:
-        res = "3\r"
+        if FIRMWARE_REV == 2:
+          res = "3\r"
+        elif FIRMWARE_REV == 3:
+          res = "2\r1\r"
+        else: #placeholder for future revisions - sheesh
+          res = "3\r"
       return (NOT_COMPLETE, res)
       
     elif (i.find(master_search_str1) != (-1)):
@@ -660,6 +686,11 @@
     elif i == outlet_search_str5:
       return (NOT_COMPLETE, "1\r")
     
+    elif i.find(OUTLET_MANAGE) != (-1):
+      #return (NOT_COMPLETE, "1\r")
+      return (NOT_COMPLETE, "\r")
+
+    #elif i.find(OUTLET_CONTROL) != (-1) or i.find(OUTLET_MANAGE) != (-1):
     elif i.find(OUTLET_CONTROL) != (-1):
       ls = buffer.splitlines()
       portval = port.strip()



^ permalink raw reply	[flat|nested] 10+ messages in thread
* [Cluster-devel] cluster/fence/agents/apc fence_apc.py
@ 2007-07-12  3:45 jparsons
  0 siblings, 0 replies; 10+ messages in thread
From: jparsons @ 2007-07-12  3:45 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	cluster
Changes by:	jparsons at sourceware.org	2007-07-12 03:45:44

Modified files:
	fence/agents/apc: fence_apc.py 

Log message:
	Fix for bz238106, new firmware version issues

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/fence/agents/apc/fence_apc.py.diff?cvsroot=cluster&r1=1.4&r2=1.5

--- cluster/fence/agents/apc/fence_apc.py	2007/02/27 15:53:15	1.4
+++ cluster/fence/agents/apc/fence_apc.py	2007/07/12 03:45:44	1.5
@@ -59,6 +59,7 @@
 CONTROL_CONSOLE = "Control Console -----"
 DEVICE_MANAGER = "Device Manager -----"
 OUTLET_CONTROL = "- Outlet Control/Configuration -----"
+OUTLET_MANAGE = "- Outlet Management -----"
 CONTROL_OUTLET = "- Control Outlet -----"
 CONTROL_OUTLET_2 = "- Outlet Control "
 COMMAND_SUCCESS = "Command successfully issued."
@@ -70,9 +71,12 @@
 USERNAME = "User Name :"
 PASSWORD = "Password  :"
 MASTER = "------- MasterSwitch"
+FIRMWARE_STR = "Rack PDU APP"
 
 CONTINUE_INDEX = 0
 
+FIRMWARE_REV = 2
+
 regex_list = list()
 regex_list.append(CONTINUE)
 regex_list.append(SCREEN_END)
@@ -468,6 +472,7 @@
         sys.exit(1)
 
 def log_in(buffer):
+  global FIRMWARE_REV
   lines = buffer.splitlines()
 
   for i in lines:
@@ -480,6 +485,17 @@
         logit("Sending password: %s\n" % passwd)
       return (NOT_COMPLETE, passwd + "\r")
     elif i.find(CONTROL_CONSOLE) != (-1):
+      #while we are here, grab the firmware revision
+      rev_search_lines = buffer.splitlines()
+      for rev_search_line in rev_search_lines: #search screen again
+        rev_dex = rev_search_line.find(FIRMWARE_STR)
+        if rev_dex != (-1): #found revision line
+          scratch_rev = rev_search_line[rev_dex:]
+          v_dex = scratch_rev.find("v")
+          if v_dex != (-1):
+            if scratch_rev[v_dex + 1] == "3": #format is v3.3.4
+              FIRMWARE_REV = 3
+              break
       return (COMPLETE, "1\r") 
 
 def do_status_check(sock):
@@ -537,7 +553,12 @@
       if switchnum != "":
         res = switchnum + "\r"
       else:
-        res = "3\r"
+        if FIRMWARE_REV == 2:
+          res = "3\r"
+        elif FIRMWARE_REV == 3:
+          res = "2\r1\r"
+        else: #placeholder for future revisions 
+          res = "3\r"
       return (NOT_COMPLETE, res, "Status Unknown")
     elif i.find(OUTLET_CONTROL) != (-1):
       ls = buffer.splitlines()
@@ -639,7 +660,12 @@
       if switchnum != "":
         res = switchnum + "\r"
       else:
-        res = "3\r"
+        if FIRMWARE_REV == 2:
+          res = "3\r"
+        elif FIRMWARE_REV == 3:
+          res = "2\r1\r"
+        else: #placeholder for future revisions - sheesh
+          res = "3\r"
       return (NOT_COMPLETE, res)
       
     elif (i.find(master_search_str1) != (-1)):
@@ -660,6 +686,11 @@
     elif i == outlet_search_str5:
       return (NOT_COMPLETE, "1\r")
     
+    elif i.find(OUTLET_MANAGE) != (-1):
+      #return (NOT_COMPLETE, "1\r")
+      return (NOT_COMPLETE, "\r")
+
+    #elif i.find(OUTLET_CONTROL) != (-1) or i.find(OUTLET_MANAGE) != (-1):
     elif i.find(OUTLET_CONTROL) != (-1):
       ls = buffer.splitlines()
       portval = port.strip()



^ permalink raw reply	[flat|nested] 10+ messages in thread
* [Cluster-devel] cluster/fence/agents/apc fence_apc.py
@ 2007-07-12  3:39 jparsons
  0 siblings, 0 replies; 10+ messages in thread
From: jparsons @ 2007-07-12  3:39 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	cluster
Branch: 	RHEL51
Changes by:	jparsons at sourceware.org	2007-07-12 03:39:19

Modified files:
	fence/agents/apc: fence_apc.py 

Log message:
	Fix for bz238106, new firmware version issues

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/fence/agents/apc/fence_apc.py.diff?cvsroot=cluster&only_with_tag=RHEL51&r1=1.1.4.3&r2=1.1.4.3.2.1

--- cluster/fence/agents/apc/fence_apc.py	2007/06/27 15:10:27	1.1.4.3
+++ cluster/fence/agents/apc/fence_apc.py	2007/07/12 03:39:19	1.1.4.3.2.1
@@ -71,9 +71,12 @@
 USERNAME = "User Name :"
 PASSWORD = "Password  :"
 MASTER = "------- MasterSwitch"
+FIRMWARE_STR = "Rack PDU APP"
 
 CONTINUE_INDEX = 0
 
+FIRMWARE_REV = 2
+
 regex_list = list()
 regex_list.append(CONTINUE)
 regex_list.append(SCREEN_END)
@@ -469,6 +472,7 @@
         sys.exit(1)
 
 def log_in(buffer):
+  global FIRMWARE_REV
   lines = buffer.splitlines()
 
   for i in lines:
@@ -481,6 +485,17 @@
         logit("Sending password: %s\n" % passwd)
       return (NOT_COMPLETE, passwd + "\r")
     elif i.find(CONTROL_CONSOLE) != (-1):
+      #while we are here, grab the firmware revision
+      rev_search_lines = buffer.splitlines()
+      for rev_search_line in rev_search_lines: #search screen again
+        rev_dex = rev_search_line.find(FIRMWARE_STR)
+        if rev_dex != (-1): #found revision line
+          scratch_rev = rev_search_line[rev_dex:]
+          v_dex = scratch_rev.find("v")
+          if v_dex != (-1):
+            if scratch_rev[v_dex + 1] == "3": #format is v3.3.4
+              FIRMWARE_REV = 3
+              break
       return (COMPLETE, "1\r") 
 
 def do_status_check(sock):
@@ -538,7 +553,12 @@
       if switchnum != "":
         res = switchnum + "\r"
       else:
-        res = "3\r"
+        if FIRMWARE_REV == 2:
+          res = "3\r"
+        elif FIRMWARE_REV == 3:
+          res = "2\r1\r"
+        else: #placeholder for future revisions 
+          res = "3\r"
       return (NOT_COMPLETE, res, "Status Unknown")
     elif i.find(OUTLET_CONTROL) != (-1):
       ls = buffer.splitlines()
@@ -640,7 +660,12 @@
       if switchnum != "":
         res = switchnum + "\r"
       else:
-        res = "3\r"
+        if FIRMWARE_REV == 2:
+          res = "3\r"
+        elif FIRMWARE_REV == 3:
+          res = "2\r1\r"
+        else: #placeholder for future revisions - sheesh
+          res = "3\r"
       return (NOT_COMPLETE, res)
       
     elif (i.find(master_search_str1) != (-1)):
@@ -661,7 +686,12 @@
     elif i == outlet_search_str5:
       return (NOT_COMPLETE, "1\r")
     
-    elif i.find(OUTLET_CONTROL) != (-1) or i.find(OUTLET_MANAGE) != (-1):
+    elif i.find(OUTLET_MANAGE) != (-1):
+      #return (NOT_COMPLETE, "1\r")
+      return (NOT_COMPLETE, "\r")
+
+    #elif i.find(OUTLET_CONTROL) != (-1) or i.find(OUTLET_MANAGE) != (-1):
+    elif i.find(OUTLET_CONTROL) != (-1):
       ls = buffer.splitlines()
       portval = port.strip()
       portval = " " + portval + " "



^ permalink raw reply	[flat|nested] 10+ messages in thread
* [Cluster-devel] cluster/fence/agents/apc fence_apc.py
@ 2007-07-11  6:37 jparsons
  0 siblings, 0 replies; 10+ messages in thread
From: jparsons @ 2007-07-11  6:37 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	cluster
Branch: 	RHEL5
Changes by:	jparsons at sourceware.org	2007-07-11 06:37:14

Modified files:
	fence/agents/apc: fence_apc.py 

Log message:
	Fix for bz238106 - new firmware version delta

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/fence/agents/apc/fence_apc.py.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.1.4.3&r2=1.1.4.4

--- cluster/fence/agents/apc/fence_apc.py	2007/06/27 15:10:27	1.1.4.3
+++ cluster/fence/agents/apc/fence_apc.py	2007/07/11 06:37:14	1.1.4.4
@@ -71,9 +71,12 @@
 USERNAME = "User Name :"
 PASSWORD = "Password  :"
 MASTER = "------- MasterSwitch"
+FIRMWARE_STR = "Rack PDU APP"
 
 CONTINUE_INDEX = 0
 
+FIRMWARE_REV = 2
+
 regex_list = list()
 regex_list.append(CONTINUE)
 regex_list.append(SCREEN_END)
@@ -469,6 +472,7 @@
         sys.exit(1)
 
 def log_in(buffer):
+  global FIRMWARE_REV
   lines = buffer.splitlines()
 
   for i in lines:
@@ -481,6 +485,17 @@
         logit("Sending password: %s\n" % passwd)
       return (NOT_COMPLETE, passwd + "\r")
     elif i.find(CONTROL_CONSOLE) != (-1):
+      #while we are here, grab the firmware revision
+      rev_search_lines = buffer.splitlines()
+      for rev_search_line in rev_search_lines: #search screen again
+        rev_dex = rev_search_line.find(FIRMWARE_STR)
+        if rev_dex != (-1): #found revision line
+          scratch_rev = rev_search_line[rev_dex:]
+          v_dex = scratch_rev.find("v")
+          if v_dex != (-1):
+            if scratch_rev[v_dex + 1] == "3": #format is v3.3.4
+              FIRMWARE_REV = 3
+              break
       return (COMPLETE, "1\r") 
 
 def do_status_check(sock):
@@ -538,7 +553,12 @@
       if switchnum != "":
         res = switchnum + "\r"
       else:
-        res = "3\r"
+        if FIRMWARE_REV == 2:
+          res = "3\r"
+        elif FIRMWARE_REV == 3:
+          res = "2\r1\r"
+        else: #placeholder for future revisions 
+          res = "3\r"
       return (NOT_COMPLETE, res, "Status Unknown")
     elif i.find(OUTLET_CONTROL) != (-1):
       ls = buffer.splitlines()
@@ -640,7 +660,12 @@
       if switchnum != "":
         res = switchnum + "\r"
       else:
-        res = "3\r"
+        if FIRMWARE_REV == 2:
+          res = "3\r"
+        elif FIRMWARE_REV == 3:
+          res = "2\r1\r"
+        else: #placeholder for future revisions - sheesh
+          res = "3\r"
       return (NOT_COMPLETE, res)
       
     elif (i.find(master_search_str1) != (-1)):
@@ -661,7 +686,12 @@
     elif i == outlet_search_str5:
       return (NOT_COMPLETE, "1\r")
     
-    elif i.find(OUTLET_CONTROL) != (-1) or i.find(OUTLET_MANAGE) != (-1):
+    elif i.find(OUTLET_MANAGE) != (-1):
+      #return (NOT_COMPLETE, "1\r")
+      return (NOT_COMPLETE, "\r")
+
+    #elif i.find(OUTLET_CONTROL) != (-1) or i.find(OUTLET_MANAGE) != (-1):
+    elif i.find(OUTLET_CONTROL) != (-1):
       ls = buffer.splitlines()
       portval = port.strip()
       portval = " " + portval + " "



^ permalink raw reply	[flat|nested] 10+ messages in thread
* [Cluster-devel] cluster/fence/agents/apc fence_apc.py
@ 2007-06-27 15:10 jparsons
  0 siblings, 0 replies; 10+ messages in thread
From: jparsons @ 2007-06-27 15:10 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	cluster
Branch: 	RHEL5
Changes by:	jparsons at sourceware.org	2007-06-27 15:10:27

Modified files:
	fence/agents/apc: fence_apc.py 

Log message:
	passwd script capable

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/fence/agents/apc/fence_apc.py.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.1.4.2&r2=1.1.4.3

--- cluster/fence/agents/apc/fence_apc.py	2007/06/27 15:03:44	1.1.4.2
+++ cluster/fence/agents/apc/fence_apc.py	2007/06/27 15:10:27	1.1.4.3
@@ -47,6 +47,7 @@
 address = ""
 login = ""
 passwd = ""
+passwd_script = ""
 port = ""
 switchnum = ""
 action = POWER_REBOOT   #default action
@@ -89,6 +90,7 @@
   print "   -l [login]               login name"
   print "   -n [port]                switch port"
   print "   -p [password]            password"
+  print "   -S [path]                script to run to retrieve password"
   print "   -o [action]              Reboot (default), Off, On, or Status"
   print "   -v Verbose               Verbose mode - writes file to /tmp/apclog"
   print "   -V                       Print Version, then exit"
@@ -102,16 +104,16 @@
 
 def main():
 
-  global address, login, passwd, port, action, verbose, logfile, switchnum
+  global address, login, passwd, passwd_script, port, action, verbose, logfile, switchnum
 
   if len(sys.argv) > 1:
     try:
-      opts, args = getopt.getopt(sys.argv[1:], "a:hl:o:n:p:vV", ["help", "output="])
+      opts, args = getopt.getopt(sys.argv[1:], "a:hl:o:n:p:S:vV", ["help", "output="])
     except getopt.GetoptError:
       #print help info and quit
       usage()
       sys.exit(2)
-                                                                                
+      
     for o, a in opts:
       if o == "-v":
         verbose = True
@@ -124,6 +126,8 @@
         login = a
       if o == "-p":
         passwd = a
+      if o == "-S":
+        passwd_script = a
       if o == "-n":
         dex = a.find(":")
         if dex == (-1):
@@ -145,16 +149,17 @@
           sys.exit()
       if o == "-a":
         address = a
-    if address == "" or login == "" or passwd == "" or port == "":
+    if address == "" or login == "" or (passwd == "" and passwd_script == "") or port == "":
       usage()
       sys.exit()
-
+    
   else: #Take args from stdin...
     params = {}
     #place params in dict
     for line in sys.stdin:
       val = line.split("=")
-      params[val[0]] = val[1]
+      if len(val) == 2:
+        params[val[0].strip()] = val[1].strip()
 
     try:
       address = params["ipaddr"]
@@ -167,9 +172,14 @@
       sys.stderr.write("FENCE: Missing login param for fence_apc...exiting")
       sys.exit(1)
     try:
-      passwd = params["passwd"]
-    except KeyError, e:
-      sys.stderr.write("FENCE: Missing passwd param for fence_apc...exiting")
+      if 'passwd' in params:
+        passwd = params["passwd"]
+      if 'passwd_script' in params:
+        passwd_script = params['passwd_script']
+      if passwd == "" and passwd_script == "":
+        raise "missing password"
+    except:
+      sys.stderr.write("FENCE: Missing passwd for fence_apc...exiting")
       sys.exit(1)
     try:
       port = params["port"]
@@ -196,9 +206,67 @@
         action = POWER_REBOOT
     except KeyError, e:
       action = POWER_REBOOT
-
+    
     #### End of stdin section
-
+  
+  
+  # retrieve passwd from passwd_script (if specified)
+  passwd_scr = ''
+  if len(passwd_script):
+    try:
+      if not os.access(passwd_script, os.X_OK):
+        raise 'script not executable'
+      p = os.popen(passwd_script, 'r', 1024)
+      passwd_scr = p.readline().strip()
+      if p.close() != None:
+        raise 'script failed'
+    except:
+      sys.stderr.write('password-script "%s" failed\n' % passwd_script)
+      passwd_scr = ''
+    
+  if passwd == "" and passwd_scr == "":
+    sys.stderr.write('password not available, exiting...')
+    sys.exit(1)
+  elif passwd == passwd_scr:
+    pass
+  elif passwd and passwd_scr:
+    # execute self, with password_scr as passwd,
+    # if that fails, continue with "passwd" argument as password
+    if len(sys.argv) > 1:
+      comm = sys.argv[0]
+      skip_next = False
+      for w in sys.argv[1:]:
+        if skip_next:
+          skip_next = False
+        elif w in ['-p', '-S']:
+          skip_next = True
+        else:
+          comm += ' ' + w
+      comm += ' -p ' + passwd_scr
+      ret = os.system(comm)
+      if ret != -1 and os.WIFEXITED(ret) and os.WEXITSTATUS(ret) == 0:
+        # success
+        sys.exit(0)
+      else:
+        sys.stderr.write('Use of password from "passwd_script" failed, trying "passwd" argument\n')
+    else: # use stdin
+      p = os.popen(sys.argv[0], 'w', 1024)
+      for par in params:
+        if par not in ['passwd', 'passwd_script']:
+          p.write(par + '=' + params[par] + '\n')
+      p.write('passwd=' + passwd_scr + '\n')
+      p.flush()
+      if p.close() == None:
+        # success
+        sys.exit(0)
+      else:
+        sys.stderr.write('Use of password from "passwd_script" failed, trying "passwd" argument\n')
+  elif passwd_scr:
+    passwd = passwd_scr
+  # passwd all set
+  
+  
+  
   ### Order of events
   # 0) If verbose, prepare log file handle
   # 1) Open socket
@@ -651,7 +719,7 @@
       for l in ls:
         words = l.strip().split()
         if len(words) > 3:
-          if words[3].strip() == portval:
+          if '----' not in words[0] and words[3].strip() == portval:
             outlet_str = words[0]
             dex = outlet_str.find("-")
             if dex <= (0):



^ permalink raw reply	[flat|nested] 10+ messages in thread
* [Cluster-devel] cluster/fence/agents/apc fence_apc.py
@ 2007-06-27 15:03 jparsons
  0 siblings, 0 replies; 10+ messages in thread
From: jparsons @ 2007-06-27 15:03 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	cluster
Branch: 	RHEL5
Changes by:	jparsons at sourceware.org	2007-06-27 15:03:45

Modified files:
	fence/agents/apc: fence_apc.py 

Log message:
	fix for new firmware

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/fence/agents/apc/fence_apc.py.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.1.4.1&r2=1.1.4.2

--- cluster/fence/agents/apc/fence_apc.py	2007/01/31 20:33:54	1.1.4.1
+++ cluster/fence/agents/apc/fence_apc.py	2007/06/27 15:03:44	1.1.4.2
@@ -58,6 +58,7 @@
 CONTROL_CONSOLE = "Control Console -----"
 DEVICE_MANAGER = "Device Manager -----"
 OUTLET_CONTROL = "- Outlet Control/Configuration -----"
+OUTLET_MANAGE = "- Outlet Management -----"
 CONTROL_OUTLET = "- Control Outlet -----"
 CONTROL_OUTLET_2 = "- Outlet Control "
 COMMAND_SUCCESS = "Command successfully issued."
@@ -592,7 +593,7 @@
     elif i == outlet_search_str5:
       return (NOT_COMPLETE, "1\r")
     
-    elif i.find(OUTLET_CONTROL) != (-1):
+    elif i.find(OUTLET_CONTROL) != (-1) or i.find(OUTLET_MANAGE) != (-1):
       ls = buffer.splitlines()
       portval = port.strip()
       portval = " " + portval + " "



^ permalink raw reply	[flat|nested] 10+ messages in thread
* [Cluster-devel] cluster/fence/agents/apc fence_apc.py
@ 2007-02-27 15:53 kupcevic
  0 siblings, 0 replies; 10+ messages in thread
From: kupcevic @ 2007-02-27 15:53 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	cluster
Changes by:	kupcevic at sourceware.org	2007-02-27 15:53:15

Modified files:
	fence/agents/apc: fence_apc.py 

Log message:
	Fix for bz230134 (can't fence port 1:1 with fence_apc)

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/fence/agents/apc/fence_apc.py.diff?cvsroot=cluster&r1=1.3&r2=1.4

--- cluster/fence/agents/apc/fence_apc.py	2007/02/14 15:42:26	1.3
+++ cluster/fence/agents/apc/fence_apc.py	2007/02/27 15:53:15	1.4
@@ -718,7 +718,7 @@
       for l in ls:
         words = l.strip().split()
         if len(words) > 3:
-          if words[3].strip() == portval:
+          if '----' not in words[0] and words[3].strip() == portval:
             outlet_str = words[0]
             dex = outlet_str.find("-")
             if dex <= (0):



^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2007-10-09 14:56 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-02-27 16:07 [Cluster-devel] cluster/fence/agents/apc fence_apc.py kupcevic
  -- strict thread matches above, loose matches on Subject: below --
2007-10-09 14:56 jparsons
2007-07-17 18:38 rmccabe
2007-07-17 18:34 rmccabe
2007-07-12  3:45 jparsons
2007-07-12  3:39 jparsons
2007-07-11  6:37 jparsons
2007-06-27 15:10 jparsons
2007-06-27 15:03 jparsons
2007-02-27 15:53 kupcevic

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 NNTP newsgroup(s).