
                         b   d Z ddlmZ ddlmZ ddlmZ ddl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dZ e	j*                  e	j,                  j.                  e	j,                  j0                  e	j,                  j2                         G d de	j4                               Zy)zExport backend service command.    )absolute_import)division)unicode_literalsN)base_classes)base)flags)backend_services_utils)util)filesz        Exports a backend service's configuration to a file.
        This configuration can be imported at a later time.
        z        A backend service can be exported by running:

          $ {command} NAME --destination=<path-to-file> --global
        )DESCRIPTIONEXAMPLESc                   L    e Zd ZdZeZed        Zedd       Zed        Z	d Z
y)ExportzExport a backend service.

  Exports a backend service's configuration to a file.
  This configuration can be imported at a later time.
  c                     | j                         t        j                   j                  k(  ry| j                         t        j                   j                  k(  ryy)z3Returns the API version based on the release track.alphabetav1)ReleaseTrackr   ALPHABETA)clss    .lib/surface/compute/backend_services/export.pyGetApiVersionzExport.GetApiVersion9   sG     T..444				t0055	5    c                 P    t        j                  d| j                         d|      S )z!Returns the resource schema path.computeBackendServicefor_help)export_utilGetSchemaPathr   )r   r   s     r   r!   zExport.GetSchemaPathB   s,     $$3$$&(88M Mr   c                     t         j                  j                  |d       t        j                  || j                  d             y )Nexport)operation_typeTr   )r   #GLOBAL_REGIONAL_BACKEND_SERVICE_ARGAddArgumentr    AddExportFlagsr!   )r   parsers     r   ArgszExport.ArgsH   s>    	--99x : )vs'8'8$'8'GHr   c                 j   t        j                  | j                               }|j                  }t	        j
                          t        j                  j                  ||j                  t        j                  |            }t	        j                  ||      }|j                  rOt        j                  |j                        5 }t!        j"                  ||| j%                                d d d        y t!        j"                  |t&        j(                  | j%                                y # 1 sw Y   y xY w)N)scope_lister)messagestreamschema_path)r   ComputeApiHolderr   clientr	   8IsDefaultRegionalBackendServicePropertyNoneWarnOtherwiser   r%   ResolveAsResource	resourcescompute_flagsGetDefaultScopeListerSendGetRequestdestinationr   
FileWriterr    r   r!   sysstdout)selfargsholderr0   backend_service_refbackend_servicer-   s          r   Runz
Export.RunN   s    **4+<+<+>?F]]F==@ 	11CC&<<VD 	D 	F  -;;#%O D,,-?"('+'9'9';	= .-
  #

%)%7%7%9; .-s   'D))D2N)F)__name__
__module____qualname____doc__DETAILED_HELPdetailed_helpclassmethodr   r!   r)   r@    r   r   r   r   .   sQ      -  M M
 I I
;r   r   )rD   
__future__r   r   r   r9   googlecloudsdk.api_lib.computer   googlecloudsdk.callioper   "googlecloudsdk.command_lib.computer   r4   3googlecloudsdk.command_lib.compute.backend_servicesr	   !googlecloudsdk.command_lib.exportr
   r    googlecloudsdk.core.utilr   rE   ReleaseTracksr   GAr   r   Commandr   rH   r   r   <module>rS      s    & &  ' 
 7 ( E V E A *
	
	 D%%(($*;*;*@*@%%++-5;T\\ 5;-5;r   