%PDF- %PDF-
Direktori : /opt/alt/python37/lib/python3.7/site-packages/lvestats/snapshots/__pycache__/ |
Current File : //opt/alt/python37/lib/python3.7/site-packages/lvestats/snapshots/__pycache__/reader.cpython-37.pyc |
B ��1b�= � @ s� d dl mZ d dl mZ d dlmZ d dlZd dlZd dlZd dlm Z d dl mZ d dlZ d dlmZmZ d dlmZ d d lmZ d d lmZ d dlmZ d dlmZ d ZdZdZdd� Ze jj j!j"ddd��Z#dd� Z$G dd� de%�Z&dS )� )�print_function)�absolute_import)�mapN)�or_)�sessionmaker)�dbengine�uidconverter)�dateutil)�prepare_data_json)�lve_read_snapshot_parser)�Snapshot)�incidentz?Snapshots collected starting from %s to %s for lve id %d @ %s: zDone.. Z localhostc C sv | j r| j \}}n\| jr(| j}|d }nFy(t�d�| j��}t�d�| j��}W n tk rl td� dS X ||fS )Ng�!��?� z:please use [YY]YY-MM-DD[ HH:MM] format for --from and --to)NN) ZperiodZ timestampr Z parse_date�joinZffrom�to� ValueError�print)�opts�start�end� r �J/opt/alt/python37/lib/python3.7/site-packages/lvestats/snapshots/reader.py�_calculate_period s r c C s" t � }|�|�}|js0|js0|�� td� dS yt�| �}W n, tjk rj } zt|� dS d }~X Y nX | � dt �}|jr�t�|j|||�}|d kr�td|j|f � dS n|j}t |�\}} |d kr�| d kr�dS t||| |||j|j�} |j�r | �� n|j�r| �|j� n| �� d S )Nz/One of -u --user or -i --id should be specified� � server_idzUser %s@%s not found)r � parse_args�id�user� print_helpr r Zmake_db_engineZMakeDbException�get�DEFAULT_SERVER_IDr Zusername_to_uidr �LVEReadSnaphot�outputZjson�list�statsZunit�run)�configZargv_�parserr �engine�er �uidr r Zlve_read_snapshotr r r �snapshot_reader_main/ sD r+ c C s t | tj�rt�t�| ��S | S )z� Convert local datetime to unix timestamp, or just passes unix timestamp as output if specified. :param o: :return: )� isinstance�datetimer Zgm_datetime_to_unixtimestampZlocal_to_gm)�or r r �_try_convert_to_timestamp\ s r/ c @ s� e Zd Zdd� Zdd� Zdd� Zedejfdd ��Z ed d� �Z dd � Zdd� Zdd� Z dd� Zdd� Zdd� Zdd� Zdd� Zedd� �Zdd� Zd S )!r! c C sL || _ || _|| _|| _t|�| _t|�| _|| _dddddddd�| _d S ) z� :param start: datetime.datetime | int (unix timestamp) :param end: datetime.datetime | int (unix timestamp) :param uid: :param server_id: :param output_file: filename :param do_json: boolean �CPUzVirtual memoryZEPzPhysical memoryZNPROCZIOZIOPS)Z cpu_faultZ mem_faultZ mep_faultZmemphy_faultZnproc_faultZio_faultZ iops_faultN) r( �do_json�output_filer* r/ r r r �fault_names)�selfr( r r r* r r2 r1 r r r �__init__j s zLVEReadSnaphot.__init__c C sR |� t��tj| jktj| jkttj�| j| j �tj �| j| j ����tj��� S )N) Zqueryr �filterr* r r �incident_start_timeZbetweenr r �incident_end_timeZorder_by�all)r4 �sessionr r r � get_incidents� s zLVEReadSnaphot.get_incidentsc C sJ g }x@| � |�D ]2}|�|jt|j|jp*d�d|j| �|�d�� qW |S )Nr r )�fromr � incidents� snapshots�duration)r; �appendr7 �max� dump_timer8 Zsnapshot_count�get_duration)r4 r: �result�ir r r �stats_by_incident� s z LVEReadSnaphot.stats_by_incidentr c C s, t | j|�}tt | j| jpd�|�}|| S )Nr )rA r7 �minrB r8 )rE Zfrom_Zto_r r r rC � s zLVEReadSnaphot.get_durationc C s� d}d}xZ|t | �k rb| | }|j|k r2|d7 }q |j|kr>P |d7 }|d7 }|t�|||�7 }q W |dkrvdd|fS |||d fS d S )Nr r )�lenrB r7 r! rC )r= �pos�from_ts�to_ts�countr? rE r r r �get_incident_count� s z!LVEReadSnaphot.get_incident_countc C s� | � |�}tt| jd���� }g }| j}d}x�|| jk r�t|| | j�}| �||||�\} } }| dkrl|}q.t� |||�}t |�dkr�|�d� |�||| t |�| d�� |}q.W |S )N)r* r )r<