
    ^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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)PathzF/data/video-pipeline/HaTramAudio/project/017-Tam-Ve-Khong-Ghi-Diem-Denz017-Tam-Ve-Khong-Ghi-Diem-Denzrun-20260721T030911Z-51bf7fe4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	transcodereturnstrc                     t           j                             t           j        j                                                                      dd          S )Nz+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   r.   dumpwriteflushosfsyncfilenor   )r   r:   tempr   s       r   atomic_jsonrQ   ,   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urlopenr.   r/   r   )rR   r[   responses      r   get_jsonr_   8   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rC   r(   rU   )zContent-TyperT   POST)datarV   method<   rX   )
rZ   r[   r\   r.   dumpsencoder]   statusr/   r   )rR   r`   r[   r^   s       r   	post_jsonrk   >   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  |j        z  t          z  }|d	z  }|d
z  }|dz  }|dz  }t          j        |                    d                    }	t          j        |                    d                    }
t          |          }|
                    d          |k    rt!          d          t#          |dz             }|                    d          dk    s|                    d          durt!          d          d }|                                }|                                rt          j        |                    d                    }|                    d          |k    s<|                    d          t&          k    s|                    d          t          k    rt!          d          |r3|                    d          r|d         }t)          d| d           n>|rt!          d          dt&          t          |j        dd t+          |          |||z   t-                      d!
}t/          ||           t1          ||z   |	          \  }}|                    d          p|                    d"          }|sE|                    d#||t-                      d$           t/          ||           t!          d%          |                    |                    dd&          ||t-                      d'           t/          ||           t)          d(| d           ||z   d)z   t+          |          z   }d }t5          d|j        dz             D ]?}	 t#          |          }nj# t8          j        j        t>          f$ rL}t)          d*| d+tA          |          j!         d           tE          j#        |j$                   Y d }~vd }~ww xY w|                    d          }||k    s	|d,z  d-k    rt)          d*| d.| d           |}t          j        |                    d                    }|                    |t-                      |d/           t/          ||           |d0v r	t/          ||           |                    |t+          |          t-                      |d1k    o*|                    d2i                               d3          du d4           t/          ||           t)          t          j%        |||                    d2i                               d3          d5d 6          d           |d1k    r-|                    d2i                               d3          du rd-ndc S tE          j#        |j$                   At)          t          j%        ||d d7d8          d           d9S ):Nstage)choicesz--poll-seconds   )typedefaultz--max-pollsi   workzrequest.jsonzrequest-bindings.jsonzjob-intent.jsonzterminal-response.jsonr(   r)   request_sha256zrequest binding hash mismatchz/healthrj   ok
h264_nvencTzworker health/NVENC gate failedr+   r,   zstale/foreign job intentjob_idzresume job_id=)rL   zOambiguous existing job intent without job_id; reconcile worker before any retry   creatingF)
schema_versionr+   r,   rn   rj   verifiedrequest_pathrt   endpoint
created_atidfailed)rj   http_statussafe_response	failed_atz"job create response missing job_idaccepted)rj   r   rw   accepted_atzaccepted job_id=/zpoll=z transient=   r   z status=)rj   last_polled_at
poll_count>   r   	cancelled	completedr   verificationr{   )rj   terminal_response_pathterminal_atr{   )rw   rj   server_verifiedrc   continue_poll_same_job)rw   rj   terminalactionrB   )&argparseArgumentParseradd_argumentsortedCONFIGrl   
parse_argsr;   rn   r0   r3   r.   r/   r1   r%   r6   r7   r_   existsr2   printr
   r   rQ   rk   r!   range	max_pollsrZ   errorURLErrorTimeoutErrorrq   __name__timesleeppoll_secondsrh   )parserargsbaserouters   r|   bindings_pathintent_pathterminal_pathr`   bindingsrequest_hashhealthintentintent_existedrw   ry   status_coder^   
status_urllastpolljobexcrj   s                            r   mainr   I   s@   $&&F
888
(sA>>>
C>>>D	GGG$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   P##R
>ARR
__main__)r	   r
   )r   r   r	   r
   )r	   r&   )r   r   r:   r<   r	   r&   )rR   r
   r	   r<   )rR   r
   r`   r<   r	   ra   )r	   rl   )
__future__r   r   r   r   r.   rM   r   urllib.errorrZ   urllib.requestpathlibr   r0   r2   r3   r4   r   r   r%   r;   rQ   r_   rk   r   r   
SystemExitr   r   r   <module>r      sk   " " " " " "     				               tTUU,
	(OKS
 
[ [ [ [   = = = =	 	 	 	+ + + +< < < <R R R Rj z
*TTVV

 r   