Ñò
ýÉªWc           @   s  d  d k  Z  d  d k Z d  d k l Z d  d k l Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k l Z d d d d d	 g Z	 d d d
 „  ƒ  YZ
 d e
 f d „  ƒ  YZ d e
 f d „  ƒ  YZ d e
 f d „  ƒ  YZ d	 e
 f d „  ƒ  YZ e d j o n d S(   iÿÿÿÿN(   t	   timedelta(   t   datetime(   t   FileCollectort   HouseKeepStrategyt$   RetentionMinEmptyFolderHouseKeepStryt   RetentionDayFileHouseKeepStryt!   ContentFileHavingLWEHouseKeepStryt   OnlyLWEFileHouseKeepStryc           B   s   e  Z d  „  Z d „  Z RS(   c      	   C   sá   t  i ƒ  |  _ y” t i i t i i t ƒ ƒ } t i i | d ƒ } t	 | ƒ i
 i ƒ  } z | ~ } | i ƒ  } Wd  QXt i ƒ  |  _ |  i i t i | ƒ ƒ Wn7 t j
 o+ } |  i i d | d t | ƒ ƒ n Xd  S(   Ns   HouseKeepProperties.inits   Parse configuration file: s	    failed. (   t   loggingt	   getLoggert   loggert   ost   patht   dirnamet   realpatht   __file__t   joint   opent   __exit__t	   __enter__t   readt   ConfigParsert   RawConfigParsert   configt   readfpt   iot   BytesIOt	   Exceptiont   errort   str(   t   selft   cwdt   propertiesFilePatht   _[1]t   ft
   propertiest   e(    (    s“   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/components/BASE/conf/opt/tandbergtv/cms/cronjob/HouseKeepStrategy.pyt   __init__   s    #c         C   s   d  S(   N(    (   R   t   fileCollectort   alertGenerator(    (    s“   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/components/BASE/conf/opt/tandbergtv/cms/cronjob/HouseKeepStrategy.pyt   performHouseKeep   s    (   t   __name__t
   __module__R%   R(   (    (    (    s“   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/components/BASE/conf/opt/tandbergtv/cms/cronjob/HouseKeepStrategy.pyR      s   	c           B   s   e  Z d  „  Z RS(   c   
      C   s  |  i  i d ƒ | i ƒ  } xä | D]Ü } t i t i i | ƒ ƒ } t d |  i	 i
 d d ƒ ƒ } t i t i ƒ  ƒ } | | | j ow y% t i | ƒ |  i  i d | ƒ Wqÿ t j
 o? } | i i }	 |  i  i d | d |	 d t | ƒ ƒ qÿ Xq# q# W|  i  i d	 ƒ d  S(
   Ns4   Entering retention minutes empty folder housekepp...t   minutest   RetentionTimet!   UNMAPPED_EMPTY_DIR_RETENTION_MINSs   Removed empty dir: s   Remove dir: s   failed:s   : s!   Leaving empty folder housekepp...(   R
   t   infot   collectFilesR   t   fromtimestampR   R   t   getmtimeR    R   t   getintt   timet   rmdirR   t	   __class__R)   R   R   (
   R   R&   R'   t   fileListt   filet   modifiedTimet   deltat   currentTimeR$   t   excType(    (    s“   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/components/BASE/conf/opt/tandbergtv/cms/cronjob/HouseKeepStrategy.pyR(       s     7(   R)   R*   R(   (    (    (    s“   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/components/BASE/conf/opt/tandbergtv/cms/cronjob/HouseKeepStrategy.pyR      s   c           B   s   e  Z d  „  Z RS(   c         C   si  |  i  i d ƒ | i ƒ  } x6| D].} t i t i i | ƒ ƒ } t d |  i	 i
 d d ƒ ƒ } t i t i ƒ  ƒ } | | | j oÉ yj t i | ƒ |  i  i d | ƒ | t i } t i i | ƒ o% t i | ƒ |  i  i d | ƒ n WnK t j
 o? }	 |	 i i }
 |  i  i d | d |
 d	 t |	 ƒ ƒ n X| i | ƒ q# q# W|  i  i d
 ƒ d  S(   Ns)   Entering retention days file housekepp...t   daysR,   t   UNMAPPED_CONTENT_RETENTION_DAYSs   Removed expired file: s    Removed expired indicator file: s   Remove expired file:  s   failed:s   : s(   Leaving retention days file housekepp...(   R
   R.   R/   R   R0   R   R   t   getctimeR    R   R2   R3   t   removeR   t   HOLD_FOLDER_INDICATORt   existsR   R5   R)   R   R   t   generateAlert(   R   R&   R'   R6   R7   t   changedTimeR9   R:   t   indicatorFileR$   R;   (    (    s“   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/components/BASE/conf/opt/tandbergtv/cms/cronjob/HouseKeepStrategy.pyR(   3   s(     /(   R)   R*   R(   (    (    (    s“   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/components/BASE/conf/opt/tandbergtv/cms/cronjob/HouseKeepStrategy.pyR   2   s   c           B   s   e  Z d  „  Z RS(   c      	   C   s  |  i  i d ƒ | i ƒ  } d  } d  } d  } xÔ| D]Ì} ykx~ t i t i i | ƒ ƒ D]a } t i | t i i	 | ƒ t
 i ƒ o5 | } | t | ƒ d } t i | d d ƒ } PqZ qZ W| oÙ | oÒ t i t i ƒ  ƒ }	 |	 | j o¬ t i | ƒ |  i  i d | ƒ t i i t i i | ƒ | ƒ }
 t i |
 ƒ |  i  i d |
 ƒ | t
 i } t i i | ƒ o% t i | ƒ |  i  i d | ƒ q›qŸn d  } WnK t j
 o? } | i i } |  i  i d | d	 | d
 t | ƒ ƒ n X| i | ƒ q5 W|  i  i d ƒ d  S(   Ns-   Entering license window end file housekepp...i   s	    23:59:59s   %Y%m%d %H:%M:%Ss   Removed expired file: s)   Removed expired license window end file: s    Removed expired indicator file: s#   Error occurs while removing file:  t   .s   : s,   Leaving license window end file housekepp...(   R
   R.   R/   t   NoneR   t   listdirR   R   t   fnmatcht   basenameR   t   LICENSE_WINDOW_END_PATTERNt   lenR   t   strptimeR0   R3   R?   R   R@   RA   R   R5   R)   R   R   RB   (   R   R&   R'   R6   t	   lweStringt   lweEndOfDayTimet   lweFileR7   t   fNameR:   t   lweFileFullPathRD   R$   R;   (    (    s“   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/components/BASE/conf/opt/tandbergtv/cms/cronjob/HouseKeepStrategy.pyR(   L   sB      &	! 
/(   R)   R*   R(   (    (    (    s“   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/components/BASE/conf/opt/tandbergtv/cms/cronjob/HouseKeepStrategy.pyR   K   s   c           B   s   e  Z d  „  Z RS(   c         C   s´   |  i  i d ƒ | i ƒ  } x | D]y } y% t i | ƒ |  i  i d | ƒ Wq# t j
 o? } | i i } |  i  i d | d | d t	 | ƒ ƒ q# Xq# W|  i  i d ƒ d  S(   Ns#   Entering only LWE file housekepp...s!   Removed license window end file: s    Remove license window end file: s   failed:s   : s"   Leaving only LWE file housekepp...(
   R
   R.   R/   R   R?   R   R5   R)   R   R   (   R   R&   R'   R6   R7   R$   R;   (    (    s“   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/components/BASE/conf/opt/tandbergtv/cms/cronjob/HouseKeepStrategy.pyR(   p   s     3(   R)   R*   R(   (    (    (    s“   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/components/BASE/conf/opt/tandbergtv/cms/cronjob/HouseKeepStrategy.pyR   o   s   t   __main__(    (   R   R3   R   R    R   RH   R   R   R   t   __all__R   R   R   R   R   R)   (    (    (    s“   /home/jenkins/workspace/prepack-aio-release-4.2/prepack-aio/src/main/resources/components/BASE/conf/opt/tandbergtv/cms/cronjob/HouseKeepStrategy.pyt   <module>   s"   	$