
    _j                       d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZ	d dl
Z	d dlmZ  ed          ZdZdZdZdd	d
dZddddZddhddhdhdZd%dZd&dZd'dZd(dZd)dZd*d!Zd+d#Zed$k    r e e                      dS ),    )annotationsN)PathzD/data/video-pipeline/HaTramAudio/project/025-Nguoi-Giu-Cho-Cuoi-Cungz025-Nguoi-Giu-Cho-Cuoi-Cungzrun-20260721T232244Z-a0837ee4Levy)zhttp://192.168.1.104:8022z/v1/footage-render-huyenan/jobs)zhttp://192.168.1.104:8023z/v1/huyenan-render-final/jobs)zhttp://192.168.1.104:8024z!/v1/huyenan-transcode-upload/jobs)footagefinal	transcoder   final_renderr   ttslayoutintroreturnstrc                     t           j                             t           j        j                                                                      dd          S )N+00:00Z)datetimenowtimezoneutc	isoformatreplace     work/run_remote_job.pyr   r      s<      !2!677AACCKKHVYZZZr   pathr   c                   t          j                    }|                     d          5 t          fdd          D ]}|                    |           	 d d d            n# 1 swxY w Y   |                                S )Nrbc                 .                          d          S )Ni   )read)fs   r   <lambda>zsha.<locals>.<lambda>&   s    !&&"9"9 r   r   )hashlibsha256openiterupdate	hexdigest)r   hblockr    s      @r   shar*   #   s    A	4 A99993?? 	 	EHHUOOOO	               ;;==s   ,A##A'*A'Nonec                    t          j        t          dz                      d                    } t          t
          t          d                                D ]0\  }}|                     |          |k    rt          d|           1d S )Nz.ownership-lock.jsonutf-8encoding)
project_idrun_idownerzownership mismatch: )
jsonloadsROOT	read_text
PROJECT_IDRUN_IDOWNERitemsgetRuntimeError)lockkeyvalues      r   guardr@   +   s    :t44???QQRRD%/6ERRXXZZ = =
U88C==E!!;c;;<<< "= =r   r?   dictc                   t                       | j                            dd           |                     d| j        z   dz             }|                    dd          5 }t          j        ||dd	
           |                    d           |	                                 t          j        |                                           d d d            n# 1 swxY w Y   t          j        ||            d S )NT)parentsexist_ok.z.tmpwr-   r.   F   )ensure_asciiindent
)r@   parentmkdir	with_namenamer$   r3   dumpwriteflushosfsyncfilenor   )r   r?   tempr    s       r   atomic_jsonrV   2   s   	GGGKdT222>>#	/F233D	3	)	) Q	%q9999					
	              
 JtTs   "A(CCCurlc                
   t           j                            | ddi          }t           j                            |d          5 }t	          j        |                                          cd d d            S # 1 swxY w Y   d S )NAcceptapplication/json)headers   timeout)urllibrequestRequesturlopenr3   r4   r   )rW   r`   responses      r   get_jsonrd   >   s    n$$S8=O2P$QQG					4	4 +z(--//**+ + + + + + + + + + + + + + + + + +s   &A88A<?A<payloadtuple[int, dict]c                l   t           j                            | t          j        |d                              d          dddd          }t           j                            |d	          5 }|j        t          j        |	                                          fcd d d            S # 1 swxY w Y   d S )
NFrH   r-   rZ   )zContent-TyperY   POST)datar[   method<   r]   )
r_   r`   ra   r3   dumpsencoderb   statusr4   r   )rW   re   r`   rc   s       r   	post_jsonrp   D   s    n$$Ze444;;GDD!3?QRR	 %  G 
				4	4 <
8==?? ; ;;< < < < < < < < < < < < < < < < < <s   /-B))B-0B-intc                    t          j                    } |                     dt          t                               |                     dt
          d           |                     dt
          d           |                                 }t                       t          j	        t          dz  d	z                      d
                    t          |j                 }                    di                               |          dk    rt          d|           fdt           |j                 D             }|rt          d|           t          dz  dz  | dz  }|                                st          d|           t          j	        |                    d
                    }t$          j                            |d                             dd                    }|                    d          dk    sP|                    d          t*          k    s2|t$          j                            t$          j        j                  k    rt          d|           t          |j                 \  }}t          dz  |j        z  t*          z  }	|	dz  }
|	dz  }|	dz  }|	dz  }t          j	        |
                    d
                    }t          j	        |                    d
                    }t3          |
          }|                    d           |k    rt          d!          t5          |d"z             }|                    d          d#k    s|                    d$          d%urt          d&          d }|                                }|                                rt          j	        |                    d
                    }|                    d           |k    s<|                    d'          t8          k    s|                    d          t*          k    rt          d(          |r3|                    d)          r|d)         }t;          d*| d%+           n>|rt          d,          d-t8          t*          |j        d.d/t=          |
          |||z   t-                      d0
}t?          ||           tA          ||z   |          \  }}|                    d)          p|                    d1          }|sE|!                    d2||t-                      d3           t?          ||           t          d4          |!                    |                    dd5          ||t-                      d6           t?          ||           t;          d7| d%+           ||z   d8z   t=          |          z   }d }tE          d-|j#        d-z             D ]?}	 t5          |          }nj# tH          j%        j&        tN          f$ rL}t;          d9| d:tQ          |          j)         d%+           tU          j+        |j,                   Y d }~vd }~ww xY w|                    d          }||k    s	|d;z  d<k    rt;          d9| d=| d%+           |}t          j	        |                    d
                    }|!                    |t-                      |d>           t?          ||           |d?v r	t?          ||           |!                    |t=          |          t-                      |d@k    o*|                    dAi                               dB          d%u dC           t?          ||           t;          t          j-        |||                    dAi                               dB          dDd/E          d%+           |d@k    r-|                    dAi                               dB          d%u rd<nd-c S tU          j+        |j,                   At;          t          j-        ||d/dFdG          d%+           dHS )INstage)choicesz--poll-seconds   )typedefaultz--max-pollsi   scriptzproject-manifest.jsonr-   r.   stepspendingzremote gate is not pending: c                    i | ]Z}                     d i                                |          dk    /|                     d i                                |d          [S )ry   	completedrz   )r;   ).0
dependencymanifests     r   
<dictcomp>zmain.<locals>.<dictcomp>Z   sj       <<$$((44CC 	HLL"--11*iHHCCCr   z)remote gate dependencies are incomplete: zgate-leasesz.jsonzremote gate lease is missing: 
expires_atr   r   ro   activer1   z1remote gate lease is not active for current run: workzrequest.jsonzrequest-bindings.jsonzjob-intent.jsonzterminal-response.jsonrequest_sha256zrequest binding hash mismatchz/healthok
h264_nvencTzworker health/NVENC gate failedr0   zstale/foreign job intentjob_idzresume job_id=)rQ   zOambiguous existing job intent without job_id; reconcile worker before any retry   creatingF)
schema_versionr0   r1   rs   ro   verifiedrequest_pathr   endpoint
created_atidfailed)ro   http_statussafe_response	failed_atz"job create response missing job_idaccepted)ro   r   r   accepted_atzaccepted job_id=/zpoll=z transient=   r   z status=)ro   last_polled_at
poll_count>   r   	cancelledr|   r|   verificationr   )ro   terminal_response_pathterminal_atr   )r   ro   server_verifiedrh   continue_poll_same_job)r   ro   terminalactionrG   ).argparseArgumentParseradd_argumentsortedCONFIGrq   
parse_argsr@   r3   r4   r5   r6   GATESrs   r;   r<   DEPENDENCIESis_filer   fromisoformatr   r8   r   r   r   r*   rd   existsr7   printr   rV   rp   r&   range	max_pollsr_   errorURLErrorTimeoutErrorrv   __name__timesleeppoll_secondsrm   )parserargsgate
incomplete
lease_pathleaser   baserouter   r   bindings_pathintent_pathterminal_pathre   bindingsrequest_hashhealthintentintent_existedr   r   status_coderc   
status_urllastpolljobexcro   r   s                                 @r   mainr   O   s	   $&&F
888
(sA>>>
C>>>D	GGGz4(?-DDOOY`OaabbHD||GR  $$T**i77@$@@AAA   &tz2  J
  USzSSTTT=0d>>>AJ DBDBBCCCJz++W+==>>E"00|1D1L1LSRZ1[1[\\Jyyh&&%))H*=*=*G*G:YaYjYnYnow  pA  pE  ZF  ZF  LF  LFUtUUVVV$KD%&=4:%.D.(L22M**K33Mj///AABBGz-1171CCDDH|$$L||$%%55:;;;dY&''Fzz(t##vzz,'?'?t'K'K<===F ''))N ;K1171CCDD::&''<776::l;S;SWa;a;aekeoeopxeyey  ~D  fD  fD9::: 7&**X&& 7!'v''t44444	 7lmmm  $Z --*u%%
 
 	K*** )$, @ @Xh''=8<<+=+= 	EOOx^fuxuzuz{{|||X...CDDD8<<*#E#EVams  EH  EJ  EJ  K  K  	L  	L  	LK***)))6666#c&kk1JDa!+,, & &	:&&CC%|4 	 	 	?$??499+=??tLLLLJt()))HHHH	 ""T>>TBY!^^0$0000====DK1171CCDD355PTUUVVVK(((999s+++MMVs=GYGYjmjojo  ~D  HS  ~S  ~K  X[  X_  X_  `n  pr  Xs  Xs  Xw  Xw  xB  XC  XC  GK  XK  L  L  M  M  MV,,,$*&UXU\U\]kmoUpUpUtUtu  VA  VA  B  B  QV  W  W  W  _c  d  d  d  d+--#''."2M2M2Q2QR\2]2]ae2e2e11kllll
4$%%%%	$*$EUmnn
o
ow{||||1s   W//Y
AYY__main__)r   r   )r   r   r   r   )r   r+   )r   r   r?   rA   r   r+   )rW   r   r   rA   )rW   r   re   rA   r   rf   )r   rq   )
__future__r   r   r   r"   r3   rR   r   urllib.errorr_   urllib.requestpathlibr   r5   r7   r8   r9   r   r   r   r   r*   r@   rV   rd   rp   r   r   
SystemExitr   r   r   <module>r      s   " " " " " "     				               tRSS*
	(OKS
 

 [QQx ! ! [ [ [ [   = = = =	 	 	 	+ + + +< < < <d d d dN z
*TTVV

 r   