
                            d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
 ddl	mZ dd	l	mZ dd
l	mZ ddl	mZ ddl	mZ ddlmZ ddlmZ ddlmZ ddlmZ ej.                   G d dej0                               Zy)zCommand for deleting jobs.    )absolute_import)division)unicode_literals)	execution)base)connection_context)deletion)flags)pretty_print)resource_args)serverless_operations)concept_parsers)presentation_specs)log)
console_ioc                   F    e Zd ZdZdddZed        Zed        Zd Zd Z	y	)
DeleteDelete a job.z#
          {description}
          zJ
          To delete a job:

              $ {command} job-name
          )DESCRIPTIONEXAMPLESc                     t        j                  dt        j                         ddd      }t	        j
                  | d       t        j                  |g      j                  |        y )NJOBzJob to delete.TF)requiredprefixes)default_async_for_cluster)	r   ResourcePresentationSpecr   GetJobResourceSpecr
   AddAsyncFlagr   ConceptParserAddToParser)parserjob_presentations     lib/surface/run/jobs/delete.py
CommonArgszDelete.CommonArgs2   s_    )BB((* 
$ !!#3"45AA&I    c                 .    t         j                  |        y )N)r   r$   )r!   s    r#   ArgszDelete.Args@   s    
fr%   c                    t        j                  |t        j                  j                  | j                               }|j                  j                  j                         }t        j                  |      5 }dj                  |j                        }t        j                         r| j                  ||      r|dz  }t        j                   |dd       t#        j$                  ||j&                  |j(                  |j*                         ddd       |j*                  r/t-        j.                  dj                  |j                               yt1        j2                  |j                  d       y# 1 sw Y   exY w)r   zJob [{}] will be deleted.zU This job is currently executing; all running executions will be stopped and deleted.T)messagethrow_if_unattendedcancel_on_noNzJob [{}] is being deleted.job)r   GetConnectionContextr
   ProductRUNReleaseTrackCONCEPTSr,   Parser   ConnectformatjobsIdr   	CanPromptHasRunningExecutionsPromptContinuer	   r   GetJob	DeleteJobasync_r   Successr   DeletedResource)selfargsconn_contextjob_refclientr)   s         r#   Runz
Delete.RunD   s   %::emm!2!2!4L mm%%'G		&	&|	4+227>>Bg				D$=$=gv$N$	
 "
 oogv}}f.>.>L 
5 {{7>>w~~NO	'..%0! 
5	4s   7BE00E9c                     dj                  t        j                  |j                        }|j	                  |j                         |dd      D ]  } y y)Nz:{label} = {name}, run.googleapis.com/servingState = Active)labelname   )limit	page_sizeTF)r4   r   	JOB_LABELr5   ListExecutionsParent)r>   rA   rB   label_selector_s        r#   r7   zDelete.HasRunningExecutions\   sc     	EKK%%GNN 	L 	
 
 "".Q #   r%   N)
__name__
__module____qualname____doc__detailed_helpstaticmethodr$   r'   rC   r7    r%   r#   r   r   #   sJ    		- J J  10r%   r   N)rR   
__future__r   r   r   googlecloudsdk.api_lib.runr   googlecloudsdk.callioper   googlecloudsdk.command_lib.runr   r	   r
   r   r   r   (googlecloudsdk.command_lib.util.conceptsr   r   googlecloudsdk.corer   googlecloudsdk.core.consoler   UniverseCompatibleCommandr   rU   r%   r#   <module>r_      s_    ! &  ' 0 ( = 3 0 7 8 @ D G # 2 CT\\ C Cr%   