
    =Ki                          S SK r S SKrS SKrS SKrS SKrSSKJr  S SKr\R                  S:  a  S SK	J
r
  OS SKr\R                  " S5      r  " S S5      rg)	    N   )LeaderElectionRecord   r   )
HTTPStatusleaderelectionc                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
LeaderElection(   c                 ^    Uc  [         R                  " S5        S U l        Xl        SU l        g )Nzargument config not passedr   )sysexitobserved_recordelection_configobserved_time_milliseconds)selfr   s     j/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/kubernetes/leaderelection/leaderelection.py__init__LeaderElection.__init__)   s1    "HH12  $  / +,'    c                    U R                  5       (       a  [        R                  SR                  U R                  R
                  R                  5      5        S[        l        [        R                  " U R                  R                  S9R                  5         U R                  5         U R                  R                  5         g g )Nz{} successfully acquired leaseT)target)acquireloggerinfoformatr   lockidentity	threadingdaemonThreadonstarted_leadingstart
renew_looponstopped_leading)r   s    r   runLeaderElection.run7   s    <<>>KK8??@T@T@Y@Y@b@bcd  $ID$8$8$J$JKQQSOO   224 r   c                    [         R                  SR                  U R                  R                  R
                  5      5        U R                  R                  n U R                  5       nU(       a  g[        R                  " U5        M0  )Nz{} is a followerT)
r   r   r   r   r   r   retry_periodtry_acquire_or_renewtimesleep)r   r)   	succeededs      r   r   LeaderElection.acquireE   se    &--d.B.B.G.G.P.PQR++88113IJJ|$ r   c                    [         R                  S5        U R                  R                  nU R                  R                  S-  n [        [        R                  " 5       S-  5      U-   nSn[        [        R                  " 5       S-  5      U:  aU  U R                  5       nU(       a  O=[        R                  " U5        [        [        R                  " 5       S-  5      U:  a  MU  U(       a  [        R                  " U5        M  g )NzGLeader has entered renew loop and will try to update lease continuously  F)	r   r   r   r)   renew_deadlineintr+   r*   r,   )r   r)   r1   timeoutr-   s        r   r$   LeaderElection.renew_loopR   s    ]^++88--<<tC$))+,->GIdiikD()G3 557	

<( diikD()G3 

<( r   c                 B
   [         R                   " 5       n[        R                  R                  U5      nU R                  R                  R                  U R                  R                  R                  U R                  R                  R                  5      u  p4[        U R                  R                  R                  [        U R                  R                  5      [        U5      [        U5      5      nU(       Gd  [        R                  S:  a  [        R                  " UR                   5      S   ["        R$                  :w  aN  [&        R)                  SR+                  U R                  R                  R                  UR,                  5      5        gO[        R                  " UR                   5      S   [.        R$                  :w  aN  [&        R)                  SR+                  U R                  R                  R                  UR,                  5      5        g[&        R)                  SR+                  UR0                  5      5        U R                  R                  R3                  U R                  R                  R                  U R                  R                  R                  US9nUSL a/  [&        R)                  SR+                  UR0                  5      5        gXPl        [7        [         R                   " 5       S-  5      U l        g	Uc  U R;                  U5      $ UR0                  b'  UR                  b  UR<                  b  UR>                  c  U R;                  U5      $ U R4                  (       aR  U R4                  R0                  UR0                  :w  a.  [&        R)                  S
R+                  UR0                  5      5        U R4                  b$  UR@                  U R4                  R@                  :w  a,  X@l        [7        [         R                   " 5       S-  5      U l        U R                  R                  R                  U R4                  R0                  :w  ae  U R8                  U R                  R                  S-  -   [7        US-  5      :  a/  [&        R)                  SR+                  UR0                  5      5        gU R                  R                  R                  U R4                  R0                  :X  a  U R4                  R<                  Ul        U R;                  U5      $ )Nr   codez'Error retrieving resource lock {} as {}Fz{} is trying to create a lock)name	namespaceelection_recordz{} Failed to create lockr0   TzLeader has switched to {}zByet to finish lease_duration, lease held by {} and has not expired)!r+   datetimefromtimestampr   r   getr7   r8   r   r   strlease_durationr   version_infojsonloadsbodyr   	NOT_FOUNDr   r   r   reasonhttplibholder_identitycreater   r2   r   update_lockacquire_time
renew_time__dict__)r   now_timestampnowlock_statusold_election_recordleader_election_recordcreate_statuss          r   r*   #LeaderElection.try_acquire_or_renewk   s   		--m< ,0+?+?+D+D+H+HI]I]IbIbIgIgHLH\H\HaHaHkHk,m( "6d6J6J6O6O6X6X589M9M9\9\5]_bcf_gilmpiq"s &(::1667?:CWCWWKK I P PQUQeQeQjQjQoQoReRlRl!n o  X
 ::1667?7CTCTTKK I P PQUQeQeQjQjQoQoReRlRl!n o KK7>>?U?e?efg 0055<<$BVBVB[B[B`B`GKG[G[G`G`GjGjMc = eM %6==>T>d>def#9 .1$))+2D.ED+ &##$:;;//7;N;];];e&33;?R?]?]?e##$:;; D$8$8$H$HL_LoLo$oKK3::;N;^;^_`'+>+G+G4K_K_KhKh+h#6 .1$))+2D.ED+   %%..$2F2F2V2VV33d6J6J6Y6Y\`6``cfgtw{g{c||KK\ccdw  eH  eH  I  J $$--1E1E1U1UU262F2F2S2S"/ 677r   c                    U R                   R                  R                  U R                   R                  R                  U R                   R                  R                  U5      nUSL a/  [
        R                  SR                  UR                  5      5        gXl	        [        [        R                  " 5       S-  5      U l        [
        R                  SR                  UR                  5      5        g)NFz{} failed to acquire leaser0   z)leader {} has successfully acquired leaseT)r   r   updater7   r8   r   r   r   rF   r   r2   r+   r   )r   rP   update_statuss      r   rH   LeaderElection.update_lock   s    ,,11889M9M9R9R9W9W9=9M9M9R9R9\9\9OQ E!KK4;;<R<b<bcd5*-diikD.@*A'?FFG]GmGmnor   )r   r   r   N)__name__
__module____qualname____firstlineno__r   r&   r   r$   r*   rH   __static_attributes__ r   r   r
   r
   (   s"    ,5%2E8Nr   r
   )r:   r   r+   r@   r   leaderelectionrecordr   loggingr?   httpr   rE   	getLoggerr   r
   r\   r   r   <module>ra      sR     
    6 f			+	,W Wr   