Tj!dZddlZddlZddlZddlmZddlmZmZddl m Z dZ d dZ d Z d Zed kr2ddlZe\ZZer eeerejedSdSdS) z5 CloudLinux control panel API command line interface N)cpapi)prepare_data_jsonprepare_attention_json)cpapiexceptionsc6tjd}|ddddd|d }|d }|d d |d}|dd|d}|ddd|dddd|dd}|dt dd|S)Nz>%(prog)s - CloudLinux control panel API command line interface) descriptionz-jz--json store_trueFzOutput in json format)actiondefaulthelpcommand)destdocrootdomainzReturn document root for domain)r userdomainsz>NS   M cFdfd|DS)N c:g|]}|Sjoin).0tuple_seps r% zflat_plain../s%:::6chhv&&:::r'r-)datar1s `r% flat_plainr4.s* 99::::T::: ; ;;r'ctjdkrdS tjtjj}n<#t $r/}t jdtjd|d}~wwxYwtj |rdS|j dkrcp-user mapping is narrowed to the caller instead. rNz Caller UID z# has no passwd entry; access deniedrz'Can't obtain document root for domain ''rz(Not authorized to list domains of user 'rz*Not authorized to list users of reseller 'r)osgetuidpwdgetpwuidpw_nameKeyErrorr NoPanelUserris_adminr domain_ownerrNoDomainrr cplogin_lst) namespacecallerexcs r%_enforce_authorizationrE2s y{{aUbikk**2 UUU) J")++ J J JLLQT UU ~fI%%  i. / /6 9 9!*M):JMMMOO O : 9  m + +  F * *!-S9;PSSSUU U + *  . . .  !V + +!-VY=SVVVXX X , +  5 5 5!'  6 5s*A A?*A::A?ct}|}d}d} t||jdkr@t j|j\}}|jrt||d}n|dz|z}n|jdkrLt j |j }|jrd|D}t|}nt|}n|jdkrFt j |j |j }|jrt|}n`t|}nP|jdkrEt j|j} |jrt| }nd | }nT#t"j$rB} d }|jrt't)| }nd t)| z}Yd} ~ nd} ~ wwxYw||fS) Nrr)ruserr(rc0g|]}|d|ddS)r)rrr,)r/domain_docroots r%r2zmain..fsEDDD*$2!#4$21$577DDDr'rrr*rIzERROR: )r& parse_argsrEr rrrjsonrrr4rrAwith_system_usersr$rr.rCPAPIExceptionrr) rrBoutput_ exit_coderrGdomain_docroot_pairsr3 db_mappinguserse_s r%mainrUVs  ^^F!!##IGI$*y)))   ) ) =)9::LFD~ .+vt,L,LMM 3,-  - / /#(#4Y5J#K#K ~ ;DD.BDDD,D11$%9::  "9 9 94Y5J5>5PRRJ~ 1+J77$Z00  "2 2 2()?@@E~ ++E22))E**  )*** > *,SWW55GG#b'')G * I sEE;;G  8GG __main__)r()__doc__rr7r9clcommonrclcommon.cloutputrrclcommon.cpapirr&r4rErU__name__sysrOrPprintexitr,r'r%r_s GGGGGGGG******2<<<<!)!)!)H***Z zJJJGY g  r'