§ ½@¾j[ãót—ddlZddlZddlZddlZddlZddlmZddlmZddl m Z m Z m Z Gd„d¦«Z dS)éN)ÚClPwd)ÚFeature)Úis_panel_feature_supportedÚ list_usersÚ userdomainscól—eZdZdZd„Zed„¦«Zd„Zd„Zd„Z ed„¦«Z ed„¦«Z d S) ÚDomainCollectorzR Class for print panel users domain docroots. See LU-1751 for details có—ttj d¦«¦« |_| ¦«|_t¦«|_dS)NÚDOM_COLL_RUNNING_IN_LVE) ÚboolÚosÚenvironÚgetÚ is_not_in_lveÚis_not_limitedÚis_not_limited_processrÚ_clpwd)Úselfs ú$py/cl_dom_collector/dom_collector.pyÚ__init__zDomainCollector.__init__sG€Ý!%¥b¤j§n¢nÐ5NÑ&OÔ&OÑ!PÔ!PÐPˆÔØ&*×&9Ò&9Ñ&;Ô&;ˆÔ#Ý‘g”gˆŒ ˆ ˆ ócó¾—ttj d¦«¦«}ttj d¦«¦«}| o| S)Nr ÚDOM_COLL_RUNNING_IN_NICE)r r rr)Úis_limited_by_lveÚis_limited_by_nices rrzDomainCollector.is_not_limitedsN€å ¥¤§¢Ð0IÑ!JÔ!JÑKÔKÐÝ!¥"¤*§.¢.Ð1KÑ"LÔ"LÑMÔMÐØ$Ð$Ð?Ð-?Ð)?Ð?rcó—tt¦« ¦«¦«}g}|D]M} |j |¦«d}| |¦«Œ9#t j$rYŒJwxYw|S)zL Get panel user names list :return: user names list r)ÚlistrÚkeysrÚ get_namesÚappendrÚNoSuchUserException)rÚpanel_uids_listÚpanel_users_listÚuidÚnames rÚ_get_panel_user_names_listz*DomainCollector._get_panel_user_names_list#s•€õ �z™|œ|×0Ò0Ñ2Ô2Ñ3Ô3ˆØÐØ"ð ð ˆCð Ø”{×,Ò,¨SÑ1Ô1°!Ô4�Ø ×'Ò'¨Ñ-Ô-Ð-Ð-øÝÔ,ð ð ð Ø�ð øøøàÐsµ5A+Á+A=Á<A=có —| ¦«}|D]v} t|¦«D]S\}}tj| d¦«¦« d¦«}t |›d|›�¦«ŒTŒg#t$rYŒswxYwdS)zµ Method prints pair `domain,doc_root` for an each user on a server domain is encoded in punycode if it's needed doc_root is always encoded in base64 zutf-8ú,N)r&rÚbase64Ú b64encodeÚencodeÚdecodeÚprintÚ Exception)rr#ÚusernameÚdomainÚdoc_rootÚencoded_doc_roots rÚ"_print_users_doc_roots_and_domainsz2DomainCollector._print_users_doc_roots_and_domains2sÊ€ð  ×:Ò:Ñ<Ô<ÐØ(ð ð ˆHð Ý(3°HÑ(=Ô(=ð:ð:Ñ$�F˜HÝ'-Ô'7Ø Ÿš¨Ñ0Ô0ñ(ô(ç’f˜W‘o”oð%õ˜VÐ8Ð8Ð&6Ð8Ð8Ñ9Ô9Ð9Ð9ð :øõ ð ð ð ð�ð  øøøð ð sšA#A>Á> B  B có¢—|jr³ttj¦«rp | ¦«}t j|¦«dS#tj$r3}d|›�}t|¦«t jd¦«Yd}~dSd}~wwxYw|  ¦«}t j|¦«dS|  ¦«dS)Nz"failed to run task in lve, error: éÿÿÿÿ) rrrÚLVEÚ_run_self_in_lveÚsysÚexitÚ lvectllibÚ PyLveErrorr-Ú _run_by_nicer3)rÚrcÚeÚ error_msgs rÚrunzDomainCollector.runFsÚ€Ø Ô &ð 6Ý)­'¬+Ñ6Ô6ð ð!Ø×.Ò.Ñ0Ô0�BÝ”H˜R‘L”L�L�L�LøÝ Ô+ð!ð!ð!Ø HÀQÐ HÐ H�Iݘ)Ñ$Ô$Ð$Ý”H˜R‘L”L�L�L�L�L�L�L�Løøøøð!øøøð ×&Ò&Ñ(Ô(�Ý”˜‘ ” � � � ð × 3Ò 3Ñ 5Ô 5Ð 5Ð 5Ð 5s¢(A Á BÁ(B  Bcó0—tjtjddd¬¦«¦«}tj|¦«5}t jddt |¦«dgttj d¬ ¦«¬ ¦«cd d d ¦«S#1swxYwYd S) z� Run same command in lve and set environ RUNNING_IN_LVE=True in order to check it in child process. :return: éri@)Úls_cpuÚls_cpusÚ ls_memory_phyz/bin/lve_suwrapperú-nú%/usr/bin/cloudlinux_domains_collectorÚ1)r ©ÚenvN) r:Úmake_liblve_settingsÚcreate_liblve_settingsÚ temporary_lveÚ subprocessÚcallÚstrÚdictr r)ÚsettingsÚlve_ids rr7z DomainCollector._run_self_in_lveYs÷€õÔ1Ý Ô ,ØØØ.ð ñ ô ñ ô ˆõÔ $ XÑ .Ô .ð C°&Ý”?Ø% t­S°©[¬[Ð:aÐbÝ�œ¸SÐAÑAÔAðCñCôCð Cð Cð Cð Cñ Cô Cð Cð Cð Cð Cð Cð Cøøøð Cð Cð Cð Cð Cð Cs¾AB  BÂBcód—tjgd¢ttjd¬¦«¬¦«S)N)z /usr/bin/nicerFÚ19rGrH)rrI)rNrOrQr r©rrr<zDomainCollector._run_by_nicelsD€åŒð 6ð 6ð 6åÝ” Ø),ðñôð ñ ô ð rN) Ú__name__Ú __module__Ú __qualname__Ú__doc__rÚ staticmethodrr&r3r@r7r<rVrrr r s±€€€€€ðððððð ð@ð@ñ„\ð@ð  ð  ð  ðððð(6ð6ð6ð&ðCðCñ„\ðCð$ð ð ñ„\ð ð ð rr )r)r rNr8r:Úclcommon.clpwdrÚclcommon.constrÚclcommon.cpapirrrr rVrrúr_s¸ðð€ € € Ø € € € ØÐÐÐØ € € € àÐÐÐØ Ð Ð Ð Ð Ð Ø"Ð"Ð"Ð"Ð"Ð"ØNÐNÐNÐNÐNÐNÐNÐNÐNÐNðb ðb ðb ðb ðb ñb ôb ðb ðb ðb r