
    <                         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dZ ej                  ej                   j"                         G d dej$                               Zy)zCreate Command for Job.    )absolute_import)division)unicode_literals)jobs)base)
exceptions)flags)	resourcesz{description}z         To create a Job with the id `my-job` experiment `my-experiment`
        and fault-targets `target1 and target2`, run:

          $ {command} my-job --experiment=my-experiment --fault-targets="target1", "target2"
        )DESCRIPTIONEXAMPLESc                   :    e Zd ZdZeZed        Zed        Zd Z	y)Createz%Create a Fault injection testing job.c                 .    t        j                  |        y )N)r	   AddCreateJobFlags)parsers    *lib/surface/fault_injection/jobs/create.pyArgszCreate.Args-   s    	F#    c                    | j                   j                  j                         }t        j                  j                  | j
                  d|j                  |j                  d      }|j                  |j                  k7  rt        j                  dd      |j                  |j                  k7  rt        j                  dd      ||fS )zParse, validate and return the CA and KMS key version args from the CLI.

    Args:
      args: The parsed arguments from the command-line.

    Returns:
      Tuple containing the Resource objects for the KMS key version and CA,
      respectively.
    z4faultinjectiontesting.projects.locations.experiments)
projectsIdlocationsId)
collectionparams
Experimentz9Experiment must be in the same project as the JOBversion.z:Experiment must be in the same location as the Jobversion.)
CONCEPTSjobParser
   REGISTRY
experimentr   r   r   InvalidArgumentException)argsjob_refexp_refs      r   ParseResourceArgszCreate.ParseResourceArgs1   s     mm%%'G  &&I!,,"..
 ' G W/////
  g111//
  Wr   c                    t        j                         }| j                  |      \  }}|j                         }|j	                         st        j                  dd      |j	                         st        j                  dd      |j                  st        j                  dd      |j                  |j	                         |j                         |j                  |j                  |j                               S )zRun the create command.r   zjob id must be non-empty.zexperiment must be non-empty.z fault targets must be non-empty.)job_idexperiment_idfault_targetsdry_runparent)r   
JobsClientr$   ParentNamer   r    r(   r   RelativeNamer)   )selfr!   clientr"   r#   
parent_refs         r   Runz
Create.RunW   s    __F --d3GW!J<<>//
,  <<>//
0  //
3  ==||~**,((&&(   r   N)
__name__
__module____qualname____doc___DETAILED_HELPdetailed_helpstaticmethodr   r$   r2    r   r   r   r   '   s6    - -$ $ # #Jr   r   N)r6   
__future__r   r   r   &googlecloudsdk.api_lib.fault_injectionr   googlecloudsdk.callioper   r   *googlecloudsdk.command_lib.fault_injectionr	   googlecloudsdk.corer
   r7   ReleaseTracksReleaseTrackALPHACreateCommandr   r:   r   r   <module>rD      sp     &  ' 7 ( . < ) # D%%++,IT I -Ir   