
                            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  ej*                  ej,                  j.                  ej,                  j0                  ej,                  j2                         G d dej4                               Z ej8                  d      e_        y)z$Command for adding labels to images.    )absolute_import)division)unicode_literals)base_classes)poller)waiter)base)flags)labels_doc_helper)labels_flags)labels_utilc                   &    e Zd ZdZed        Zd Zy)ImagesAddLabelsNc                     t        j                  d      | _        | j                  j                  |       t	        j
                  |       y )NF)plural)images_flagsMakeDiskImageArgDISK_IMAGE_ARGAddArgumentr   AddArgsForAddLabels)clsparsers     (lib/surface/compute/images/add_labels.pyArgszImagesAddLabels.Args&   s7    %66eDC""6*$$V,    c                 .   t        j                  | j                               }|j                  j                  }|j                  j
                  }| j                  j                  ||j                  t        j                  |j                              }t        j                  |      }|j                  j                   |j                  di |j!                               }t        j"                  |      j%                  |j&                  j(                  |j*                        }|j,                  s|S |j/                  |j0                  |j2                  |j'                  |j4                  |j*                              }	|j                  j7                  |	      }
|j                  j9                  |
j:                  d      }t=        j>                  |j                        }tA        jB                  ||djE                  |jG                                     S )	N)scope_lister)	additions)labelFingerprintlabels)projectresourceglobalSetLabelsRequestzcompute.globalOperations)
collectionzUpdating labels of image [{0}] )$r   ComputeApiHolderReleaseTrackclientapitools_clientmessagesr   ResolveAsResource	resourcesr
   GetDefaultScopeListerr   GetUpdateLabelsDictFromArgsimagesGetComputeImagesGetRequestAsDictDiffApplyGlobalSetLabelsRequestLabelsValuer    needs_updateComputeImagesSetLabelsRequestr!   imager   	SetLabelsParseselfLinkr   Pollerr   WaitForformatName)selfargsholderr(   r*   	image_ref
add_labelsr9   labels_updaterequest	operationoperation_refoperation_pollers                r   RunzImagesAddLabels.Run,   s   **4+<+<+>?F]]**F}}%%H##55f00? 6 AI 88>JMM(((>9+;+;+=>@E  $$z:@@''33U\\CM %%l44!!''"33 '' 	( 	)	 5 *G ''0I$$**'A + CM }}V]]3>>-(//NN	 r   )__name__
__module____qualname__r   classmethodr   rK   r%   r   r   r   r       s      .- -
$r   r   r9   N)__doc__
__future__r   r   r   googlecloudsdk.api_lib.computer   )googlecloudsdk.api_lib.compute.operationsr   googlecloudsdk.api_lib.utilr   googlecloudsdk.callioper	   "googlecloudsdk.command_lib.computer
   r   r   )googlecloudsdk.command_lib.compute.imagesr   $googlecloudsdk.command_lib.util.argsr   ReleaseTracksr'   ALPHABETAGAUpdateCommandr    GenerateDetailedHelpForAddLabelsdetailed_helpr%   r   r   <module>r`      s    + &  ' 7 < . ( 4 @ ; K < T..33T5F5F5I5IK.d(( .K.d 766w?  r   