
                         P   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  ej&                  ej(                  j*                  ej(                  j,                  ej(                  j.                         G d dej0                               Zy)z#Simulate maintenance event command.    )absolute_import)division)unicode_literals)base_classes)poller)waiter)base)flags)logc                   0    e Zd ZdZdddZed        Zd Zy)SimulateMaintenanceEventz4Simulate maintenance of a Compute Engine node group.z{
         To simulate maintenance of a node group, run:

           $ {command} my-node-group --nodes=example-nodes
       )briefEXAMPLESc                     t        j                         j                  |        t        j                  |        t        j
                  j                  |        y )N)r
   MakeNodeGroupArgAddArgument+AddSimulateMaintenanceEventNodesArgToParserr	   
ASYNC_FLAGAddToParser)parsers    Jlib/surface/compute/sole_tenancy/node_groups/simulate_maintenance_event.pyArgszSimulateMaintenanceEvent.Args/   s9    	((0	55f=OO'    c           	      >   t        j                  | j                               }|j                  j                  }t        j                         j                  ||j                  t        j                  |j                              }|j                  |j                  |j                        |j                         |j                  |j                         }|j                  j"                  j$                  }|j'                  |      }|j                  j)                  |j*                  d      }|j,                  rlt.        j0                  j3                  dj5                  |j                         |j7                                      t.        j0                  j3                  d       |S t9        j:                  |      }	dj=                  t?        t@        |j                  xs g             }
tC        jD                  |	|d	j5                  |
|j                                     S )
N)scope_lister)nodes))nodeGroupsSimulateMaintenanceEventRequest	nodeGroupprojectzonezcompute.zoneOperations)
collectionz@Simulation Maintenance Event in progress for node group [{}]: {}zUUse [gcloud compute operations describe URI] to check the status of the operation(s).,z4Simulation Maintenance Event for nodes [{}] in [{}].)#r   ComputeApiHolderReleaseTrackclientmessagesr
   r   ResolveAsResource	resourcescompute_flagsGetDefaultScopeLister0ComputeNodeGroupsSimulateMaintenanceEventRequest)NodeGroupsSimulateMaintenanceEventRequestr   Namer   r    apitools_client
nodeGroupsr   ParseselfLinkasync_r   statusPrintformatSelfLinkr   Pollerjoinmapstrr   WaitFor)selfargsholderr&   node_group_refrequestservice	operationoperation_refoperation_poller	nodes_strs              r   RunzSimulateMaintenanceEvent.Run5   s   **4+<+<+>?F}}%%H++-??"88G @ IN
 GG2:	2	2	2	D %%'&&   H "G mm++66G009I$$**'? + AM{{	jj
L6.%%')?)?)ABD 
jj B C}}W-S$**"234I>>->EE~**,	./ /r   N)__name__
__module____qualname____doc__detailed_helpstaticmethodr   rF    r   r   r   r      s2     = A		- ( (
 /r   r   N)rJ   
__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.sole_tenancy.node_groupsgooglecloudsdk.corer   ReleaseTracksr$   ALPHABETAGAUpdateCommandr   rM   r   r   <module>r[      s    * &  ' 7 < . ( E M # T..33T5F5F5I5I4/t11 4/4/r   