
    i                        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Ze	j$                   e	j&                  e	j(                  j*                         G d de	j,                                      Z e	j&                  e	j(                  j0                         G d de             Z e	j&                  e	j(                  j4                         G d de             Zy):Execute a workflow and wait for the execution to complete.    )absolute_import)division)unicode_literals)cache)	workflows)base)labels_util)flags)hooks)	resourcesz:workflowexecutions.projects.locations.workflows.executionsc                   X    e Zd ZdZdddZed        Zed        Zd Zd Z	d	 Z
d
 Zd Zy)Runr   {description}a:          To execute a workflow named my-workflow with the data that will be passed to the workflow, run:

          $ {command} my-workflow `--data=my-data`

        To add two labels {foo: bar, baz: qux} to the execution, run:

          $ {command} my-workflow `--data=my-data` `--labels=foo=bar,baz=qux`
        DESCRIPTIONEXAMPLESc                 \    t        j                  | d       t        j                  |        y )Nz
to execute)verb)r   AddWorkflowResourceArg
AddDataArgparsers    lib/surface/workflows/run.py
CommonArgszRun.CommonArgs4   s     	  l;	V    c                     t         j                  |        t        j                  |        t        j                  |        t        j
                  |        t        j                  |        y N)r   r   r   AddLoggingArgAddDisableOverflowBufferArgAddExecutionHistoryLevelArgr
   AddCreateLabelsFlagsr   s    r   ArgszRun.Args9   sF    NN6		%%f-	%%f-$$V,r   c                     |j                   S r   call_log_levelselfargss     r   CallLogLevelzRun.CallLogLevelA       r   c                     |j                   S r   )execution_history_levelr'   s     r   ExecutionHistoryLevelzRun.ExecutionHistoryLevelD   s    '''r   c                 ,    t        j                  |      S r   )r   ParseExecutionLabelsr'   s     r   Labelsz
Run.LabelsG   s    %%d++r   c                     |j                   S r   ),disable_concurrency_quota_overflow_bufferingr'   s     r   OverflowBufferingDisabledzRun.OverflowBufferingDisabledJ   s    <<<r   c           
      @   t        j                  d|d       t        j                  | j	                               }t        j                  |      }t        j                  |      }|j                  ||j                  | j                  |      | j                  |      | j                  |      | j                  |            }t        j                  |j                          t"        j$                  j'                  |j                   t(              }|j+                  |      S )z@Execute a workflow and wait for the completion of the execution.N)
collection)r   print_default_location_warningr   ReleaseTrackToApiVersionReleaseTrackr   ParseWorkflowWorkflowExecutionClientCreatedatar*   r.   r1   r4   r   cache_execution_idnamer   REGISTRYParseEXECUTION_COLLECTIONWaitForExecution)r(   r)   api_versionworkflow_refclient	executionexecution_refs          r   r   zRun.RunM   s    	((tT:44T5F5F5HIK&&t,L..{;F		$""4(D&&t,I 
Y^^,&&,,#7 - M ""=11r   N)__name__
__module____qualname____doc__detailed_helpstaticmethodr   r#   r*   r.   r1   r4   r    r   r   r   r       sZ     C 	-   - -(,=2r   r   c                   B    e Zd ZdZdddZed        Zd Zd Zd Z	d	 Z
y
)BetaRunr   r           To execute a workflow named my-workflow with the data that will be passed to the workflow, run:

          $ {command} my-workflow --data=my-data
        r   c                 X    t         j                  |        t        j                  |        y r   )r   r   r   AddBetaLoggingArgr   s    r   r#   zBetaRun.Argsq   s    NN6	F#r   c                     |j                   S r   r%   r'   s     r   r*   zBetaRun.CallLogLevelv   r+   r   c                      y r   rO   r'   s     r   r.   zBetaRun.ExecutionHistoryLevely       r   c                      y r   rO   r'   s     r   r1   zBetaRun.Labels|   rW   r   c                      yNFrO   r'   s     r   r4   z!BetaRun.OverflowBufferingDisabled       r   NrI   rJ   rK   rL   rM   rN   r#   r*   r.   r1   r4   rO   r   r   rQ   rQ   b   s>    B 		- $ $r   rQ   c                   B    e Zd ZdZdddZed        Zd Zd Zd Z	d	 Z
y
)AlphaRunr   r   rR   r   c                 .    t         j                  |        y r   )r   r   r   s    r   r#   zAlphaRun.Args   s    NN6r   c                      y r   rO   r'   s     r   r*   zAlphaRun.CallLogLevel   rW   r   c                      y r   rO   r'   s     r   r.   zAlphaRun.ExecutionHistoryLevel   rW   r   c                      y r   rO   r'   s     r   r1   zAlphaRun.Labels   rW   r   c                      yrZ   rO   r'   s     r   r4   z"AlphaRun.OverflowBufferingDisabled   r[   r   Nr\   rO   r   r   r^   r^      s>    B 		-  r   r^   N)rL   
__future__r   r   r    googlecloudsdk.api_lib.workflowsr   r   googlecloudsdk.callioper	   $googlecloudsdk.command_lib.util.argsr
   $googlecloudsdk.command_lib.workflowsr   r   googlecloudsdk.corer   rB   DefaultUniverseOnlyReleaseTracksr9   GADescribeCommandr   BETArQ   ALPHAr^   rO   r   r   <module>rp      s    A &  ' 2 6 ( < 6 6 )S  D%%(()=2$

 =2 * =2@ D%%**+c  ,@ D%%++,s  -r   