PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  4h^c@s"ddlZddlmZddlmZddlmZddlmZddlmZddlm Z ddlm Z dd l m Z d Z d d'd YZd efdYZdefdYZdefdYZdZd(Zd#Zd$efd%YZd&ZdS()iN(tcompact_traceback(tnotify(tEventRejectedEvent(tProcessLogStderrEvent(tProcessLogStdoutEvent(tEventListenerStates(t getEventListenerStateDescription(tloggerscCs?t|d}x(|r:|j||  r:|d8}qW|S(Ni(tlentendswith(thaystacktneedletl((s:/usr/lib/python2.7/site-packages/supervisor/dispatchers.pytfind_prefix_at_end st PDispatchercBs\eZdZeZdZdZdZdZdZ dZ dZ dZ RS( s{ Asyncore dispatcher for mainloop, representing a process channel (stdin, stdout, or stderr). This class is abstract. cCs&d|jjt||j|jfS(Ns<%s at %s for %s (%s)>(t __class__t__name__tidtprocesstchannel(tself((s:/usr/lib/python2.7/site-packages/supervisor/dispatchers.pyt__repr__s  cCs tdS(N(tNotImplementedError(R((s:/usr/lib/python2.7/site-packages/supervisor/dispatchers.pytreadablescCs tdS(N(R(R((s:/usr/lib/python2.7/site-packages/supervisor/dispatchers.pytwritable!scCs tdS(N(R(R((s:/usr/lib/python2.7/site-packages/supervisor/dispatchers.pythandle_read_event$scCs tdS(N(R(R((s:/usr/lib/python2.7/site-packages/supervisor/dispatchers.pythandle_write_event'scCsRt\}}}}|jjjjjdt||||f|jdS(Ns:uncaptured python exception, closing channel %s (%s:%s %s)(RRtconfigtoptionstloggertcriticaltreprtclose(Rtniltttvttbinfo((s:/usr/lib/python2.7/site-packages/supervisor/dispatchers.pyt handle_error*s  cCs?|js;|jjjjjd|j|ft|_ndS(Ns#fd %s closed, stopped monitoring %s(tclosedRRRRtdebugtfdtTrue(R((s:/usr/lib/python2.7/site-packages/supervisor/dispatchers.pyR 7s cCsdS(N((R((s:/usr/lib/python2.7/site-packages/supervisor/dispatchers.pytflush=s( Rt __module__t__doc__tFalseR&RRRRRR%R R*(((s:/usr/lib/python2.7/site-packages/supervisor/dispatchers.pyRs      tPOutputDispatchercBseZdZd Zd ZeZd Zd Z d Z dZ dZ dZ dZdZdZdZdZd Zd ZRS( s Output (stdout/stderr) dispatcher, capture output sent within tags and notify with a ProcessCommunicationEvent tc Cs||_||_||_|jj|_}t|jd|}t|jd|}|rt|jd|}t|jd|}d} |dkrdj|jj| f} n|jjj |t j j d| d | d |d ||_ n|r6|jjjj dt j j dd td ||_n|j |_|jj} |jj} | t| f|_| t| f|_t j j|_|jj} | jj|jk|_| j|_| j|_dS( Ns %s_logfiles%s_capture_maxbytess%s_logfile_maxbytess%s_logfile_backupss %(message)stsyslogt tfmttrotatingtmaxbytestbackups(Rt event_typeR(RtgetattrRtjointnameRt getLoggerRt LevelsByNametINFOtmainlogtNoneR-t capturelogtchildlogt BEGIN_TOKENt END_TOKENRtbegintoken_datat endtoken_datatDEBGt mainlog_leveltlogleveltlog_to_mainlogtstdout_events_enabledtstderr_events_enabled( RRR6R(Rtlogfiletcapture_maxbytesR4R5R2t begintokentendtokenR((s:/usr/lib/python2.7/site-packages/supervisor/dispatchers.pyt__init__MsJ              cCsXxQ|j|jfD]=}|dk rx(|jD]}|j|jq/WqqWdS(N(R=R?R>thandlerstremovetreopen(Rtlogthandler((s:/usr/lib/python2.7/site-packages/supervisor/dispatchers.pyt removelogs{s   cCsNxG|j|jfD]3}|dk rx|jD]}|jq/WqqWdS(N(R=R?R>RPRR(RRSRT((s:/usr/lib/python2.7/site-packages/supervisor/dispatchers.pyt reopenlogss c Cs|r|jj}|jjr-t|}n|jrI|jj|n|jrd}|jjj |j |d|j d|j d|n|j dkr|j rtt|j|jj|qq|jrtt|j|jj|qndS(Ns%%(name)r %(channel)s output: %(data)sR9Rtdatatstdout(RRRt strip_ansit stripEscapesR@tinfoRHRRSRFR9RRIRRtpidRJR(RRWRtmsg((s:/usr/lib/python2.7/site-packages/supervisor/dispatchers.pyt_logs(         cCs9|jdkr2|j}d|_|j|dS|jrM|j\}}n|j\}}t|j|krudS|j}d|_y|j|d\}}Wn\t k rd}t ||}|r|j|| |_|| }n|j|n!X|j||j ||_|r5|j ndS(NR/i( R?R>t output_bufferR^t capturemodeRDRCRtsplitt ValueErrorR ttoggle_capturemodet record_output(RRWttokenttokenlentbeforetaftertindex((s:/usr/lib/python2.7/site-packages/supervisor/dispatchers.pyRds4          cCs |j |_|jdk r |jr4|j|_q x|jjD]}|jqAW|jj}|j}|jj j }|j |j|jj |}t |d}|jj jjj|d|d|x(|jjD]}|j|jqW|j|_ndS(Ns-%(procname)r %(channel)s emitted a comm eventtprocnameR(R`R?R>R@RPR*tgetvalueRRRR9R6R\RRRR'RQRRR=(RRTRWRRjteventR]((s:/usr/lib/python2.7/site-packages/supervisor/dispatchers.pyRcs&     cCstS(N(R-(R((s:/usr/lib/python2.7/site-packages/supervisor/dispatchers.pyRscCs|jr tStS(N(R&R-R)(R((s:/usr/lib/python2.7/site-packages/supervisor/dispatchers.pyRs cCsK|jjjj|j}|j|7_|j|sG|jndS(N(RRRtreadfdR(R_RdR (RRW((s:/usr/lib/python2.7/site-packages/supervisor/dispatchers.pyRs  N(RR+R,R>RRR-R`R=R?R@R_RORURVR^RdRcRRR(((s:/usr/lib/python2.7/site-packages/supervisor/dispatchers.pyR.@s" .    $   tPEventListenerDispatchercBseZdZd Zd Zd ZdZdZdZ e eZ e e Z dZ dZdZdZdZd Zd Zd Zd ZRS(sN An output dispatcher that monitors and changes a process' listener_state R/sREADY sRESULT c Cs||_tj|j_d|j_d|_d|_||_||_ t |j d|}|rt |j d|}t |j d|}|j j j |tjjdd| d|d||_ndS( NR/s %s_logfiles%s_logfile_maxbytess%s_logfile_backupss %(message)sR3R4R5(RRt ACKNOWLEDGEDtlistener_stateR>Rltresultt resultlenRR(R7RRR:RR;R<R@(RRRR(RKR4R5((s:/usr/lib/python2.7/site-packages/supervisor/dispatchers.pyROs$        cCsA|jdk r=x+|jjD]}|j|jqWndS(N(R@R>RPRQRR(RRT((s:/usr/lib/python2.7/site-packages/supervisor/dispatchers.pyRUs cCs7|jdk r3x!|jjD]}|jqWndS(N(R@R>RPRR(RRT((s:/usr/lib/python2.7/site-packages/supervisor/dispatchers.pyRVscCstS(N(R-(R((s:/usr/lib/python2.7/site-packages/supervisor/dispatchers.pyR scCs|jr tStS(N(R&R-R)(R((s:/usr/lib/python2.7/site-packages/supervisor/dispatchers.pyR#s cCs|jjjj|j}|r|j|7_|jjj}d||j|f}|jjjjj ||j r|jjjj rt |}n|j j |qn |j|jdS(Ns%r %s output: %s(RRRRmR(t state_bufferR9RRR'R@RYRZR[R thandle_listener_state_change(RRWRjR]((s:/usr/lib/python2.7/site-packages/supervisor/dispatchers.pyR(s  c Cs|j}|sdS|j}|jj}|j}|tjkrMd|_dS|tjkrt||j krudS|j |j r|j tj |j }|j||_d|_n"|j tjd|_d|_|jr|jqdSn|tj kr0|j tjd|_d|_dS|tjkr|jdkr|jd}|dkrmdS|j| }|j|d|_||j}yt||_Wqtk r|jjjjd||f|j tjd|_tt||jd|_dSXn|jt|j} | ry|j|j| 7_|j| |_|jt|j} n| s|j|jd|j_d|_d|_n|jr|jqdSndS(NR/s iis%s: bad result line: %r(RsRRR9RpRtUNKNOWNRoRtREADY_FOR_EVENTS_LENt startswithtREADY_FOR_EVENTS_TOKENt_change_listener_statetREADYR>RlRttBUSYRrtfindtRESULT_TOKEN_START_LENtintRbRRtwarnRRRqt handle_result( RRWRRjtstateRftpost result_lineRrtneeded((s:/usr/lib/python2.7/site-packages/supervisor/dispatchers.pyRt<sv                        cCs|j}|jj}|jjj}yA|jjjj|j||jd||j t j Wnt k r|j d||j t j tt||jn>|j d||j t jtt||jnXdS(Ns%s: event was processeds%s: event was rejecteds%s: event caused an error(RRR9RRtgrouptresult_handlerRlR'RyRRot RejectEventRRRRu(RRqRRjR((s:/usr/lib/python2.7/site-packages/supervisor/dispatchers.pyRs   cCs|j}|jj}|j}d|t|t|f}|jjjj|||_|tj krd|}|jjjj |ndS(Ns %s: %s -> %ss%s: has entered the UNKNOWN state and will no longer receive events, this usually indicates the process violated the eventlistener protocol( RRR9RpRRRR'RRuR(Rt new_stateRRjt old_stateR]((s:/usr/lib/python2.7/site-packages/supervisor/dispatchers.pyRys     N(RR+R,R>RRR@RsRxtRESULT_TOKEN_STARTRRvR}RORURVRRRRtRRy(((s:/usr/lib/python2.7/site-packages/supervisor/dispatchers.pyRns$         U tPInputDispatchercBsMeZdZdZdZdZdZdZdZ dZ dZ RS(s Input (stdin) dispatcher R/cCs(||_||_||_d|_dS(NR/(RRR(t input_buffer(RRRR(((s:/usr/lib/python2.7/site-packages/supervisor/dispatchers.pyROs   cCs|jr|j rtStS(N(RR&R)R-(R((s:/usr/lib/python2.7/site-packages/supervisor/dispatchers.pyRscCstS(N(R-(R((s:/usr/lib/python2.7/site-packages/supervisor/dispatchers.pyRscCs5|jjjj|j|j}|j||_dS(N(RRRtwriteR(R(Rtsent((s:/usr/lib/python2.7/site-packages/supervisor/dispatchers.pyR*s cCsc|jr_y|jWq_tk r[}|jdtjkrUd|_|jq\q_XndS(NiR/(RR*tOSErrortargsterrnotEPIPER (Rtwhy((s:/usr/lib/python2.7/site-packages/supervisor/dispatchers.pyRs   N( RR+R,R>RRRRORRR*R(((s:/usr/lib/python2.7/site-packages/supervisor/dispatchers.pyRs    sHtftAtBtCtDtRtstutJtKthR tptmcCsd}d}d}t|}x||kr|dkrR||tkrRd}nP|r|jt|}|dkr|||S||||!}|}d}n|d}q!W|S(s> Remove all ANSI color escapes from the given string. R/iii(RtANSI_TERMINATORSR|tANSI_ESCAPE_BEGIN(RRqtshowtitLtn((s:/usr/lib/python2.7/site-packages/supervisor/dispatchers.pyRZs      RcBseZdZRS(sY The exception type expected by a dispatcher when a handler wants to reject an event (RR+R,(((s:/usr/lib/python2.7/site-packages/supervisor/dispatchers.pyRscCs|dkrt|ndS(NtOK(R(Rltresponse((s:/usr/lib/python2.7/site-packages/supervisor/dispatchers.pytdefault_handlers ((RRRRRRRRRRRRR RR(Rtsupervisor.medusa.asyncore_25Rtsupervisor.eventsRRRRtsupervisor.statesRRt supervisorRR RR.RnRRRRZt ExceptionRR(((s:/usr/lib/python2.7/site-packages/supervisor/dispatchers.pyts&  .%