
                          (   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)z2Command to update an Anthos cluster on bare metal.    )absolute_import)division)unicode_literals)Optional)bare_metal_clusters)
operations)base)parser_arguments)cluster_flags)	constants)flags)log)gkeonprem_v1_messagesz}
To update a cluster named ``my-cluster'' managed in location ``us-west1'', run:

$ {command} my-cluster --location=us-west1
c                   L    e Zd ZdZdeiZedej                  ddfd       Z	d Z
y)Update'Update an Anthos cluster on bare metal.EXAMPLESparserreturnNc                    | j                   j                  t        j                         t	        j
                  | dd       t        j                  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"                  |        t	        j$                  |        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)verb
positional)	is_updateNdisplay_info	AddFormatbare_metal_constantsBARE_METAL_CLUSTERS_FORMATr   AddClusterResourceArgr	   
ASYNC_FLAGAddToParserAddValidationOnlyAddAllowMissingUpdateClusterAddLoadBalancerConfigAddControlPlaneConfig
AddVersionAddSecurityConfigAddMaintenanceConfigAddNetworkConfigAddDescriptionAddClusterOperationsConfigAddNodeAccessConfigAddUpdateAnnotationscommon_flagsAddBinauthzEvaluationModer   s    3lib/surface/container/bare_metal/clusters/update.pyArgszUpdate.Args/   s	    !!77 
[TJOO'	F#	&&v.	$7	$7	Vt,	Fd3	v6	6T2	 	$$V,	f%	v&**62    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 af  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 operation or any
      possible error.
    formatzAnthos cluster on bare metalCONCEPTSclusterParseapisClustersClientr   async_IsSpecifiedr   OPERATIONS_FORMATr7   r   OperationsClientWaitvalidate_onlyr   UpdatedResourceselfargscluster_refcluster_client	operationoperation_clientoperation_responses          r2   Runz
Update.RunI   s     --''--/K((*N%%d+I{{4++H5//dk{{!224)..y9	
5t{{ r4   __name__
__module____qualname____doc__	_EXAMPLESdetailed_helpstaticmethodr
   ArgumentInterceptorr3   rM    r4   r2   r   r   )   s;    /y)-3#77 3D 3 32r4   r   c                   L    e Zd ZdZdeiZedej                  ddfd       Z	d Z
y)
UpdateBetar   r   r   r   Nc                    | j                   j                  t        j                         t	        j
                  | dd       t        j                  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"                  |        t	        j$                  |        t	        j&                  |        t	        j(                  |        t+        j,                  |        yr   r   r1   s    r2   r3   zUpdateBeta.Argso   s    !!779	[TJOO'	F#	&&v.	$7	$7	Vt,	Fd3	v6	6T2	 	$$V,	f%	v&**62r4   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 r6   r8   rE   s          r2   rM   zUpdateBeta.Run        --''--/K((*N%%d+I{{4++H5//dk{{!224)..y9	+'E++'r4   rN   rW   r4   r2   rY   rY   i   s;    /y)-3#77 3D 3 30r4   rY   c                   l    e Zd ZdZdeiZedej                  ddfd       Z	de
ej                     fdZy)UpdateAlphar   r   r   r   Nc                 (   | j                   j                  t        j                         t	        j
                  | dd       t        j                  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"                  |        t	        j$                  |        t	        j&                  |        t	        j(                  |        t+        j,                  |        t	        j.                  |        yr   )r   r   r   r   r   r    r	   r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   AddUpgradePolicyr1   s    r2   r3   zUpdateAlpha.Args   s    !!779	[TJOO'	F#	&&v.	$7	$7	Vt,	Fd3	v6	6T2	 	$$V,	f%	v&**62	6"r4   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 r6   r8   rE   s          r2   rM   zUpdateAlpha.Run   r\   r4   )rO   rP   rQ   rR   rS   rT   rU   r
   rV   r3   r   messages	OperationrM   rW   r4   r2   r^   r^      sM    /y)-##77 #D # #2("4"45 r4   r^   N)$rR   
__future__r   r   r   typingr   *googlecloudsdk.api_lib.container.gkeonpremr   r<   r   googlecloudsdk.callioper	   r
   /googlecloudsdk.command_lib.container.bare_metalr   r   r   r   .googlecloudsdk.command_lib.container.gkeonpremr/   googlecloudsdk.corer   2googlecloudsdk.generated_clients.apis.gkeonprem.v1r   rb   rS   ReleaseTracksReleaseTrackGAUpdateCommandr   BETArY   ALPHAr^   rW   r4   r2   <module>rr      s    9 &  '  R A ( 4 R ] D P # `	 D%%(()<T < *<~ D%%**+:## : ,:z D%%++,;$$$ ; -;r4   