3
t2d                 @   s   d dl m Z  d dlZd dlZd dlT d dlZd dlZej  d dlmZ d dl	Z	ej
 ZejdZejdZejdZejdZejd	ZeZd
d Zdd Zdd Zdd Zed edkre  nedkre  nedkre  dS )    )datetimeN)*)ZipFilerequest_Type	startDateendDatemaxLogLevellogTypec              C   s   dddddddg} dd	d
ddddg}t tdv}tj|dd}d}g }g }|}xP|D ]H}dd |D }i }x&t||D ]\}	}
|	j ||
j < qvW |j| qTW W d Q R X ttj	 j
t|| |d d S )Nz	Date TimeElementzElement Namez	Log LevelStateActionMessager   elementelementnameloglevelsateactionmessager@)	delimiterr   c             S   s   g | ]}|r|qS  r   ).0elemr   r   %/var/www/pilotTERA/cgi/cgi_CCMLogs.py
<listcomp>'   s    z read_CCMLogs.<locals>.<listcomp>)logsDataheaderspropetyName)openLogsFilePathcsvreaderzipstripappendprintjsonJSONEncoderencodeApplyFilter)displayTextListpropertyNameListcsvfile
filereaderiheaderout_datarow_dictr   header_elemr   r   r   read_CCMLogs   s$    
r5   c              C   s   dddddddg} dd	d
ddddg}t tdv}tj|dd}d}g }g }|}xP|D ]H}dd |D }i }x&t||D ]\}	}
|	j ||
j < qvW |j| qTW W d Q R X ttj	 j
t|| |d d S )Nz	Date Timer
   zElement Namez	Log Levelr   r   r   r   r   r   r   r   r   r   rbr   )r   r   c             S   s   g | ]}|r|qS r   r   )r   r   r   r   r   r   @   s    z"read_CCMAlerts.<locals>.<listcomp>)r   r   r   )r   AlertsFilePathr!   r"   r#   r$   r%   r&   r'   r(   r)   r*   )r+   r,   r-   r.   r/   r0   r1   r2   r3   r   r4   r   r   r   read_CCMAlerts3   s$    
r8   c                s   t tdkrtjd t tdkr@t tdkr@ fdd| D } t tdkrft tdkrfdd | D } t tdkrt tdkrdd | D } t tdkrt tdkrd	d | D } | S )
N ,ZAllc                s   g | ]}|d   kr|qS )r   r   )r   x)logTypeFiltersr   r   r   Q   s    zApplyFilter.<locals>.<listcomp>Nonec             S   s$   g | ]}t |d  t tkr|qS )r   )intr   )r   r;   r   r   r   r   T   s    c             S   s0   g | ](}t j|d  dt jttdkr|qS )r   z%d/%m/%Y-%H:%M:%Sz%Y-%m-%d)r   strptimestrr   )r   r;   r   r   r   r   X   s    c             S   s4   g | ],}t j|d  dt jttd dkr|qS )r   z%d/%m/%Y-%H:%M:%Sz	 23:59:59z%Y-%m-%d %H:%M:%S)r   r?   r@   r   )r   r;   r   r   r   r   ]   s    )r@   r	   splitr   r   r   )Zlogsr   )r<   r   r*   L   s    
r*   c              C   sf   t dd} dd l}|jt}|jd | jd | j  ttj	 j
dtjjdd tjd d S )Nz../LyraTera_SystemName.zipwr   z
ccmlog.txtzLyraTera_SystemName.zip)Zdownload_filefilename)r   ZpandasZread_csvr    Zto_csvwritecloser&   r'   r(   r)   ospathbasenameremove)ZzipObjpdZdfr   r   r   download_CCMLogsa   s    



 rK   zContent-type:text/html

)r   r'   r!   globalSettingscgicgitbenablezipfiler   shutilFieldStorageformgetvaluer   r   r   r   r	   
DeviceNamedevicer5   r8   r*   rK   r&   r   r   r   r   <module>   s4   





