
    -                     n   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  SSKJr  S\R&                  " S5      0r\R*                  \R,                  " \R.                  R0                  5       " S S\R2                  5      5       5       r\R*                  \R,                  " \R.                  R6                  5       " S S\5      5       5       r\R*                  \R,                  " \R.                  R:                  5       " S S\5      5       5       rg)z$Command for spanner operations list.    )absolute_import)division)unicode_literalsN)backup_operations)database_operations)instance_config_operations)instance_operations)instance_partition_operations)ssd_cache_operations)base)
exceptions)flagsEXAMPLESa          To list Cloud Spanner instance operations for an instance, run:

          $ {command} --instance=my-instance-id --type=INSTANCE

        To list Cloud Spanner backup operations for an instance, run:

          $ {command} --instance=my-instance-id --type=BACKUP

        To list Cloud Spanner database operations for an instance, run:

          $ {command} --instance=my-instance-id --type=DATABASE

        To list Cloud Spanner database operations for a database, run:

          $ {command} --instance=my-instance-id --database=my-database-id --type=DATABASE

        To list Cloud Spanner backup operations for a database, run:

          $ {command} --instance=my-instance-id --database=my-database-id --type=BACKUP

        To list Cloud Spanner backup operations for a backup, run:

          $ {command} --instance=my-instance-id --backup=my-backup-id --type=BACKUP

        To list instance partition operations for an instance partition, run:

          $ {command} --instance=my-instance-id --instance-partition=my-partition-id --type=INSTANCE_PARTITION

        To list instance partition operations for all instance partitions belonging to this instance, run:

          $ {command} --instance=my-instance-id --type=INSTANCE_PARTITION
        c                   2    \ rS rSrSr\r\S 5       rS r	Sr
g)ListF   "List the Cloud Spanner operations.c                 0    [         R                  " U 5        g`  Args is called by calliope to gather arguments for this command.

Please add arguments in alphabetical order except for no- or a clear-
pair for that argument which can follow the argument itself.
Args:
  parser: An argparse parser that you can use to add arguments that go on
    the command line after this command. Positional arguments are allowed.
N)r   AddCommonListArgs)parsers    &lib/surface/spanner/operations/list.pyArgs	List.ArgsM   s     
F#    c                 X	   UR                   (       aA  [        R                  " UR                  5      n[        R                  " UR                   U5      $ UR                  S:H  =(       dQ    UR                  S:H  =(       d;    UR                  S:H  =(       d%    UR                  S:H  =(       d    UR                  S:H  nUR
                  (       d  UR                  S:X  a3  UR                  5       R                  R                  R                  S5        UR                  S:X  a4  UR                  5       R                  R                  R                  S5        O:U(       a3  UR                  5       R                  R                  R                  S	5        [        R                  " U5        UR                  S
5      (       a  U(       a  [        R                  " SS5      eUR                  S:X  a  UR                  S5      (       a  [        R                  " SS5      eUR                  S
5      (       a  [        R                  " SS5      eUR                  S5      (       a  [        R                  " SS5      eUR                  S:X  a  UR                  (       aL  [         R"                  " UR$                  UR                  5      n[         R                  " UR$                  U5      $ UR
                  (       a+  [         R&                  " UR$                  UR
                  5      $ [         R                  " UR$                  5      $ U(       aL  [(        R*                  " UR                  5      n[(        R,                  " UR$                  UR                  U5      $ UR
                  (       a+  [         R&                  " UR$                  UR
                  5      $ UR                  (       a+  [(        R                  " UR$                  UR                  5      $ UR                  S:X  a{  UR/                  5       R                  S5        UR0                  (       a+  [2        R&                  " UR$                  UR0                  5      $ [2        R                  " UR$                  5      $ [4        R                  " UR$                  5      $ )This is what gets called when the user runs this command.

Args:
  args: an argparse namespace. All the arguments that were provided to this
    command invocation.

Returns:
  Some value that we want to have printed later.
DATABASE_RESTOREDATABASEDATABASE_CREATEDATABASE_UPDATE_DDLDATABASE_CHANGE_QUORUMBACKUPa  
            table(
              name.basename():label=OPERATION_ID,
              done():label=DONE,
              metadata.'@type'.split('.').slice(-1:).join(),
              metadata.name.split('/').slice(-1:).join():label=BACKUP,
              metadata.database.split('/').slice(-1).join():label=SOURCE_DATABASE,
              metadata.progress.startTime:label=START_TIME,
              metadata.progress.endTime:label=END_TIME
            )
          a  
            table(
              name.basename():label=OPERATION_ID,
              done():label=DONE,
              metadata.'@type'.split('.').slice(-1:).join(),
              metadata.name.split('/').slice(-1:).join():label=RESTORED_DATABASE,
              metadata.backupInfo.backup.split('/').slice(-1).join():label=SOURCE_BACKUP,
              metadata.progress.startTime:label=START_TIME,
              endtime():label=END_TIME
            )
          a5  
            table(
              name.basename():label=OPERATION_ID,
              metadata.statements.join(sep="
"),
              done():label=DONE,
              metadata.'@type'.split('.').slice(-1:).join(),
              database().split('/').slice(-1:).join():label=DATABASE_ID
            )
          backupz--backup or --typezSThe backup flag cannot be used with the type flag set to a database operation type.INSTANCEdatabasez--database or --typez<The `--database` flag cannot be used with `--type=INSTANCE`.z:The `--backup` flag cannot be used with `--type=INSTANCE`.instance_partitionz--instance-partition or --typezFThe `--instance-partition` flag cannot be used with `--type=INSTANCE`.INSTANCE_PARTITIONa  
            table(
              name.basename():label=OPERATION_ID,
              done():label=DONE,
              metadata.'@type'.split('.').slice(-1:).join(),
              metadata.instancePartition.name.split('/').slice(-1:).join():label=INSTANCE_PARTITION_ID,
              metadata.startTime:label=START_TIME,
              metadata.endTime:label=END_TIME
            )
          )instance_configr   &BuildInstanceConfigOperationTypeFiltertyper   r%   
_GetParseraidisplay_info	AddFormatr   #CheckExclusiveLROFlagsUnderInstanceIsSpecifiedc_exceptionsInvalidArgumentExceptionr'   r   BuildDatabaseFilterinstanceListGenericr    BuildDatabaseOperationTypeFilterListDatabaseOperationsGetDisplayInfor(   r
   r	   )selfargstype_filteris_database_type	db_filters        r   RunList.RunY   s    
$
K
Kii  (,,T-A-A;OO 			'' 	199
"	199))	1 99--	1 9900  {{dii8+ oo''11 
3 
 yy&& oo''11 
3 
 
 oo''11 3  
--d3 	""'711
%& &
 yyJ			*	%	%33"JL 	L 
		(	#	#33 HJ 	J 
		.	/	/33,"
 	
 yyH	%99MM4==*	 %%dmmY??	 ,,T]]DKKHH##DMM22'HH
))k 778<8CE E {{**4==$++FF}} %%dmmT]]CCyy(( %% 	' 	 
	 	 ,88MM422
 	
 -11$--@@##DMM22r    N)__name__
__module____qualname____firstlineno____doc__DETAILED_HELPdetailed_helpstaticmethodr   r@   __static_attributes__rB   r   r   r   r   F   s$     +-	$ 	$G3r   r   c                   j   ^  \ rS rSrSrS\S   \R                  " S5      -   0r\	U 4S j5       r
SrU =r$ )BetaList   r   r   z        c                 4   > [         [        [        ]  U 5        gr   )superrM   r   r   	__class__s    r   r   BetaList.Args   s     
(H"6*r   rB   )rC   rD   rE   rF   rG   rH   textwrapdedentrI   rJ   r   rK   __classcell__rR   s   @r   rM   rM      sD     + -
+hoo ? / -
 	+ 	+r   rM   c                   B   ^  \ rS rSrSr\U 4S j5       rU 4S jrSrU =r	$ )	AlphaList   r   c                    > [         [        [        ]  U 5        [        R                  " SSSSS9R                  U 5        g)r   FTz+For SSD Cache operations, the SSD Cache ID.)
positionalrequiredhiddentextN)rP   rY   r   r   SsdCacheAddToParserrQ   s    r   r   AlphaList.Args   s8     
)Y$V,	NN:	
 k&r   c                   > UR                   (       a  UR                  (       a  [        R                  " SS5      eUR                  (       a  [        R                  " SS5      eUR                  5       R                  R                  R                  S5        [        R                  " UR                   UR                  5      $ [        TU ]5  U5      $ )r   z--instance or --ssd-cachez8The `--instance` flag cannot be used with `--ssd-cache`.z--type or --ssd-cachez4The `--type` flag cannot be used with `--ssd-cache`.a  
          table(
            name.basename():label=OPERATION_ID,
            done():label=DONE,
            metadata.'@type'.split('.').slice(-1:).join(),
            metadata.startTime:label=START_TIME,
            metadata.endTime:label=END_TIME
          )
        )	ssd_cacher6   r3   r4   r,   r-   r.   r/   r0   r   r   r*   rP   r@   )r;   r<   rR   s     r   r@   AlphaList.Run  s     ~~	33'F
 	
 
33#B
 	
 oo''11 3  "&&t~~t7K7KLL7;tr   rB   )
rC   rD   rE   rF   rG   rJ   r   r@   rK   rV   rW   s   @r   rY   rY      s$     + "! !r   rY   )rG   
__future__r   r   r   rT   googlecloudsdk.api_lib.spannerr   r   r   r	   r
   r   googlecloudsdk.callioper   r   r3   "googlecloudsdk.command_lib.spannerr   rU   rH   DefaultUniverseOnlyReleaseTracksReleaseTrackGAListCommandr   BETArM   ALPHArY   rB   r   r   <module>rq      s   + &  '  < > E > H ? ( > 4   !  "J D%%(()X34 X3 * X3v D%%**++t + , +* D%%++,6 6 - 6r   