
                             S r SSK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rSr\R                  R                   S	\R                  R"                  S
0r SS jrS rg)zutil functions for dataprocgdc.    N)
exceptions)apis)base)log)progress_trackerdataprocgdcv1alpha1v1c           	         [         R                  U R                  5       5      n[        R                  " [
        U5      nUR                  US9n	Sn
[        R                  " 5       n[        R                  " SSS9nU    XU-   :  nU(       a  Un
 UR                  R                  U	5      nUR(                  UR*                  R,                  R.                  UR*                  R,                  R0                  UR*                  R,                  R2                  4;   a  O[        R                  " 5       nM  SSS5        UR(                  nXL a  U$ XR*                  R,                  R2                  L a%  [4        R6                  " SR!                  U5      5      eXR*                  R,                  R.                  L a%  [4        R6                  " S	R!                  U5      5      eg! [        R                   aU  n[        R                  " SR!                  ["        R$                  " U5      5      5        ['        U5      (       a  e  SnAGNSnAff = f! , (       d  f       GN= f)
a?  Poll dataproc GDC spark application until terminal state is reached.

Args:
  self: The self object.
  dataprocgdc_client: wrapper for dataproc gdc resources.
  application_path: the path for spark application.
  application_id: The id of spark application.
  goal_state: The desired state of the spark application.
  spark_app: The spark application which is being polled.
  dataproc_poll_period_s: delay in seconds between the polling API calls.

Returns:
  sparkApp: The final value of spark application.

Raises:
  Error: if the spark application finishes with an error.
)namer   z Waiting for Spark app completionT)autotickz Get Spark Application failed:
{}NzSpark Application [{0}] failed.z&Spark Application [{0}] was cancelled.)VERSION_MAPgetReleaseTrackr   GetMessagesModuleDATAPROCGDC_API_NAMEGDataprocgdcProjectsLocationsServiceInstancesSparkApplicationsGetRequesttimer   ProgressTracker5projects_locations_serviceInstances_sparkApplicationsGetapitools_exceptions	HttpErrorr   warningformatsix	text_typeIsClientHttpExceptionstateSparkApplicationStateValueValuesEnum	CANCELLED	SUCCEEDEDFAILEDr   Error)selfdataprocgdc_clientapplication_pathapplication_id
goal_state	spark_appdataproc_poll_period_sapi_versionmessagesget_reqlast_spark_app_poll_timenowwait_displayregular_spark_app_pollerrorr   s                   /lib/googlecloudsdk/api_lib/dataproc_gdc/util.pyWaitForSparkAppTerminationr6   #   s   4  1 1 34+##$8+F(\\ ] ' 		#!11(4, 

,BB
B  
 #& 		(^^bb) 


#
#
8
8
B
B

#
#
8
8
B
B

#
#
8
8
?
? 

 	IIKc/  4 //%

''<<CCC


)00@  ''<<FFF


077G  G+ #,, 	
++188u9MN #5)) *		 |s8   <IG*BII,A
H<6I<II
Ic                 L    U R                   S:  =(       a    U R                   S:  $ )z>Returns true if the http exception given is an HTTP 4xx error.i  i  )status_code)http_exceptions    r5   r   r   n   s#    		#	#s	*	O~/I/IC/OO    )
   )__doc__r   apitools.base.pyr   r   googlecloudsdk.api_lib.utilr   googlecloudsdk.callioper   googlecloudsdk.corer   googlecloudsdk.core.consoler   r   r   r   ALPHAGAr   r6   r    r:   r5   <module>rE      se    &  > , ( * # 8 
 % Z$ HVPr:   