
                         (   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SKJr  SSKJr  Sr\R6                  " \R8                  R:                  5       " S S\R<                  5      5       r\R6                  " \R8                  R@                  5       " S S\R<                  5      5       r!\R6                  " \R8                  RD                  5       " S S\R<                  5      5       r#g)zACommand to update a node pool in an Anthos cluster on bare metal.    )absolute_import)division)unicode_literals)Optional)bare_metal_node_pools)
operations)base)parser_arguments)cluster_flags)	constants)node_pool_flags)log)gkeonprem_v1_messagesz
To update a node pool named ``my-node-pool'' in a cluster named
``my-cluster'' managed in location ``us-west1'', run:

$ {command} my-node-pool --cluster=my-cluster --location=us-west1
c                   R    \ rS rSrSrS\0r\S\R                  4S j5       r
S rSrg)	Update*   6Update a node pool in an Anthos cluster on bare metal.EXAMPLESparserc                 p   U R                   R                  [        R                  5        [        R
                  " U S5        [        R                  " U 5        [        R                  " U 5        [        R                  R                  U 5        [        R                  " U SS9  [        R                  " U 5        gzoGathers commandline arguments for the update command.

Args:
  parser: The argparse parser to add the flag to.
z	to updateT)	is_updateNdisplay_info	AddFormatbare_metal_constantsBARE_METAL_NODE_POOLS_FORMATflagsAddNodePoolResourceArgr   AddValidationOnlyAddAllowMissingUpdateNodePoolr	   
ASYNC_FLAGAddToParserAddNodePoolConfigAddNodePoolDisplayNamer   s    5lib/surface/container/bare_metal/node_pools/update.pyArgsUpdate.Args0   s     !!99 
  5##F+	''/OO'	Fd3	  (    c                    UR                   R                  R                  5       n[        R                  " 5       nUR                  U5      nUR                  (       a+  UR                  S5      (       d  [        R                  Ul
        UR                  (       a  U$ [        R                  " 5       nUR                  U5      nUR                  (       d"  [        R                   " USUR                  5        U$ aA  Runs the update command.

Args:
  args: The arguments received from command line.

Returns:
  The return value depends on the command arguments. If `--async` is
  specified, it returns an operation; otherwise, it returns the updated
  resource. If `--validate-only` is specified, it returns None or any
  possible error.
formatz)Node pool in Anthos cluster on bare metalCONCEPTS	node_poolParseapisNodePoolsClientr   async_IsSpecifiedr   OPERATIONS_FORMATr-   r   OperationsClientWaitvalidate_onlyr   UpdatedResourceselfargsnode_pool_refclient	operationoperation_clientoperation_responses          r'   Run
Update.RunA   s     MM++113M!!#Fd#I{{4++H55//dk{{!224)..y9	

5
++
 r*    N__name__
__module____qualname____firstlineno____doc__	_EXAMPLESdetailed_helpstaticmethodr
   ArgumentInterceptorr(   rC   __static_attributes__rE   r*   r'   r   r   *   s4    >y)-)#77 ) ) r*   r   c                   R    \ rS rSrSrS\0r\S\R                  4S j5       r
S rSrg)	
UpdateBetac   r   r   r   c                 p   U R                   R                  [        R                  5        [        R
                  " U S5        [        R                  " U 5        [        R                  " U 5        [        R                  R                  U 5        [        R                  " U SS9  [        R                  " U 5        gr   r   r&   s    r'   r(   UpdateBeta.Argsi   s}     !!99;	  5##F+	''/OO'	Fd3	  (r*   c                    UR                   R                  R                  5       n[        R                  " 5       nUR                  U5      nUR                  (       a+  UR                  S5      (       d  [        R                  Ul
        UR                  (       a  U$ [        R                  " 5       nUR                  U5      nUR                  (       d"  [        R                   " USUR                  5        U$ r,   r.   r;   s          r'   rC   UpdateBeta.Runy        MM++113M!!#Fd#I{{4++H55//dk{{!224)..y9	-E++' r*   rE   NrF   rE   r*   r'   rR   rR   c   s4    >y)-)#77 ) )r*   rR   c                   t    \ rS rSrSrS\0r\S\R                  4S j5       r
S\\R                     4S jrSrg	)
UpdateAlpha   r   r   r   c                    U R                   R                  [        R                  5        [        R
                  " U S5        [        R                  " U 5        [        R                  " U 5        [        R                  R                  U 5        [        R                  " U SS9  [        R                  " U 5        [        R                  " U 5        gr   )r   r   r   r   r   r   r   r    r!   r	   r"   r#   r$   r%   AddNodePoolVersionr&   s    r'   r(   UpdateAlpha.Args   s     !!99;	  5##F+	''/OO'	Fd3	  (	V$r*   returnc                    UR                   R                  R                  5       n[        R                  " 5       nUR                  U5      nUR                  (       a+  UR                  S5      (       d  [        R                  Ul
        UR                  (       a  U$ [        R                  " 5       nUR                  U5      nUR                  (       d"  [        R                   " USUR                  5        U$ r,   r.   r;   s          r'   rC   UpdateAlpha.Run   rX   r*   rE   N)rG   rH   rI   rJ   rK   rL   rM   rN   r
   rO   r(   r   messages	OperationrC   rP   rE   r*   r'   rZ   rZ      sF    >y)-%#77 % % ("4"45 r*   rZ   N)$rK   
__future__r   r   r   typingr   *googlecloudsdk.api_lib.container.gkeonpremr   r2   r   googlecloudsdk.callioper	   r
   /googlecloudsdk.command_lib.container.bare_metalr   r   r   r   r   .googlecloudsdk.command_lib.container.gkeonpremgooglecloudsdk.corer   2googlecloudsdk.generated_clients.apis.gkeonprem.v1r   rb   rL   ReleaseTracksReleaseTrackGAUpdateCommandr   BETArR   ALPHArZ   rE   r*   r'   <module>rr      s    H &  '  T A ( 4 I ] T D # `	 D%%(()5T 5 *5p D%%**+2## 2 ,2j D%%++,3$$$ 3 -3r*   