
                         p    S r SSKJr  SSKJr  SSKJr  SSKrSSKJr  SSKJ	r	  SSK
Jr  S	 rS
 rS rS rg)z*Formatter to parse logs into single lines.    )absolute_import)division)unicode_literalsN)timestamp_pb2)apis)
text_utilsc                 D   [        U [        R                  " SS5      R                  5      n[	        SX5      nU(       d  gUR                  S5      n[        U5      S:  a  gUS   n[        X5      /nUS:X  an  [	        S	X5      n[	        S
UU5      n[	        SX5      n[	        SX5      n	UR                  U5        UR                  [        U5      5        UR                  U	5        O+US:X  d  US:X  a  [	        SX5      n
UR                  U
5        OgSR                  U5      $ )zFormat logs for a service.loggingv2log_name z%2F      requestshttp_requestrequest_methodstatusrequest_urlstderrstdouttext_payload )
isinstancer   GetMessagesModuleLogEntryGetAttributeFieldFromLogsplitlenGetTimestampFromLogFormatappendstrjoin)logis_log_entrylog_entry_line	split_loglog_type
log_outputr   http_methodr   urlr   s              /lib/googlecloudsdk/api_lib/logging/formatter.py	FormatLogr,      s   C 229dCLLN,+JJ.	""5))^aq\(),<=*+NLNL*+;\+79K%hKF
"=,
MCk"c&k"c8x83+NLNLl#	*	    c                    [        SX5      nU (       aV  [        R                  " 5       nUR                  U5        UR	                  5       n[
        R
                  R                  US5      $ [
        R
                  R                  US5      $ )z9Returns timestamp in 'YYYY-MM-DD HH:MM:SS' string format.	timestampz%Y-%m-%d %H:%M:%S)r   r   	TimestampFromJsonString
ToDatetimedatetimestrftime)r$   r#   r/   tslog_entry_timestamps        r+   r   r   9   sn    &{LF)		 	 	"Bi --/%%&9;NOO				#	#I/B	CCr-   c                 .    [        U[        X5      S5      $ )Nr   )getattrGetProperField)
field_namer$   log_objs      r+   r   r   D   s    	.BB	GGr-   c                 @    U(       d  U $ [         R                  " U 5      $ )zeRetrieve the proper atrribute from LogEntry depending if it is in MessageModule or GapiClient format.)r   SnakeCaseToCamelCase)r:   r$   s     r+   r9   r9   H   s    			(	(	44r-   )__doc__
__future__r   r   r   r3   cloudsdk.google.protobufr   googlecloudsdk.api_lib.utilr   $googlecloudsdk.command_lib.privatecar   r,   r   r   r9    r-   r+   <module>rD      s5    1 &  '  2 , ;:DH5r-   