示例#1
0
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()
示例#2
0
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()
示例#3
0
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