jueves, 10 de junio de 2010

Stonith ibmrsa-telnet Suse SLES11

Tras probar a fondo la anterior entrada, descubrí que Stohith seguia sin funcionar correctamente. Los filesystem compartidos seguían bloqueados hasta el join del nodo caido. Buscando, mucho, encontré un patch que al parecer me esta dando buenos resultados, por fin. A la espera aun de la respuesta oficial de Novell ya que este parche no es "oficial". El parche es el siguiente:

--- /usr/lib64/stonith/plugins/external/ibmrsa-telnet 2010-03-25 22:26:21.476805235 +0100
+++ /tmp/ibmrsa-telnet.new 2010-03-25 22:26:08.597800250 +0100
@@ -88,29 +88,29 @@
return line

def login(self, user, passwd):
- self.write("\r")
- line = self.expect(['^login : ', '^username: '], self._timeout)
+ time.sleep(1)
+ line = self.expect(['\nlogin : ', '\nusername: '], self._timeout)
self.write(user)
self.write('\r')
- line = self.expect(['^Password: ', '^password: '], self._timeout)
+ line = self.expect(['\nPassword: ', '\npassword: '], self._timeout)
self.write(passwd)
self.write('\r')
- line = self.expect(['^system>', '^> '], self._timeout)
+ line = self.expect(['\nsystem>', '> '], self._timeout)

def reset(self):
self.write('power cycle\r')
- line = self.expect(['^ok'], self._timeout)
- line = self.expect(['^system>', '^> '], self._timeout)
+ line = self.expect(['\nok'], self._timeout)
+ line = self.expect(['\nsystem>', '> '], self._timeout)

def on(self):
self.write('power on\r')
- line = self.expect(['^ok'], self._timeout)
- line = self.expect(['^system>', '^> '], self._timeout)
+ line = self.expect(['\nok'], self._timeout)
+ line = self.expect(['\nsystem>', '> '], self._timeout)

def off(self):
self.write('power off\r')
- line = self.expect(['^ok'], self._timeout)
- line = self.expect(['^system>', '^> '], self._timeout)
+ line = self.expect(['\nok'], self._timeout)
+ line = self.expect(['\nsystem>', '> '], self._timeout)

def exit(self):
self.write('exit\r')
@@ -154,7 +154,7 @@
time.localtime(ct)), msecs)

def _echo_debug(self, *args):
- subprocess.call("ha_log.sh debug '%s'" % ' '.join(args), shell=True)
+ self.echo_log('debug', *args)

def echo(self, *args):
what = ''.join([str(x) for x in args])
@@ -164,7 +164,7 @@
self._echo_debug("STDOUT:", what)

def echo_log(self, level, *args):
- subprocess.call("ha_log.sh %s '%s'" % (level,' '.join(args)), shell=True)
+ subprocess.call(('ha_log.sh', level) + args)

def _get_connection(self):
if not self._connection:
@@ -172,6 +172,7 @@
self._echo_debug("Connect to '%s'" %
(self._parameters['ip_address'],))
c.open(self._parameters['ip_address'])
+ self._echo_debug("Connection established")
c.login(self._parameters['username'],
self._parameters['password'])
self._connection = c

Parchearlo contra el ibmrsa-telnet original de sles11 (/usr/lib64/stonith/plugins/external/
ibmrsa-telnet)

Extraido de: http://www.gossamer-threads.com/lists/engine?do=post_attachment;postatt_id=4604;list=linuxha

http://www.gossamer-threads.com/lists/linuxha/pacemaker/62991

No hay comentarios:

Publicar un comentario