
                             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
 g dZd	 Zd
 Zd Zd Zd Zd Zd Zd Zy)z5Utilities for dataproc workflow template add-job CLI.    )absolute_import)division)unicode_literals)arg_parsers)flags)labels_util)idnameversion
createTime
updateTimec                     t        j                  |        t        j                  | d|d       | j	                  ddt
        d       | j	                  dd	t        j                  t
        d
      d       y)z Register flags for this command.z
add job toF)
positionalz	--step-idTz0The step ID of the job in the workflow template.)requiredtypehelpz--start-afterSTEP_ID   )element_type
min_lengthz4(Optional) List of step IDs to start this job after.)metavarr   r   N)r   AddCreateLabelsFlagsr   AddTemplateResourceArgadd_argumentstrr   ArgList)parserapi_versions     =lib/googlecloudsdk/command_lib/dataproc/workflow_templates.pyAddWorkflowTemplatesArgsr       sw    ""6*lKE; 	=	  ? 	CA>A	  C    c                 R    | j                  dt        j                         |d       y )Nz--dag-timeoutz          The duration for which a DAG of jobs can run before being
          auto-cancelled, such as "10m" or "16h".
          See $ gcloud topic datetimes for information on duration formats.
          r   r   r   )r   r   Durationr   is_requireds     r   AddDagTimeoutFlagr'   0   s,    !	  r!   c                 6    | j                  dt        |d       y )Nz	--kms-keyzY          The KMS key used to encrypt sensitive data in the workflow template.
          r#   )r   r   r%   s     r   AddKmsKeyFlagr)   <   s#    	  r!   c                 H    |j                   j                         }| |_        |S N)messages5GoogleCloudDataprocV1WorkflowTemplateEncryptionConfigkmsKey)kms_keydataprocencryption_configs      r   GenerateEncryptionConfigr2   G   s*    MMO  %	r!   c                     |j                   j                  | j                        }| j                  r| j                  |_        |S )z,Create an ordered job for workflow template.)stepId)r,   
OrderedJobstep_idstart_afterprerequisiteStepIds)argsr0   ordered_jobs      r    CreateWorkflowTemplateOrderedJobr;   O   s<    !!,,DLL,A+	&*&6&6K#	r!   c                 4   | j                   j                  j                         }|j                  || j                        }|j
                  |j
                  ng }|j                  |       ||_        |j                  j                  j                  |      }|S )z,Add an ordered job to the workflow template.)
CONCEPTSworkflow_templateParseGetRegionsWorkflowTemplater   jobsappendclient"projects_regions_workflowTemplatesUpdate)r9   r0   r:   templater>   rA   responses          r   AddJobToWorkflowTemplaterH   W   s    ]],,224(99 $5#9#9#E			2$++k__??FF(	/r!   c                 b    t        j                  || j                  j                        |_        y)z3Add type-specific job configuration to job message.N)r   ParseCreateArgsr5   LabelsValuelabels)r,   jobr9   s      r   ConfigureOrderedJobrN   h   s'     **
H++-#*r!   c                 *    t         D ]
  }|| v s| |=  y r+   )TEMPLATE_FIELDS)rF   fields     r   FilterrR   o   s    e
5/ r!   N)__doc__
__future__r   r   r   googlecloudsdk.callioper   #googlecloudsdk.command_lib.dataprocr   $googlecloudsdk.command_lib.util.argsr   rP   r    r'   r)   r2   r;   rH   rN   rR    r!   r   <module>rY      sM    < &  ' / 5 < HC&	"-r!   