
                             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 e
j$                   G d de
j&                               Zy)z Command to create transfer jobs.    )absolute_import)division)unicode_literals)operations_util)apis)base)storage_url)jobs_apitools_util)jobs_flag_util)logc                   0    e Zd ZdZdddZed        Zd Zy)Createz'Create a Transfer Service transfer job.z      Create a Transfer Service transfer job, allowing you to transfer data to
      Google Cloud Storage on a one-time or recurring basis.
      a        To create a one-time, immediate transfer job to move data from Google
      Cloud Storage bucket "foo" into the "baz" folder in Cloud Storage bucket
      "bar", run:

        $ {command} gs://foo gs://bar/baz/

      To create a transfer job to move data from an Amazon S3 bucket called
      "foo" to a Google Cloud Storage bucket named "bar" that runs every day
      with custom name "my-test-job", run:

        $ {command} s3://foo gs://bar --name=my-test-job --source-creds-file=/examplefolder/creds.txt --schedule-repeats-every=1d

      To create a one-time, immediate transfer job to move data between Google
      Cloud Storage buckets "foo" and "bar" with filters to include objects that
      start with prefixes "baz" and "qux"; and objects modified in the 24 hours
      before the transfer started, run:

        $ {command} gs://foo gs://bar/ --include-prefixes=baz,qux --include-modified-after-relative=1d

      To create a one-time, immediate transfer job to move data from a directory
      with absolute path "/foo/bar/" in the filesystem associated with
      agent pool "my-pool" into Google Cloud Storage bucket "example-bucket",
      run:

        $ {command} posix:///foo/bar/ gs://example-bucket --source-agent-pool=my-pool
      )DESCRIPTIONEXAMPLESc                 N    t        j                  || j                                y )N)release_track)r   setup_parserReleaseTrack)clsparsers     #lib/surface/transfer/jobs/create.pyArgszCreate.ArgsH   s    c6F6F6HI    c                    |j                   j                  t        j                  j                  j
                        }|j                   j                  t        j                  j                  j
                        }|j                  j                  t        j                  j                  j
                        }|s|r|j                  st        d      |r|j                  st        d      |r|r|j                  st        d      t        j                  dd      }t        j                  dd      }|j                  j!                  t#        j$                  ||            }|j&                  rXt(        j*                  j-                  dj/                  |j0                               t3        j4                  |j0                         |S )Nz8Missing agent pool. Please add --source-agent-pool flag.z=Missing agent pool. Please add --destination-agent-pool flag.zOMissing intermediate storage path. Please add --intermediate-storage-path flag.transferv1zCreated job: {})job_name)source
startswithr	   ProviderPrefixHDFSvaluePOSIXdestinationsource_agent_pool
ValueErrordestination_agent_poolintermediate_storage_pathr   GetClientInstanceGetMessagesModuletransferJobsr   r
   generate_transfer_job_messageno_asyncr   statusPrintformatnamer   block_until_done)selfargsis_hdfs_sourceis_posix_sourceis_posix_destinationclientmessagesresults           r   Runz
Create.RunL   su   [[++""''--N kk,,""((..O  ++66""((.. 	/43I3I
DF FD$?$?
IK K0** G H H ##J5F%%j$7H  ''88xHJF }}	jj(//<=&&<Mr   N)__name__
__module____qualname____doc__detailed_helpclassmethodr   r;    r   r   r   r      s2    /



"-J J Jr   r   N)r?   
__future__r   r   r   googlecloudsdk.api_lib.transferr   googlecloudsdk.api_lib.utilr   googlecloudsdk.callioper   "googlecloudsdk.command_lib.storager	   #googlecloudsdk.command_lib.transferr
   r   googlecloudsdk.corer   UniverseCompatibleCommandr   rB   r   r   <module>rL      sP    ' &  ' ; , ( : B > # LT\\ L Lr   