
                         (   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 ddlmZ ddlmZ ddlmZ ddlmZ dZ ej6                  ej8                  j:                         G d dej<                               Z ej6                  ej8                  j@                         G d dej<                               Z! ej6                  ej8                  jD                         G d dej<                               Z#y)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                   H    e Zd ZdZdeiZedej                  fd       Z	d Z
y)Update6Update a node pool in an Anthos cluster on bare metal.EXAMPLESparserc                 l   | j                   j                  t        j                         t	        j
                  | d       t        j                  |        t	        j                  |        t        j                  j                  |        t	        j                  | d       t	        j                  |        yz{Gathers 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ArgszUpdate.Args0   s     !!99 
  5##F+	''/OO'	Fd3	  (    c                    |j                   j                  j                         }t        j                         }|j                  |      }|j                  r&|j                  d      st        j                  |_
        |j                  r|S t        j                         }|j                  |      }|j                  s!t        j                   |d|j                         |S 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&   Runz
Update.RunA   s     MM++113M!!#Fd#I{{4++H5//dk{{!224)..y9	

5
++
 r(   N__name__
__module____qualname____doc__	_EXAMPLESdetailed_helpstaticmethodr
   ArgumentInterceptorr'   rA    r(   r&   r   r   *   s4    >y)-)#77 ) ) r(   r   c                   H    e Zd ZdZdeiZedej                  fd       Z	d Z
y)
UpdateBetar   r   r   c                 l   | j                   j                  t        j                         t	        j
                  | d       t        j                  |        t	        j                  |        t        j                  j                  |        t	        j                  | d       t	        j                  |        yr   r   r%   s    r&   r'   zUpdateBeta.Argsi   s}     !!99;	  5##F+	''/OO'	Fd3	  (r(   c                    |j                   j                  j                         }t        j                         }|j                  |      }|j                  r&|j                  d      st        j                  |_
        |j                  r|S t        j                         }|j                  |      }|j                  s!t        j                   |d|j                         |S r*   r,   r9   s          r&   rA   zUpdateBeta.Runy        MM++113M!!#Fd#I{{4++H5//dk{{!224)..y9	-E++' r(   NrB   rK   r(   r&   rM   rM   c   s4    >y)-)#77 ) )r(   rM   c                   h    e Zd ZdZdeiZedej                  fd       Z	de
ej                     fdZy)UpdateAlphar   r   r   c                    | j                   j                  t        j                         t	        j
                  | d       t        j                  |        t	        j                  |        t        j                  j                  |        t	        j                  | d       t	        j                  |        t	        j                  |        yr   )r   r   r   r   r   r   r   r   r    r	   r!   r"   r#   r$   AddNodePoolVersionr%   s    r&   r'   zUpdateAlpha.Args   s     !!99;	  5##F+	''/OO'	Fd3	  (	V$r(   returnc                    |j                   j                  j                         }t        j                         }|j                  |      }|j                  r&|j                  d      st        j                  |_
        |j                  r|S t        j                         }|j                  |      }|j                  s!t        j                   |d|j                         |S r*   r,   r9   s          r&   rA   zUpdateAlpha.Run   rP   r(   N)rC   rD   rE   rF   rG   rH   rI   r
   rJ   r'   r   messages	OperationrA   rK   r(   r&   rR   rR      sF    >y)-%#77 % % ("4"45 r(   rR   N)$rF   
__future__r   r   r   typingr   *googlecloudsdk.api_lib.container.gkeonpremr   r0   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   rW   rG   ReleaseTracksReleaseTrackGAUpdateCommandr   BETArM   ALPHArR   rK   r(   r&   <module>rg      s    H &  '  T A ( 4 I ] T D # `	 D%%(()5T 5 *5p D%%**+2## 2 ,2j D%%++,3$$$ 3 -3r(   