gh ddlZddlmZddlZddlZddlZddlmZmZej edZ dZ edgdZ e e dzd d d e e d zd d d e e dzd d de e dzd dd e e dzd dde e dzddd fZejeZdZdZdZdZefdZefdZdS)N) namedtuple)CLOUDLINUX_HOOKSCONTACT_SUPPORT_MESSAGE_FOOTERzcpanel/"/usr/local/cpanel/bin/manage_hooksHook)pathcategoryeventstage postwwwacctWhostmgrzAccounts::Createpost postkillacctzAccounts::Remove prekillacctprepostmodifyacctzAccounts::Modify premodifyacctpostrestoreacctPkgAcctRestorect||||}|rtd|||dStd||| t jt dd|dt|dt|dt|d g tjd }td | dS#ttj f$r}t|tj r|j d }nt|}td tj||t||Yd}~dSd}~wwxYw)Nz>Hook for %s:%s:%s action is already installed; skip installingTz Registering %s:%s:%s action hookaddscript --category--event--stage--manualstderrtextz3Register hook ended successfully; tool output: `%s` zDCan't install hook `%s` to category: `%s` event: `%s`; message: `%s`F)_is_hook_installedloggerinfodebug subprocess check_output MANAGE_HOOKstrSTDOUTrstripOSErrorCalledProcessError isinstanceoutputerrorosrbasename) hook_pathr r r is_installedr/emessages /builddir/build/BUILD/imunify360-venv-2.6.0/opt/imunify360/venv/lib/python3.11/site-packages/clcommon/public_hooks/bundle/cpanel/manager.py _install_hookr8!s%eXy%HHL <eU , , ,t LL3XueLLL( ) #h-- s5zz s5zz: * #$ 000  I6==??[[[t Z2 3 a6 7 7 hood++GG!ffG \W%%i00(CJJ Q Q QuuuuusACF/B FFct}|dS |||D]}|d|kr|d|krdSn#t$rYdSwxYwdS)zd Check if hook with given parameters is installed in control panel :return: boolean Nhookr TF)_get_hooks_configKeyError)r r hook_script_pathr all_hooksis r7r"r">s "##It8$U+  Ay,,,7u1D1Dtt  uu 5s)AA AAcn tjgdd}nL#ttjf$r3}tdt |Yd}~dSd}~wwxYw tj|}n8#ttf$r$t dtYdSwxYw|S)z& Reads main hooks config file )rlistz --output=JSONT)r z>Unable to load list of already installed hooks. Reason is `%s`NzDReceived list of installed hooks is malformed and not valid JSON. %s) r&r'r,r-r#r0r)jsonloads ValueError TypeError exceptionr)streamr5r>s r7r;r;Ps( K K K    Z2 3 ?@CA H H Httttt Jv&&  "?7 9 9 9tt  s&A$(AA$(A==1B21B2ct||||durtd|||dStd||| t jt dd|dt|dt|d t|d g tjd }td | dS#ttj f$r}t|tj r|j d }nt|}td|t||tYd}~dSd}~wwxYw)z5 Delete hook script and unregister in cPanel Fz8Hook for %s:%s:%s action is not installed; skip removingTz"Unregistering %s:%s:%s action hookdeleterrrrrrz5Unregister hook ended successfully; tool output: `%s`r!zBCan't delete hook with category:`%s` event:`%s`; message: `%s`. %sN)r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r)r=r r r r/r5r6s r7_delete_hook_scriptrJhss %+;UCCuLL 6eU , , ,t LL5xNNN( 8-= #h-- s5zz s5zz: * #$ 000  KV]]__]]]t Z2 3 a6 7 7 hood++GG!ffG Zs5zz74R T T TuuuuusACE./A4E))E.cdd}|D]*}t|j|j|j|jo|}+|SNT)r8rr r r hookssuccessr:s r7 install_hooksrPsKGJJ It}dj$*>>JBI  Ncdd}|D]*}t|j|j|j|jo|}+|SrL)rJrr r r rMs r7 remove_hooksrSsKGJJ% It}dj$*>>JBI  NrQ)r& collectionsrr1rBloggingclcommon.public_hooksrrrjoinBIN_DIRr(rHOOKS getLogger__name__r#r8r"r;rJrPrSrQr7r]s"""""" RRRRRRRR ',,' 3 32 z&@@@AA D= *.@&IID> !:/A6JJD= *.@%HHD# #Z1CVLLD? "J0BEJJD$ $iFCC    8 $ $:$0BrQ