}Cea TddlmZddlmZddlmZddlZddlZddlZddlmZddl m Z ddl m Z ddl mZmZejed Zd Zd ejed id ejed id ejedid ejedid ejedid ejedidZejeZefdZdZdZdZdZdZdZdS))absolute_import)division)print_functionN) StrictVersion)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.3.7-2.el7.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]##mF&;&;;;>( 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_installrDGs] 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)r5r6r7r8r9r3r:r;r<r=r>r?r4r )rr?rBrCs r&plesk_hook_removerFds  ^( $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|z}t|}|sdS|D]+}t|dt|dd<,dS)zE Defines IDs of hooks by name (extends existing PLESK_HOOKS) ,cg|] }d|zdz S)').0is r& z#define_hook_ids..~s <<<sQw}<< OC S>>D 00$'AKKc!f j!!00r(ctjts"tdtdSt j}|d}t|tdkrtt|}tD]}||vrt d|"t d|t|tdkr3tt|dt|dt|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 hookrOr )r0r1r2r7r3warningrget_cp_descriptionrrSr'rQr:debugrD panel_datar installed_eventshooks r& install_hooksr^s5 7>>2 3 3AC[\\\)++Jy)M]##mF&;&;;;8GG A A # # # KKF M M M  14888  ' '-*?*? ? ? uT{:6d M8R S S S S tU4[%? @ @ @ @ A Ar(ctjts"tdtdSt j}|d}t|}tD]X}||vrt d|"t d|t||dYdS)z All Plesk hooks remove rUNrVz(Hook %s is not registered in plesk; skipzUnregistering %s action hookr) r0r1r2r7r3rWrrXr'rQr:rYrFrZs 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 NrVr)r0r1r2r7rrXr'rF) event_namer!r[r r\s r&"remove_hook_by_str_id_and_locationrcsx 7>>2 3 3)++Jy)M8PP)))&z2<@AAAAAr() __future__rrrr0loggingr5distutils.versionrclcommonrclcommon.cpapi.plugins.pleskrclcommon.public_hooksr r r1rPBIN_DIRr7rQ getLogger__name__r3r'rDrFrSr^r`rcrKr(r&rms '&&&&&%%%%%% ++++++222222RRRRRRRR ',,' 2 2=*27<<A[+\+\])27<<A[+\+\])27<<A[+\+\])27<<AQ+R+RS,bgll7N.S.ST+RW\\'>-R-RS     8 $ $>ED\\\:^^^, 0 0 0AAA4@@@,BBBBBr(