
    쑛h                     >   U d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlmZm	Z	m
Z
mZ d dlmZ d dlmZ  ej"                  e      ZdZe
ed<   dZe
ed	<   ej.                  d
ej0                  dej2                  diZe
e	eef      ed<   deeedf   ddfdZd Zd Zd Z y)    N)StringIO)CallableDictFinalUnion)version)log_utilz#Cloud-init {} received {}, exiting
SIG_MESSAGE   BACK_FRAME_TRACE_DEPTHz/Cloud-init %(version)s received SIGINT, exitingz0Cloud-init %(version)s received SIGTERM, exitingz0Cloud-init %(version)s received SIGABRT, exitingSIGNALSsigreturnc                    t        |       r2t        | t        j                        st        j                  d|        yy| t        j                  k(  rt        j                  d       y| t        j                  d       y| t        j                  k(  rt        j                  d|        yt        j                  dt        |       |        y)z+inspect_handler() logs signal handler statez.Signal state [%s] - previously custom handler.z,Signal state [SIG_IGN] - previously ignored.Nz;Signal state [None] - previously not installed from Python.zISignal state [%s] - default way of handling signal was previously in use.zSignal state [%s(%s)] - unknown)callable
isinstancetypesBuiltinFunctionTypeLOGinfosignalSIG_IGNSIG_DFLwarningtype)r   s    :/usr/lib/python3/dist-packages/cloudinit/signal_handler.pyinspect_handlerr      s    } #u889HHEsK :		?@	NO		!	
 	5tCy#F    c                 J   ||kD  s| sy t        j                  |       }d|dz  z  }|j                  |d|j                  d       |j                  |d|j                  d       |j                  |d|j
                  d       t        | j                  |dz   ||       y )N    z
Filename: 
z
Function: zLine number:    )inspectgetframeinfowritefilenamefunctionlineno_pprint_framef_back)framedepth	max_depthcontents
frame_infoprefixs         r   r*   r*   5   s    y%%e,JEAIFNN1D1DEFNN1D1DEFNNFJ4E4EFG%,,	9h?r   c                    t        | t        j                        r| j                  n| }t	        t
        j                  t        j                         |            }t        |dt        |       t        j                  d| d|j                         z   t        t        j                          t#        j$                  d       y )Nr#   zReceived signal z resulting in exit. Cause:
)log	log_levelr   )r   r   Signalsnamer   r
   formatvrversion_stringr*   r   r	   	multi_loggetvaluer   loggingINFOsysexit)signumr,   r6   r/   s       r   _handle_exitrA   @   s    $VV^^<6;;&D**2+<+<+>EFH%2H=
4& <=



	,,	 HHQKr   c                      d} t         j                         D ]%  }t        t        j                  |t                     ' | t        t               z  } | S )zattach cloud-init's handlersr   )r   keysr   r   rA   len)sigs_attachedr@   s     r   attach_handlersrF   N   sC    M,,. =fl;<=S\!Mr   )!r$   r<   r   r>   r   ior   typingr   r   r   r   	cloudinitr   r8   cloudinit.logr	   	getLogger__name__r   r
   __annotations__r   SIGINTSIGTERMSIGABRTr   intstrr   r*   rA   rF    r   r   <module>rT      s       
   / / # "g!;U ; !  !
MMD
NNF
NNF"tCH~	 GsHd23 G G.@r   