
    dv                     `    d dl m Z mZ  ed      Z ed      Z ed      Z G d de      Zy)    )datetime	timedelta   )minutes   c                   8    e Zd ZefdZd Zd Zd Zed        Z	y)
ErrorStatec                 .    || _         d| _        d | _        y Nr   )min_timedeltacount	timestamp)selfr   s     C/usr/lib/python3/dist-packages/azurelinuxagent/common/errorstate.py__init__zErrorState.__init__	   s    *
    c                 ~    | j                   dk(  rt        j                         | _        | xj                   dz  c_         y )Nr      )r   r   utcnowr   r   s    r   incrzErrorState.incr   s(    ::?%__.DN

a
r   c                      d| _         d | _        y r   )r   r   r   s    r   resetzErrorState.reset   s    
r   c                     | j                   yt        j                         | j                   z
  }|| j                  k\  ryy)NFT)r   r   r   r   )r   deltas     r   is_triggeredzErrorState.is_triggered   s8    >>!!DNN2D&&&r   c                     | j                   yt        t        j                         | j                   z
  j                  dz  d      }|dk  rdj                  |      S t        |dz  d      }dj                  |      S )Nunknowng      N@   <   z{0} minz{0} hr)r   roundr   r   secondsformat)r   r   delta_hrs      r   	fail_timezErrorState.fail_time#   sm    >>!x(4>>9BBTI1M2:##E**q)x((r   N)
__name__
__module____qualname__ERROR_STATE_DELTA_DEFAULTr   r   r   r   propertyr%    r   r   r	   r	      s-    %>  	) 	)r   r	   N)r   r   r)   ERROR_STATE_DELTA_INSTALLERROR_STATE_HOST_PLUGIN_FAILUREobjectr	   r+   r   r   <module>r/      s5    (%b1 %a0 "+A"6 %) %)r   