
    |                         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 adding labels to 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)	AddLabelszadd-labels command for disks.Nc                     t        j                  d      | _        | j                  j                  |       t	        j
                  |       y )NF)plural)disks_flagsMakeDiskArgDISK_ARGAddArgumentr   AddArgsForAddLabels)clsparsers     'lib/surface/compute/disks/add_labels.pyArgszAddLabels.Args&   s4    **%8CLLLV$$$V,    c                    t        j                  | j                               }|j                  j                  }|j                  j
                  }| j                  j                  ||j                  t        j                  |j                              }t        j                  |      }t        j                  |||      }|j                         }|j!                         }	t        j"                  |      j%                  |	j&                  |j(                        }
|j+                  ||
j-                               }|
j.                  s|S |j1                         }|j3                  |      }|j                  j5                  |j6                  |j9                               }t;        j<                  |      }t?        j@                  ||djC                  |jE                                     S )N)scope_lister)	additions)
collectionzUpdating labels of disk [{0}])#r   ComputeApiHolderReleaseTrackclientapitools_clientmessagesr   ResolveAsResource	resourcesr   GetDefaultScopeListerr   GetUpdateLabelsDictFromArgsapi_utilGetDiskInfoGetDiskResourceGetSetLabelsRequestMessageDiffApplyLabelsValuelabelsGetSetDiskLabelsRequestMessage	GetOrNoneneeds_update
GetService	SetLabelsParseselfLinkGetOperationCollectionr   Pollerr	   WaitForformatName)selfargsholderr#   r%   disk_ref
add_labels	disk_infodiskset_label_reqlabels_updaterequestservice	operationoperation_refoperation_pollers                   r   RunzAddLabels.Run,   s   **4+<+<+>?F]]**F}}%%H}}..00? / AH 88>J$$Xvx@I$$&D88:M$$z:@@!!4;;0M66m%%')G %%k""$G!!'*I$$**y'G'G'I + KM }}W->>-'..MMO	 r   )__name__
__module____qualname____doc__r   classmethodr   rL    r   r   r   r   !   s!    %(- -
r   r   rD   N)rP   
__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    GenerateDetailedHelpForAddLabelsdetailed_helprR   r   r   <module>r^      s_    * &  ' 7 A < . ( 4 @ ; I <("" (X 766v> 
 r   