'eTddlmZddlmZddlmZddlZddlZddlZddlZddlZddl Z ddl Z ddl m Z m Z ddlmcmZddlmZddlmZddlmZdd lmZdd lmZdd lmZd ejd ejde eeffdZ dede fdZ!dede"fdZ#dZ$dede"ddfdZ%de"de fdZ&dZ'dS))print_function)absolute_import)divisionN)TupleDict)USER_NOTIFICATIONS_OFF_MARKER) setup_logging)user_should_be_notified)get_stats_notifier_parameters)dateutil) run_commandargslogreturnc|jsdStj}|dkr |jsdS |jt |j|j}nt |j}n^#t$rQ}td|tj }| 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 Exceptiondictr gm_datetime_to_unixtimestamperrorstrdumps)rr current_userrejson_strs /builddir/build/BUILDROOT/lve-stats-4.2.1-1.el7.x86_64/opt/cloudlinux/venv/lib/python3.11/site-packages/lvestats/lib/cloudlinux_statsnotifier.pyexecuter's 96559;;Lq<< ? &.twHHFF/88F ]q]] ( E G GIII #a&&z&!!H Q;s6A$$ B?.AB::B?user_idctdtj}tj}|dks|n|}t j|j}t||d<t||d<|S)z' Returns notification settings successrrrnotificationsAllowed) rr rrrpwdgetpwuidpw_namer is_notifications_allowed)r(rr# target_userusernames r&rr7s$ACCEEEF9;;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 Er2should_be_notifiedctdtj}tj}|dks|n|}t |||S)z Managing user`s notifications by checking input opts, validating and calling creation/removing of notifications marker file r*rr)rr rrrrU)r(rVrr#r0s r&rrss] $ACCEEEF9;;L&2a&7&7,,WK{,>??? Mr2ctj}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)r`typez --notifyUsercLt|dkS)Ntrue)r!lower)xs r&zmain..sA &8Pr2)rb)r)r) config read_configr loggingWARNINGFATALargparseArgumentParser add_argumentint parse_argsr'print)args_cnfrparserrr% exit_codes r&mainrws    C )B#*?&-m 5 5 5C $[ 'F  h ) YS999 -Q-QRRR   %  ( (D!$C000Hi (OOO r2)( __future__rrrr,rjrmrrLrr8typingrrlvestats.lib.configlibrhrlvestats.lib.commons.logsetupr lvestats.lib.commons.funcr &lvestats.plugins.generic.statsnotifierr lvestats.lib.commonsr clcommon.utilsr NamespaceLoggerr!rpr'rboolr/rErUrrwrDr2r&rs&%%%%%&&&&&&  $$$$$$$$$======777777======PPPPPP))))))&&&&&&($7>eCHo0      :3:4::::""""EEEEEEE2 4 D    r2