Bug 2218 - la mise à jour de simpatix51 a échoué (ClusterConfigurator)
- Correction : bug introduit récemment lors du refactoring
This commit is contained in:
parent
7e8edeab20
commit
05d21bc427
48
Util.py
48
Util.py
|
@ -1,12 +1,14 @@
|
||||||
import time
|
import time
|
||||||
import subprocess
|
import subprocess
|
||||||
import StringIO
|
# import StringIO
|
||||||
import re
|
import re
|
||||||
from wol import *
|
# from wol import *
|
||||||
import os
|
# import os
|
||||||
import signal
|
# import signal
|
||||||
import smtplib
|
import smtplib
|
||||||
from email.MIMEText import MIMEText
|
from email.MIMEText import MIMEText
|
||||||
|
from HTMLParser import HTMLParser
|
||||||
|
|
||||||
|
|
||||||
def sendTextMail(strFrom, to, strSubject, text):
|
def sendTextMail(strFrom, to, strSubject, text):
|
||||||
# from = "SimpaCluster <guillaume.raffy@univ-rennes1.fr>"
|
# from = "SimpaCluster <guillaume.raffy@univ-rennes1.fr>"
|
||||||
|
@ -20,10 +22,12 @@ def sendTextMail(strFrom, to, strSubject, text ):
|
||||||
smtp.sendmail(strFrom, [to], mail.as_string())
|
smtp.sendmail(strFrom, [to], mail.as_string())
|
||||||
smtp.close()
|
smtp.close()
|
||||||
|
|
||||||
|
|
||||||
class Error(Exception):
|
class Error(Exception):
|
||||||
def __init__(self, strMessage):
|
def __init__(self, strMessage):
|
||||||
self.m_strMessage = strMessage
|
self.m_strMessage = strMessage
|
||||||
|
|
||||||
|
|
||||||
def getHostName():
|
def getHostName():
|
||||||
(returnCode, stdout, stderr) = executeProgram(['hostname', '-s'])
|
(returnCode, stdout, stderr) = executeProgram(['hostname', '-s'])
|
||||||
if returnCode != 0:
|
if returnCode != 0:
|
||||||
|
@ -31,11 +35,12 @@ def getHostName():
|
||||||
strHostName = re.sub(r"\n", "", stdout)
|
strHostName = re.sub(r"\n", "", stdout)
|
||||||
return strHostName
|
return strHostName
|
||||||
|
|
||||||
|
|
||||||
def log(message):
|
def log(message):
|
||||||
print time.asctime(time.localtime()) + ' : ' + message
|
print time.asctime(time.localtime()) + ' : ' + message
|
||||||
|
|
||||||
def executeProgram( astrArguments ):
|
|
||||||
|
|
||||||
|
def executeProgram(astrArguments):
|
||||||
# log('executeProgram : program [%s]' % (','.join(astrArguments)))
|
# log('executeProgram : program [%s]' % (','.join(astrArguments)))
|
||||||
popen = subprocess.Popen( astrArguments, bufsize=1, shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE) # bufsize=1 seems to prevent deadlocks that happen 50% the time
|
popen = subprocess.Popen( astrArguments, bufsize=1, shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE) # bufsize=1 seems to prevent deadlocks that happen 50% the time
|
||||||
stdout, stderr = popen.communicate()
|
stdout, stderr = popen.communicate()
|
||||||
|
@ -45,6 +50,7 @@ def executeProgram( astrArguments ):
|
||||||
# os.kill(popen.pid, signal.SIGTERM)
|
# os.kill(popen.pid, signal.SIGTERM)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
def executeCommand(command):
|
def executeCommand(command):
|
||||||
"""
|
"""
|
||||||
executes the shell command such as 'set x=1; myprog $x'
|
executes the shell command such as 'set x=1; myprog $x'
|
||||||
|
@ -57,10 +63,37 @@ def executeCommand( command ):
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
def executeCommandOn(strTargetMachineName, strCommand):
|
||||||
|
"""
|
||||||
|
execute command on a local or remote machine (using ssh then)
|
||||||
|
"""
|
||||||
|
# print("comparing %s and %s" % (Lib.Util.getHostName(), strTargetMachineName))
|
||||||
|
if getHostName() == strTargetMachineName:
|
||||||
|
return executeCommand(strCommand)
|
||||||
|
else:
|
||||||
|
return executeProgram(['ssh', strTargetMachineName, "%s" % strCommand])
|
||||||
|
|
||||||
|
|
||||||
def getUpsStatus():
|
def getUpsStatus():
|
||||||
|
|
||||||
|
class MyHTMLParser(HTMLParser):
|
||||||
|
def __init__(self):
|
||||||
|
HTMLParser.__init__(self)
|
||||||
|
self.TokenList = []
|
||||||
|
|
||||||
|
def handle_data( self, data):
|
||||||
|
data = data.strip()
|
||||||
|
if data and len(data) > 0:
|
||||||
|
self.TokenList.append(data)
|
||||||
|
# print data
|
||||||
|
|
||||||
|
def GetTokenList(self):
|
||||||
|
return self.TokenList
|
||||||
|
import urllib2
|
||||||
|
|
||||||
try:
|
try:
|
||||||
url = 'http://Net Vision:public@129.20.27.119/PageMonComprehensive.html'
|
url = 'http://Net Vision:public@129.20.27.119/PageMonComprehensive.html'
|
||||||
f = urllib.urlopen(url)
|
f = urllib2.urlopen(url)
|
||||||
res = f.read()
|
res = f.read()
|
||||||
f.close()
|
f.close()
|
||||||
except:
|
except:
|
||||||
|
@ -68,9 +101,10 @@ def getUpsStatus():
|
||||||
return
|
return
|
||||||
h = MyHTMLParser()
|
h = MyHTMLParser()
|
||||||
h.feed(res)
|
h.feed(res)
|
||||||
tokensList = h.GetTokenList()
|
tokensList = h.GetTokenList() # @UnusedVariable
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
from SimpaDbUtil import wakeUp
|
||||||
"""
|
"""
|
||||||
for i in range(30):
|
for i in range(30):
|
||||||
machineName = 'simpatix%d' % (i+10)
|
machineName = 'simpatix%d' % (i+10)
|
||||||
|
|
Loading…
Reference in New Issue