婀A"ddlZddlZddlZddlmZddlmZddlmZddl Z ddl m Z m Z ddlmZddlmZmZmZmZdZGd d e ZdS) N)func)OperationalError) sessionmaker)LveStatsPluginLveStatsPluginTerminated) reboot_lock)history history_gov history_x60incidentshamancHeZdZdZdZdZdZedZdZ dZ dS) HistoryCleanercd|_d|_d|_d|_d|_t jd|_d|_d|_ dS)Ni`Trsqlite) periodbatchexecute_timeoutkeep_history_days db_enginelogging getLoggerlogdb_type server_idselfs /builddir/build/BUILDROOT/lve-stats-4.3.2-1.el9.x86_64/opt/cloudlinux/venv/lib/python3.11/site-packages/lvestats/plugins/generic/cleaners.py__init__zHistoryCleaner.__init__sL   !!#$%566 c||_dS)N)r)r engines r! set_db_enginezHistoryCleaner.set_db_engine%s r#c,t|d|j|_t|dddz|_|d|j|_|dd|_dS)Nrr<rr localhost)intgetrrrr)r configs r! set_configzHistoryCleaner.set_config(sv!$VZZ0CTE[%\%\!]!]&**Xr2233b8 zz)T\:: K==r#cLt|j|jdzdzdzz S)Nr()r*nowrrs r!time_thresholdzHistoryCleaner.time_threshold.s)48d4r9B>CCDDDr#ctjtjjjD]_}|stjjdt|i}| |`dS)Nuid) oslistdirlvestatslibsnapshot SNAPSHOT_PATHisdigitSnapshotr* delete_old)ts_tor3snaps r!clean_old_snapshotsz"HistoryCleaner.clean_old_snapshots1sx:hl3ABB # #C;;== <(115#c((2CDDD OOE " " " "  # #r#c d|}|jd|tjt jjj r| ||jdt5t|j }tj} ||t"t"j|||t&t&j|||t*t*j|||t3jt6jt6j|jkdp|}t?tAtC||j"ztC||j"D]\}}||t6t6j||tj|z |j#kr$|jd|||z dz n<||t6t6j||n#tH$rE}|%|j&tO|Yd}~nfd}~wtP$rV}|jd|%|)tQ|d}~wwxYwtj|z dz} |jd | |)nM#tj|z dz} |jd | |)wxYw ddddS#1swxYwYdS) Nz2Records with timestamp less then %d will be erasedz"Deleting old records from database)bindrzIterations: %s. Deleted: %shrz&Cleaner terminated. Trying to rollbackizExecution time: %d)*r1rdebugr4pathexistsr6r7r8r9r?rrrtimeit default_timerdeleter createdr tsr incident_end_timecommitqueryrminr filterrone enumerateranger*rrrrollbackwarningstrrclose) r lve_datat_minsession start_time first_created iteration timestampeelapseds r!executezHistoryCleaner.execute9s##%% KUSSS 7>>(,/= > > ,  $ $U + + + ;<<< ]]# # 7l77799G-//J  G[+2EuMMM G[+.%HHH GXx/I5QQQ   MM$(7?";";<<CCGDUY]YgDghhllnnopq-6eC $F3W=== "/11J>$F3W=== G# # # # # # # # # # # # # # # # # # s^ 1P%G>KO  M>;LO  M>(AM99M>>O A P% A PP%%P),P)c||||k|j|jkddS)NF)synchronize_session)rLrNrrG)r rXtable ts_columnlimits r!rGzHistoryCleaner.deleteesW e##I$5u$.7XYY`` % a     r#N) __name__ __module__ __qualname__r"r&r-r1 staticmethodr?r_rGr#r!rrs   >>> EEE##\#* * * X     r#r)rr4rE sqlalchemyrsqlalchemy.excrsqlalchemy.ormrlvestats.lib.snapshotr6lvestats.core.pluginrrlvestats.lib.commons.funcr lvestats.ormr r r r __author__rrir#r!rrs ++++++''''''IIIIIIII111111DDDDDDDDDDDD  P P P P P ^P P P P P r#