
    "                        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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.    )absolute_import)division)unicode_literals)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   r2   s   `` r   GetExperimentResourceSpecr6   <   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,   r6   r-   s       r   GetExperimentResourceArgr8   M   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   r;   s   `` r   GetJobResourceSpecr?   \   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   GetJobResourceArgrA   m   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"   |   s.    		2	28


l
+
 r   c                  \    [         R                  " SS[        5       [         R                  S9$ )Nz(faultinjectiontesting.projects.locationsrC   )r   r   r   )r   r    r"   r!   rG   r   r   GetLocationResourceSpecrI      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,   rI   r-   s       r   GetLocationResourceArgrL      sJ     %:)		&	&	2	2mm*B$9	 
3 
 r   c                 6    [        5       R                  U 5        g Nr/   AddToParserparsers    r   AddDescribeFaultFlagsrS          ##F+r   c                 6    [        5       R                  U 5        g rN   rO   rQ   s    r   AddDeleteFaultFlagsrV      rT   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/   rP   add_argumentr   YAMLFileContentsrQ   s    r   AddCreateFaultFlagsra      s>    ##F+'')9  r   c                     [        5       R                  U 5        U R                  S[        R                  " 5       SSSS9  g )NrX   rY   z-The file containing the updated fault config.TrZ   r^   rQ   s    r   AddUpdateFaultFlagsrc      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r[   r]   r)   z--experiment-namezexperiment name.rL   rP   r_   strrQ   s    r   AddListFaultFlagsri      sU    $'33F;	   		  r   c                 6    [        5       R                  U 5        g rN   r8   rP   rQ   s    r   AddDescribeExperimentFlagsrl          ((0r   c                 6    [        5       R                  U 5        g rN   rk   rQ   s    r   AddDeleteExperimentFlagsro      rm   r   c                     [        5       R                  U 5        U R                  S[        R                  " 5       SSSS9  g )NrX   rY   z1The file containing the experiment to be created.TrZ   r8   rP   r_   r   r`   rQ   s    r   AddCreateExperimentFlagsrr      s>    ((0'')>  r   c                     [        5       R                  U 5        U R                  S[        R                  " 5       SSSS9  g )NrX   rY   z2The file containing the updated experiment config.TrZ   rq   rQ   s    r   AddUpdateExperimentFlagsrt      s>    ((0'')?  r   c                 `    [        SS9R                  U 5        U R                  S[        SSS9  g )NTr(   z--sd-service-namere   Frf   rg   rQ   s    r   AddListExperimentFlagsrv      s4    $'33F;	  r   c                 6    [        5       R                  U 5        g rN   rA   rP   rQ   s    r   AddDescribeJobFlagsry          !!&)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.rf   z--dayszDays.N)rL   rP   r	   r*   r
   ResourcePresentationSpecr6   r#   r_   rh   intrQ   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.rC   rD   T)flag_name_overridesr~   r)   r|   r}   r&   )rC   projectz--fault-targetsLISTz>targets for the faults in experiment. Provide them in sequencerZ   z	--dry-run
store_trueFzDry run mode.)actiondefaultr]   N)
r	   r*   r
   r   r?   r6   rP   r_   r   ArgListrQ   s    r   AddCreateJobFlagsr     s     

5
5 "!#-|"< 
5
5')( !# . K K   		  r   c                 6    [        5       R                  U 5        g rN   rx   rQ   s    r   AddDeleteJobFlagsr   H  rz   r   )r   N)r   NTT)r4   N)r4   NTT)r=   N)r=   NTT)rC   NFF)$__doc__
__future__r   r   r   googlecloudsdk.callioper    googlecloudsdk.calliope.conceptsr   r   (googlecloudsdk.command_lib.util.conceptsr	   r
   r#   r/   r6   r8   r?   rA   r"   rI   rL   rS   rV   ra   rc   ri   rl   ro   rr   rt   rv   ry   r   r   r   rG   r   r   <module>r      s    + &  ' / 5 1 D G$ AE$ FJ$ ?C 	$,, 11*D(V*r   