
    K                     
   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 ej                   ej                   ej"                  j$                         G d dej&                                      Zy)7Import data from various source files to Cloud Spanner.    )absolute_import)division)unicode_literalsN)base)flags)migration_backend)	arg_utils)storec                   P    e Zd ZdZd ej
                  d      iZed        Zd Z	y)Importr   EXAMPLESa          To import data from a source file to Cloud Spanner:

          $ {command} --instance=instanceA --database=databaseA
          --table-name=tableA --source-uri=gs://bucket/data.csv --source-format=csv
          --schema-uri=gs://bucket/schema.json

          $ {command} --instance=instanceA --database=databaseA
          --source-uri=gs://bucket/dump.sql --source-format=mysqldump
      )textc                    t        j                  d      j                  |        t        j                  dd      j                  |        t        j                  d      j                  |        t        j
                  d      j                  |        t        j                  d      j                  |        t        j                  d      j                  |        t        j                  d      j                  |        t        j                  d      j                  |        t        j                  d      j                  |        y)z$Register the flags for this command.FTz Dialect for the spanner databaseN)r   InstanceAddToParserDatabase	TableName	SourceUriSourceFormat	SchemaUriCsvLineDelimiterCsvFieldDelimiterDatabaseDialect)parsers    'lib/surface/spanner/databases/import.pyArgszImport.Args1   s     
NN5%%f-	NN5$++F3	OOE&&v.	OOD%%f-	t((0	OOE&&v.	5!--f5	E"..v6	<=II    c                    t        j                  d      }t        j                         }t        j                  dd|d      }t        j                  |dd      } |d	|j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  ||j                  |
      }|j                   | _        | j#                  |      S )zRun the import command.1h)min_expiry_durationtrue)GCLOUD_HB_PLUGINGCLOUD_AUTH_PLUGINGCLOUD_AUTH_ACCESS_TOKEN)
extra_varsz	--projectT)use_defaultsimport)commandinstancedatabase
table_name
source_urisource_format
schema_uricsv_line_delimitercsv_field_delimiterprojectdatabase_dialectenv)r   GetFreshAccessTokenIfEnabledr	   SpannerMigrationWrapperGetEnvArgsForCommandr
   GetFromNamespacer*   r+   r,   r-   r.   r/   r0   r1   r3   	exit_code _DefaultOperationResponseHandler)selfargs
auth_tokencommand_executorenv_varsr2   responses          r   Runz
Import.Run@   s    33MJ(@@B 55 &"((2
H (({NG????((??22 44..H ''DN00::r   N)
__name__
__module____qualname____doc__textwrapdedentdetailed_helpstaticmethodr   rA    r   r   r   r      s@     @ 
(// 	 
 	-  ;r   r   )rE   
__future__r   r   r   rF   googlecloudsdk.callioper   "googlecloudsdk.command_lib.spannerr   r	   $googlecloudsdk.command_lib.util.apisr
   googlecloudsdk.core.credentialsr   DefaultUniverseOnlyReleaseTracksReleaseTrackALPHABinaryBackedCommandr   rJ   r   r   <module>rU      sm    > &  '  ( 4 @ : 1 D%%++,;;T%% ;; - ;;r   