
    g                     N   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
j8                  e
j:                  j<                        e
j>                   G d de
j@                                      Z!y)zBCommand to import and update an Anthos clusters on bare metal API.    )absolute_import)division)unicode_literals)bare_metal_clusters)
operations)base)parser_arguments)cluster_flags)	constants)util)log)
console_io)gkeonprem_v1_messageszS
A cluster can be imported by running:

  $ {command} NAME --source=<path-to-file>
c                   Z    e Zd ZdZdeiZedd       Zedej                  fd       Z
d Zy)	UpdateFromFilezGUpdate an Anthos on bare metal user cluster using a configuration file.EXAMPLESc                 4    t        j                  ddd|       S )N	gkeonpremv1BareMetalClusterfor_help)export_utilGetSchemaPathr   s    =lib/surface/container/bare_metal/clusters/update_from_file.pyr   zUpdateFromFile.GetSchemaPath/   s    $$T-     parserc                 >   | j                   j                  t        j                         t	        j
                  | d       t        j                  | t        j                  d             t        j                  j                  |        t	        j                  |        y )Nzto import and updateTr   )display_info	AddFormatbare_metal_constantsBARE_METAL_CLUSTERS_FORMATr
   AddClusterResourceArgr   AddImportFlagsr   r   r   
ASYNC_FLAGAddToParserAddValidationOnly)r   s    r   ArgszUpdateFromFile.Args5   ss    
!!779''0FG,,d,; 	OO'##F+r   c                    |j                   j                  j                         }t        j                         }t        j                  |j                  xs dd      }t        j                  t        j                  |t        j                               }|j                  ||      }|j                  r&|j                  d      st         j"                  |_        |j&                  ry |j                  r#t)        j*                  |d|j                         |S t-        j.                         }|j1                  |      }t)        j*                  |d|j                         |S )N-F)binary)message_typestreamschema_pathformatzAnthos Cluster on bare metal)CONCEPTSclusterParseapisClustersClientr   ReadFromFileOrStdinsourcer   Importmessagesr   r   r   async_IsSpecifiedr   OPERATIONS_FORMATr/   validate_onlyr   UpdatedResourcer   OperationsClientWait)	selfargscluster_refcluster_clientdatabare_metal_cluster	operationoperation_clientoperation_responses	            r   RunzUpdateFromFile.Run@   s   --''--/K((*N))$++*<UKD$++.."002 --d4FGI{{4++H5//dk{{	
5t{{ #446+00;	
5t{{  r   N)F)__name__
__module____qualname____doc__	_EXAMPLESdetailed_helpstaticmethodr   r	   ArgumentInterceptorr(   rI    r   r   r   r   (   sK     Py)- 
 ,#77 , , r   r   N)"rM   
__future__r   r   r   *googlecloudsdk.api_lib.container.gkeonpremr   r3   r   googlecloudsdk.callioper   r	   /googlecloudsdk.command_lib.container.bare_metalr
   r   r!   .googlecloudsdk.command_lib.container.gkeonprem!googlecloudsdk.command_lib.exportr   r   googlecloudsdk.corer   googlecloudsdk.core.consoler   2googlecloudsdk.generated_clients.apis.gkeonprem.v1r   r8   rN   ReleaseTracksReleaseTrackALPHAHiddenCommandr   rR   r   r   <module>ra      s    I &  ' R A ( 4 I ] D A # 2 `	 D%%++,5 T\\ 5   -5 r   