Rapport de bug automatique.
darcs-hash:20040907161641-41617-48930368bbf4bf511760b2121231597a39b49955.gz
This commit is contained in:
parent
1e40e973bd
commit
319f5636a4
1 changed files with 42 additions and 9 deletions
|
@ -17,13 +17,17 @@ Les fonction select permettent de choisir un objet dans la base
|
||||||
Retournent None si pas d'objet trouvé.
|
Retournent None si pas d'objet trouvé.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
### Rapport de bug automatique
|
||||||
|
# Destinataires, si vide n'envoi rien
|
||||||
|
To = 'fred@crans.org'
|
||||||
|
|
||||||
import string, os, sys
|
import string, os, sys
|
||||||
from whos import aff
|
from whos import aff
|
||||||
import time, signal, getopt
|
import time, signal, getopt
|
||||||
|
|
||||||
import affich_tools, config
|
import affich_tools, config
|
||||||
from lock import make_lock, remove_lock
|
from lock import make_lock, remove_lock
|
||||||
from ldap_crans import adherent, machine, crans_ldap, crans, club, blacklist_items, isadm, isdeconnecteur, ann_scol, droits_possibles
|
from ldap_crans import adherent, machine, crans_ldap, crans, club, blacklist_items, isadm, isdeconnecteur, ann_scol, droits_possibles, smtpserv
|
||||||
|
|
||||||
def dialog(arg) :
|
def dialog(arg) :
|
||||||
return affich_tools.dialog(u'Gestion des adhérents et machines du Crans',arg)
|
return affich_tools.dialog(u'Gestion des adhérents et machines du Crans',arg)
|
||||||
|
@ -1504,7 +1508,7 @@ def killed(a,z) :
|
||||||
|
|
||||||
if __name__ == '__main__' :
|
if __name__ == '__main__' :
|
||||||
global db, debug
|
global db, debug
|
||||||
debug = 1
|
debug = 0
|
||||||
|
|
||||||
signal.signal(signal.SIGTERM,killed) # Interception du signal TERM
|
signal.signal(signal.SIGTERM,killed) # Interception du signal TERM
|
||||||
signal.signal(signal.SIGINT,signal.SIG_DFL) # Comportement normal de Ctrl-C
|
signal.signal(signal.SIGINT,signal.SIG_DFL) # Comportement normal de Ctrl-C
|
||||||
|
@ -1540,14 +1544,43 @@ if __name__ == '__main__' :
|
||||||
exit = c
|
exit = c
|
||||||
except :
|
except :
|
||||||
if not debug : os.system('clear')
|
if not debug : os.system('clear')
|
||||||
print """Une erreur fatale c'est produite durant l'exécution.
|
print """Une erreur fatale c'est produite durant l'exécution."""
|
||||||
Pour l'amélioration de ce programme merci de prévenir nounou en spécifiant la
|
|
||||||
marche à suivre pour reproduire cette erreur."""
|
# Report de bug
|
||||||
|
import traceback
|
||||||
|
from cStringIO import StringIO
|
||||||
|
from smtplib import SMTP
|
||||||
|
|
||||||
|
s = StringIO()
|
||||||
|
sys.stderr = s
|
||||||
|
traceback.print_exc()
|
||||||
|
sys.stderr = sys.__stderr__
|
||||||
|
traceback = s.getvalue()
|
||||||
|
try :
|
||||||
|
if To :
|
||||||
|
# Paramètres pour le mail
|
||||||
|
From = os.getlogin() + '@crans.org'
|
||||||
|
|
||||||
|
entete_mail = """From: Crans <%s>
|
||||||
|
To: %s
|
||||||
|
Subject: Bugreport %s
|
||||||
|
|
||||||
|
""" % ( From, To, sys.argv[0].split('/')[-1] )
|
||||||
|
|
||||||
|
# Envoi mail
|
||||||
|
conn = SMTP(smtpserv)
|
||||||
|
conn.sendmail(From, To , entete_mail + traceback )
|
||||||
|
conn.quit()
|
||||||
|
sys.stderr.write("Un rapport de bug à été automatiquement envoyé.\n")
|
||||||
|
else :
|
||||||
|
print "Merci de faire parvenir un rapport de bug à nounou"
|
||||||
|
except :
|
||||||
|
sys.stderr.write("Impossible d'envoyer le rapport de bug.\n")
|
||||||
|
|
||||||
if debug :
|
if debug :
|
||||||
print '-'*40
|
print '-'*40
|
||||||
print 'Détails techniques :'
|
print 'Détails techniques :'
|
||||||
import traceback
|
sys.stderr.write(traceback)
|
||||||
traceback.print_exc()
|
|
||||||
print '-'*40
|
print '-'*40
|
||||||
exit = 1
|
exit = 1
|
||||||
|
|
||||||
|
@ -1563,9 +1596,9 @@ marche
|
||||||
if serv :
|
if serv :
|
||||||
mn = int(time.strftime('%M'))
|
mn = int(time.strftime('%M'))
|
||||||
# Restart toutes les 10 min : 03, 13, 23, 33, 43, 53
|
# Restart toutes les 10 min : 03, 13, 23, 33, 43, 53
|
||||||
t = ( 14 - mn % 10 ) % 10 # On prend en plus une marge de 1 min
|
t = ( 17 - mn % 10 ) % 10 # On prend en plus une marge de 4 min
|
||||||
if t == 0 : t = 10
|
if t == 0 : t = 10
|
||||||
print "Les modifications apportées à la base seront prises en compte dans %imin environ +/- 3 jours." % t
|
print "Les modifications apportées à la base seront prises en compte dans %imin environ." % t
|
||||||
if debug :
|
if debug :
|
||||||
print "Les services suivants seront redémarrés: "
|
print "Les services suivants seront redémarrés: "
|
||||||
print ', '.join(serv.keys())
|
print ', '.join(serv.keys())
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue