VtΠ,ddlZddlZddlZddlZddlZddlZddlZddlZddlm Z m Z ddl m Z ddl mZddlmZddlmZddlmZddlmZdd lmZd ejd ejd e eeffd Zded e fdZded efdZ deded dfdZ!ded e fdZ"dZ#dS)N)TupleDict) run_command)config)USER_NOTIFICATIONS_OFF_MARKER) setup_logging)user_should_be_notified)get_stats_notifier_parameters)dateutilargslogreturnc|jsdStj}|dkr |jsdS |jt |j|j}nt |j}nR#t$rE}d|tj d}| t|Yd}~nd}~wwxYwtj |}|dfS)zA Generic method to analyze options and call needed funcs )z Only JSON mode supported for nowr)z'Please, specify user id via --id optionrNzerror: result timestamp) jsonosgetuidid notifyUsermanage_user_notificationsget_notifications_settings Exceptionr gm_datetime_to_unixtimestamperrorstrdumps)r r current_userrejson_strs /builddir/build/BUILDROOT/lve-stats-4.3.2-1.el9.x86_64/opt/cloudlinux/venv/lib/python3.11/site-packages/lvestats/lib/cloudlinux_statsnotifier.pyexecuter$s 96559;;Lq<<  ? &.twHHFF/88F #mm!>@@   #a&&  z&!!H Q;s6A$$ B3.;B..B3user_idcdtjd}tj}|dks|n|}t j|j}t||d<t||d<|S)z' Returns notification settings successrrrnotificationsAllowed) r rrrpwdgetpwuidpw_namer is_notifications_allowed)r%rr target_userusernames r#rr5st"0U0W0W X XF9;;L&2a&7&7,,WK|K((0H28<>L',,|-JKKK  E 9;;!   *I,=wl[ \ \ \ *I,=w T U U U U U wlC D D D w < = = = = = 7>>+ & & Ey{{a. 0A4{[\\\\\\4{CDDDDD  E Er/should_be_notifiedc bdtjd}tj}|dks|n|}t |||rdnd}t jdt jt jt jt j d|d|d |t j |S) z Managing user`s notifications by checking input opts, validating and calling creation/removing of notifications marker file r'rrenableddisabledz lve-statszNotifications z for user uid=z by uid=) r rrrrOsyslogopenlogLOG_PID LOG_AUTHPRIV LOG_WARNINGcloselog)r%rPrr r-states r#rrls "0U0W0W X XF9;;L&2a&7&7,,WK{,>???+ ;IIE N;0CDDD M&$[5[[ [[\[[]]] O Mr/ctj}t|dtjtj}t jdd}|dddd |d d t |dd| |}t||\}}t||S)z Main entrypoint CloudLinuxStatsnotifier) caller_name file_level console_levelzE%(prog)s - CLI utility for configuring CloudLinux statistics notifierzcloudlinux-statsnotifier) descriptionprogz-jz--jsonzreturn data in JSON format store_true)helpactionz--idzUser id)rctypez --notifyUsercLt|dkS)Ntrue)rlower)xs r#zmain..sA &8Pr/)re)r )r ) r read_configrloggingWARNINGFATALargparseArgumentParser add_argumentint parse_argsr$print)args_cnfr parserr r" exit_codes r#mainry~s    C )B#*?&-m 5 5 5C $[ 'F  h ) YS999 -Q-QRRR   %  ( (D!$C000Hi (OOO r/)$r)rlrorrErr6rTtypingrrclcommon.utilsr lvestats.librlvestats.lib.configrlvestats.lib.commons.logsetuprlvestats.lib.commons.funcr &lvestats.plugins.generic.statsnotifierr lvestats.lib.commonsr NamespaceLoggerrrrr$rboolr,rOrryr/r#rs   &&&&&&======777777======PPPPPP))))))($7>eCHo4      :3:4::::"EEEEEEE24D$r/