fjddlZddlZddlZddlZddlmZddlmZmZddl m Z ddlm Z ddl m Z ddlmZmZddlmZdd lmZd d lmZd d lmZd d lmZmZd dlmZd dlm Z de fdZ!GddZ"dS)N)Any)Schema SchemaError)wraps)Callable)get_user_auth_key) userdomainscpusers) find_wp_paths)gettext) get_client)pullzone_info_schema) XRayAPIError XRayError) timestamp)get_xray_exec_userfunccdtdtdtdtfdtfd}|S)N account_iddomainwebsiteusernamec<t}|r|}nU|sSttD]}t|}||kr|}nt t dt |}|D]}|d|ddddkrQtt|d} |dd} | | vrt d| d St t d ) z1 If user owns domain and website z;Passed account_id does not belong to any user on the serverrzhttps://zhttp:///z(Passed website is not found, all sites: z5Passed domain cannot be found in list of user domainsN) rlistr rr_r replacer ) rrrr proxy_useruserauth_keydomains_docroot_list domain_itemwordpress_listwp_sites U/opt/cloudlinux/venv/lib64/python3.11/site-packages/xray/adviser/awp_provision_api.pyvalidatez%validate_users_data..validatesH())   f!HH f OOffD066H:--#'.$A&c$d$deee*844/ X XK1~ B!?!?!G!G SU!V!VVV!%mKN&C&C!D!D!//#r22.00#$_~$_$_``` WAUVVWW Wc|d}|d}||d|d||i|}|S)Nrrrr)get)argskwargsrrresponserr)s r(wrapperz$validate_users_data..wrapper>s^ZZ -- ::j))VH-vi/@(KKK4(((r*)strr)rr0r)s` @r(validate_users_datar2stXSX#XXsXXXX@ 4[[[ Nr*ceZdZdZdZddZedefdZde de de fd Z e dd Z e dd Ze dd Zdd ZddZdS)AWPProvisionAPIzAwp provision service handlerscttjd|_td}||_dS)Nawp_provision_api awp_provision)logging getLoggerloggerrawp_client_api)selfawp_client_objects r(__init__zAWPProvisionAPI.__init__Ls:'(;<< &77//11r*Nctjd}|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!) osenvironr,pwdgetpwuidintpw_namer Exceptionrr)r<rrr!es r( _account_idzAWPProvisionAPI._account_idRsZ^^N33  I I<J88@(222 I I I"1%?#@#@AAqH I I I(222 I I I"1%?#@#@AAqH Is/4A B"A??B B C#CCreturnc dtd}|r||tjt t |S)Nsuccess)resultr)rupdatejsondumpsdictsorteditems)r.initials r(r/zAWPProvisionAPI.responsedsU&Y[[AA  # NN6 " " "z$vgmmoo6677888r*dataschemac ||S#t$rf}|jd||jdp |jd}t tdt|zd}~wwxYw)z&Validate given data using given schemaz#Failed to validate API response: %szMalformed API response: %sN) r)rr:errorerrorsautosrrr1)r<rUrVrHmsgs r( _validatezAWPProvisionAPI._validateks K??4(( ( K K K K  CT J J J(2,-!'"+Cq!=>>SIJJ J Ks BA!BBc|||}|j|||}||t}||S)N)rUrVrU)rIr;get_create_pullzoner]rr/)r<rrrrrUr/s r( get_pullzonezAWPProvisionAPI.get_pullzonetsb%%j(;; "66z67SS>>t)="??}}(}+++r*c|||}|j|||}||SNr_)rIr;remove_pullzoner/r<rrrrr/s r(rdzAWPProvisionAPI.remove_pullzone|E%%j(;; &66z67SS}}(}+++r*c|||}|j|||}||Src)rIr;purge_cdn_cacher/res r(rhzAWPProvisionAPI.purge_cdn_cacherfr*ctjdr||g}n|p|||g}|j|}||S)Nr@)rr_)rArBr,rIr; sync_accountr/r<rrr/s r(rjzAWPProvisionAPI.sync_accounts{ :>>. ) ) P**H*==>JJ#O(8(8X(N(N'OJ&33J??}}(}+++r*c|||}|j|}||Src)rIr; get_usager/rks r(rmzAWPProvisionAPI.get_usagesA%%j(;; &00<<}}(}+++r*)NN)N)__name__ __module__ __qualname____doc__r>rI staticmethodr1r/rrr]r2rardrhrjrmr*r(r4r4Is((222 $9c999\9 KcK6KcKKKK,,,,,,,, ,,,, ,,,,,,,,,,r*r4)#r8rOrArCtypingrrVrr functoolsrr!xray.internal.clwpos_safe_importsrclcommon.cpapir r clcommon.clwpos_libr xrayr r apiclientrapiclient.schemasrinternal.exceptionsrrinternal.utilsrinternal.user_plugin_utilsrr2r4rsr*r(rs &&&&&&&&??????////////------""""""44444499999999&&&&&&;;;;;;*h****XJ,J,J,J,J,J,J,J,J,J,r*