
    !                     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$Inject fault on 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)InjectFaultz;Inject fault on an AlloyDB instance within a given cluster.z{description}z      To Inject fault on an instance, run:

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

    Args:
      parser: argparse.Parser, Parser object for command line inputs
    FTN)r   
ASYNC_FLAGAddToParserr	   
AddClusterAddInstance	AddRegionAddFaultType)parsers    -lib/surface/alloydb/instances/inject_fault.pyArgszInjectFault.Args-   sP     	OO'	VU#	f	OOF	vt$    c                 v   t        j                  | j                               }|j                  }|j                  }t        j                  |      j                  |j                        }|j                  j                  dt        j                  j                  j                  j                  |j                   |j"                  |j$                        }|j'                  |j)                         |j+                  |            }|j,                  j/                  |      }t0        j2                  j5                  |j6                  d      }	t8        j:                  j=                  dj?                  |	jA                                      |jB                  s&tE        jF                  |	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)	faultType)nameinjectFaultRequestz%alloydb.projects.locations.operations)
collectionzOperation ID: {}zInjecting fault over instanceF)$r   AlloyDBClientReleaseTrackalloydb_clientalloydb_messagesr	   GetInjectFaultTypeFlagMapperGetEnumForChoice
fault_typeresource_parserCreater   VALUEScoreproject	GetOrFailregionclusterinstance;AlloydbProjectsLocationsClustersInstancesInjectFaultRequestRelativeNameInjectFaultRequest%projects_locations_clusters_instancesr   r   REGISTRYParseRelativeNamer"   r
   statusPrintformatNameasync_r   Await)
selfargsclientr'   r(   r+   project_refreqopop_refs
             r   RunzInjectFault.Run:   su    ##D$5$5$78F**N..33t'  ((//7$$))11;;KK<<MM 0 K 
V
V%%'+>>  ? 
 W C 
	=	=	I	I#	NB11
C 2 F JJ'..v{{}=>;;
143D3D3F Ir   N)__name__
__module____qualname____doc__detailed_helpstaticmethodr   rH    r   r   r   r      s2     D %
- 
% 
%&r   r   N)rL   
__future__r   r   r   googlecloudsdk.api_lib.alloydbr   r   googlecloudsdk.callioper   "googlecloudsdk.command_lib.alloydbr	   googlecloudsdk.corer
   r   r   ReleaseTracksr&   ALPHABETAGASilentCommandr   rO   r   r   <module>rZ      s    + &  ' 3 > ( 4 # * ) T..33T5F5F5I5I?$$$ ??r   