
                             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  G d dej.                        Z ej2                  d      e_        y)z'Command for removing labels from disks.    )absolute_import)division)unicode_literals)base_classes)
disks_util)poller)waiter)base)flags)labels_doc_helper)labels_flags)labels_utilc                   *    e Zd ZdZdZed        Zd Zy)RemoveLabelsz remove-labels command for disks.Nc                     t        j                  d      | _        | j                  j                  |       t	        j
                  |       y )NF)plural)disks_flagsMakeDiskArgDISK_ARGAddArgumentr   AddArgsForRemoveLabels)clsparsers     *lib/surface/compute/disks/remove_labels.pyArgszRemoveLabels.Args&   s4    **%8CLLLV$''/    c                 p   t        j                  | j                               }|j                  j                  }|j                  j
                  }| j                  j                  ||j                  t        j                  |j                              }t        j                  |      }t        j                  |||      }|j                         }|j                   rBi }|j"                  r4|j"                  j$                  D ]  }	|	j&                  ||	j(                  <    t        j*                  |      }
|j-                         }|
j/                  |j0                  |j"                        }|j3                  ||j5                               }|j6                  s|S |j9                         }|j;                  |      }|j                  j=                  |j>                  |jA                               }tC        jD                  |      }tG        jH                  ||djK                  |jM                                     S )N)scope_lister)subtractions)
collectionzUpdating labels of disk [{0}])'r   ComputeApiHolderReleaseTrackclientapitools_clientmessagesr   ResolveAsResource	resourcesr   GetDefaultScopeListerr   GetUpdateLabelsDictFromArgsapi_utilGetDiskInfoGetDiskResourcealllabelsadditionalPropertiesvaluekeyDiffGetSetLabelsRequestMessageApplyLabelsValueGetSetDiskLabelsRequestMessage	GetOrNoneneeds_update
GetService	SetLabelsParseselfLinkGetOperationCollectionr   Pollerr	   WaitForformatName)selfargsholderr#   r%   disk_refremove_labels	disk_infodisklabellabels_diffset_label_reqlabels_updaterequestservice	operationoperation_refoperation_pollers                     r   RunzRemoveLabels.Run,   s   **4+<+<+>?F]]**F}}%%H}}..00? / AH  ;;DAM$$Xvx@I$$&Dxxm	[[55E%*[[-		
" 6"">K88:M%%m&?&?MM66m%%')G%%k""$G!!'*I$$**y'G'G'I + KM }}W->>-'..MMO	 r   )__name__
__module____qualname____doc__r   classmethodr   rR    r   r   r   r   !   s!    ((0 0
$r   r   rH   N)rV   
__future__r   r   r   googlecloudsdk.api_lib.computer   r   r*   )googlecloudsdk.api_lib.compute.operationsr   googlecloudsdk.api_lib.utilr	   googlecloudsdk.callioper
   "googlecloudsdk.command_lib.computer   r   r   (googlecloudsdk.command_lib.compute.disksr   $googlecloudsdk.command_lib.util.argsr   UpdateCommandr   #GenerateDetailedHelpForRemoveLabelsdetailed_helprX   r   r   <module>rd      s_    . &  ' 7 A < . ( 4 @ ; I </4%% /f :99&A  r   