
    d                     P   S 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SKJr  \
R"                  " \
R$                  R&                  \
R$                  R(                  \
R$                  R*                  5       " S S\
R,                  5      5       rg)zICauses a high-availability Cloud SQL instance to failover to its replica.    )absolute_import)division)unicode_literals)api_util)
operations)validate)base)flags)
properties)
console_ioc                   .    \ rS rSrSr\S 5       rS rSrg)Failover   z:Causes a high-availability Cloud SQL instance to failover.c                     U R                  S[        R                  SS9  [        R                  R                  U 5        g)z@Args is called by calliope to gather arguments for this command.instancezCloud SQL instance ID.)	completerhelpN)add_argumentr
   InstanceCompleterr	   
ASYNC_FLAGAddToParser)parsers    %lib/surface/sql/instances/failover.pyArgsFailover.Args#   s:     ))%  ' 	OO'    c                     [         R                  " [         R                  5      nUR                  nUR                  n[
        R                  " UR                  5        UR                  R                  UR                  S[        R                  R                  R                  R                  0SS9n[        R                   " SSSS9  UR"                  R%                  UR'                  UR                  UR                  S95      nUR)                  UR                  UR                  UR+                  UR-                  SUR.                  R0                  S	9S
9S9nUR"                  R3                  U5      nUR                  R5                  SUR6                  UR                  S9n	UR8                  (       a=  UR:                  R%                  UR=                  U	R                  U	R>                  S95      $ [:        R@                  RC                  X9S5        g)zCalls the failover api method.

Args:
  args: argparse.Namespace, The arguments that this command was invoked
      with.

Returns:
  A dict object representing the operations resource describing the failover
  operation if the failover was successful.
projectzsql.instances)params
collectionzFailover will be initiated. Existing connections to the primary instance will break and no new connection can be established during the failover.T)messagedefaultcancel_on_no)r   r   zsql#failoverContext)kindsettingsVersion)failoverContext)r   r   instancesFailoverRequestzsql.operations)	operationr   )r   r(   zFailing over Cloud SQL instanceN)"r   	SqlClientAPI_VERSION_DEFAULT
sql_clientsql_messagesr   ValidateInstanceNamer   resource_parserParser   VALUEScorer   	GetOrFailr   PromptContinue	instancesGetSqlInstancesGetRequestSqlInstancesFailoverRequestInstancesFailoverRequestFailoverContextsettingsr%   r   Createnameasync_r   SqlOperationsGetRequestr(   OperationsV1Beta4WaitForOperation)
selfargsclientr+   r,   instance_refr   requestresult_operationoperation_refs
             r   RunFailover.Run,   s     < <=F""J&&L!!$--0))//:,,1199CCD" 0 $L
   ##''++ ((<3H3H 	, 	JKH 66$$&&!-!F!F(88* ( 1 1 A A 9 C "G "D 7 EG "++44W=**11"''$$ 2 &M
 {{""&&

.
.#++%// / 12 2
   11#DF r    N)	__name__
__module____qualname____firstlineno____doc__staticmethodr   rH   __static_attributes__rJ   r   r   r   r      s     C( (8r   r   N)rO   
__future__r   r   r   googlecloudsdk.api_lib.sqlr   r   r   googlecloudsdk.callioper	   googlecloudsdk.command_lib.sqlr
   googlecloudsdk.corer   googlecloudsdk.core.consoler   ReleaseTracksReleaseTrackGABETAALPHACommandr   rJ   r   r   <module>r^      s    P &  ' / 1 / ( 0 * 2 D%%(($*;*;*@*@%%++-Dt|| D-Dr   