
    ,                         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rSr " S S\R*                  5      rSS jrSS jrSS jrg)z1Utilities Anthos GKE On-Prem resource operations.    )	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_sizer3   batch_size_attribute)messages/GkeonpremProjectsLocationsOperationsListRequest_location_namer   YieldFromListr   r   Get)r   r/   list_reqs      r   ListOperationsClient.ListG   sc     GG  &H ##99T;/iig&' r   )r   )NNN)__name__
__module____qualname____firstlineno____doc__r   r8   	Operationr-   r   	Namespacer   r>   __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_refrM   s     r   
log_enrollrS   X   s    ))L(JJr   c           	      D    [         R                  " [        U SSUS95        g )NUnenroll
UnenrolledrL   rN   rQ   s     r   log_unenrollrW   ^   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_tenserd   re   )
CollectionsplitgetSelfLinkr'   )	rR   rc   rf   rM   resource_collectionresource_typeresource_type_to_namerd   re   s	            r   rP   rP   d   s     %//1%++C04- ;J@A
? G
6 F  (++M;MN-##%)DKK# L   9??# @  r   N)F)rD   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   r8   r)   r$   
ClientBaser   rS   rW   rP   r   r   r   <module>rw      sT    8  ' = . 5 = # ) `  3v(( 3l.r   