
    f              	           d dl Z d dlZd dlmZ d dlmZmZmZ ddddddd	d
dZdZdZ	dZ
d Zd Zd ZddZd Zedk(  r e e              yy)    N)datetime)atomic_helpersubputilzfinished running cloud-initz%starting search for local datasourcesz!searching for network datasourceszrunning config moduleszfinalizing moduleszrunning modules forzrunning single module )finishedz
init-localinit-networkinitzmodules-configzmodules-finalmodulessinglez%Y-%m-%d %H:%M:%S,%fz%b %d %H:%M:%S.%f %Yz%b %d %H:%M:%S %Yc                    t        dd      D cg c]  }t        j                  |    }}| j                         d   |v rmt        }d| v rt
        }t        j                  | dz   t        t        j                         j                        z   |      }|j                  d      }t        |      S d| v r6t        j                  | t              }|j                  d      }t        |      S t        |       }t        |      S c c}w )N      r   . z%s.%f,)rangecalendar
month_abbrsplitDEFAULT_FMTCLOUD_INIT_JOURNALCTL_FMTr   strptimestrnowyearstrftimeCLOUD_INIT_ASCTIME_FMTparse_timestamp_from_datefloat)timestampstrmmonthsFMTdt	timestamps         8/usr/lib/python3/dist-packages/cloudinit/analyze/dump.pyparse_timestampr'      s    .3Arl;h!!!$;F;A&(,+C3X\\^%8%8!993
 KK(	  
	|-CDKK(	  .l;	' <s   C=c                     d}t        j                         s't        j                  d      rd}nt	        d|  d      t        j                  |dd| g      \  }}|j                         }t        |      S )Ndategdatez-Unable to parse timestamp without GNU date: []z+%s.%3Nz-d)r   is_Linuxr   which
ValueErrorstripr   )r    cmdout_r%   s        r&   r   r   6   sm    
C==?::gC?~QO  YYYl;<FC		I    c                    d}dd|g}d}|D ]
  }|| v sd} n |sy | j                        \  }}|j                  d      r"dj                  |j                         dd	       }d
|v rE|j                  d
      \  }}|d|j                         d   z  z  }d|v rt|j                         d	   }	n`|j                         d	   }	||k(  r&|j                         }|j                  d      d   }n"|j                  |	      d   j                         }d|v rqd}
d|v r`|j                  d      d   j	                         }|j                  d      \  }}|j                  dd      j                  dd      }|dk(  rd}ny t        |   }n9|j                         dd \  }}
}|j                  |      d   j                         }|j                  d      |t        |      d|
j                  d      d}|d   dk(  r]|j                  d      d   }|j                  |      d   j	                  d      j                         }||d<   |j                         |d<   |S )Nz cloud-init[z - z [CLOUDINIT] FT:r   r   r   z,%sr   )maxsplitCloud-init v.startrunningz at ' -r	   r      	cloudinit)namedescriptionr%   origin
event_typerC   finishresultrA   )	r   endswithjoinr/   lstripreplacestage_to_descriptionrstripr'   )lineamazon_linux_2_sep
separatorsfoundseptimehosteventstrr    extrahostnamerC   stage_and_timestamp
event_namer2   event_description_pymodloglvleventrE   descs                      r&   parse_ci_logliner[   D   s{   , (*<=JE $;E
 ::c?Xx 88HNN,Qr23
h&nnS1ea 000%<{{}R(H>>#B'$$ $>>+L~~q~1!4H#>>(3A6<<>L("
 "*..";A">"E"E"G/55f=MJ#++C4<<S#FJV#+
 0<191A!A1F.z:$NN:6q9??A !!#&($\2 '',E \h&"((-a0 &&v.q188=CCE h#zz|mLr3   c                 R   g }d }g d}t        | |g      st        d      |r|j                         }n| j                         }|D ].  }|D ]'  }||v s	 t	        |      }|s|j                  |       ) 0 ||fS # t        $ r" t
        j                  j                  d       Y Fw xY w)N)zstart:zfinish:r8   z2Either cisource or rawdata parameters are requiredzSkipping invalid entry
)	anyr.   
splitlines	readlinesr[   sysstderrwriteappend)cisourcerawdataeventsrY   CI_EVENT_MATCHESdatarL   matchs           r&   dump_eventsrj      s    FE='"#MNN!!#!!# )% 	)E}A,T2E MM%(	)) 4< " AJJ$$%?@As   A;;(B&%B&c                      t        t        j                        dkD  rt        t        j                  d         } nt        j                  } t        j                  t        |             S )Nr   )lenr`   argvopenstdinr   
json_dumpsrj   )rd   s    r&   mainrq      sC    
388}q$99##K$9::r3   __main__)NN)r   r`   r   r?   r   r   r   rJ   r   r   r   r'   r   r[   rj   rq   __name__print r3   r&   <module>rv      s     
  / / .97/.)$&	  0  3  "0Sl4; z	$&M r3   