VULN_CHECK_I913V6 b4i4ddlZddlZddlZddlZddlZddlmZmZmZddl m Z m Z ddl m Z ddlmZddlmZddlmZeGdd Zejd Zd Zd ZGd dZdS)N) dataclassasdictfield) CONFIG_PATHPING_CONNECTIONS)WmtConfigException)get_admin_email) gethostname)ListceZdZUdZdZeed<dZeed<eZ eed<dZ e ed<d Z eed <e e Zee ed <d Zeed<dZeed<dZeed<dS)CfgzC Default values, in case config has not been specified yet  ping_interval ping_timeoutping_connectionsN report_email report_top)default_factory ignore_listTsummary_notification_enabledFalert_notifications_enabledallow_private_targets)__name__ __module__ __qualname____doc__rint__annotations__rrrrstrrrlistrr rboolrr/builddir/build/BUILDROOT/cl-web-monitoring-tool-3.2.6-1.el10.cloudlinux.x86_64/opt/cloudlinux/venv/lib/python3.11/site-packages/wmt/common/config.pyr r sM3L#,c,,,L#J"U4888Kc888)- $---(----"'4'''''r%r z2\A[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+\Z)rrrr)rrrceZdZdZdZdZdefdZedZ edZ de fd Z ed Z d Zdefd Zdefd ZdS) ConfigManagerc4tj|_dt |_t |_||_ | |_ | |_ dS)Nzweb-monitoring-tool@)r __dataclass_fields__keysallowed_paramsr from_emailr default_report_email _init_cfgcfggenerate_ignored_domains_ignored_domains_get_target_email target_emailselfs r&__init__zConfigManager.__init__)s{!6;;==@@@$3$5$5!>>##!% = = ? ? 2244r%c@|jjr |jjn|jS)a This function checks to see which email address to use for TO: field of smtp. If report_email has been defined by user then report_email will be used. By default (in case not defined by user) default_report_email will be used )r0rr.r5s r&r3zConfigManager._get_target_email4s! )-(=\tx$$4C\\r%c*t|jSN)rr0r5s r&to_dictzConfigManager.to_dict<sdhr%returnc |stS|}t}|D]\}}||jvr-t jd|dt|j; |||in:#t$r-}t jd|dtd|dYd}~d}~wwxYwt||||S)Nzunsupported parameter "z:", please ensure config contains only allowed parameters: zignoring invalid value for "z" in z: z; using default) is_presentr readitemsr,loggingwarningr"_validate_valuesrrsetattr)r6datar0keyvaluees r&r/zConfigManager._init_cfg?sM   55Lyy{{ee**,, % %JC$---McMM15d6I1J1JMM %%sEl3333%   %3%%[%%A%%%   Ce $ $ $ $ sB-- C$7#CC$cJtjtSr:)ospathisfilerr$r%r&r>zConfigManager.is_presentbsw~~k***r%c|D]\}}|tvr>t|trt|trt d|dL|t vr)t|tst d|d~|dkrR|dvrt|tst dt |st ddS)N"z" must be an integerz " must be a boolean (true/false)r)Nz"report_email" must be a stringz+"report_email" is not a valid email address) r@_NUMERIC_FIELDS isinstancerr#r_BOOLEAN_FIELDSr! _EMAIL_REmatch)rErFrGs r&rCzConfigManager._validate_valuesfs6**,, G GJCo%%!%--LE41H1HL,-J-J-J-JKKKL''"%..C,ACAAACCCC&&J&&!%--;,9;;; u--G,EGGG) G Gr%new_jsonc0 tj|}n3#tj$r!}tt |d}~wwxYwt ||js$tdt|j| |i| |}| drFt| dtr|dd|d<tt d5}tj||ddddn #1swxYwYt%di||_| S) z Changes configuration of wmt Returns: self.to_dict() Raises: WmtConfigException Example: wmt-api-solo --config-change {'key': 'val'} Nz@some of passed params are unsupported, only allowed parameters: r,wr)indentr$)jsonloadsJSONDecodeErrorrr!setr+issubsetr,r"rCr;getrQsplitopenrdumpr r0)r6rU new_configrHconfigfs r&modifyzConfigManager.modifys -H--JJ# - - -$SVV,, , -:??$$%%..t/BCC ^$&]AEdFYAZAZ&]&]^^ ^ j))) llnn   ::m $ $ EFJJ}4M4Ms)S)S E$*=$9$?$?$D$DF= !+s # # +q Ifa * * * * + + + + + + + + + + + + + + +====||~~s&AAAE((E,/E,c tt5}tj|}dddn #1swxYwYn3#tj$r!}t t |d}~wwxYw|Sr:)rarrZloadr\rr!)rerErHs r&r?zConfigManager.reads -k"" $ay|| $ $ $ $ $ $ $ $ $ $ $ $ $ $ $# - - -$SVV,, , - s2A7 A;A;AA3A..A3c8||_dSr:)r/r0r5s r&reloadzConfigManager.reloads>>##r%c|jD]@}d|vr3|dsd|}tj||rdS9||vrdSAdS)z Check if domain is in ignored list. If record contain *" then it will be processed as wildcard. Else as substring *TF)r2 startswithfnmatch)r6domainpatterns r&is_domain_ignoredzConfigManager.is_domain_ignoreds~ , Gg~~))#..,+'mmG?6733 44 f$$44%ur%cjt}|jjD]}|||S)z Generates ignored domains patterns from self.ignore_list and returns it for using as cache in self.ignored_domains set(). )r]r0radd)r6patternsrps r&r1z&ConfigManager.generate_ignored_domainss; 55x+ " "G LL ! ! ! !r%N)rrrr7r3r;r r/ staticmethodr>rCr!rfr?rjr#rqr]r1r$r%r&r(r((s 5 5 5]]]   !3!!!!F++\+GG\G0$s$$$$L\$$$4"#r%r()rArJrnrZre dataclassesrrrwmt.common.constrrwmt.common.exceptionsrclcommon.cpapir socketr typingr r compilerSrPrRr(r$r%r&r~s>  0000000000::::::::444444******  ( ( ( ( ( ( (  ($ BJL M M Ujbbbbbbbbbbr%