
                             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ZddiZ G d dej*                        Zy)z)Command that loads environment snapshots.    )absolute_import)division)unicode_literals)environments_util)operations_util)base)flags)resource_args)util)logNEXAMPLESz          To load a snapshot into the environment named env-1, run:

          $ {command} env-1           --snapshot-path=gs://my-bucket/path-to-the-specific-snapshot
        c                   6    e Zd ZdZeZed        Zd Zd Z	d Z
y)LoadSnapshotz%Load a snapshot into the environment.c                    t        j                  | d       t        j                  j	                  |        | j                  dt        dd       t        j                  j	                  |        t        j                  j	                  |        t        j                  j	                  |        t        j                  j	                  |        y )Nzwhere to load a snapshotz--snapshot-pathzThe Cloud Storage path to load the snapshot from. It must start with prefix gs:// and one needs to specify a single snapshot that should be loaded.T)typehelprequired)r
   AddEnvironmentResourceArgr   
ASYNC_FLAGAddToParseradd_argumentstrr	   SKIP_PYPI_PACKAGES_INSTALLATION"SKIP_ENVIRONMENT_VARIABLES_SETTINGSKIP_AIRFLOW_OVERRIDES_SETTINGSKIP_COPYING_GCS_DATA)parsers    3lib/surface/composer/environments/snapshots/load.pyArgszLoadSnapshot.Args/   s    ++F4NOOO'
!    
))55f=	,,88@	((44V<	++F3    c           
      b   |j                   j                  j                         }t        j                  ||j
                  |j                  |j                  |j                  |j                  | j                               }|j                  r| j                  ||      S | j                  ||      S )Nrelease_track)CONCEPTSenvironmentParseenvironments_api_utilr   skip_pypi_packages_installation"skip_environment_variables_settingskip_airflow_overrides_settingskip_gcs_data_copyingsnapshot_pathReleaseTrackasync__AsynchronousExecution_SynchronousExecution)selfargsenv_resource	operations       r   RunzLoadSnapshot.Run?   s    ==,,224L%22,,//++""'')+I {{((yAA''i@@r    c                     dj                  |j                        }t        j                  |j	                         dd|       |S )Nzwith operation [{0}]r%   T)kindis_asyncdetails)formatnamer   UpdatedResourceRelativeName)r1   r3   r4   r9   s       r   r/   z#LoadSnapshot._AsynchronousExecutionN   sA    $++INN;G!!#	
 r    c           	      d   	 t        j                  |dj                  |j                         |j                        | j                                y # t        j                  $ rK}t        j                  dj                  |j                         t        j                  |                  d }~ww xY w)Nz(Waiting for [{}] to be updated with [{}]r"   z7Failed to load the snapshot of the environment [{}]: {})
operations_api_utilWaitForOperationr:   r=   r;   r-   command_utilErrorsix	text_type)r1   r3   r4   es       r   r0   z"LoadSnapshot._SynchronousExecutionW   s    	>**

4
;
;'')9>>;))+	-
  >
C
J
J'')3==+;=> >>s   AA B/$AB**B/N)__name__
__module____qualname____doc__DETAILED_HELPdetailed_helpstaticmethodr   r5   r/   r0    r    r   r   r   *   s,    --4 4A
>r    r   )rI   
__future__r   r   r   googlecloudsdk.api_lib.composerr   r'   r   r?   googlecloudsdk.callioper   #googlecloudsdk.command_lib.composerr	   r
   r   rA   googlecloudsdk.corer   rC   rJ   Commandr   rM   r    r   <module>rT      sL    0 &  ' V R ( 5 = D # 
 	7>4<< 7>r    