Ѡg 0ddlZddlZddlZddlmZddlmZddlmZddl m Z m Z ej e dZdZdej ed idej ed idej ed idej ed idej ed idej ed idZejeZefdZdZdZdZdZdZdZdS)N)Version)cpapi) query_sql)CLOUDLINUX_HOOKSCONTACT_SUPPORT_MESSAGE_FOOTERzplesk/z /usr/local/psa/bin/event_handler SCRIPT_FILEphysical_hosting_createdphysical_hosting_updatedphysical_hosting_deleteddomain_updated plan_updated)phys_hosting_createphys_hosting_updatephys_hosting_delete domain_updatetemplate_domain_updatetemplate_admin_updatect|tdkrd}nd}t|}i}|D]G}||dvr;t|dt|d|dd||d<H|S) av Get all installed events. Assume that we always have no more than one executable file of each event type. :param plesk_version: plesk cp version; :param bin_dir: filter hooks by directory where their executable is stored :return: Dictionary of already installed events {event_name: {handler_id, action_id, command}} 17.8zwSELECT a.name, eh.id, eh.action_id, eh.command FROM psa.event_handlers eh INNER JOIN psa.actions a ON a.id=eh.action_idz:SELECT action_name, id, 0, command FROM psa.event_handlers) handler_id action_idcommandr)rrint) plesk_versionbin_dirsqlrowsresultrows /builddir/build/BUILDROOT/alt-python27-cllib-3.4.22-1.el8.cloudlinux.x86_64/opt/cloudlinux/venv/lib/python3.11/site-packages/clcommon/public_hooks/bundle/plesk/manager.py!plesk_get_event_handler_name_listr$!s}//>( S>>D F   c!f  !#a&kk Q[[q6F3q6N Mcttj|s#td|t dS t jtdd|ddddd t|g t j d }t d | dS#tt jf$rq}t|t jr|j d }nt|}td||t Yd}~dSd}~wwxYw)z Plesk single hook install into /usr/local/bin :param event_id: Event ID that must be created :param script_file: Command for event zAFile '%s' does not exist. Maybe some rpm package is malformed. %sNz--createz-commandz -priority50z-userrootz-eventTstderrtextz3Register hook ended successfully; tool output: `%s` z(failed to register Plesk hook %s: %s. %s)ospathisfileloggererrorr subprocess check_outputPLESK_HOOK_REGISTER_FILEstrSTDOUTinforstripOSErrorCalledProcessError isinstanceoutput)event_id script_filer<emessages r#plesk_hook_installrACs] 7>>+ & & ? "@ B B B \( $j  [$ VXs8}}* #$ 000  I6==??[[[[[ Z2 3KKK a6 7 7 hood++GG!ffG ? '+I K K K K K K K K K Ks=B00D7A&D22D7c tjtdt|gtjd}t d|dS#ttj f$rq}t|tj r|j d}nt|}t d||tYd}~dSd}~wwxYw)zc Remove Plesk hook :param handler_id: Handler ID of created event :return: Nothing z--deleteTr)z5Unregister hook ended successfully; tool output: `%s`r,zJFailed to unregister Plesk hook %s. Plesk reported following error: %s. %sN)r2r3r4r5r6r0r7r8r9r:r;r<r1r)rr<r?r@s r#plesk_hook_removerC`s  ^( $j#j//* #$000  KV]]__]]]]] Z2 3JJJ a6 7 7 hood++GG!ffG >*H J J J J J J J J J Js6A''C.=A&C))C.cddtD}d|d}t|}|sdS|D]+}t|dt|dd<,dS) zE Defines IDs of hooks by name (extends existing PLESK_HOOKS) ,cg|]}d|d S)').0is r# z#define_hook_ids..zs 777Ax1xxx777r%z/SELECT id, name FROM psa.actions WHERE name IN()NrrEVENT_ID)joinHOOKSrr)hook_names_strrr r"s r#define_hook_idsrQvsXX7777788N MN M M MC S>>D 00$'AKKc!f j!!00r%ctjts"tdtdSt j}|d}t|tdkrtt|}t D]\}}||vrt d|%td|t|tdkrt|d|d}t||ddS) z1 Plesk hooks install into /usr/local/bin (%s does not exist; skip installing hooksNversionrz,Hook %s is already registered in plesk; skipzRegistering %s action hookrMr)r-r.r/r4r0warningrget_cp_descriptionrrQr$rOitemsr7debugrA) panel_datarinstalled_events hook_name hook_datas r# install_hooksr]s2 7>>2 3 3AC[\\\)++Jy)M}//8GG % D D 9 ( ( ( KKF R R R  19=== = ! !GFOO 3 3 y4i 6N O O O O y)M*B C C C C D Dr%ctjts"tdtdSt j}|d}t|}tD]X}||vrt d|"t d|t||dYdS)z All Plesk hooks remove rSNrTz(Hook %s is not registered in plesk; skipzUnregistering %s action hookr) r-r.r/r4r0rUrrVr$rOr7rXrC)rYrrZhooks r# remove_hooksr`s 7>>2 3 3AC[\\\)++Jy)M8GG@@ ' ' ' KKBD I I I  3T:::*40>???? @@r%ctjtsdSt j}|d}t ||}||vrdSt||ddS)a Remove hooks of given :param event_name: string id of hook type, like 'phys_hosting_create' :param bin_dir: directory where we should search for hooks subscribed to given event name :return: Nothing NrTr)r-r.r/r4rrVr$rC) event_namerrYrrZs r#"remove_hook_by_str_id_and_locationrcsx 7>>2 3 3)++Jy)M8PP)))&z2<@AAAAAr%)r-loggingr2packaging.versionrclcommonrclcommon.cpapi.plugins.pleskrclcommon.public_hooksrrr.rNBIN_DIRr4rO getLogger__name__r0r$rArCrQr]r`rcrHr%r#rls %%%%%%222222RRRRRRRR ',,' 2 2=*27<<A[+\+\])27<<A[+\+\])27<<A[+\+\])27<<AQ+R+RS,bgll7N.S.ST+RW\\'>-R-RS     8 $ $>ED\\\:^^^, 0 0 0DDD6@@@,BBBBBr%