MOON
Server: Apache
System: Linux vps.erhabenn.com.br 3.10.0-1160.119.1.el7.tuxcare.els2.x86_64 #1 SMP Mon Jul 15 12:09:18 UTC 2024 x86_64
User: sonne (1011)
PHP: 8.2.31
Disabled: NONE
Upload Files
File: //usr/lib/python2.7/site-packages/azurelinuxagent/ga/send_telemetry_events.pyc
�
d�bc@s�ddlZddlZddlZddlmZddlmZmZddlm	Z	ddl
mZmZm
Z
ddlmZddlmZd�Zd	efd
��YZdS(i����N(tlogger(t	add_eventtWALAEventOperation(tServiceStoppedError(tustrtQueuetEmpty(tThreadHandlerInterface(ttextutilcCs
t|�S(N(tSendTelemetryEventsHandler(t
protocol_util((sL/usr/lib/python2.7/site-packages/azurelinuxagent/ga/send_telemetry_events.pyt!get_send_telemetry_events_handlersR	cBs�eZdZdZejdd�jZdZejdd�Z	d�Z
ed��Zd�Z
d�Zd	�Zd
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�ZRS(s�
    This Handler takes care of sending all telemetry out of the agent to Wireserver. It sends out data as soon as
    there's any data available in the queue to send.
    tSendTelemetryHandlertsecondsiicCs1|j�|_t|_d|_t�|_dS(N(tget_protocolt	_protocoltTruet
should_runtNonet_threadRt_queue(tselfR
((sL/usr/lib/python2.7/site-packages/azurelinuxagent/ga/send_telemetry_events.pyt__init__.s			cCstjS(N(R	t_THREAD_NAME(((sL/usr/lib/python2.7/site-packages/azurelinuxagent/ga/send_telemetry_events.pytget_thread_name<scCstjd�|j�dS(Ns#Start SendTelemetryHandler service.(Rtinfotstart(R((sL/usr/lib/python2.7/site-packages/azurelinuxagent/ga/send_telemetry_events.pytrun@s
cCs|jdk	o|jj�S(N(RRtis_alive(R((sL/usr/lib/python2.7/site-packages/azurelinuxagent/ga/send_telemetry_events.pyRDscCsOtjd|j�|_|jjt�|jj|j��|jj�dS(Nttarget(	t	threadingtThreadt_process_telemetry_threadRt	setDaemonRtsetNameRR(R((sL/usr/lib/python2.7/site-packages/azurelinuxagent/ga/send_telemetry_events.pyRGscCs&t|_|j�r"|j�ndS(sO
        Stop server communication and join the thread to main thread.
        N(tFalseRRtjoin(R((sL/usr/lib/python2.7/site-packages/azurelinuxagent/ga/send_telemetry_events.pytstopMs	cCs|jj�|jj�dS(N(RR$R(R((sL/usr/lib/python2.7/site-packages/azurelinuxagent/ga/send_telemetry_events.pyR$Us
cCs|jS(N(R(R((sL/usr/lib/python2.7/site-packages/azurelinuxagent/ga/send_telemetry_events.pytstoppedYscCs||j�r*tdj|j����ny|jj|dtj�Wn.tk
rw}tdjt	|����nXdS(Ns,{0} is stopped, not accepting anymore eventsttimeoutsMUnable to enqueue due to: {0}, stopping any more enqueuing until the next run(
R&RtformatRRtputR	t_MAX_TIMEOUTt	ExceptionR(Rteventterror((sL/usr/lib/python2.7/site-packages/azurelinuxagent/ga/send_telemetry_events.pyt
enqueue_event\scCsGy)|jjdtj�}|jj�Wntk
rBd}nX|S(sE
        Wait for atleast one event in Queue or timeout after SendTelemetryEventsHandler._MAX_TIMEOUT seconds.
        In case of a timeout, set the event to None.
        :return: event if an event is added to the Queue or None to signify no events were added in queue.
        This would raise in case of an error.
        R'N(RtgetR	R*t	task_doneRR(RR,((sL/usr/lib/python2.7/site-packages/azurelinuxagent/ga/send_telemetry_events.pyt_wait_for_event_in_queuels

cCs�tjdj|j���yJxC|j�s?|jj�rd|j�}|r"|j|�q"q"WWnPt	k
r�}dj|j�t
j|��}tdt
jd|dt�nXdS(Ns#Successfully started the {0} threadsJAn unknown error occurred in the {0} thread main loop, stopping thread.{1}toptmessaget
is_success(RRR(RR&RtemptyR1t_send_events_in_queueR+Rtformat_exceptionRRtUnhandledErrorR#(Rtfirst_eventR-terr_msg((sL/usr/lib/python2.7/site-packages/azurelinuxagent/ga/send_telemetry_events.pyR |s cCs�tjj�}x�|j�r�|jj�d|jkr�||jtjj�kr�tjd|jj�dtjj�|j	�t
jd�qW|jj
|j|��dS(NisMWaiting for events to batch. Total events so far: {0}, Time elapsed: {1} secs(tdatetimetutcnowR&Rtqsizet_MIN_EVENTS_TO_BATCHt_MIN_BATCH_WAIT_TIMERtverboseR
ttimetsleepRtreport_eventt_get_events_in_queue(RR9t
start_time((sL/usr/lib/python2.7/site-packages/azurelinuxagent/ga/send_telemetry_events.pyR6�s,	'ccsy|Vxm|jj�sty%|jj�}|jj�|VWqtk
rp}tjdjtj	|���qXqWdS(Ns2Some exception when fetching event from queue: {0}(
RR5t
get_nowaitR0R+RR-R(RR7(RR9R,R-((sL/usr/lib/python2.7/site-packages/azurelinuxagent/ga/send_telemetry_events.pyRD�s
	(t__name__t
__module__t__doc__RR;t	timedeltaR
R*R>R?RtstaticmethodRRRRR%R$R&R.R1R R6RD(((sL/usr/lib/python2.7/site-packages/azurelinuxagent/ga/send_telemetry_events.pyR	#s$											(R;RRAtazurelinuxagent.commonRtazurelinuxagent.common.eventRRt azurelinuxagent.common.exceptionRtazurelinuxagent.common.futureRRRt!azurelinuxagent.common.interfacesRtazurelinuxagent.common.utilsRRR	(((sL/usr/lib/python2.7/site-packages/azurelinuxagent/ga/send_telemetry_events.pyt<module>s