
    P                     D   S r SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSK	J
r  SSKJ
r
  SSKJr  SS	KJr  \R"                  " \R$                  R&                  \R$                  R(                  \R$                  R*                  5       " S
 S\R,                  5      5       rg)zPerform maintenance command.    )absolute_import)division)unicode_literals)base_classes)base)flags)log)timesc                   8    \ rS rSrSrSSS.r\S 5       rS rSr	g)	PerformMaintenance   z<Perform maintenance on nodes in a Compute Engine node group.z
       To perform maintenance on nodes in a node group, run:

         $ {command} my-node-group --nodes=node-1,node-2 --start-time=2023-05-01T00:00:00.000-08:00
     )briefEXAMPLESc                     [         R                  " 5       R                  U 5        [         R                  " U 5        [         R                  " U 5        g )N)r   MakeNodeGroupArgAddArgument%AddPerformMaintenanceNodesArgToParser)AddPerformMaintenanceStartTimeArgToParser)parsers    Clib/surface/compute/sole_tenancy/node_groups/perform_maintenance.pyArgsPerformMaintenance.Args,   s5    	((0	//7	33F;    c                    [         R                  " U R                  5       5      nUR                  R                  n[
        R                  " 5       R                  UUR                  [        R                  " UR                  5      S9nUR                  UR                  S9nUR                  (       a%  [        R                  " UR                  5      Ul        UR#                  UUR%                  5       UR&                  UR(                  S9nUR                  R*                  R,                  nUR/                  U5      nUR                  R1                  UR2                  SS9n	[4        R6                  R9                  SR;                  UR                  UR%                  5       U	R=                  5       5      5        [4        R6                  R9                  S5        U$ )N)scope_lister)nodes)#nodeGroupsPerformMaintenanceRequest	nodeGroupprojectzonezcompute.zoneOperations)
collectionzJPerform maintenance call in progress for nodes [{}] in node group [{}]: {}zUUse [gcloud compute operations describe URI] to check the status of the operation(s).)r   ComputeApiHolderReleaseTrackclientmessagesr   r   ResolveAsResource	resourcescompute_flagsGetDefaultScopeLister#NodeGroupsPerformMaintenanceRequestr   
start_timer
   FormatDateTime	startTime*ComputeNodeGroupsPerformMaintenanceRequestNamer   r    apitools_client
nodeGroupsr   ParseselfLinkr	   statusPrintformatSelfLink)
selfargsholderr%   node_group_refperform_maintenancerequestservice	operationoperation_refs
             r   RunPerformMaintenance.Run2   s   **4+<+<+>?F}}%%H++-??"88G @ IN
 #FFjj G  &+&:&:4??&K#AA,? %%'&&  	 B "G mm++66G**73I$$**'? + AMJJ	FJJ++-}/E/E/G
 JJ	 r    N)
__name__
__module____qualname____firstlineno____doc__detailed_helpstaticmethodr   rA   __static_attributes__rC   r   r   r   r      s3     E N	- < <
$r   r   N)rH   
__future__r   r   r   googlecloudsdk.api_lib.computer   googlecloudsdk.callioper   "googlecloudsdk.command_lib.computer   r(   ;googlecloudsdk.command_lib.compute.sole_tenancy.node_groupsgooglecloudsdk.corer	   googlecloudsdk.core.utilr
   ReleaseTracksr#   ALPHABETAGAUpdateCommandr   rC   r   r   <module>rX      s|    # &  ' 7 ( E M # * T..33T5F5F5I5I6++ 66r   