
    -                         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
 ej                   G d	 d
ej                               Zy)DMigrate data from a source database to Cloud Spanner given a schema.    )absolute_import)division)unicode_literalsN)base)flags)migration_backendc                   N    e Zd ZdZd ej
                  d      iZed        Zd Z	y)Datar   EXAMPLESz        To copy data to Cloud Spanner given a session file:

          $ {command} --session=./session.json --source=postgresql < ~/cart.pg_dump --target-profile='instance=spanner-instance'
      c                 L   t        j                         j                  |        t        j                         j                  |        t        j                         j                  |        t        j
                         j                  |        t        j                         j                  |        t        j                         j                  |        t        j                         j                  |        t        j                         j                  |        t        j                         j                  |        t        j                         j                  |        t        j                         j                  |        t        j                         j                  |        y)z$Register the flags for this command.N)r   GetSpannerMigrationSourceFlagAddToParserGetSpannerMigrationSessionFlagGetSpannerMigrationPrefixFlag&GetSpannerMigrationSkipForeignKeysFlag$GetSpannerMigrationSourceProfileFlagGetSpannerMigrationTargetFlag$GetSpannerMigrationTargetProfileFlag!GetSpannerMigrationWriteLimitFlagGetSpannerMigrationDryRunFlagGetSpannerMigrationLogLevelFlagGetSpannerMigrationProjectFlag'GetSpannerMigrationDataflowTemplateFlag)parsers    #lib/surface/spanner/migrate/data.pyArgsz	Data.Args(   s    
'')55f=	((*66v>	'')55f=	002>>vF	..0<<VD	'')55f=	..0<<VD	++-99&A	'')55f=	))+77?	((*66v>	113??G    c                    t        j                         }t        j                  ddi      } |d|j                  |j                  |j
                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  |      }|j                  | _        | j!                  |      S )zRun the data command.GCLOUD_HB_PLUGINtrue)
extra_varsdata)commandsourcesessionprefixskip_foreign_keyssource_profiletargettarget_profilewrite_limitdry_run	log_levelprojectdataflow_templateenv)r	   SpannerMigrationWrapperGetEnvArgsForCommandr%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   	exit_code _DefaultOperationResponseHandler)selfargscommand_executorenv_varsresponses        r   RunzData.Run8   s    (@@B 55&/1H{{{{00**{{**$$..00H  ''DN00::r   N)
__name__
__module____qualname____doc__textwrapdedentdetailed_helpstaticmethodr   r;    r   r   r   r      s?    L 
(// 
 - H H;r   r   )r?   
__future__r   r   r   r@   googlecloudsdk.callioper   "googlecloudsdk.command_lib.spannerr   r	   DefaultUniverseOnlyBinaryBackedCommandr   rD   r   r   <module>rJ      sG    K &  '  ( 4 @ 2;4## 2; 2;r   