
    n                        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 dd	lmZ dd
lmZ ddlmZ ddlmZ dddZ e
j.                  e
j0                  j2                  e
j0                  j4                  e
j0                  j6                        e
j8                   G d de
j:                                      Zy)z Approves a Cloud Deploy rollout.    )
exceptions)release)rollout)base)delivery_pipeline_util)deploy_policy_util)flags)release_util)resource_args)	resources)
console_ioz{description}z To approve a rollout 'test-rollout' for delivery pipeline 'test-pipeline', release 'test-release' in region 'us-central1', run:

$ {command} test-rollout --delivery-pipeline=test-pipeline --release=test-release --region=us-central1

)DESCRIPTIONEXAMPLESc                   h    e Zd ZdZeZed        Z ej                  e
j                        d        Zy)Approvez:Approves a rollout having an Approval state of "Required".c                 \    t        j                  | d       t        j                  |        y )NT)
positional)r   AddRolloutResourceArgr	   AddOverrideDeployPolicies)parsers    &lib/surface/deploy/rollouts/approve.pyArgszApprove.Args5   s     ''4@	##F+    c                    |j                   j                  j                         }|j                         j                         }t	        j
                  |j                               }dj                  |j                               }t	        j                  ||       	 t        j                         j                  |j                               }t        j                   j#                  |j                         j                         d      }	 t%        j&                         j                  |j                               }	dj                  |j)                         |j)                         |j*                        }
t-        j.                  ||	|
       t1        j2                  d       t5        j6                  ||j8                        }t        j                         j;                  |j                         d|      S # t        j                  $ r}t        j                  |      d }~ww xY w# t        j                  $ r}t        j                  |      d }~ww xY w)NzCannot approve rollout {}.z9clouddeploy.projects.locations.deliveryPipelines.releases)
collectionz,Approving rollout {} from {} to target {}.

)promptT)cancel_on_no)CONCEPTSr   ParseParentr   GetPipelineRelativeNameformatThrowIfPipelineSuspendedRolloutClientGetapitools_exceptions	HttpErrorr   HttpExceptionr   REGISTRYParseRelativeNamer   ReleaseClientNametargetIdr
   	PrintDiffr   PromptContinuer   CreateDeployPolicyNamesFromIDsoverride_deploy_policiesr   )selfargsrollout_refpipeline_refpipeline_objfailed_activity_msgrollout_objerrorrelease_refrelease_objr   policiess               r   RunzApprove.Run:   s    --''--/K%%'..0L)55!!#%L6==  "$33L4GI,))+//0H0H0JKk $$66))+N 7 PK,))+//0H0H0JKk >DDK,,.0D0DFF;FC40 "@@d33H   "**  " - (( ,$$U++, (( ,$$U++,s0   1G6 1H& 6H#	HH#&I9IIN)__name__
__module____qualname____doc___DETAILED_HELPdetailed_helpstaticmethodr   gcloud_exception CatchHTTPErrorRaiseHTTPExceptiondeploy_exceptionsHTTP_ERROR_FORMATr>    r   r   r   r   .   sJ     C -, , 544))%%r   r   N)rB   apitools.base.pyr   r'   "googlecloudsdk.api_lib.clouddeployr   r   googlecloudsdk.api_lib.utilrF   googlecloudsdk.callioper   !googlecloudsdk.command_lib.deployr   r   rH   r	   r
   r   googlecloudsdk.corer   googlecloudsdk.core.consoler   rC   ReleaseTracksReleaseTrackALPHABETAGADefaultUniverseOnlyCreateCommandr   rJ   r   r   <module>rY      s    ' ? 6 6 F ( . D @ M 3 : ; ) 2 			
 D%%++T->->-C-C%%((*1d   1 *1r   