Jy@*>ddlZddlmZmZddlmZddlmZddlm Z m Z ddl m Z ddlmZddlmZGd d eZGd d eZdS) N)insertselect) sessionmaker)LveStatsPlugin) get_chunks reboot_lock)user)history)serversc(eZdZdZdZdZddZdS)DBSavercptjd|_d|_d|_d|_d|_dS)Nzplugin.DBSaverr< localhost)logging getLoggerlognowconfigperiod 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/dbsaver.py__init__zDBSaver.__init__s5$%566  $ct|d|j|_|d|j|_dS)N db_timeoutr)intgetrrrrs r set_configzDBSaver.set_configs<&**\4;??@@ K@@rc>tt}ttgtj|jk}tt}tjtj|jk}t5|j }| } | |}|j r}|} | C| d|dkr0| |d|dinG| ||j|dn#| ||j|dg} |diD]\} } | id| dt't)| jd| jd| jd | jd | jd t't)| jd | jd t't)| jd| jd| jd| jdt't)|j d|jd| j!dt't)| j"d| j#| j$t't)| j%| j&| j'| j(| j)t't)| j*dtW| D]?} | || #tX$r|-||| wxYw|.n##t^$r|0wxYw |1n#|1wxYw ddddS#1swxYwYdS)N lve_version LVE_VERSION)rr$ lve_usageidcpu cpu_limit cpu_faultmep mep_limitioio_limitmem mem_limit mem_fault mep_faultcreatedrlmemphymemphy memphy_fault)lnprocnproc nproc_faultio_fault iops_faultliopsiops)2rr rr wherer __table__updaterengineconnectbeginexecute returns_rowsfetchonevaluesr itemsappendrround cpu_usagelcpur*r+lepio_usager- mem_usagelmemr1r2rr4r5r6r7r8r9r:r;r<r=r OverflowError_try_executing_small_chunkscommit Exceptionrollbackclose)rlve_datasql_insert_querysql_select_serverssql_insert_serverssql_update_serversconntxrowressql_insert_listlve_idvchunks rrDzDBSaver.execute sk!'??#WI..44W5F$.5XYY#G__$.5577==g>OSWSa>abb ]]9 9 ;&&((DB6 ll#566#t,,..C}--1HHH LL);)B)BMS[\iSjCk)l)lmmm %74>_ghu_v wwwwLL!3t~[cdq[rLsss"$!)k2!>!>!D!D!F!FIFA#** &!3uQ['9'9#:#:((  "15  ( !#eAJ&7&7"8"8'"3uQ['9'9#:#:(((&s5??';';(&qy %c%//&:&:!"+AN#$'(h%(qw%8%8+,=() *+,%&W$'af $6$61:(88E %5u====(88?OQVWWW         s9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 sU6.P%I:N2 M76N27#NN21O+2 OO+P+PPPP ct||D]F} |||#t$r |jd|YdSwxYwdS)aTry executing smaller chunks so that it will be feasible to log the one causing error. In case when data contains value which is bigger than column type can handle, OveflowError is raised. :param sqlalchemy.engine.Connection conn: db engine :param sqlalchemy.sql.expression.Insert query: query to execute :param typing.List[typing.Dict] insert_params: list of params to insert :param int chunk_length: length of small chunks zOverflow detected in %sN)rrDrQrerror)rr\query insert_paramssmall_chunk_size small_chunks rrRz#DBSaver._try_executing_small_chunksbs&m5EFF  K  UK0000    8+FFF   s+%AAN)rd)__name__ __module__ __qualname__rr"rDrRrrr r s\%%%AAA@@@Drr c&eZdZdZdZdZdZdS)DbUsernamesSaverc0d|_d|_d|_dS)NiT)rrAenabledrs rrzDbUsernamesSaver.__init__ts   rch|dddk|_dS)Ncollect_usernamesfalsetrue)r lowerrrr!s rr"zDbUsernamesSaver.set_configys-zz"5w??EEGG6Q rc||_dS)N)rA)rrAs r set_db_enginezDbUsernamesSaver.set_db_engine|s  rc|jrt|j}|dD]s}t}|\|_|_|_ |||P#t$r| YpwxYw| | dSdS)N)bindusers) rrrrA user_classuid user_namermergeflushrTrUrSrV)rrWsession user_infor s rrDzDbUsernamesSaver.executes < 4l 44466G%g. ' ' !||;D8$.$.'MM$'''MMOOOO '''$$&&&&&' NN    MMOOOOO  s)A==BBN)rkrlrmrr"ryrDrnrrrprpssS RRRrrp)r sqlalchemyrrsqlalchemy.ormrlvestats.core.pluginrlvestats.lib.commons.funcrr lvestats.ormr r}lvestats.orm.historyr lvestats.orm.serversr r rprnrrrs%%%%%%%%''''''//////========++++++((((((((((((\\\\\n\\\~~r