def archive_sql_protocol(user): """Löscht die Daten aus der Protokolltabelle und schreibt sie in eine Archivdatei. Code weitestgehend von MSG übernommen.""" tmp_yek = "2001.12.31" # ?? :-) # diesen abschnitt. hier wird zu erst in eine datei archiviert, dann gelöscht # zeit generieren und fileobjekt erstellen. local_time_insec = time.time() local_time_tupel = time.localtime(local_time_insec) zeitstempel = time.strftime("%d%m%y%H%M%S", local_time_tupel) zeitstempel2 =time.strftime("%d.%m.%y um %H:%M:%S", local_time_tupel) pfad = os.path.join(config.PROTOCOL_DIR, zeitstempel + ".txt") #if os.exists(PROTOCOL_DIR) != true: #mkdir(PROTOCOL_DIR) fdatei = open(pfad, "wb") # jede zeile aus der protokolltabelle wird in die datei geschrieben protokolleintraege = ProtokollList(where = '', order='nr') rot = rotor.newrotor(tmp_yek) from ebkus.app_surface.protokoll_templates import datei_t for p in protokolleintraege: fdatei.write(rot.encryptmore(datei_t % p)) fdatei.write(rot.encryptmore('<br>')) fdatei.write(rot.encryptmore("""<br>****************************<br> Die Protokolltabellen wurden am %s von %s geloescht und in die Datei %s archiviert. <br>****************************<br>""" % (zeitstempel2, user, pfad))) fdatei.close() # Maxist in tabid für protokolltabelle wird gesetzt prottabid = TabellenID(table_name = 'protokoll', dbsite = cc('dbsite', config.SITE)) prottabid.update({'maxist': 0}) # protokolltabelle wird gelöscht protokolleintraege2 = ProtokollList(where = '') protokolleintraege2.deleteall()
def set_protocol_limit(limit): """Setzte die maximale Anzahl der Einträge in die Protokolltabelle. Wenn diese Anzal überschritten wird, wird automatisch archiviert. """ try: temp_off() limit = min(int(limit), 200000) prottabid = TabellenID(table_name = 'protokoll', dbsite = cc('dbsite', config.SITE)) prottabid.update({'maxid': limit}) finally: temp_on()
def _getNewId(self): """Überschreibt die Standardmethode, um neue Werte für Schlüsselfelder zu erzeugen, für die Protokolltabelle. """ tid = TabellenID(table_name = self.table, dbsite = cc('dbsite', config.SITE)) maxist = tid['maxist'] max = tid['maxid'] min = tid['minid'] if maxist: newid = maxist + 1 else: newid = 1 if newid > max: raise ProtokolltabelleVoll( "Die Protokolltabelle hat den gesetzten Füllstand erreicht: %s" % max) tid.update({'maxist' : newid}) return newid