
                         P   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                   e	j"                  j$                  e	j"                  j&                  e	j"                  j(                         G d de	j*                               Zy)zFailover an AlloyDB instance.    )absolute_import)division)unicode_literals)api_util)instance_operations)base)flags)log)
properties)	resourcesc                   0    e Zd ZdZdddZed        Zd Zy)Failoverz4Failover an AlloyDB instance within a given cluster.z{description}z{        To failover an instance, run:

          $ {command} my-instance --cluster=my-cluster --region=us-central1
        )DESCRIPTIONEXAMPLESc                     t         j                  j                  |        t        j                  | d       t        j
                  |        t        j                  |        y)zxSpecifies additional command flags.

    Args:
      parser: argparse.Parser, Parser object for command line inputs
    FN)r   
ASYNC_FLAGAddToParserr	   
AddClusterAddInstance	AddRegion)parsers    )lib/surface/alloydb/instances/failover.pyArgszFailover.Args.   s@     	OO'	VU#	f	OOF    c                    t        j                  | j                               }|j                  }|j                  }|j
                  j                  dt        j                  j                  j                  j                  |j                  |j                  |j                        }|j                  |j!                               }|j"                  j%                  |      }t&        j(                  j+                  |j,                  d      }t.        j0                  j3                  dj5                  |j7                                      |j8                  s&t;        j<                  |d| j                         d       |S )	zConstructs and sends request.

    Args:
      args: argparse.Namespace, An object that contains the values for the
        arguments specified in the .Args() method.

    Returns:
      ProcessHttpResponse of the request made.
    z-alloydb.projects.locations.clusters.instances)
projectsIdlocationsId
clustersIdinstancesId)namez%alloydb.projects.locations.operations)
collectionzOperation ID: {}zFailing over instanceF)r   AlloyDBClientReleaseTrackalloydb_clientalloydb_messagesresource_parserCreater   VALUEScoreproject	GetOrFailregionclusterinstance8AlloydbProjectsLocationsClustersInstancesFailoverRequestRelativeName%projects_locations_clusters_instancesr   r   REGISTRYParseRelativeNamer    r
   statusPrintformatNameasync_r   Await)	selfargsclientr$   r%   project_refreqopop_refs	            r   RunzFailover.Run:   s3    ##D$5$5$78F**N..((//7$$))11;;KK<<MM 0 #K 
S
S%%' T )C		=	=	F	Fs	KB11
C 2 EFJJ'..v{{}=>;;(? $ 1 1 3U<Ir   N)__name__
__module____qualname____doc__detailed_helpstaticmethodr   rA    r   r   r   r      s1     = 		- 	 	r   r   N)rE   
__future__r   r   r   googlecloudsdk.api_lib.alloydbr   r   googlecloudsdk.callioper   "googlecloudsdk.command_lib.alloydbr	   googlecloudsdk.corer
   r   r   ReleaseTracksr#   ALPHABETAGASilentCommandr   rH   r   r   <module>rS      s    $ &  ' 3 > ( 4 # * ) D%%++T->->-C-C%%((*6t!! 6*6r   