
                            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 removing labels from 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)InstancesRemoveLabelsz$remove-labels command for instances.c                 l    t         j                  j                  |        t        j                  |        y )N)r   INSTANCE_ARGAddArgumentr   AddArgsForRemoveLabels)parsers    .lib/surface/compute/instances/remove_labels.pyArgszInstancesRemoveLabels.Args$   s$    	""6*''/    c           	         t        j                  | j                               }|j                  j                  }|j                  j
                  }t        j                  j                  ||j                  t        j                  |j                              }t        j                  |      }|j                  j                   |j                  di |j!                               }|j"                  rBi }|j$                  r4|j$                  j&                  D ]  }|j(                  ||j*                  <    t        j,                  |      j/                  |j0                  j2                  |j$                        }	|	j4                  s|S |j7                  |j8                  |j:                  |j<                  |j1                  |j>                  |	j$                              }
|j                  jA                  |
      }|j                  jC                  |jD                  d      }tG        jH                  |j                        }tK        jL                  ||djO                  |jQ                                     S )	N)scope_lister)subtractions)labelFingerprintlabels)projectinstancezoneinstancesSetLabelsRequestzcompute.zoneOperations)
collectionz!Changing labels of instance [{0}] ))r   ComputeApiHolderReleaseTrackclientapitools_clientmessagesr   r   ResolveAsResource	resourcesGetInstanceZoneScopeListerr   GetUpdateLabelsDictFromArgs	instancesGetComputeInstancesGetRequestAsDictallr   additionalPropertiesvaluekeyDiffApplyInstancesSetLabelsRequestLabelsValueneeds_update ComputeInstancesSetLabelsRequestr   r   r   r   	SetLabelsParseselfLinkr   Pollerr   WaitForformatName)selfargsholderr%   r'   instance_refremove_labelsr   labellabels_updaterequest	operationoperation_refoperation_pollers                 r   RunzInstancesRemoveLabels.Run)   s   **4+<+<+>?F]]**F}}%%H%%77f55fmmD 8 FL  ;;DAM##+++Dl.A.A.CDFH xxm	__99E%*[[-		
" :  $$-@FF**66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   rL   r"   r   r   r   r      s     -0 0+"r   r   r   N)rP   
__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   #GenerateDetailedHelpForRemoveLabelsdetailed_helpr"   r   r   <module>ra      s    2 &  ' 7 < . ( @ ; > < D%%++T->->-C-C%%((*3"D.. 3"*3"n :99*E  #r   