
    |                         S r SSKJr  SSKJr  SSKJr  SSKrSSKJr  SSKJ	r	  SSK
Jr  SS	K
Jr  SS
KJr  SSKJr  SSKJr  SSKJr  \R(                   " S S\R*                  5      5       rg)z$Command to list transfer operations.    )absolute_import)division)unicode_literalsN)
list_pager)apis)arg_parsers)base)	list_util)	name_util)
properties)resource_printerc                   >    \ rS rSrSrSSS.r\S 5       rS rS r	S	r
g
)List"   z*List Transfer Service transfer operations.zh      List Transfer Service transfer operations to view their progress details
      at a glance.
      a        To list all transfer operations in your current project, run:

        $ {command}

      To list all failed operations in your project, run:

        $ {command} --operation-statuses=failed

      To list operations 'foo' and 'bar', run:

        $ {command} --operation-names=foo,bar

      To list all operations in your current project as JSON, which provides
      all fields and formatting available in the API, run:

        $ {command} --format=json
      )DESCRIPTIONEXAMPLESc                 R   U R                  S5        [        R                  " U 5        U R                  S[        R
                  " 5       SSS9  U R                  S[        R
                  " 5       SSS9  U R                  S	[        R
                  " 5       S
SS9  U R                  SSSS9  g )NFz--job-names	JOB_NAMESzThe names of the jobs whose operations you want to list. Separate multiple job names with commas (e.g., --job-names=foo,bar). If not specified, operations for all jobs are listed.)typemetavarhelpz--operation-namesOPERATION_NAMESzThe names of operations you want to list. Separate multiple operation names with commas (e.g., --operation-names-name=foo,bar). If not specified, all operations are listed.z--operation-statusesOPERATION_STATUSESzList only transfer operations with the statuses you specify. Options include 'in_progress', 'paused', 'success','failed', 'aborted'. Separate multiple statuses with commas (e.g., --operation-statuses=failed,aborted).z--expand-table
store_truezInclude additional table columns (operation name, start time, status, data copied, status, has errors, job name) in command output. Tip: increase the size of your terminal before running the command.)actionr   )SetSortArgsr
   add_common_list_flagsadd_argumentr   ArgList)parsers    'lib/surface/transfer/operations/list.pyArgs	List.ArgsA   s    
u##F+
  ":	  ;   "!8	  9   "$1	  2       c                     UR                   (       a  SnOSn[        R                  " X!R                  =(       d    U5        g)zAPI response display logic.a  table(
          name.slice(19:).join(sep=''),
          metadata.startTime.date('%Y-%m-%d'):label='START DATE',
          metadata.counters.bytesCopiedToSink.size():label='DATA COPIED',
          metadata.status,
          metadata.errorBreakdowns.yesno(yes='Yes'):label='HAS ERRORS',
          metadata.transferJobName.slice(13:).join(
             sep=''):label='TRANSFER JOB NAME')
      ztable(
          name.slice(19:).join(sep=''),
          metadata.startTime.date('%Y-%m-%d'):label='START DATE',
          metadata.status)
      N)expand_tabler   Printformat)selfargs	resourcesformat_strings       r!   DisplayList.Displayc   s2    
m
m
 9kk&B]Cr$   c           	         [         R                  " SS5      n[         R                  " SS5      nUR                  (       a!  [        R
                  " UR                  5      nOSnUR                  (       a!  [        R                  " UR                  5      nOSnUR                  =(       d    SnUUU[        R                  R                  R                  R                  5       S.n[        R                  " U5      n[         R"                  " UR$                  UR'                  USS9UR(                  SSUR*                  S	9n	[,        R.                  " U	U R0                  U5        g)
zCommand execution logic.transferv1N)jobNamesoperationNamestransferStatuses	projectIdtransferOperations)filternamepageSize
operations)
batch_sizebatch_size_attributefieldlimit)r   GetClientInstanceGetMessagesModule	job_namesr   add_job_prefixoperation_namesadd_operation_prefixoperation_statusesr   VALUEScoreprojectGetjsondumpsr   YieldFromListr6   ,StoragetransferTransferOperationsListRequest	page_sizer>   r
   !print_transfer_resources_iteratorr-   )
r)   r*   clientmessagesformatted_job_namesformatted_operation_namesrE   filter_dictionaryfilter_stringresources_iterators
             r!   RunList.Runz   s*   ##J5F%%j$7H~~%44T^^D "+"@"@


#  #'008D (3.&&++33779	 JJ01M#11!!== '; 	> 	=>>'jj //0B04dDr$    N)__name__
__module____qualname____firstlineno____doc__detailed_helpstaticmethodr"   r-   rW   __static_attributes__rY   r$   r!   r   r   "   s7    2


-6  BD."Dr$   r   )r^   
__future__r   r   r   rJ   apitools.base.pyr   googlecloudsdk.api_lib.utilr   googlecloudsdk.callioper   r	   #googlecloudsdk.command_lib.transferr
   r   googlecloudsdk.corer   googlecloudsdk.core.resourcer   UniverseCompatibleCommandr   rY   r$   r!   <module>rk      sY    + &  '  ' , / ( 9 9 * 9 yD4<< yD yDr$   