
                            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  ej(                  ej*                  j,                  ej*                  j.                  ej*                  j0                         G d dej2                               Z ej6                  d      e_        y)z'Command for adding labels to instances.    )absolute_import)division)unicode_literals)base_classes)poller)waiter)base)labels_doc_helper)labels_flags)flags)labels_utilc                   &    e Zd ZdZed        Zd Zy)InstancesAddLabelsz!add-labels command for instances.c                 l    t         j                  j                  |        t        j                  |        y )N)r   INSTANCE_ARGAddArgumentr   AddArgsForAddLabels)parsers    +lib/surface/compute/instances/add_labels.pyArgszInstancesAddLabels.Args$   s$    	""6*$$V,    c           	      L   t        j                  | j                               }|j                  j                  }|j                  j
                  }t        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                  |j4                  |j'                  |j6                  |j*                              }	|j                  j9                  |	      }
|j                  j;                  |
j<                  d      }t?        j@                  |j                        }tC        jD                  ||djG                  |jI                                     S )	N)scope_lister)	additions)labelFingerprintlabels)projectinstancezoneinstancesSetLabelsRequestzcompute.zoneOperations)
collectionz!Updating labels of instance [{0}] )%r   ComputeApiHolderReleaseTrackclientapitools_clientmessagesr   r   ResolveAsResource	resourcesGetInstanceZoneScopeListerr   GetUpdateLabelsDictFromArgs	instancesGetComputeInstancesGetRequestAsDictDiffApplyInstancesSetLabelsRequestLabelsValuer   needs_update ComputeInstancesSetLabelsRequestr   r   r   r   	SetLabelsParseselfLinkr   Pollerr   WaitForformatName)selfargsholderr%   r'   instance_ref
add_labelsr   labels_updaterequest	operationoperation_refoperation_pollers                r   RunzInstancesAddLabels.Run)   s   **4+<+<+>?F]]**F}}%%H%%77f55fmmD 8 FL 88>J##+++Dl.A.A.CDFH  $$z:@@**66IM %%o77$$&&**%66 '' 	+ 	) 8 *G   **73I$$**'? + AM }}V%5%56>>-+22	!" "r   N)__name__
__module____qualname____doc__staticmethodr   rG   r"   r   r   r   r      s     *- -%"r   r   r   N)rK   
__future__r   r   r   googlecloudsdk.api_lib.computer   )googlecloudsdk.api_lib.compute.operationsr   googlecloudsdk.api_lib.utilr   googlecloudsdk.callioper	   "googlecloudsdk.command_lib.computer
   r   ,googlecloudsdk.command_lib.compute.instancesr   $googlecloudsdk.command_lib.util.argsr   ReleaseTracksr$   ALPHABETAGAUpdateCommandr    GenerateDetailedHelpForAddLabelsdetailed_helpr"   r   r   <module>r\      s    . &  ' 7 < . ( @ ; > < D%%++T->->-C-C%%((*-"++ -"*-"b 766zB   r   