/opt/tier2c/__pycache__
NameSizeModeActions
mv_backup.cpython-313.pyc19780644editdlrm
safe_pkgacct.cpython-313.pyc32410644editdlrm
safe_removeacct.cpython-313.pyc18670644editdlrm
safe_restorepkg.cpython-313.pyc156330644editdlrm
Edit: /opt/tier2c/__pycache__/safe_restorepkg.cpython-313.pyc (15633B)
i) SrSSKrSSKrSSKJr SSKJr SSKJr SSK r SSK r SSK r SSK J r SSKJr SSKJrJr SS KJr SS KJr SSKr\ R0R3SS 5 SSKrSS KJr SS KJrJr \"S5R?5(aSr O \"S5R?5(aSr OSr \"SS55r!S\!4Sjr"S\#S\#4Sjr$S\#S\4Sjr%S3S\ S\#S\&4Sjjr'S\ S\#S\#S\&4Sjr(S\ S\#S\S-S\&4S jr)S\ S\#S!\#S-S\&4S"jr*S\ S#\S$\#S-S%\&4S&jr+S'\!S#\S\#S(\S\,\#4 S)jr-S*\S\\.\#\4SS44S+jr/S,r0S-\1\#\,\#44S.jr2S/\,\#4S0jr3S/\,\#4S1jr4\5S2:Xa\0"5 gg)4z0Wrapper for /usr/local/cpanel/scripts/restorepkgN) dataclass)ArgumentTypeError)Path)IO) Generator)whmapi1 CpAPIError)Proc) IPAddressz/opt/support/lib) CPMOVE_RE) MAIN_RESELLERROLEz/opt/sharedrads/hostsfilemodsz/opt/dedrads/hostsfilemodsc\rSrSr%Sr\S-\S'\\S'\\S'\\S'\\S'\S-\S '\S-\S '\\S '\ \S '\ \S 'Sr g)Args zType hint for get_argsNnewuserownerquietyes host_modsipaddrpackagefixpermspathlog_dir) __name__ __module__ __qualname____firstlineno____doc__str__annotations__boolr r__static_attributes__r/opt/tier2c/safe_restorepkg.pyrr sG 4Z J K IO   4ZN J Mr&rreturnc T[R"[S9nURSS[R SS9 [ (a [ S:Xa#URSSS [[S [3S 9 URS S SSS9 URSSSSSS9 [(aURSSSSSS9 URSSSSSS9 URSS [RS!S9 [S"5R5Vs1sH%oR5(dMURiM' nnURS#S$S%S&S'US(U<3S)9 URS*[S+S,9 UR!5nUR"R%5(a7UR&(a&UR)5 [*R,"S-5 [ (a[ S:wa [Ul[(dS.Ul[ (a[S/5UlU$[S05UlU$s snf)1zParse sys.argv) description --newuserrzwAllows you to restore to the username in AMP without having to modify account. Will be ignored if restoring a directory)desttypehelpzshared:resellerz--ownerz-orz)Set Ownership to a reseller. Defaults to )r,defaultr-r.z --no-fixpermsr store_falsez#Do not run fixperms after restoring)r,actionr.--quietz-q print_logsz0Silence restorepkg output (it still gets logged)z --host-modsz-mr store_truez=Print host file mod entries at the end for all restored usersz--yesz-yrzNo Confirmation Prompts)r1r,r.z--iprzSet an IP addressz/var/cpanel/packagesz--pkgz-pz-PPKGrzSet a package type )metavarr,choicesr.rz4Path to the backup file or directory of backup files)r-r.z2 --newuser invalid when restoring from a directoryFz /home/t1binz/var/log/t1bin)argparseArgumentParserr! add_argument arg_typesvalid_usernamerr existing_reseller HOSTFILEMODS ipaddressriterdiris_filenamerestorable_path parse_argsris_dirr print_helpsysexitrrr)parserxpackagesargss r'get_argsrM0sK  $ $ 9F    % %C  44,,  !"<]OL     2     ? |  P      &     34<<>>1))+>     "8, /   C    D yy <<     HHJ K t))" < tM*  K,- K=s H%H%usercU(d [S5eUS:XaU$[R"U5(d[SUS35e[SSS9nUH)nUR US35(dMUs sS S S 5 $ S S S 5 [US 35e!,(df  N=f![ a [ S [RS 9 NCf=f) zDArgparse type: validate a user as existing with reseller permissionszcannot be blankrootz reseller z does not existz/var/cpanel/resellersascii)encoding:Nz$/var/cpanel/resellers does not existfilez not setup as a reseller) BadArgrads is_cpuseropen startswithFileNotFoundErrorprintrGstderr)rNhandlelines r'r=r=s &'' v~ >>$  yo677G )G <??dV1:..K= <= D612 33 = < G 43::FGsB B'B1B4 B'>BB' B$ B'$B''"C  C str_pathc[R"U5$![a Of=f[R"U5nO![an[S5UeSnAff=fU[ S5:Xa [S5eU$)zOArgparse type: validates a path as either a cpmove file or a directory in /homez9not a cPanel backup or directory in /home containing themNz/homezQinvalid path; when restoring from a directory, it must be a subdirectory of /home)r;cpmove_file_typerV path_in_homer)r`rexcs r'rCrCs ))(33    %%h/  G   tG} 1   Ks# %%A A AAr^msgshowcURS5(dUS3nURU5 U(a [USS9 gg)z$Writes to a log and prints to stdout )endN)endswithwriter\)r^rerfs r' log_printrms: <<  Rj LL  cr r&log_filercUS:Xag[USUSU35 [R"X5 g![an[USU35 SnAgSnAff=f)zChange a user's ownerrPTzsetting owner of  to zmodifyacct failed: NF)rmr set_ownerr )rnrNrrds r'rqrqsc  h+D6eW=>$&  (1#78s2 AAArcU(dg[USUSU35 [R"U[U55 g![an[USU35 SnAgSnAff=f)zSet a user's IPTzsetting IP of rpzsetsiteip failed: NF)rmr setsiteipr"r )rnrNrrds r'set_iprtsd  h.d6(;<$F ,  (067s = A AA pkgcU(dg[USUSU35 [R"X5 g![an[USU35 SnAgSnAff=f)zSet a user's cPanel packageTzsetting package of rpzchangepackage failed: NF)rmr changepackager )rnrNrurds r' set_packagerxs_  h-dV4u=>d(  (4SE:;s3 AAAcpmoverr3c SS/nU(aURSU/5 URU5 Sn[U[R"5SS[R [R S9nURHn[XU5 SU;dMS nM S S S 5 URS 5 WRS :wa[US UR35 S nU$!,(df  NL=f)zExecute restorepkgz$/usr/local/cpanel/scripts/restorepkgz --skipresr+Tutf-8replace)limrRerrorsstdoutr]zAccount Restore FailedFNrhrzrestorepkg exit code was ) extendappendr os cpu_countPIPESTDOUTrrmrl returncode)rnryrr3cmdsuccessprocr_s r' restorepkgrs 2; ?C K)*JJvG  LLNyy{{   KKD hj 1'4/   NN4 !(77HIJ N!  s/ CC C-rLlogc UR=(d UnURU:Xa[URS35 S/$[R"U5(a[US[ R S9 S/$[SU5 URSSS9n[XAURUR5(d S/sS S S 5 $/n[XBUR5(dURS UR35 [XBUR5(dURS UR35 [XBUR5(dURS UR35 S S S 5 U$!,(df  W$=f) zcRestore a user (restorepkg + set owner/ip/package) and return a list of task(s) that failed, if anyz-: You cannot set a reseller to own themselvesrzalready existsrTz Logging to:ar{)moderRNz set owner to z set ip to zset package to )rrr\rWrXrGr]rYrr3rqrrtrrxr)rLryrNrrnfaileds r' restore_userrs= << 4D zzT  IJK~ ~~d d$3::6~ - sW -(DLL$//JJ > . -44 MMM$**6 7hdkk22 MMJt{{m4 584<<88 MMODLL>: ; . M . - Ms)E>B-E>> F rc## UR5HAn[R"UR5=n(dM,UR S5U4v MC g7f)z)Iterate over backups found in a directoryN)r@r matchrBgroup)rentryrs r' iter_backupsrs@OOEJJ/ /5 /++a.%' ' s 9AAc[5n0nURRSSS9 URR 5(Ga[ [ UR55nU(d#[R"SUR35 [S5 UHup4[X4SS9 M UR(a[R"S5 O1[R"S 5(d[R"S 5 UH/up4URRUS 35n[!XX55nM1 UH up4WX'M O["R$"URR&5R)S 5nUR*(a UR*OUnURRUS 35n[!XRXu5X'[-U5 UR/5VV s/sHupU S /:wdMUPM n nn UR0(a [1U 5 UR2(a [5U 5 ggs sn nf)z"Wrapper around cPanel's restorepkgiT)rexist_okzNo backups in z'The following backups will be restored:: sepzWould you like to proceed?rz .restore.logrrN)rMrmkdirrrElistrrGrHr\rtimesleeprW prompt_y_njoinpathrr rrBrr print_resultsitemsrrprint_host_mods) rL user_failsbackupsrNrrr orig_userkvrestoreds r'mainrs :D')JLLC$/ yy*.|DII/F*G HH~dii[1 2 78!JD $$ '" 88 JJqM??#?@@ !JD,,''4& (=>C!$d8F""JD%J " OODIINN399!< #||t||ll##tfL$9:'iiH *(..0H0daA,4G0HH }} ~~!Is 9 I  I rc[S5 UR5H0upU(a[USSSS9 [USS06 M%[USSS9 M2 g ) z*Print results from each ``restore_user()``z== Restore Results ==rr)rrjrz, rrN)r\r)rrNfailss r'rr?sJ !"!'')   $d 5 5 #d # $ t , *r&rcJU(dg[R"SS/U-5 g)zRuns fixperms on restored usersNz/usr/bin/fixpermsr2) subprocesscall)rs r'rrJs OO()4x?@r&cd[S5 UHn[R"[U/5 M! g)z$Runs the command at ``HOSTFILEMODS``z4Host file mod entries for all restored cPanel users:N)r\rrr>)rrNs r'rrRs& @At,-r&__main__)T)6r!rr8 dataclassesrrrVpathlibrrrGrtypingrcollections.abcrcpapisrr cprocr netaddrr rWrinsertr;r serverr rrAr>rrMr"r=rCr$rmrqrtrxrrrtuplerrdictrrrrrr&r'rs/6 !0 %& %&&'(00222L &'//11/LL     S$Sl4C4C4$cd,bs$  # c d  R s I,<   " C cDj T ),tAE8tT4DI0(t( %T *:D$*F G(#"L-d3S >2-AtCyA.d3i. zFr&