
                             S r SSKrSSKJr  SSKJr  SSKJr  SSK	Jr  SSK
Jr  SSKJr  SSKJr  SS	KJr  S
 rS rSS jr\R*                  \R,                  " \R.                  R0                  5       " S S\R2                  5      5       5       rg)z2Command to export an HA Controller to a YAML file.    N)base_classes)utils)base)util)log)yaml)filesc                      SSSS.$ )NzExport an HA Controller.z          Exports an High Availability (HA) Controller's configuration to a
          file. This configuration can be imported at a later time.
          z          An HA Controller can be exported by running:

            $ {command} my-ha-controller --destination=<path-to-file>
          )briefDESCRIPTIONEXAMPLES r       ,lib/surface/compute/ha_controllers/export.py_DetailedHelpr      s     %

 r   c                 B    U [         R                  R                  :X  a  gg)z.Returns the API version for the HA Controller.alphaN)r   ReleaseTrackALPHA)release_tracks    r   _GetApiVersionr   1   s    d''--- .r   c                 B    [         R                  " S[        U 5      SUS9$ )z.Returns the schema path for the HA Controller.computeHaControllerfor_help)export_utilGetSchemaPathr   )r   r   s     r   _GetSchemaPathr   7   s&    		"	"]#	
 r   c                   <    \ rS rSrSr\" 5       r\S 5       rS r	Sr
g)ExportA   zExport an HA Controller.

Export an High Availability (HA) Controller, which helps
ensure that a virtual machine (VM) instance remains operational by
automatically managing failover across two zones.
c                     [         R                  " U [        R                  R                  R
                  R                  5       5        [        R                  " U [        [        R                  R                  SS95        g )NTr   )
r   AddHaControllerNameArgToParserr   r   r   namelowerr   AddExportFlagsr   )parsers    r   ArgsExport.ArgsM   sY    	((!!'',,224 t0066FHr   c           	         [         R                  " U R                  5       5      nUR                  nUR                  R
                  R                  5       n[        R                  " X45      n[        R                  " [        R                  " U[        U R                  5       5      S95      n[        R                  " U5      nUR                   (       a  ["        R$                  " UR                   5       n[        R&                  " XgS9  S S S 5        [(        R*                  R-                  SR/                  UR0                  UR                   5      5      $ [        R&                  " U[2        R4                  S9  g ! , (       d  f       Nu= f)N)messageschema_path)streamzExported [{}] to '{}'.)r   ComputeApiHolderr   clientCONCEPTSha_controllerParse	api_utilsGetr   loadr   r!   r   r   FixExportStructuredestinationr	   
FileWriterdumpr   statusPrintformatr%   sysstdout)selfargsholderr0   ha_controller_refr2   	yaml_datar.   s           r   Run
Export.RunU   s   **4+<+<+>?F]]F3399;MM&<M		+,,>$:K:K:M+N I ((3ID,,-		)+ .ZZ
$
+
+  $"2"2  ii	#**- .-s   2E66
Fr   N)__name__
__module____qualname____firstlineno____doc__r   detailed_helpstaticmethodr)   rE   __static_attributes__r   r   r   r!   r!   A   s)      /-H H.r   r!   )F)rK   r>   googlecloudsdk.api_lib.computer   -googlecloudsdk.api_lib.compute.ha_controllersr   r4   googlecloudsdk.callioper   1googlecloudsdk.command_lib.compute.ha_controllers!googlecloudsdk.command_lib.exportr   r   googlecloudsdk.corer   r   googlecloudsdk.core.utilr	   r   r   r   DefaultUniverseOnlyReleaseTracksr   r   ExportCommandr!   r   r   r   <module>rY      s|     9  7 L ( C A # $ *$ D%%++,&.T &. - &.r   