???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................3
!i                 @   s6   d dl mZ ddlT ddlT ddlT G dd dZdS )    )defaultdict   )*c               @   s`   e Zd Zedd Zedd Ze ZdZdd Z	dddZ
d	d
 Zedd Zedd ZdS )	eventlistc               C   s   t tS )N)r   list r   r   /usr/lib/python3.6/eventlist.py<lambda>   s    zeventlist.<lambda>c               C   s   t tS )N)r   r   r   r   r   r   r	      s    Nc       
      C   s  ddddddg}|| _ x|j D ]}| jj| x|| j D ]\}}xj|j D ]^}xX|D ]P}|j|}|snqZt|||}	|jr| j	| | j
|	 qZ| j| | j
|	 qZW qPW t| j	| | dd d	| j	| |< t| j| | d
d d	| j| |< q>W q W d S )NZSyncPublishZPublishZ
SyncDeleteZActivateZInactiveZDeletec             S   s   | j S )N)when)eventr   r   r   r	   +   s    z$eventlist.__init__.<locals>.<lambda>)keyc             S   s   | j S )N)r
   )r   r   r   r   r	   -   s    )_kdictZzones_zonesadditemsvaluesZgettimekeyeventsep_Kappend_Zsorted)
selfZkdictZ
propertieszonealgkeyskZpropter   r   r   __init__   s&    


zeventlist.__init__c             C   s  dd }|s|}|r |dkr dnd}|r4|dkr4dnd}d }}	d}
|rb|| j krb|d|  dS |rd}
|s~| j|d||}|s| j|d||}	n`x^| j D ]T}| r|| jj krd}
| j|d||}| r|| jj krd}
| j|d||}	qW |
s|d dS |o|	S )	Nc              _   s   d S )Nr   )argskwargsr   r   r   noop2   s    z eventlist.coverage.<locals>.noopKSKTFZZSKz!ERROR: No key events found for %szERROR: No key events found)r   	checkzoner   r   r   )r   r   keytypeuntiloutputr"   Zno_zskZno_kskZkokZzokfoundzr   r   r   coverage1   s6    zeventlist.coveragec       	      C   sx   d}|dkr| j | }n
| j| }xP|j D ]D}|d||tj|f  tj|| |||}|rh|d |on|}q,W |S )NTr#   z9Checking scheduled %s events for zone %s, algorithm %s...zNo errors found)r   r   r   dnskeyZalgstrr   checkset)	r   r   r%   r&   r'   ZallokZkzr   okr   r   r   r$   T   s    
zeventlist.checkzonec             C   sR   | sd S |d| d j   d dd x(| D ] }|d|jt|jf dd q*W d S )Nz  r   :F)skipz
    %s: %s)ZshowtimeZwhatreprr   )eventsetr'   r   r   r   r   showsetf   s
    
zeventlist.showsetc       
      C   sN  t  }t  }d}xZ| D ]R}d}| s4|d j|jkr>|j| |d j|jkr|j| t  }|j| qW |rz|j| |s|d|  dS d  }}	x|D ]}|rtj|d j|kr|dtjdtj|  dS x|D ]}|j||	\}}	qW t	j
|| |s|d|  dS |	s,|d|  dS |	j|s|d	|  dS qW dS )
NFTr   zERROR: No %s events foundzIgnoring events after %sz%a %b %d %H:%M:%S UTC %Yz*ERROR: No %s's are active after this eventz-ERROR: No %s's are published after this eventz=ERROR: No %s's are both active and published after this event)r   r
   r   ZcalendarZtimegmZtimeZstrftimeZgmtimeZstatusr   r2   intersection)
r1   r%   r&   r'   groupsgroupZeventsfoundr   ZactiveZ	publishedr   r   r   r,   n   sL    






zeventlist.checkset)N)__name__
__module____qualname__r   r   r   setr   r   r   r*   r$   staticmethodr2   r,   r   r   r   r   r      s   
#r   N)collectionsr   r+   Zkeydictr   r   r   r   r   r   <module>   s   