§ ;Š»j~ã ó—dZddlZddlZddlmZmZmZmZddlm Z ddl m Z dZ dee eeeeeeffffd„Zd edeeeeffd „ZdS) zv common helper functions, related to processing api using custom binary currently available for Directadmin and Plesk éN)ÚListÚTupleÚUnionÚOptional)Ú exec_utility)ÚClPwdz#/usr/share/python-cllib/userdomainsÚreturncó¸—ttg¦«\}} tj|¦«}|dkr|d„|D¦«fSn#tj$rYnwxYw||fS)aà Calls USERDOMAINS(userdomains.c) bin and returns rc and loaded json output This is equals to call `userdomains(pwd.getpwuid(os.getuid()).pw_name, as_root=True)` Returns: return code of USERDOMAINS and json output if rc == 0: `out` is out from `userdomains()` NB: there is no tuples in JSON so da_out's type is List[List[str, str]] instead of List[Tuple[str, str]] if rc != 0: `out` type is str error codes: 1: diradmin/psaadmin user not found 2: not DA/Plesk panel 3: seteuid() syscall failed 4: executed as root 10: exception during `userdomains()` call 11: no such user in panel rcó†—g|]>}t|¦«dk¯td„|D¦«¦«¯.|d|df‘Œ?S)éc3ó@K—|]}t|t¦«V—ŒdS)N)Ú isinstanceÚstr)Ú.0Úps ú�/builddir/build/BUILDROOT/alt-python27-cllib-3.4.44-1.el8.cloudlinux.x86_64/opt/cloudlinux/venv/lib/python3.11/site-packages/clcommon/cpapi/cpapicustombin.pyú z;get_domains_via_custom_binary...,s,èè€Ð(IÐ(IÀ­°AµsÑ);Ô);Ð(IÐ(IÐ(IÐ(IÐ(IÐ(Ióré)ÚlenÚall)rÚrows rú z1get_domains_via_custom_binary..)sW€ðððàÝ�s‘8”8˜q’=�=¥SÐ(IÐ(IÀSÐ(IÑ(IÔ(IÑ%IÔ%I�=ð�Q”˜˜QœÐ à �=�=r)rÚ USERDOMAINSÚjsonÚloadsÚJSONDecodeError)ÚrcÚoutÚress rÚget_domains_via_custom_binaryr!s’€õ"�;¨Ñ+Ô+�G€Bˆð ÝŒj˜‰oŒoˆð �Š7ˆ7Øððàðñôðð ð øõ Ô ð ð ð Ø ˆð øøøð ˆsˆ7€NsšAÁAÁAÚdomaincóÞ—t¦«}| tj¦«¦«d}t ¦«\}}|dkrdS|D]\}}||kr ||jfcSŒdS)zÒ New method for getting doc_root for domain under user Method parses /usr/local/directadmin/... user's web server config See: _get_domains_list_as_root() :return: (doc_root, username) tuple rN)rÚ get_pw_by_uidÚosÚgetuidr!Úpw_name)r"ÚclpwdÚuser_pwrÚdomainsÚdomÚ_docroots rÚ"_docroot_under_user_via_custom_binr-2sƒ€õ ‰GŒG€EØ×!Ò!¥"¤)¡+¤+Ñ.Ô.¨qÔ1€Gõ0Ñ1Ô1�K€BˆØ ˆQ‚w€w؈tà ð-ð-‰ ˆˆXØ �&Š=ˆ=ؘWœ_Ð,Ð ,Ð ,Ð ,ð à ˆ4r)Ú__doc__r%rÚtypingrrrrÚclcommon.utilsrÚclcommon.clpwdrrÚintrr!r-©rrúr4séðððð  € € € Ø € € € Ø/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ø'Ð'Ð'Ð'Ð'Ð'Ø Ð Ð Ð Ð Ð à3€ ð u¨S°%¸¸TÀ%ÈÈSÈÄ/Ô=RÐ8RÔ2SÐ-SÔ'TðððððB¨sð°xØ ˆ#ˆsˆ(„Oô8ððððððr