
                         f   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
K
Jr  SS	KJr  \	R"                  " \	R$                  R&                  \	R$                  R(                  \	R$                  R*                  5       " S S\	R,                  5      5       rSSSS.\l        g)zCommand for deleting disks.    )absolute_import)division)unicode_literals)base_classes)utils)base)
completers)flags)scopec                   :    \ rS rSrSr\S 5       rS rS rS r	Sr
g)	Delete   zDelete Compute Engine persistent disks.

*{command}* deletes one or more Compute Engine
persistent disks. Disks can be deleted only if they are not
being used by any virtual machine instances.
c                     [         R                  " SS9[        l        [        R                  R	                  U SS9  U R
                  R                  [        R                  5        g )NT)pluraldelete)operation_type)	disks_flagsMakeDiskArgr   	disks_argAddArgumentdisplay_infoAddCacheUpdaterr	   DisksCompleter)parsers    #lib/surface/compute/disks/delete.pyArgsDelete.Args(   sH    "..d;F
   A
''
(A(AB    c                     [        S U 5       5      n[        S U 5       5      nU(       a  U(       d  gU(       a  U(       d  gg)z!Gets common scope for references.c              3   :   #    U  H  n[        US 5      v   M     g7f)zoneNhasattr.0refs     r   	<genexpr>4Delete._GetCommonScopeNameForRefs.<locals>.<genexpr>0   s     84C73''4   c              3   :   #    U  H  n[        US 5      v   M     g7f)regionNr"   r$   s     r   r'   r(   1   s     <tWS(++tr)   r!   r+   N)any)selfrefshas_zone
has_regions       r   _GetCommonScopeNameForRefs!Delete._GetCommonScopeNameForRefs.   s5    8488H<t<<J
	Hr   c                    UR                   n/ nU H  nUR                  5       S:X  a@  UR                  nUR                  UR	                  5       UR
                  UR                  S9nO|UR                  5       S:X  a@  UR                  nUR                  UR	                  5       UR
                  UR                  S9nO([        SR                  UR                  5       5      5      eUR                  USU45        M     U$ )z,Returns a list of delete messages for disks.zcompute.disks)diskprojectr!   zcompute.regionDisks)r4   r5   r+   zUnknown reference type {0}r   )MESSAGES_MODULE
CollectiondisksComputeDisksDeleteRequestNamer5   r!   regionDisksComputeRegionDisksDeleteRequestr+   
ValueErrorformatappend)r-   client	disk_refsmessagesrequestsdisk_refservicerequests           r   _CreateDeleteRequestsDelete._CreateDeleteRequests:   s     %%HH				/	1,,44$$ 5    $99$$::$$?? ; $
 5 3 3 568 	8 oow'23# $ Or   c                    [         R                  " U R                  5       5      n[        R                  R                  XR                  [        R                  R                  [        R                  " UR                  5      S9nU R                  U5      n[        R                  " X4S S9  [!        U R#                  UR                  R$                  U5      5      nUR                  R'                  U5      $ )N)default_scopescope_lister)
scope_nameprompt_title)r   ComputeApiHolderReleaseTrackr   r   ResolveAsResource	resourcescompute_scope	ScopeEnumZONEr
   GetDefaultScopeListerr@   r1   r   PromptForDeletionlistrG   apitools_clientMakeRequests)r-   argsholderrA   rL   rC   s         r   Run
Delete.RunS   s    **4+<+<+>?F  22#--2200? 3 AI
 00;J	t= D..%%y2 3H ==%%h//r    N)__name__
__module____qualname____firstlineno____doc__staticmethodr   r1   rG   r\   __static_attributes__r^   r   r   r   r      s,     C C

20r   r   zDelete a Compute Engine diskz        *{command}* deletes a Compute Engine disk. A disk can be
        deleted only if it is not attached to any virtual machine instances.
        z{        To delete the disk 'my-disk' in zone 'us-east1-a', run:

            $ {command} my-disk --zone=us-east1-a
        )briefDESCRIPTIONEXAMPLESN)rc   
__future__r   r   r   googlecloudsdk.api_lib.computer   r   googlecloudsdk.callioper   "googlecloudsdk.command_lib.computer	   r
   r   rR   (googlecloudsdk.command_lib.compute.disksr   ReleaseTracksrO   GABETAALPHADeleteCommandr   detailed_helpr^   r   r   <module>rt      s    " &  ' 7 0 ( 9 4 E I $++00$2C2C2I2IKC0T C0KC0L ,	
	 r   