
                             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 an Anthos cluster on VMware.    )absolute_import)division)unicode_literals)
operations)vmware_clusters)base)parser_arguments)	constants)flags)logz}
To update a cluster named ``my-cluster'' managed in location ``us-west1'', run:

$ {command} 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)UpdateAlpha#Update an Anthos cluster on VMware.EXAMPLESparserc                 X   | j                   j                  t        j                         t	        j
                  | dd       t        j                  j                  |        t	        j                  |        t	        j                  |        t	        j                  |        t	        j                  |        t	        j                  | d       t	        j                  | d       t	        j                  | d       t	        j                   | d       t	        j"                  | d       t	        j$                  | d       t	        j&                  | d       t	        j(                  | d       t	        j*                  |        t	        j,                  |        t	        j.                  |        yz|Gathers command line 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_CLUSTERS_FORMATr   AddClusterResourceArgr   
ASYNC_FLAGAddToParserAddValidationOnlyAddAllowMissingUpdateClusterAddDescription
AddVersionAddVmwareControlPlaneNodeConfigAddVmwareAAGConfigAddVmwareStorageConfigAddVmwareNetworkConfigAddVmwareLoadBalancerConfigAddVmwareDataplaneV2ConfigAddEnableVmwareTrackingAddVmwareAutoRepairConfigAddAuthorizationAddUpdateAnnotationsAddUpgradePolicyr   s    /lib/surface/container/vmware/clusters/update.pyArgszUpdateAlpha.Args+   %    !!"2"I"IJ	T:OO'	F#	&&v.	 	V	))&TB	V5	  D9	  D9	%%f>	$$V=	!!&T:	##Ft<	6"	v&	6"    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Anthos Cluster on VMwareCONCEPTSclusterParseapisClustersClientUpdateasync_IsSpecifiedr
   OPERATIONS_FORMATr3   validate_onlyr   UpdatedResourcer   OperationsClientWaitselfargscluster_refcluster_client	operationoperation_clientoperation_responses          r-   RunzUpdateAlpha.RunE        --''--/K((*N%%d+I{{4++H5//dk{{	+'A4;;O#446+00;	+'A4;;Or0   N__name__
__module____qualname____doc__	_EXAMPLESdetailed_helpstaticmethodr	   ArgumentInterceptorr.   rJ    r0   r-   r   r   %   4    +y)-##77 # #2 r0   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                 X   | j                   j                  t        j                         t	        j
                  | dd       t        j                  j                  |        t	        j                  |        t	        j                  |        t	        j                  |        t	        j                  |        t	        j                  | d       t	        j                  | d       t	        j                  | d       t	        j                   | d       t	        j"                  | d       t	        j$                  | d       t	        j&                  | d       t	        j(                  | d       t	        j*                  |        t	        j,                  |        t	        j.                  |        yr   r   r,   s    r-   r.   zUpdateBeta.Argsl   r/   r0   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 r2   r4   rB   s          r-   rJ   zUpdateBeta.Run   rK   r0   NrL   rU   r0   r-   rX   rX   f   rV   r0   rX   c                   H    e Zd ZdZdeiZedej                  fd       Z	d Z
y)r:   r   r   r   c                 X   | j                   j                  t        j                         t	        j
                  | dd       t        j                  j                  |        t	        j                  |        t	        j                  |        t	        j                  |        t	        j                  |        t	        j                  | d       t	        j                  | d       t	        j                  | d       t	        j                   | d       t	        j"                  | d       t	        j$                  | d       t	        j&                  | d       t	        j(                  | d       t	        j*                  |        t	        j,                  |        t	        j.                  |        yr   r   r,   s    r-   r.   zUpdate.Args   r/   r0   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 r2   r4   rB   s          r-   rJ   z
Update.Run   rK   r0   NrL   rU   r0   r-   r:   r:      rV   r0   r:   N)rP   
__future__r   r   r   *googlecloudsdk.api_lib.container.gkeonpremr   r   r8   googlecloudsdk.callioper   r	   .googlecloudsdk.command_lib.container.gkeonpremr
   +googlecloudsdk.command_lib.container.vmwarer   r   googlecloudsdk.corer   rQ   ReleaseTracksReleaseTrackALPHAUpdateCommandr   BETArX   GAr:   rU   r0   r-   <module>rj      s    5 &  ' A N ( 4 D U = #	 D%%++,= $$$ =  -= @ D%%**+= ## =  ,= @ D%%(()= T =  *= r0   