
    s"                         S r SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SS jr	 S S	 jr
S!S
 jr S"S jrS#S jr S$S jrS rS r    S%S jrS rS rS rS rS rS rS rS rS rS rS rS rS rS rg)&z$Flags for Fault Injection Cloud SDK.    )arg_parsers)concepts)deps)concept_parsers)presentation_specsNc                 z   ^ ^ U U4S jn[         R                  " SSU" 5       [         R                  [        5       S9$ )<Constructs and returns the Resource specification for Fault.c                  .   > [         R                  " T TS9$ N)name	help_textr    ResourceParameterAttributeConfigarg_namer   s   7lib/googlecloudsdk/command_lib/fault_injection/flags.pyFaultAttributeConfig2GetFaultResourceSpec.<locals>.FaultAttributeConfig       44     z/faultinjectiontesting.projects.locations.faultsfault)resource_namefaultsId
projectsIdlocationsIdr   ResourceSpec DEFAULT_PROJECT_ATTRIBUTE_CONFIGLocationAttributeConfig)r   r   r   s   `` r   GetFaultResourceSpecr       s8    
 
		7#%::)+
 r   c                     U=(       d    Sn[         R                  R                  SR                  U(       a  SOSU 5      [	        5       UUS9$ )z3Constructs and returns the Fault Resource Argument.zName for the Fault{}{} --required)r   ConceptParserForResourceformatr    r   r   
positionalr&   s       r   GetFaultResourceArgr,   *   sK    
 //)		&	&	2	2mm*B$9	 
3 
 r   c                 z   ^ ^ U U4S jn[         R                  " SSU" 5       [         R                  [        5       S9$ )r	   c                  .   > [         R                  " T TS9$ r   r   r   s   r   ExperimentAttributeConfig<GetExperimentResourceSpec.<locals>.ExperimentAttributeConfig<   r   r   z4faultinjectiontesting.projects.locations.experiments
experiment)r   experimentsIdr   r   r   )r   r   r/   s   `` r   GetExperimentResourceSpecr3   9   s8    
 
		< -/::)+
 r   c                     U=(       d    Sn[         R                  R                  SR                  U(       a  SOSU 5      [	        5       UUS9$ )z8Constructs and returns the Experiment Resource Argument.zName for the Experimentr"   r#   r$   r%   )r   r'   r(   r)   r3   r*   s       r   GetExperimentResourceArgr5   J   sK    
 44)		&	&	2	2mm*B$9!	 
3 
 r   c                 z   ^ ^ U U4S jn[         R                  " SSU" 5       [         R                  [        5       S9$ )z:Constructs and returns the Resource specification for Job.c                  .   > [         R                  " T TS9$ r   r   r   s   r   JobAttributeConfig.GetJobResourceSpec.<locals>.JobAttributeConfig\   r   r   z-faultinjectiontesting.projects.locations.jobsjob)r   jobsIdr   r   r   )r   r   r8   s   `` r   GetJobResourceSpecr<   Y   s8    
 
		5!::)+
 r   c                     U=(       d    Sn[         R                  R                  SR                  U(       a  SOSU 5      [	        5       UUS9$ )z1Constructs and returns the Job Resource Argument.zName of the Jobr"   r#   r$   r%   )r   r'   r(   r)   r<   r*   s       r   GetJobResourceArgr>   j   sK    
 ,,)		&	&	2	2mm*B$9	 
3 
 r   c                  X    [         R                  " SS[        R                  " S5      /S9$ )Nlocationz&The Cloud location for the {resource}.
--location)r   r   fallthroughs)r   r   r   ArgFallthrough r   r   r   r   y   s.    		2	28


l
+
 r   c                  \    [         R                  " SS[        5       [         R                  S9$ )Nz(faultinjectiontesting.projects.locationsr@   )r   r   r   )r   r   r   r   rD   r   r   GetLocationResourceSpecrF      s*    			0)+::	
 r   c                     U=(       d    Sn[         R                  R                  SR                  U(       a  SOSU 5      [	        5       UUS9$ )z6Constructs and returns the Location Resource Argument.Locationr"   r#   r$   r%   )r   r'   r(   r)   rF   r*   s       r   GetLocationResourceArgrI      sJ     %:)		&	&	2	2mm*B$9	 
3 
 r   c                 6    [        5       R                  U 5        g Nr,   AddToParserparsers    r   AddDescribeFaultFlagsrP          ##F+r   c                 6    [        5       R                  U 5        g rK   rL   rN   s    r   AddDeleteFaultFlagsrS      rQ   r   c                     [        5       R                  U 5        U R                  S[        R                  " 5       SSSS9  g )N--fileFILEz,The file containing the fault to be created.Ttypemetavarhelpr&   r,   rM   add_argumentr   YAMLFileContentsrN   s    r   AddCreateFaultFlagsr^      s>    ##F+'')9  r   c                     [        5       R                  U 5        U R                  S[        R                  " 5       SSSS9  g )NrU   rV   z-The file containing the updated fault config.TrW   r[   rN   s    r   AddUpdateFaultFlagsr`      s>    ##F+''):  r   c                     [        SS9R                  U 5        U R                  S[        SSS9  U R                  S[        SSS9  g )	NTr%   z--service-nameservice name.FrX   rZ   r&   z--experiment-namezexperiment name.rI   rM   r\   strrN   s    r   AddListFaultFlagsrf      sU    $'33F;	   		  r   c                 6    [        5       R                  U 5        g rK   r5   rM   rN   s    r   AddDescribeExperimentFlagsri          ((0r   c                 6    [        5       R                  U 5        g rK   rh   rN   s    r   AddDeleteExperimentFlagsrl      rj   r   c                     [        5       R                  U 5        U R                  S[        R                  " 5       SSSS9  g )NrU   rV   z1The file containing the experiment to be created.TrW   r5   rM   r\   r   r]   rN   s    r   AddCreateExperimentFlagsro      s>    ((0'')>  r   c                     [        5       R                  U 5        U R                  S[        R                  " 5       SSSS9  g )NrU   rV   z2The file containing the updated experiment config.TrW   rn   rN   s    r   AddUpdateExperimentFlagsrq      s>    ((0'')?  r   c                 `    [        SS9R                  U 5        U R                  S[        SSS9  g )NTr%   z--sd-service-namerb   Frc   rd   rN   s    r   AddListExperimentFlagsrs      s4    $'33F;	  r   c                 6    [        5       R                  U 5        g rK   r>   rM   rN   s    r   AddDescribeJobFlagsrv          !!&)r   c                 R   [        SS9R                  U 5        [        R                  " [        R
                  " S[        5       SSSS9[        R
                  " S[        5       SSSS9/5      R                  U 5        U R                  S	[        S
SS9  U R                  S[        SSS9  g)zAdd job list Flags.Tr%   --experimentThe experiment resource.F)prefixesr&   z--faultzThe fault resource.z--target-nameztarget name.rc   z--dayszDays.N)rI   rM   r   r'   r   ResourcePresentationSpecr3   r    r\   re   intrN   s    r   AddListJobFlagsr~      s     $'33F;11

#
%
$ 11


 
!  [	   		  r   c                 H   [         R                  " [        R                  " S[	        5       SSS0SSS9[        R                  " S[        5       SS	S	S
.SSS9/5      R                  U 5        U R                  S[        R                  " 5       SSSS9  U R                  SSSSS9  g)zAdd job Create Flags.JOBzThe Job resource.r@   rA   T)flag_name_overridesr{   r&   ry   rz   r#   )r@   projectz--fault-targetsLISTz>targets for the faults in experiment. Provide them in sequencerW   z	--dry-run
store_trueFzDry run mode.)actiondefaultrZ   N)
r   r'   r   r|   r<   r3   rM   r\   r   ArgListrN   s    r   AddCreateJobFlagsr     s     

5
5 "!#-|"< 
5
5')( !# . K K   		  r   c                 6    [        5       R                  U 5        g rK   ru   rN   s    r   AddDeleteJobFlagsr   E  rw   r   )r   N)r   NTT)r1   N)r1   NTT)r:   N)r:   NTT)r@   NFF) __doc__googlecloudsdk.callioper    googlecloudsdk.calliope.conceptsr   r   (googlecloudsdk.command_lib.util.conceptsr   r   r    r,   r3   r5   r<   r>   r   rF   rI   rP   rS   r^   r`   rf   ri   rl   ro   rq   rs   rv   r~   r   r   rD   r   r   <module>r      s    + 0 5 1 D G$ AE$ FJ$ ?C 	$,, 11*D(V*r   