=4:JdZddlZddlZddlmZmZddlmZddlm Z ej e Z dZ GddZGd d eZdS) zb Global whitelist as it was initially defined by https://cloudlinux.atlassian.net/browse/DEF-2307 N)IterableList)IntegrityError)fileszimunify360.txtc|eZdZedZeddeefdZeddde efdZ dS)GlobalWhitelistc|tkS)zCheck if file file_name should be loaded. Do not load imunify360.txt as it will be loaded separately in GlobalImunifyWhitelist. IM360_FILE_NAME) file_names Q/opt/imunify360/venv/lib/python3.11/site-packages/im360/model/global_whitelist.py_allow_load_from_filez%GlobalWhitelist._allow_load_from_files O++Nreturnc Ktt} tjtj4d{Vtjtj}|D]x}|||dgvr\||drA| | | |dy dddd{Vn#1d{VswxYwYnb#ttf$r'}td|gcYd}~Sd}~wt $rtdgcYSwxYwt%|S)Ngroupsnameurlz#Failed to load global whitelist: %szFailed to load global whitelist)setstrrIndexlocked WHITELISTSitemsgetrupdate _load_file localfilepathFileNotFoundErrorrloggererror Exception exceptionlist)clsgroupresult local_indexitemes r loadzGlobalWhitelist.loadsS {))%*:;;        #k%*:;; '--//D}$((8R2H2H)H)H44T&\BB"MM #$/$=$=d5k$J$J!"!"                           ">2    LL> B B BIIIIII      > ? ? ?III F||sH/D B,D 9D DDDDE<.E E<)E<;E<) log_errorc #K| tj}t|5}t|D]\}}|dd}|s5 t j|}|jdkr| d}|Vo#t$r}|d|||dzYd}~d}~wwxYw ddddS#1swxYwYdS)zu :param file: file path :param log_error: what logging method to use [default: logger.error] N#rz/32z%s in %s line %d) r r!open enumerate partitionstrip ipaddress ip_networkversion removesuffix ValueError)r%filer,flnr)ipr*s r rzGlobalWhitelist._load_file1sk   I $ZZ 1%aLL  D~~c**1-3355 "-d33BzQ#0077JJJJ"I*Q                    s<AC&4BC C)B?:C?CCCCN) __name__ __module__ __qualname__ staticmethodr classmethodrrr+rrrr rrs,,\,tCy[,+/HSM[rrc$eZdZedZdS)GlobalImunifyWhitelistc|tkSr>r )rs r rz,GlobalImunifyWhitelist._allow_load_from_filePs &&rN)r?r@rArBrrDrr rFrFOs-''\'''rrF)__doc__r5loggingtypingrrdefence360agent.filesrim360r getLoggerr?r r rrFrDrr rNs!!!!!!!!000000  8 $ $";;;;;;;;|'''''_'''''r