§ HeNja(ãóz—ddlmZddlmZddlmZddlZddlZddlZddlZddlZddl Z ddl Z ddl m Z m Z ddlmZmZmZmZmZmZmZddlmZmZmZmZmZmZddl Z e je¦«Ze  e j!¦«dd„Z"dd „Z#d „Z$d „Z%d „Z&d „Z'd„Z(d„Z)edkre)ej*dd…ŽdSdS)é)Úprint_function)Údivision)Úabsolute_importN)Úget_boolean_paramÚCL_CONFIG_FILE)Ú QuotaWrapperÚNoSuchPackageExceptionÚNoSuchUserExceptionÚIncorrectLimitFormatExceptionÚInsufficientPrivilegesExceptionÚGeneralExceptionÚQuotaDisabledException)Ú print_textÚ print_csvÚ print_jsonÚprint_text_errorÚprint_csv_errorÚprint_json_errorcó—| ¦«dkrdS tj|¦«j}t |¦«S#t $rt |¦«‚wxYw)zC Checks if username is valid one and returns UID as string ÚdefaultÚ0)ÚlowerÚpwdÚgetpwnamÚpw_uidÚstrÚKeyErrorr )ÚusernameÚuids úG/opt/cloudlinux/venv/lib64/python3.11/site-packages/clquota/cl_quota.pyÚ!check_username_and_convert_to_uidr!0si€ð‡~‚~ÑÔ˜9Ò$Ð$؈sð,ÝŒl˜8Ñ$Ô$Ô+ˆÝ�3‰xŒxˆøÝ ð,ð,ð,Ý! (Ñ+Ô+Ð+ð,øøøs œ'AÁAcó4—tjd¦«}| |¦«}|st|¦«‚| d¦«}|dkr|S t jt|¦«¦«n#t$rt|¦«‚wxYw|S)z< Checks if UID is valid one and retuns it as string z(\d+)ér) ÚreÚcompileÚsearchr ÚgrouprÚgetpwuidÚintr)rÚpÚpms r Ú check_uidr,=s¡€õ Œ �8ÑÔ€AØ �Š�#‰Œ€BØ ð'Ý! #Ñ&Ô&Ð&Ø �(Š(�1‰+Œ+€CØ ˆc‚z€z؈ ð'Ý Œ •S˜‘X”XÑÔÐÐøÝ ð'ð'ð'Ý! #Ñ&Ô&Ð&ð'øøøà €Js Á!A;Á;Bcó*—tjd¦«}| tj¦«tj d¬¦«}tjd¬¦«}| |¦«| |¦«|S)z4 Sets syslog logger and returns its handler Úclquotaz/dev/log)Úaddressz"%(name)s:%(levelname)s %(message)s)Úfmt) ÚloggingÚ getLoggerÚsetLevelÚINFOÚhandlersÚ SysLogHandlerÚ FormatterÚ setFormatterÚ addHandler)ÚloggerÚ sysloggerÚ formatters r Úsetup_system_logr=Os‚€õÔ ˜yÑ )Ô )€FØ ‡O‚O•G”LÑ!Ô!Ð!ÝÔ ×.Ò.°zÐ.ÑBÔB€IÝÔ!Ð&JÐKÑKÔK€IØ ×Ò˜9Ñ%Ô%Ð%Ø ×Ò�iÑ Ô Ð Ø €MócóN—td¦«tdtjdzdz¦«td¦«td¦«td¦«td¦«td¦«td ¦«td ¦«td ¦«td ¦«td ¦«td¦«td¦«td¦«td¦«td¦«td¦«dS)NÚzUsage: rz [OPTIONS]z9If no options given prints quota statistics for all userszOptions:z/ -u | --user : specifies the userz2 -U | --user-id : specifies the user IDz• -S | --soft-limit : sets the soft limit for a user. Pass 0 or 'default' to set package default limit. Pass -1 or 'unlimited' to cancel limitz• -H | --hard-limit : sets the hard limit for a user. Pass 0 or 'default' to set package default limit. Pass -1 or 'unlimited' to cancel limitzC -V | --csv : returns data as comma separated valuesz1 -J | --json : returns data as jsonzE -p | --package : specifies a package to set or get limitsz2 -P | --package-limits : prints package limitszZ -a | --all-package-limits : prints all package limits (including packages without limits)zU -Y | --sync : synchronizes packages and users limits with the databasezD -C | --cache-content : cache quota data to a file the databasezR -F | --force : save user quotas even when they are equal to defaultsz§ --check : Deprecated. Check if quotas is enabled/activated/suported; if disabled show diagnostic information; using with --user or --user-id options)ÚprintÚsysÚargv©r>r ÚusagerE\sF€Ý ˆ"�I„I€IÝ ˆ)•c”h˜q”kÑ ! LÑ 0Ñ1Ô1Ð1Ý Ð EÑFÔFÐFÝ ˆ*ÑÔÐÝ ˆ"�I„I€IÝ Ð ;Ñ<Ô<Ð<Ý Ð >Ñ?Ô?Ð?Ý ð iñjôjðjå ð iñjôjðjå Ð OÑPÔPÐPÝ Ð =Ñ>Ô>Ð>Ý Ð QÑRÔRÐRÝ Ð >Ñ?Ô?Ð?Ý Ð fÑgÔgÐgÝ Ð aÑbÔbÐbÝ Ð PÑQÔQÐQÝ Ð ^Ñ_Ô_Ð_Ý ð \ñ]ô]ð]ð]ð]r>cór—t¦«}| ¦«| ¦«dS)z, Quota synchronization :return: N)rÚ synchronizeÚsave_user_cache)Úqs r Ú quota_syncrJts2€õ ‰Œ€A؇M‚M�O„O€OØ×ÒÑÔÐÐÐr>cóŽ—ttdd¬¦«s-tdtz¦«tjd¦«dSdS)zc Check autosynchronization parameter in config file and exit if it`s disabled :return: Úcl_quota_limits_autosyncT)Ú default_valz:cl-quota limits autosynchronization is disabled in config rN)rrrArBÚexitrDr>r Úcheck_autosync_disabledrO~sL€õ �^Ð-GÐUYÐ ZÑ ZÔ ZðÝ ÐJÍ^Ñ[Ñ\Ô\Ð\Ý Œ�‰ Œ ˆ ˆ ˆ ððr>có,— tj|dgd¢¦«\}}n7#tj$r%t¦«tjd¦«YnwxYwi}d|d<d|d<d|d<d|d<d|d <d |d <d |d <d |d <|D]’\}}|dvrd|d<Œ|dvrd|d<Œ|dvr||d<Œ#|dvr||d<Œ-|dvr||d<Œ7|dvr||d<ŒA|dvr||d<ŒK|dvrd|d<ŒU|dvrd|d<Œ_|dkrd|d <Œk|dvrd|d <Œu|dvrd |d <Œ|d!vrd|d <Œ‰|d"vrd|d <Œ“|S)#NzPaVJYCp:u:U:S:H:F)zpackage-limitszall-package-limitsÚcsvÚjsonzpackage=zuser-id=zuser=z soft-limit=z hard-limit=ÚsyncÚcacheÚcheckÚ profilingÚforcer#ÚsoftÚhardÚuserúuser-idÚtextÚformatFrUrVÚ force_save)z-Pz--package-limitsÚpackage)z-az--all-package-limitsú all-package)z-pz --package)z-uz--user)z-Uz --user-id)z-Sz --soft-limit)z-Hz --hard-limit)z-Yz--syncTrS)z-Cz--cacherTz--check)z-Vz--csvrQ)z-Jz--jsonrR)z --profiling)z-Fz--force)ÚgetoptÚ GetoptErrorrErBrN)Úargv_ÚoptsÚargsÚconfigÚoÚas r Ú parse_argsriˆs"€ð Ý”] 5Ø#6ð$:ð$:ð$:ñ;ô;‰ ˆˆdˆdøõ Ô ðððÝ ‰ŒˆÝ Œ�‰ Œ ˆ ˆ ˆ ðøøøð€FØ€Fˆ6�NØ€Fˆ6�NØ€Fˆ6�NØ€Fˆ9ÑØ€Fˆ8ÑØ€Fˆ7�OØ€Fˆ;ÑØ €Fˆ<Ñàð(ð(‰ˆˆ1Ø Ð*Ð *Ð *Ø $ˆF�9Ñ Ð Ø Ð0Ð 0Ð 0Ø$(ˆF�=Ñ !Ð !Ø Ð%Ð %Ð %Ø !ˆF�9Ñ Ð Ø Ð"Ð "Ð "؈F�6‰NˆNØ Ð%Ð %Ð %Ø !ˆF�9Ñ Ð Ø Ð(Ð (Ð (؈F�6‰NˆNØ Ð(Ð (Ð (؈F�6‰NˆNØ Ð"Ð "Ð "Ø!ˆF�6‰NˆNØ Ð#Ð #Ð #Ø"ˆF�7‰OˆOØ �)Š^ˆ^Ø"ˆF�7‰OˆOØ �/Ð !Ð !Ø$ˆF�8Ñ Ð Ø Ð"Ð "Ð "Ø%ˆF�8Ñ Ð Ø �/Ð !Ð !Ø"&ˆF�;Ñ Ð Ø Ð#Ð #Ð #Ø#'ˆF�<Ñ øØ €Ms‚ž1AÁAcóî —tttttt dœ}t |¦«} d|v�rFd|v�rAt¦«tj   tj ¦«sdS|drðd}td|z¦«ddl}| d|¦«ddl}| |¦«}td ¦«t¦«td ¦«| d ¦« d ¦«td ¦«t¦«td ¦«| d ¦« d ¦«nt)¦«dSt¦«}d|vry|dsq|dsi|d€-||d| d¦«d¬¦«n2||d| |d¦«d¬¦«dSd|vr-||d| ¦«d¬¦«dSd}|drt/|d¦«}n|drt1|d¦«}|dr*|�(t3|¦«dkr| |¦«|ds|dred|vr4|d�,| |d|d|d¬¦«dS| ||d|d|d¬¦«dSd|vr| ¦«dSd|vr| ¦«dS|r>|ds4||d| |¦«dt2¬¦«dSdS||d|  ¦«dt2¬¦«dS#tB$rC} |drttE| ¦«¦«tGj$d¦«Yd} ~ dSd} ~ wtJtLtNtPtRf$rZ} |d|dz| ¦«tU¦« +| ¦«tGj$d¦«Yd} ~ dSd} ~ wtX$rZ} |d|dz| ¦«tU¦« -| ¦«tGj$d¦«Yd} ~ dSd} ~ wwxYw)N)r\rQrRÚerr_textÚerr_csvÚerr_jsonrSrTrVzquota-profiling.logzProfiling end; result saved to rz quota_sync()z&--------------------------------------zCumulative time:Úcallséz Total time:r_rXrYr])Útitler`rZr[rU)r_rXrYr^)rrXrYr^Úid)rpÚsort_keyr#Úerr_).rrrrrrrirOÚosÚpathÚexistsrÚDATAFILErAÚprofileÚrunÚpstatsÚStatsÚ sort_statsÚ print_statsrJÚget_package_limitsÚget_all_packages_limitsr!r,r)Ú_check_if_quota_enabledÚset_package_limitÚset_user_limitrGrHÚget_user_limitsÚget_all_users_limitsrrrBrNr r r r r r=ÚinfoÚ ExceptionÚerror) rcÚoutput_dispatcherrfÚ profiler_logrxrzr*rIrÚes r Úmainr‹¾s‡€åÝÝÝ$Ý"Ý$ð ðÐõ˜Ñ Ô €Fð\Ø �VÐ Ñ  ¨6Ð 1Ñ 1å #Ñ %Ô %Ð %å”7—>’>¥,Ô"7Ñ8Ô8ð Ø�Ø�kÔ"ð à4� ÝÐ7¸,ÑFÑGÔGÐGØ���Ø— ’ ˜N¨LÑ9Ô9Ð9à� � � Ø—L’L Ñ.Ô.�ÝÐ>Ñ?Ô?Ð?Ý‘”�ÝÐ(Ñ)Ô)Ð)à— ’ ˜WÑ%Ô%×1Ò1°"Ñ5Ô5Ð5ÝÐ>Ñ?Ô?Ð?Ý‘”�Ý�mÑ$Ô$Ð$à— ’ ˜WÑ%Ô%×1Ò1°"Ñ5Ô5Ð5Ð5õ‘ ” � Ø ˆFå ‰NŒNˆØ ˜Ð Ð ¨¨v¬Ð ¸&À¼.Ð Ø�iÔ Ð(à3Ð! &¨Ô"2Ô3°A×4HÒ4HÈÑ4NÔ4NÐV_Ð`Ñ`Ô`Ð`Ð`ð4Ð! &¨Ô"2Ô3°A×4MÒ4MÈfÐU^ÔN_Ñ4`Ô4`ÐhqÐrÑrÔrÐrØ ˆFà ˜FÐ "Ð "à /Ð ˜f XÔ.Ô /°×0IÒ0IÑ0KÔ0KÐS\Ð ]Ñ ]Ô ]Ð ]Ø ˆFàˆØ �&Œ>ð /Ý3°F¸6´NÑCÔCˆCˆCØ �IÔ ð /ݘF 9Ô-Ñ.Ô.ˆCà �'Œ?ð +˜s˜µ3°s±8´8¸q²=°=Ø × %Ò % cÑ *Ô *Ð *à �&Œ>ð ˜V Fœ^ð Ø˜FÐ"Ð" v¨iÔ'8Ð'Dà×#Ò#Ø" 9Ô-Ø œØ œð$ñ)ô)ð)ð�à × Ò  ¨6°&¬>ÀÀvÄÐ[aÐbnÔ[oÐ Ñ pÔ pÐ pØ ˆFØ �VÐ Ð Ø �MŠM‰OŒOˆOØ ˆFØ �fÐ Ð Ø × Ò Ñ Ô Ð Ø ˆFØ ð Jؘ'”?ð NØ3Ð! &¨Ô"2Ô3°A×4EÒ4EÀcÑ4JÔ4JØ:>ÍðNñNôNðNðNðNð Nð Nð 0Ð ˜f XÔ.Ô /°×0FÒ0FÑ0HÔ0HØ6:ÅSð Jñ Jô Jð Jð Jð Jøå !ðððØ �'Œ?ð Ý •#�a‘&”&‰MŒMˆMÝ Œ�‰ Œ ˆ ˆ ˆ ˆ ˆ ˆ ˆ øøøøÝ "Õ$7Ý +Õ-JÝ ð ðððð 5И& 6¨(Ô#3Ñ3Ô4°QÑ7Ô7Ð7ÝÑÔ×Ò Ñ"Ô"Ð"Ý Œ�‰ Œ ˆ ˆ ˆ ˆ ˆ ˆ ˆ øøøøÝ ðððØ4И& 6¨(Ô#3Ñ3Ô4°QÑ7Ô7Ð7ÝÑÔ× Ò  Ñ#Ô#Ð#Ý Œ�‰ Œ ˆ ˆ ˆ ˆ ˆ ˆ ˆ øøøøðøøøsk¸AO Á;DO ÆB O È/O È?B5O Ë6+O Ì#O Ì=O Ír úr”s0ðð&Ð%Ð%Ð%Ð%Ð%ØÐÐÐÐÐØ&Ð&Ð&Ð&Ð&Ð&Ø € € € Ø € € € Ø € € € Ø € € € Ø € € € Ø€€€ØÐÐÐØ9Ð9Ð9Ð9Ð9Ð9Ð9Ð9ððððððððððððððððððððððððððððððððððð€€€Ø ˆ7Ô ˜XÑ &Ô &€Ø×Ò�'”-Ñ Ô Ð ð ,ð ,ð ,ð ,ððððð$ ð ð ð]ð]ð]ð0ðððððð3ð3ð3ðlhðhðhðT ˆzÒÐØ€Dˆ#Œ(�1�2�2Œ,ÐÐÐÐðÐr>