
    v                     D   S r SSKJr  SSKJr  SSKJ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\R2                  \R4                  " \R6                  R8                  5       " S S\R:                  5      5       5       rg)z2Command to export an HA Controller to a YAML file.    )absolute_import)division)unicode_literalsN)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   4   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"   :   s&    		"	"]#	
 r   c                   <    \ rS rSrSr\" 5       r\S 5       rS r	Sr
g)ExportD   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.ArgsP   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holderr3   ha_controller_refr5   	yaml_datar1   s           r   Run
Export.RunX   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,   rH   __static_attributes__r   r   r   r$   r$   D   s)      /-H H.r   r$   )F)rN   
__future__r   r   r   rA   googlecloudsdk.api_lib.computer   -googlecloudsdk.api_lib.compute.ha_controllersr   r7   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>r]      s     9 &  ' 
 7 L ( C A # $ *$ D%%++,&.T &. - &.r   