
                             S r SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJ	r	  SSK
Jr  SSKJr   " S	 S
\R                  5      rg)z*Waiter utility for api_lib.util.waiter.py.    )absolute_import)division)unicode_literals)
exceptions)util)"abstract_operation_streamer_poller)logc                   0    \ rS rSrSrS rS rS rS rSr	g)	GceBatchPoller   z$Poller for GCE based batch workload.c                 f   U(       a  UR                   U R                  R                  R                  R                  R
                  U R                  R                  R                  R                  R                  U R                  R                  R                  R                  R                  4;   a  gg)See base class.TF)statedataprocmessagesBatchStateValueValuesEnum	SUCCEEDED	CANCELLEDFAILEDselfbatchs     >lib/googlecloudsdk/api_lib/dataproc/poller/gce_batch_poller.pyIsDoneGceBatchPoller.IsDone$   sz    $$99CC$$99CC$$99@@! 
     c                 l   U R                   R                  R                  US9n U R                   R                  R                  R                  U5      $ ! [        R                   aK  n[        R                  " SR                  U5      5        [        R                  " U5      (       a  e  SnAgSnAff = f)r   )namezGet Batch failed:
{}N)r   r   *DataprocProjectsLocationsBatchesGetRequestclientprojects_locations_batchesGetapitools_exceptions	HttpErrorr	   warningformatr   IsClientHttpException)r   	batch_refrequesterrors       r   PollGceBatchPoller.Poll.   s    mm$$OO P G]]!!<<@@II(( 	kk)0078		#	#E	*	* 
+s   .A B3(AB..B3c                    U(       d  [         R                  " S5      eUR                  U R                  R                  R
                  R                  R                  :X  aZ  U R                  (       d  [        R                  " S5        gU R                  R                  (       a  [        R                  " S5        gUR                  U R                  R                  R
                  R                  R                  :X  a  [        R                  " S5        gSnUR                  (       a)  SR                  X!R                  5      nUS   S:w  a  US-  nUS	-  nUS
-  n[         R                  " U5      e)a<  Handles errors.

Error handling for batch jobs. This happen after the batch reaches one of
the complete states.

Overrides.

Args:
  batch: The batch resource.

Returns:
  None. The result is directly output to log.err.

Raises:
  JobTimeoutError: When waiter timed out.
  JobError: When remote batch job is failed.
z&Timed out while waiting for batch job.z$Expected batch job output not found.z:Batch job terminated, but output did not finish streaming.zBatch job is CANCELLED.zBatch job is FAILED.z{} Detail: {}.
zRunning auto diagnostics on the batch. It may take few minutes before diagnostics output is available. Please check diagnostics output by running 'gcloud dataproc batches describe' command.N)r   JobTimeoutErrorr   r   r   r   r   r   driver_log_streamerr	   r&   openr   stateMessager'   JobError)r   r   err_messages      r   
_GetResultGceBatchPoller._GetResult;   s5   $  &&'OPP 	==!!''<<FF	G %%:;6 5 ##((H	
0 ) 	==!!''<<FF	G 
kk+,"  +k			%,,[:L:LMr?c!

+Tk'k ,,r   c                     U(       aB  UR                   (       a1  UR                   R                  (       a  UR                   R                  $ g)r   N)runtimeInfo	outputUrir   s     r   _GetOutputUriGceBatchPoller._GetOutputUrit   s0    ""u'8'8'B'B(((r    N)
__name__
__module____qualname____firstlineno____doc__r   r,   r8   r=   __static_attributes__r?   r   r   r   r      s     -7rr   r   N)rD   
__future__r   r   r   apitools.base.pyr   r$   googlecloudsdk.api_lib.dataprocr   &googlecloudsdk.api_lib.dataproc.pollerr   dataproc_poller_basegooglecloudsdk.corer	   AbstractOperationStreamerPollerr   r?   r   r   <module>rM      s;     1 &  ' > 6 0 $Y88Yr   