
    [j                         d Z ddlZddlmZ ddlmZ dZdZdZ e	ed         d	                   Z
	 dd
eeef         dz  defdZdede	fdZdS )zBShared gateway restart constants and supervisor detection helpers.    N)Mapping)DEFAULT_CONFIGK   N   "HERMES_GATEWAY_EXTERNAL_SUPERVISORagentrestart_drain_timeoutenvironreturnc                 Z   | t           j        n| }|                    d          rdS |                    d          rdS |                    dd          }|r|dk    rdS t          |                    t          d                                                                                    dv S )	z=Return whether this gateway process is owned by a supervisor.NINVOCATION_IDTHERMES_S6_SUPERVISED_CHILDXPC_SERVICE_NAME 0>   1onyestrue)osr
   getstrEXTERNAL_GATEWAY_SUPERVISOR_ENVstriplower)r
   envxpc_services      1/home/ice/.hermes/hermes-agent/gateway/restart.pyis_gateway_supervisor_processr      s      "**WC
ww t
ww+,, t'',b11K {c))tsww6;;<<BBDDJJLL Q      rawc                     	 t          | pd                                          rt          |           nt          }n# t          t
          f$ r
 t          cY S w xY wt          d|          S )zEParse a configured drain timeout, falling back to the shared default.r   g        )r   r   float%DEFAULT_GATEWAY_RESTART_DRAIN_TIMEOUT	TypeError
ValueErrormax)r!   values     r   parse_restart_drain_timeoutr)   0   sn    5!#)nn2244_c


:_z" 5 5 544445sE??s   9< AA)N)__doc__r   collections.abcr   hermes_cli.configr   !GATEWAY_SERVICE_RESTART_EXIT_CODEGATEWAY_FATAL_CONFIG_EXIT_CODEr   r#   r$   r   boolr   objectr)    r    r   <module>r2      s    H H 				 # # # # # # , , , , , , %' ! "$ 
 #G (-734) ) % )- S#X%	   (V       r    