}CenddlmZddlmZddlmZddlZdZdZGddeZGd d eZ Gd d Z dS) )absolute_import)division)print_functionNz /proc/lvelceZdZdS) ProcLveErrorN__name__ __module__ __qualname__/builddir/build/BUILDROOT/alt-python27-cllib-3.3.7-2.el7.cloudlinux.x86_64/opt/cloudlinux/venv/lib/python3.11/site-packages/clcommon/clproc.pyrrDr rceZdZdS) NoSuchLvpNrr r rrrrr rceZdZefdZdZdZdZdZdZ ddZ d Z dd Z dd Z dd ZdZddZdZdZdZdZdS)ProcLvec>d|_d|_||_d|_dS)Nlvplist)_lvprproc_lve_version)selfrs r__init__zProcLve.__init__s"     r cVtj|j|jS)z/ Return path to /proc/lve/list )ospathjoinrrrs r proc_lve_listzProcLve.proc_lve_list"sw||DM49555r c$|j|jSt|5}|d}dddn #1swxYwYt |ddd|_|jS)z5 Return /proc/lve filesystem version N:r)ropenr!readintrsplit)rflines rversionzProcLve.version(s = $= $$$&& ' ' 166!99D               DKKQ//233 }sAAAcLtj|jdS)Nmaprrrrr s r proc_lve_mapzProcLve.proc_lve_map3sw||DM5111r cLtj|jdS)z4 Return path to /proc/lve/resellers resellersr/r s rproc_lve_resellerszProcLve.proc_lve_resellers6sw||DM;777r cdtj|S)z3 Check present /proc/lve/resellers )rrexistsr3r s rresellers_supportedzProcLve.resellers_supported<s$w~~d5577888r rc|dkr|Stj||jt |z|jS)z, Generate path to list file r)r!rrrr3rstrrrlvp_ids r get_list_pathzProcLve.get_list_pathBsT Q;;%%'' '7<< 7 7 9 949s6{{;RTXT]^^ ^r ct|dddS)Nr,)r(split)rr+s r _extract_idzProcLve._extract_idKs/4::<<?((--b1222r c#K||} t|5}|}dddn #1swxYwYn@#t$r3}|jdkr"t d|d}~wwxYw|ddd}|D]8}| || tj fV9dS)Nr:zNo such lvp id {} r%) r;r&r'stripIOErrorerrnorformatr?r@rstriprlinesep)rr:rlist_lineser+s r_lineszProcLve._linesNsL!!!00 d -u **,, - - - - - - - - - - - - - - -   w!|| 3 : :6 B BCCC    D!!!""% B BD""4(($++bj*A*AA A A A A B Bs:A('A A(A  A(#A $A(( B%2.B  B%Tc#fK||D]\}}|tkr|r|VdS)NrBrN LIMIT_LVP_ID)rr:without_limitslve_idr+s rrLz ProcLve.lines\sO KKvK66  LFD%%.%JJJJ  r c#bK||D]\}}|tdfvr|VdS)NrBrrP)rr:rS_s r lve_id_listzProcLve.lve_id_listbsOF33  IFA,***LLLL  r c#Ktj|D]G}||jr+t |t |jdVHdS)z= Obtain from /proc/lve/resellers lvp id list N)rlistdirr3 startswithrr(len)rlvp_dirs r lvp_id_listzProcLve.lvp_id_listhsuz$"9"9";";<< 4 4G!!$),, 4'#di..//233333 4 4r cJ||D] }||krdS dS)NrBT)rV)rid_r:rSs rcheck_inside_listzProcLve.check_inside_listpsA&&f&55  F}}tt  r cftj||S)z1 Check present lve top container )rrr5r;r9s r exist_lvpzProcLve.exist_lvpus&w~~d0088999r c|D]1}||r|||r|cS2dS)z1 Find in which lve top container N)r\rar_)rr^r:s rdetect_inside_lvpzProcLve.detect_inside_lvp{s^&&((  F~~f%% $*@*@f*M*M    r ct}t|5}|}dddn #1swxYwY|ddd}|D]J}|\}}t ||t |<K|S)z7 Obtain map from /proc/lve/map as dict NrDr%)dictr&r0r'rEr?r()rmap_dictmap_rLr+ lve_id_str lvp_id_strs rr.z ProcLve.maps66 $##%% & & ($IIKK%%''E ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( D!!!""% 8 8D%)ZZ\\%7%7%9%9 "J (+JHS__ % %s'A##A'*A'cfdt|DS)Nc&g|] \}}|k |Sr r ).0lve_id_lvp_id_r:s r z+ProcLve.map_lve_id_list..s)^^^,GWGW]L]L]L]L]L]r )rr.itemsr9s `rmap_lve_id_listzProcLve.map_lve_id_lists9^^^^TXXZZ5E5E5G5G0H0H^^^^r N)r)rT)r r r PROC_LVErr!r,r0r3r6r;r@rNrLrVr\r_rarcr.rqr r rrrsA ( 666   222888 999 ____333 B B B B  444 :::    _____r r) __future__rrrrrrrQ Exceptionrrrr r rrus'&&&&&%%%%%%       9           w_w_w_w_w_w_w_w_w_w_r