
    ?                        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
KJr  SS	KJr  SSKJr  S rS rS rS rS rS rS rS rS r\	R8                  " \	R:                  R<                  5       " S S\	R>                  5      5       r \	R8                  " \	R:                  RB                  5       " S S\ 5      5       r"\	R8                  " \	R:                  RF                  5       " S S\"5      5       r$g)z#Command for updating health checks.    )absolute_import)division)unicode_literals)base_classes)health_checks_utils)base)scope)
exceptions)flags)logc                      SSS.$ )NUpdate a gRPC health check.z      *{command}* is used to update an existing gRPC health check. Only
      arguments passed in will be updated on the health check. Other
      attributes will remain unaffected.
      )briefDESCRIPTION r       0lib/surface/compute/health_checks/update/grpc.py_DetailedHelpr      s     (
		
 	r   c                     [         R                  " S5      nUR                  U SS9  [        R                  " U 5        [        R
                  " U S5        U(       a  [        R                  " U 5        g g )NgRPCupdate)operation_type)r   HealthCheckArgumentAddArgumentr   AddGrpcRelatedUpdateArgsAddProtocolAgnosticUpdateArgs AddHealthCheckLoggingRelatedArgs)parserinclude_log_confighealth_check_args      r   _Argsr!   ,   sZ    ..v6vh?..v633FFC88@ r   c                     U R                   R                  SU R                  R                  UR	                  5       UR
                  S94$ )9Returns a request for fetching the existing health check.Get)healthCheckproject)apitools_clienthealthChecksmessagesComputeHealthChecksGetRequestNamer&   clienthealth_check_refs     r   _GetGetRequestr/   5   sI    

 
 
-
-u
//
7
7*//1&.. 8 0
1 1r   c                     U R                   R                  SU R                  R                  UR	                  5       UUR
                  S94$ )0Returns a request for updating the health check.Update)r%   healthCheckResourcer&   )r'   r(   r)    ComputeHealthChecksUpdateRequestr+   r&   r-   r.   replacements      r   _GetSetRequestr7   =   sL    

 
 
-
-x
//
:
:*//1"-&.. ; 0
1 1r   c                     U R                   R                  SU R                  R                  UR	                  5       UR
                  UR                  S94$ )r#   r$   )r%   r&   region)r'   regionHealthChecksr)   #ComputeRegionHealthChecksGetRequestr+   r&   r9   r,   s     r   _GetRegionalGetRequestr<   F   sR    

 
 
3
3U
//
=
=*//1&..%,, > .
/ /r   c           	          U R                   R                  SU R                  R                  UR	                  5       UUR
                  UR                  S94$ )r1   r2   )r%   r3   r&   r9   )r'   r:   r)   &ComputeRegionHealthChecksUpdateRequestr+   r&   r9   r5   s      r   _GetRegionalSetRequestr?   O   sV    

 
 
3
3X
//
@
@*//1"-&..%,,	 A .
/ /r   c                 (   UR                   U R                  R                  R                  R                  :w  a-  [
        R                  " SUR                   R                  -   5      eUR                  (       a  UR                  nOUR                  c  UR                  nOSnUR                  (       a  UR                  nO&UR                  c  UR                  R                  nOSn[        R                  " XR                  5      u  pgU R                  R                  UR                  UU R                  R                  R                  R                  U R                  R                  UUUS9UR                  =(       d    UR                   UR"                  =(       d    UR$                  UR&                  =(       d    UR(                  UR*                  =(       d    UR,                  S9nU(       a&  [        R.                  " XUR0                  5      Ul        U$ )z'Returns a modified HealthCheck message.z=update grpc subcommand applied to health check with protocol N)portportSpecificationgrpcServiceName)namedescriptiontypegrpcHealthCheckcheckIntervalSec
timeoutSechealthyThresholdunhealthyThreshold)rF   r)   HealthCheckTypeValueValuesEnumGRPCcore_exceptionsErrorrD   rE   grpc_service_namerG   rC   r   #HandlePortRelatedFlagsForGRPCUpdateGRPCHealthCheckcheck_intervalrH   timeoutrI   healthy_thresholdrJ   unhealthy_thresholdrK   ModifyLogConfig	logConfig)	r-   argsexisting_checkr   rE   rQ   rA   port_specificationnew_health_checks	            r   _Modifyr^   Y   s    oo!!55::;


G  	!" " 
""K ,,KK	..%&66FF0''(,,.$ __00??&&::??oo55.+ 6 - ++N~/N/N:!:!:.. 8&7722 <(;; 1   !4!D!Dn.."0	r   c                    [         R                  " U 5        U R                  =(       dX    U R                  =(       dE    U R                  =(       d2    U R
                  =(       d    U R                  =(       d    U R                  (       + nU(       a  U R                  SL =(       a    UnU R                  c,  U R                  c  U(       a  [        R                  " S5      eggg)zBValidates given args and raises exception if any args are invalid.Nz'At least one property must be modified.)r   CheckProtocolAgnosticArgsrA   rT   rU   rV   rW   use_serving_portenable_loggingrE   rQ   r
   ArgumentError)rZ   r   
args_unsets      r   _ValidateArgsre      s    //5II *!4!4 * ****.2.F.F*))+* %%-<*J
4#9#9#A

"
"#L
MM  $Br   c                    UR                   n[        X5        [        R                  " S5      nUR	                  XR
                  [        R                  R                  S9n[        R                  " U5      (       a  [        X55      nO[        X55      nUR                  U/5      n[        X0US   U5      nUS   U:X  a=  [        R                   R#                  SR%                  US   R&                  5      5        U$ [        R                  " U5      (       a  [)        X5U5      n	O[+        X5U5      n	UR                  U	/5      $ )z<Issues the requests necessary for updating the health check.r   )default_scoper   z/No change requested; skipping update for [{0}].)r-   re   r   r   ResolveAsResource	resourcescompute_scope	ScopeEnumGLOBALr   IsRegionalHealthCheckRefr<   r/   MakeRequestsr^   r   statusPrintformatrD   r?   r7   )
rZ   holderr   r-   r    r.   get_requestobjects
new_objectset_requests
             r   _Runrw      s   ==&)..v6%77
M,C,C,J,J 8 L 112BCC(BK :K.'vWQZ1CD*
 QZ:JJFMM
 N112BCC(:NK :FK			k]	++r   c                   @    \ rS rSrSrSr\" 5       r\S 5       r	S r
Srg)r2      r   Tc                 .    [        XR                  5        g N)r!   _include_log_config)clsr   s     r   ArgsUpdate.Args   s    	&))*r   c                 v    [         R                  " U R                  5       5      n[        XU R                  5      $ r{   )r   ComputeApiHolderReleaseTrackrw   r|   )selfrZ   rr   s      r   Run
Update.Run   s.    **4+<+<+>?Fd6677r   r   N)__name__
__module____qualname____firstlineno____doc__r|   r   detailed_helpclassmethodr~   r   __static_attributes__r   r   r   r2   r2      s)    #/-+ +8r   r2   c                       \ rS rSrSrg)
UpdateBeta   r   Nr   r   r   r   r   r   r   r   r   r           r   r   c                       \ rS rSrSrg)UpdateAlpha   r   Nr   r   r   r   r   r      r   r   r   N)%r   
__future__r   r   r   googlecloudsdk.api_lib.computer   r   googlecloudsdk.callioper   "googlecloudsdk.command_lib.computer	   rj   0googlecloudsdk.command_lib.compute.health_checksr
   r   googlecloudsdk.corerO   r   r   r!   r/   r7   r<   r?   r^   re   rw   ReleaseTracksr   GAUpdateCommandr2   BETAr   ALPHAr   r   r   r   <module>r      s    * &  ' 7 > ( E G B = #
A11//2jN  ,F D%%(()8T 8 *8 D%%**+  ,
 D%%++,*  -r   