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é.
|
||||
"""
|
||||
|
||||
### Rapport de bug automatique
|
||||
# Destinataires, si vide n'envoi rien
|
||||
To = 'fred@crans.org'
|
||||
|
||||
import string, os, sys
|
||||
from whos import aff
|
||||
import time, signal, getopt
|
||||
|
||||
import affich_tools, config
|
||||
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) :
|
||||
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__' :
|
||||
global db, debug
|
||||
debug = 1
|
||||
debug = 0
|
||||
|
||||
signal.signal(signal.SIGTERM,killed) # Interception du signal TERM
|
||||
signal.signal(signal.SIGINT,signal.SIG_DFL) # Comportement normal de Ctrl-C
|
||||
|
@ -1540,14 +1544,43 @@ if __name__ == '__main__' :
|
|||
exit = c
|
||||
except :
|
||||
if not debug : os.system('clear')
|
||||
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."""
|
||||
print """Une erreur fatale c'est produite durant l'exécution."""
|
||||
|
||||
# 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 :
|
||||
print '-'*40
|
||||
print 'Détails techniques :'
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
sys.stderr.write(traceback)
|
||||
print '-'*40
|
||||
exit = 1
|
||||
|
||||
|
@ -1563,9 +1596,9 @@ marche
|
|||
if serv :
|
||||
mn = int(time.strftime('%M'))
|
||||
# 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
|
||||
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 :
|
||||
print "Les services suivants seront redémarrés: "
|
||||
print ', '.join(serv.keys())
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue