3 \me @sddlZddlZddlmZddlmZmZmZddddddd d d Zd Zd Z dZ ddZ ddZ ddZ dddZddZedkreedS)N)datetime) atomic_helpersubputilzfinished running cloud-initz%starting search for local datasourcesz!searching for network datasourceszrunning config moduleszfinalizing moduleszrunning modules forzrunning single module )Zfinishedz init-localz init-networkinitzmodules-configz modules-finalmodulesZsinglez%Y-%m-%d %H:%M:%S,%fz%b %d %H:%M:%S.%f %Yz%b %d %H:%M:%S %YcCsddtddD}|jd|kr^t}d|kr4t}tj|dttjj|}|j d}n(d |kr~tj|t }|j d}nt |}t |S) NcSsg|]}tj|qS)calendarZ month_abbr).0mrr/usr/lib/python3.6/dump.py sz#parse_timestamp.. r. z%s.%f,) rangesplit DEFAULT_FMTCLOUD_INIT_JOURNALCTL_FMTrZstrptimestrZnowZyearZstrftimeCLOUD_INIT_ASCTIME_FMTparse_timestamp_from_datefloat) timestampstrZmonthsZFMTZdt timestamprrr parse_timestamps   rcCsRd}tjs,tjdrd}ntd|dtj|dd|g\}}|j}t|S)NZdateZgdatez-Unable to parse timestamp without GNU date: []z+%s.%3Nz-d)rZis_LinuxrZwhich ValueErrorstripr)rcmdout_rrrr r6s rcCsd}dd|g}d}x|D]}||krd}PqW|s6dS|j|\}}|jdrddj|jdd}d |kr|jd \}}|d |jd7}d|kr|jd} n@|jd} ||kr|j}|jd d d }n|j| dj}d |krNd} d|kr@|jdd j} | jd\} } | jddjdd} | dkrDd} ndSt| }n(|jdd\}} } |j| d j}| jd|t|d| jdd}|ddkr|jdd}|j|d jdj}||d<|j|d<|S) Nz cloud-init[z - z [CLOUDINIT] FT:rrrrz,%s)maxsplitz Cloud-init v.startZrunningz at '-rz init-network cloudinit)name descriptionrorigin event_typer/Zfinishresultr-r1r1) rendswithjoinr lstripreplacestage_to_descriptionrstripr)lineZamazon_linux_2_sepZ separatorsfoundsepZtimehostZeventstrrZextraZhostnamer/Zstage_and_timestampZ event_namer#Zevent_descriptionZ _pymodloglvleventr0Zdescrrr parse_ci_loglineDsZ         r<c Csg}d}dddg}t||gs&td|r4|j}n|j}x^|D]V}xP|D]H}||krLy t|}Wn tk rtjjdYnX|rL|j|qLWqBW||fS)Nzstart:zfinish:z Cloud-init v.z2Either cisource or rawdata parameters are requiredzSkipping invalid entry ) anyr splitlines readlinesr<sysstderrwriteappend)cisourceZrawdataZeventsr;ZCI_EVENT_MATCHESdatar8matchrrr dump_eventss$      rGcCs2ttjdkrttjd}ntj}tjt|S)Nr)lenr@argvopenstdinrZ json_dumpsrG)rDrrr mainsrL__main__)NN)r r@rr+rrrr6rrrrrr<rGrL__name__printrrrr s* V