
                             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 ddlmZ ddlmZ  ej$                  d      ZdZdZd Zd Zd Zd Zd Zy)z1Spanner instance partition operations API helper.    )absolute_import)division)unicode_literalsN)
list_pager)timestamp_pb2)response_util)apis)waiter)
properties)	resources   )secondsspannerv1c                    t        j                  t        t              }t	        j
                  |j                  |j                        }t        j                  j                  | j                  d      }t	        j                  |||      S )z!Wait for the specified operation.8spanner.projects.instances.instancePartitions.operations)
collection)r	   GetClientInstance	_API_NAME_API_VERSIONr
   CloudOperationPoller%projects_instances_instancePartitions0projects_instances_instancePartitions_operationsr   REGISTRYParseRelativeNamenameWaitFor)	operationmessageclientpollerrefs        Clib/googlecloudsdk/api_lib/spanner/instance_partition_operations.pyAwaitr$   &   sr    !!)\:&&&22==& 	,,nnK 	- 	# 
W	--    c                    t        j                  t        t              }t        j                  t        t              }t
        j                  j                  |t        j                  j                  j                  j                  | dd      }|j                  |j                         dz         }t        j                   |j"                  |dd      S )	z>List operations on an instance partition with generic LRO API.)
projectsIdinstancesIdz-spanner.projects.instances.instancePartitionsparamsr   z/operationsr   
operationspageSize)fieldbatch_size_attribute)r	   r   r   r   GetMessagesModuler   r   Parser   VALUEScoreproject	GetOrFail?SpannerProjectsInstancesInstancePartitionsOperationsListRequestRelativeNamer   YieldFromListr   )instanceinstance_partitionr    msgsr"   reqs         r#   ListGenericr=   4   s    !!)\:&				<	8$  "))..66@@! A 	! 	# 	LL- 	M 	# 
	!	!==	%	
 r%   c                    t        j                  t        t              }t        j                  t        t              }t        j                         }|j                  t        j                  j                  t        j                  j                        t        z          t        j                  j                  | dt         j"                  j$                  j&                  j(                  id      }|j+                  |j-                         |j/                               }t1        j2                  |j4                  |ddt6        j8                        S )	z@List operations on instance partitions under the given instance.)tzr'   zspanner.projects.instancesr)   )parentinstancePartitionDeadliner,   r-   )r.   r/   get_field_func)r	   r   r   r   r0   r   	TimestampFromDatetimedatetimenowtimezoneutc&UNREACHABLE_INSTANCE_PARTITION_TIMEOUTr   r   r1   r   r2   r3   r4   r5   >SpannerProjectsInstancesInstancePartitionOperationsListRequestr7   ToJsonStringr   r8   .projects_instances_instancePartitionOperationsr   +GetFieldAndLogUnreachableInstancePartitions)r9   r    r;   tp_protor"   r<   s         r#   ListrO   K   s   !!)\:&				<	8$$$&(
x00445./ 	  

))..66@@ . 	! 	# 	KK ( 5 5 7 	L 	# 
	!	!;;	%"NN
 r%   c                    t        j                  t        t              }t        j                  t        t              }t
        j                  j                  |t        j                  j                  j                  j                  || dd      }|j                  |j                               }|j                  j!                  |      S )zCancel the specified operation.r'   instancePartitionsIdr(   r   r)   r+   )r	   r   r   r   r0   r   r   r1   r   r2   r3   r4   r5   ASpannerProjectsInstancesInstancePartitionsOperationsCancelRequestr7   r   Cancelr9   r:   r   r    r;   r"   r<   s          r#   rT   rT   h   s    !!)\:&				<	8$  "))..66@@"4!
 L 	! 	# 	NN 	O 	# 
	@	@	G	G	LLr%   c                    t        j                  t        t              }t        j                  t        t              }t
        j                  j                  |t        j                  j                  j                  j                  || dd      }|j                  |j                               }|j                  j!                  |      S )zGet the specified operation.rQ   r   r)   r+   )r	   r   r   r   r0   r   r   r1   r   r2   r3   r4   r5   >SpannerProjectsInstancesInstancePartitionsOperationsGetRequestr7   r   GetrU   s          r#   rX   rX   {   s    !!)\:&				<	8$  "))..66@@"4!
 L 	! 	# 	KK 	L 	# 
	@	@	D	DS	IIr%   )__doc__
__future__r   r   r   rE   apitools.base.pyr   cloudsdk.google.protobufr   googlecloudsdk.api_lib.spannerr   googlecloudsdk.api_lib.utilr	   r
   googlecloudsdk.corer   r   	timedeltarI   r   r   r$   r=   rO   rT   rX    r%   r#   <module>rb      se    8 &  '  ' 2 8 , . * ) *<););B)G &	..:M&Jr%   