
                            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Z e
j(                  e
j*                  j,                         G d de
j.                               Z e
j(                  e
j*                  j2                         G d de
j.                               Z e
j(                  e
j*                  j6                         G d de
j.                               Zy)z=Command to update a node pool in an Anthos cluster on VMware.    )absolute_import)division)unicode_literals)
operations)vmware_node_pools)base)parser_arguments)	constants)flags)logz
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)UpdateAlpha2Update a node pool in an Anthos cluster on VMware.EXAMPLESparserc                    | j                   j                  t        j                         t	        j
                  | d       t	        j                  |        t        j                  j                  |        t	        j                  |        t	        j                  | d       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)
for_updateNdisplay_info	AddFormatvmware_constantsVMWARE_NODEPOOLS_FORMATr   AddNodePoolResourceArgAddValidationOnlyr   
ASYNC_FLAGAddToParserAddNodePoolDisplayName"AddVmwareNodePoolAutoscalingConfigAddVmwareNodeConfigAddNodePoolVersionr   s    1lib/surface/container/vmware/node_pools/update.pyArgszUpdateAlpha.Args,        !!"2"J"JK	  5	F#OO'	  (	,,VE	f6	V$    c                     |j                   j                  j                         }t        j                         }|j                  |      }|j                  r&|j                  d      st        j                  |_
        |j                  ry|j                  r#t        j                  |d|j                         |S t        j                         }|j!                  |      }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.
    formatNz%Node Pool in Anthos Cluster on VMwareCONCEPTS	node_poolParseapisNodePoolsClientUpdateasync_IsSpecifiedr
   OPERATIONS_FORMATr)   validate_onlyr   UpdatedResourcer   OperationsClientWaitselfargsnode_pool_refclient	operationoperation_clientresponses          r#   RunzUpdateAlpha.Run<        MM++113M!!#Fd#I{{4++H5//dk{{	
@$++ #446!&&y1h	
@$++ or&   N__name__
__module____qualname____doc__	_EXAMPLESdetailed_helpstaticmethodr	   ArgumentInterceptorr$   r@    r&   r#   r   r   &   4    :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                    | j                   j                  t        j                         t	        j
                  | d       t	        j                  |        t        j                  j                  |        t	        j                  |        t	        j                  | d       t	        j                  | d       t	        j                  |        yr   r   r"   s    r#   r$   zUpdateBeta.Argsf   r%   r&   c                     |j                   j                  j                         }t        j                         }|j                  |      }|j                  r&|j                  d      st        j                  |_
        |j                  ry|j                  r#t        j                  |d|j                         |S t        j                         }|j!                  |      }t        j                  |d|j                         |S r(   r*   r8   s          r#   r@   zUpdateBeta.Runv   rA   r&   NrB   rK   r&   r#   rN   rN   `   rL   r&   rN   c                   H    e Zd ZdZdeiZedej                  fd       Z	d Z
y)r0   r   r   r   c                    | j                   j                  t        j                         t	        j
                  | d       t	        j                  |        t        j                  j                  |        t	        j                  |        t	        j                  | d       t	        j                  | d       t	        j                  |        yr   r   r"   s    r#   r$   zUpdate.Args   r%   r&   c                     |j                   j                  j                         }t        j                         }|j                  |      }|j                  r&|j                  d      st        j                  |_
        |j                  ry|j                  r#t        j                  |d|j                         |S t        j                         }|j!                  |      }t        j                  |d|j                         |S r(   r*   r8   s          r#   r@   z
Update.Run   rA   r&   NrB   rK   r&   r#   r0   r0      rL   r&   r0   N)rF   
__future__r   r   r   *googlecloudsdk.api_lib.container.gkeonpremr   r   r.   googlecloudsdk.callioper   r	   .googlecloudsdk.command_lib.container.gkeonpremr
   +googlecloudsdk.command_lib.container.vmwarer   r   googlecloudsdk.corer   rG   ReleaseTracksReleaseTrackALPHAUpdateCommandr   BETArN   GAr0   rK   r&   r#   <module>r`      s    D &  ' A P ( 4 D U = #	 D%%++,6$$$ 6 -6r D%%**+6## 6 ,6r D%%(()6T 6 *6r&   