0x1949 Team - FAZEMRX - MANAGER
Edit File: __init__.cpython-310.pyc
o ���f% � @ s� d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZmZ d dl m Z ddd�Zdd � Zd d� Z dd � Zdd� Zdd� Zdd� Zdeddfdd�Zedkrce� Ze�� Zej\ZZeee� dS dS )� N)�datetime)�IO)�dump�show)� json_dumpsc C sh | s t jddd�} | jddd�}d|_|jdd d �}|jddd dddd� |jddd dddd� |jdtfd� |jddd �}|jddd dddd� |jddd dddd� |jddd dddd� |jdtfd� |jd d!d �}|jddd ddd"d� |jddd dddd� |jd t fd� |jd#d$d �}|jddd ddd"d� |jddd dddd� |jd#t fd� | S )%Nzcloudinit-analyzez,Devel tool: Analyze cloud-init logs and data)�prog�description�Subcommands� subcommand)�title�destT�blamez5Print list of executed stages ordered by time to init)�helpz-iz--infile�store�infilez/var/log/cloud-init.logzspecify where to read input.)�actionr �defaultr z-oz --outfile�outfile�-zspecify where to write output. )r r z.Print list of in-order events during executionz-fz--format�print_formatz%I%D @%Es +%dszspecify formatting of output.zspecify where to write output.r z%Dump cloud-init events in JSON formatzspecify where to read input. �bootz2Print list of boot times for kernel and cloud-init)�argparse�ArgumentParser�add_subparsers�required� add_parser�add_argument�set_defaults� analyze_blame�analyze_show�analyze_dump�analyze_boot)�parser� subparsers�parser_blame�parser_show�parser_dump�parser_boot� r( �</usr/lib/python3/dist-packages/cloudinit/analyze/__init__.py� get_parser s� ��������������r* c C s� t |�\}}t�� }|\}}}}t�|�} t�|�} t�|�}zdd� t|�D �d }t�|d �} W n tyA d} tj}Y nw d}d}d}tj|tj|tj |i}|| }|| }| | ||||||| d � }|� || jdi |��� t||� |S )a� Report a list of how long different boot operations took. For Example: -- Most Recent Boot Record -- Kernel Started at: <time> Kernel ended boot at: <time> Kernel time to boot (seconds): <time> Cloud-init activated by systemd at: <time> Time between Kernel end boot and Cloud-init activation (seconds):<time> Cloud-init start: <time> c S s( g | ]}|d dkrd|d v r|�qS )�namez init-localzstarting searchr r( )�.0�er( r( r) � <listcomp>� s �z analyze_boot.<locals>.<listcomp>���� timestampz4Could not find init-local log-line in cloud-init.logz�Your Linux distro or container does not support this functionality. You must be running a Kernel Telemetry supported distro. Please check https://cloudinit.readthedocs.io/en/latest/topics/analyze.html for more information on supported distros. a* -- Most Recent Boot Record -- Kernel Started at: {k_s_t} Kernel ended boot at: {k_e_t} Kernel time to boot (seconds): {k_r} Cloud-init activated by systemd at: {ci_sysd_t} Time between Kernel end boot and Cloud-init activation (seconds): {bt_r} Cloud-init start: {ci_start} z�-- Most Recent Container Boot Record -- Container started at: {k_s_t} Cloud-init activated by systemd at: {ci_sysd_t} Cloud-init start: {ci_start} ) �k_s_t�k_e_t�k_r�bt_r�k_e�k_s�ci_sysd� ci_sysd_t�ci_startNr( ) �configure_ior �dist_check_timestampr �utcfromtimestamp�_get_events� IndexError� FAIL_CODE�CONTAINER_CODE�SUCCESS_CODE�write�format�clean_io)r+ �args�infh�outfh�kernel_info�status_code�kernel_start� kernel_end� ci_sysd_start�kernel_start_timestamp�kernel_end_timestamp�ci_sysd_start_timestamp�last_init_localr9 �FAILURE_MSG�SUCCESS_MSG� CONTAINER_MSG� status_map�kernel_runtime�between_process_runtime�kwargsr( r( r) r! t sT �� ������ r! c C s� t |�\}}d}t�dtj�}d}tt�t|�|��D ]&\}}tt |j |�dd�}|�d|d � |�d�|�d � |�d� q|�d |d � t ||� d S )az Report a list of records sorted by largest time delta. For example: 30.210s (init-local) searching for datasource 8.706s (init-network) reading and applying user-data 166ms (modules-config) .... 807us (modules-final) ... We generate event records parsing cloud-init logs, formatting the output and sorting by record data ('delta') z %ds (%n)z(^\s+\d+\.\d+)r T)�reverse�-- Boot Record %02d -- � � �%d boot records analyzed N)r: �re�compile� MULTILINE� enumerater �show_eventsr= �sorted�filter�matchrB �joinrD ) r+ rE rF rG �blame_format�r�idx�record�srecsr( r( r) r � s �r c C s� t |�\}}tt�t|�|j��D ]!\}}|�d|d � |�d� |�d� |�d�|�d � q|�d|d � t||� dS )a Generate output records using the 'standard' format to printing events. Example output follows: Starting stage: (init-local) ... Finished stage: (init-local) 0.105195 seconds Starting stage: (init-network) ... Finished stage: (init-network) 0.339024 seconds Starting stage: (modules-config) ... Finished stage: (modules-config) 0.NNN seconds Starting stage: (modules-final) ... Finished stage: (modules-final) 0.NNN seconds rY rZ zUThe total time elapsed since completing an event is printed after the "@" character. z>The time the event takes is printed after the "+" character. r[ r\ N) r: r` r ra r= r rB re rD )r+ rE rF rG rh ri r( r( r) r � s ���r c C s0 t |�\}}|�tt|��d � t||� dS )z%Dump cloud-init events in json formatr[ N)r: rB r r= rD )r+ rE rF rG r( r( r) r s r c C s* d }t �| �\}}|stj|d�\}}|S )N)�rawdata)r �load_events_infiler �dump_events)r rk �events�_r( r( r) r= s r= c C s� | j dkr tj}n zt| j d�}W n ty( tj�d| j � t�d� Y nw | jdkr5tj }||fS zt| jd�}W ||fS tyZ tj�d| j � t�d� Y ||fS w )z.Common parsing and setup of input/output filesr rg zCannot open file %s rZ �w) r �sys�stdin�open�OSError�stderrrB �exitr �stdout)rE rF rG r( r( r) r: s&