
                             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  SSKJr  SSKJr  SSKJr  SrSr " S S\
R2                  5      rSS jrSS jrSS jrg)z1Utilities Anthos GKE On-Prem resource operations.    )absolute_import)division)unicode_literals)	Generator)
list_pager)client)waiter)parser_extensions)flags)log)	resources)gkeonprem_v1_messagesi'  i m c                      ^  \ rS rSrSrU 4S jr S
S\R                  4S jjrS\	R                  S\\R                  SS4   4S jrS	rU =r$ )OperationsClient%   z:Client for operations in Anthos GKE On-Prem API resources.c                 d   > [         [        U ]
  " S0 UD6  U R                  R                  U l        g )N )superr   __init___clientprojects_locations_operations_service)selfkwargs	__class__s     <lib/googlecloudsdk/api_lib/container/gkeonprem/operations.pyr   OperationsClient.__init__(   s'    	
D*4V4LL>>DM    Nreturnc                 *   U(       a(  [         R                  R                  UR                  SS9nUb  US-  O[        n[
        R                  " [
        R                  " U R                  5      USR                  UR                  5       5      [        US9$ )a   Waits for an LRO to complete.

Args:
  operation: object, operation to wait for.
  operation_ref: operation resource argument reference.
  timeout: int, time in seconds to wait for the operation to complete.

Returns:
  A completed long-running operation.
z'gkeonprem.projects.locations.operations)
collectioni  z&Waiting for operation [{}] to complete)wait_ceiling_msmax_wait_ms)r   REGISTRYParseRelativeNamenameMAX_LRO_WAIT_MSr	   WaitForCloudOperationPollerNoResourcesr   formatRelativeNameMAX_LRO_POLL_INTERVAL_MS)r   	operationoperation_reftimeoutr#   s        r   WaitOperationsClient.Wait,   s     ((::
..> ; m
 %,$7'D._K>>..t}}=077&&(	
 1 r   argsc           
          [         R                  " U R                  U5      S9n[        R                  " U R
                  US[        R                  " US5      [        R                  " US5      SS9$ )zList operations.)r&   
operations	page_sizelimitpageSize)field
batch_sizer6   batch_size_attribute)messages/GkeonpremProjectsLocationsOperationsListRequest_location_namer   YieldFromListr   r   Get)r   r2   list_reqs      r   ListOperationsClient.ListJ   sc     GG  &H ##99T;/iig&' r   )r   )NNN)__name__
__module____qualname____firstlineno____doc__r   r;   	Operationr0   r
   	Namespacer   rA   __static_attributes____classcell__)r   s   @r   r   r   %   sU    B?
 9=<#--##T4/0 r   r   c           	      D    [         R                  " [        U SSUS95        g )NEnrollEnrolledis_asyncr   Printlog_operationresource_refrP   s     r   
log_enrollrV   [   s    ))L(JJr   c           	      D    [         R                  " [        U SSUS95        g )NUnenroll
UnenrolledrO   rQ   rT   s     r   log_unenrollrZ   a   s    ))L*lXNr   c           	          U R                  5       nUR                  S5      S   nSSSSSSS	S
S.nUR                  US5      nU R                  5       nU(       a  SR	                  UUUS9$ SR	                  UUUS9$ )a   Logs the long running operation of a resource.

Args:
  resource_ref: A resource argument.
  action: str, present tense of the operation.
  past_tense: str, past tense of the operation.
  is_async: bool, if async operation is enabled.

Returns:
  A string that logs the operation status.
.z user cluster in Anthos on VMwarez/node pool of a user cluster in Anthos on VMwarez!admin cluster in Anthos on VMwarez$user cluster in Anthos on bare metalz3node pool of a user cluster in Anthos on bare metalz%admin cluster in Anthos on bare metalz*standalone cluster in Anthos on bare metalz9node pool of a standalone cluster in Anthos on bare metal)vmwareClustersvmwareNodePoolsvmwareAdminClustersbareMetalClustersbareMetalNodePoolsbareMetalAdminClustersbareMetalStandaloneClustersbareMetalStandaloneNodePoolszunknown resourcez7{action} in progress for {resource_name} [{self_link}].)actionresource_name	self_linkz+{past_tense} {resource_name} [{self_link}].)
past_tenserg   rh   )
CollectionsplitgetSelfLinkr*   )	rU   rf   ri   rP   resource_collectionresource_typeresource_type_to_namerg   rh   s	            r   rS   rS   g   s     %//1%++C04- ;J@A
? G
6 F  (++M;MN-##%)DKK# L   9??# @  r   N)F)rG   
__future__r   r   r   typingr   apitools.base.pyr   *googlecloudsdk.api_lib.container.gkeonpremr   googlecloudsdk.api_lib.utilr	   googlecloudsdk.callioper
   +googlecloudsdk.command_lib.container.vmwarer   googlecloudsdk.corer   r   2googlecloudsdk.generated_clients.apis.gkeonprem.v1r   r;   r,   r'   
ClientBaser   rV   rZ   rS   r   r   r   <module>r{      s[    8 &  '  ' = . 5 = # ) `  3v(( 3l.r   