§ WèÄjsãóô—ddlZddlZddlZddlZddlmZddlmZmZddl m Z ddlm Z ddl m Z ddlmZmZddlmZdd lmZd d lmZd d lmZd d lmZmZd dlmZd dlm Z de fd„Z!Gd„d¦«Z"dS)éN)ÚAny)ÚSchemaÚ SchemaError)Úwraps)ÚCallable)Úget_user_auth_key)Ú userdomainsÚcpusers)Ú find_wp_paths)Úgettexté)Ú get_client)Úpullzone_info_schema)Ú XRayAPIErrorÚ XRayError)Ú timestamp)Úget_xray_exec_userÚfuncc󀇇—dtdtdtdtfd„Št‰¦«ˆˆfd„¦«}|S)NÚ account_idÚdomainÚwebsiteÚusernamecóR—t¦«}|r|}nU|sStt¦«¦«D]}t|¦«}||kr|}nŒt t d¦«¦«‚t |¦«}|D]’}|d| dd¦« dd¦«kr\tt|d¦«¦«} |  d¦«r |dd…n|} | | vrt d | ›�¦«‚dSŒ“t t d ¦«¦«‚) z1 If user owns domain and website z;Passed account_id does not belong to any user on the serverrzhttps://Úzhttp://éú/Nz(Passed website is not found, all sites: z5Passed domain cannot be found in list of user domains) rÚlistr rrÚ_r Úreplacer Ú startswith) rrrrÚ proxy_userÚuserÚauth_keyÚdomains_docroot_listÚ domain_itemÚwordpress_listÚwp_sites úU/opt/cloudlinux/venv/lib64/python3.11/site-packages/xray/adviser/awp_provision_api.pyÚvalidatez%validate_users_data..validates[€õ(Ñ)Ô)ˆ ð ð fØ!ˆHˆHðð fÝ ¥¡¤™OœOðfðf�DÝ0°Ñ6Ô6�HØ :Ò-Ð-Ø#'˜Ø˜ð.õ$¥AÐ&cÑ$dÔ$dÑeÔeÐeå*¨8Ñ4Ô4ÐØ/ð Xð XˆKؘ1Œ~ §¢° ¸BÑ!?Ô!?×!GÒ!GÈ ÐSUÑ!VÔ!VÒVÐVÝ!%¥m°KÀ´NÑ&CÔ&CÑ!DÔ!D�ð*1×);Ò);¸CÑ)@Ô)@ÐM˜' ! " "œ+˜+Àg�Ø .Ð0Ð0Ý#Ð$_È~Ð$_Ð$_Ñ`Ô`Ð`Ø��ðWõ�AÐUÑVÔVÑWÔWÐ Wócó •—| d¦«}| d¦«}‰||d|d|¦«‰|i|¤Ž}|S)Nrrrr)Úget)ÚargsÚkwargsrrÚresponserr*s €€r)Úwrapperz$validate_users_data..wrapperAs^ø€à—Z’Z  Ñ-Ô-ˆ Ø—:’:˜jÑ)Ô)ˆØˆ�˜V HÔ-¨v°iÔ/@À(ÑKÔKÐKà�4˜Ð( Ð(Ð(ˆØˆr+)Ústrr)rr1r*s` @r)Úvalidate_users_datar3støø€ð!X�Sð!X­#ð!X½ð!XÅsð!Xð!Xð!Xð!XõF ˆ4�[„[ðððððñ„[ðð €Nr+có¨—eZdZdZd„Zdd„Zedefd„¦«Zde de de fd „Z e dd „¦«Z e dd „¦«Ze dd „¦«Zdd „Zdd„ZdS)ÚAWPProvisionAPIzAwp provision service handlerscót—tjd¦«|_td¦«}|¦«|_dS)NÚawp_provision_apiÚ awp_provision)ÚloggingÚ getLoggerÚloggerrÚawp_client_api)ÚselfÚawp_client_objects r)Ú__init__zAWPProvisionAPI.__init__Ps:€ÝÔ'Ð(;Ñ<Ô<ˆŒ å& Ñ7Ô7ÐØ/Ð/Ñ1Ô1ˆÔÐÐr+Ncó”—tj d¦«}|re tjt |¦«¦«j}t|¦«S#t$r"}ttd¦«¦«|‚d}~wwxYw|s? t|¦«S#t$r"}ttd¦«¦«|‚d}~wwxYw|S)NÚ XRAYEXEC_UIDzAuth file was not found!) ÚosÚenvironr-ÚpwdÚgetpwuidÚintÚpw_namerÚ Exceptionrr)r=rrr"Úes r)Ú _account_idzAWPProvisionAPI._account_idVså€Ý”Z—^’^ NÑ3Ô3ˆ Ø ð Ið IÝœ<­¨J©¬Ñ8Ô8Ô@�Ý(¨Ñ2Ô2Ð2øÝð Ið Ið IÝ"¥1Ð%?Ñ#@Ô#@ÑAÔAÀqÐHøøøøð Iøøøàð Ið IÝ(¨Ñ2Ô2Ð2øÝð Ið Ið IÝ"¥1Ð%?Ñ#@Ô#@ÑAÔAÀqÐHøøøøð IøøøàÐs/£4AÁ BÁ"A?Á?B B CÂ#CÃCÚreturnc óÒ—dt¦«dœ}|r| |¦«tjt t | ¦«¦«¦«¦«S)NÚsuccess)Úresultr)rÚupdateÚjsonÚdumpsÚdictÚsortedÚitems)r/Úinitials r)r0zAWPProvisionAPI.responsehsU€à&µY±[´[ÐAÐAˆØ ð #Ø �NŠN˜6Ñ "Ô "Ð "ÝŒz�$�v g§m¢m¡o¤oÑ6Ô6Ñ7Ô7Ñ8Ô8Ð8r+ÚdataÚschemacó— | |¦«S#t$rf}|j d|¦«|jdp |jd}t td¦«t|¦«z¦«‚d}~wwxYw)z&Validate given data using given schemaz#Failed to validate API response: %séÿÿÿÿzMalformed API response: %sN) r*rr;ÚerrorÚerrorsÚautosrrr2)r=rVrWrIÚmsgs r)Ú _validatezAWPProvisionAPI._validateosŽ€ð KØ—?’? 4Ñ(Ô(Ð (øÝð Kð Kð KØ ŒK× Ò ÐCÀTÑ JÔ JÐ JØ”(˜2”,Ð- !¤'¨"¤+ˆCÝ�qÐ!=Ñ>Ô>ÅÀSÁÄÑIÑJÔJÐ Jøøøøð Køøøs‚— B¡A!BÂBcóÊ—| ||¦«}|j |||¦«}| |t¬¦«}| |¬¦«S)N)rVrW©rV)rJr<Úget_create_pullzoner^rr0)r=rrrrrVr0s r)Ú get_pullzonezAWPProvisionAPI.get_pullzonexs[€à×%Ò% j°(Ñ;Ô;ˆ ØÔ"×6Ò6°zÀ6È7ÑSÔSˆØ—>’> tÕ4H�>ÑIÔIˆØ�}Š} (ˆ}Ñ+Ô+Ð+r+có’—| ||¦«}|j |||¦«}| |¬¦«S©Nr`)rJr<Úremove_pullzoner0©r=rrrrr0s r)rezAWPProvisionAPI.remove_pullzoneóE€à×%Ò% j°(Ñ;Ô;ˆ ØÔ&×6Ò6°zÀ6È7ÑSÔSˆØ�}Š} (ˆ}Ñ+Ô+Ð+r+có’—| ||¦«}|j |||¦«}| |¬¦«Srd)rJr<Úpurge_cdn_cacher0rfs r)rizAWPProvisionAPI.purge_cdn_cache…rgr+có—tj d¦«r| |¬¦«g}n|p| ||¦«g}|j |¦«}| |¬¦«S)NrA)rr`)rBrCr-rJr<Ú sync_accountr0©r=rrr0s r)rkzAWPProvisionAPI.sync_account‹s{€Ý Œ:�>Š>˜.Ñ )Ô )ð PØ×*Ò*°HÐ*Ñ=Ô=Ð>ˆJˆJà#ÐO¨×(8Ò(8¸ÀXÑ(NÔ(NÐ'OˆJØÔ&×3Ò3°JÑ?Ô?ˆØ�}Š} (ˆ}Ñ+Ô+Ð+r+cóŽ—| ||¦«}|j |¦«}| |¬¦«Srd)rJr<Ú get_usager0rls r)rnzAWPProvisionAPI.get_usage“sA€Ø×%Ò% j°(Ñ;Ô;ˆ ØÔ&×0Ò0°Ñ<Ô<ˆØ�}Š} (ˆ}Ñ+Ô+Ð+r+)NN)N)Ú__name__Ú __module__Ú __qualname__Ú__doc__r?rJÚ staticmethodr2r0rrr^r3rbrerirkrn©r+r)r5r5Ms€€€€€Ø(Ð(ð2ð2ð2ð ðððð$ð9˜cð9ð9ð9ñ„\ð9ð K˜cðK¨6ðK°cðKðKðKðKðð,ð,ð,ñÔð,ð ð,ð,ð,ñÔð,ð ð,ð,ð,ñÔð,ð ,ð,ð,ð,ð,ð,ð,ð,ð,ð,r+r5)#r9rPrBrDÚtypingrrWrrÚ functoolsrrÚ!xray.internal.clwpos_safe_importsrÚclcommon.cpapir r Úclcommon.clwpos_libr Úxrayr rÚ apiclientrÚapiclient.schemasrÚinternal.exceptionsrrÚinternal.utilsrÚinternal.user_plugin_utilsrr3r5rtr+r)úr€sðð€€€Ø € € € Ø € € € Ø € € € àÐÐÐÐÐØ&Ð&Ð&Ð&Ð&Ð&Ð&Ð&ØÐÐÐÐÐØÐÐÐÐÐØ?Ð?Ð?Ð?Ð?Ð?Ø/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ø-Ð-Ð-Ð-Ð-Ð-àÐÐÐÐÐØ"Ð"Ð"Ð"Ð"Ð"Ø4Ð4Ð4Ð4Ð4Ð4Ø9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ø&Ð&Ð&Ð&Ð&Ð&Ø;Ð;Ð;Ð;Ð;Ð;ð-˜hð-ð-ð-ð-ð`I,ðI,ðI,ðI,ðI,ñI,ôI,ðI,ðI,ðI,r+