HEX
Server: Apache
System: Linux 185.122.168.184.host.secureserver.net 5.14.0-570.60.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Nov 5 05:00:59 EST 2025 x86_64
User: barbeatleanalyti (1024)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //var/opt/nydus/ops/primordial/log/__pycache__/envelope.cpython-39.pyc
a

�,�h�@s�ddlZddlZddlZddlmZddlmZddlZddlmZddl	m
Z
ddlmZddl
mZmZmZmZmZe�e�ZGdd	�d	eejd
�ZGdd�de�ZdS)
�N)�datetime)�Optional)�iso8601_utc)�LogExtra)�LogData)�EnvelopeVersion�EnvelopeRole�
ConfigLogData�HostLogData�PayloadLogDatac@s8eZdZdZdZdZedeje	e
edd�dd��ZdS)	�Envelopez�Customized envelope for sending log data.

    Given a log record, envelope version and configuration data, constructs a
    log message in the required format which can be returned as a json.
    Zenvelope_versionZdata_schemaN)�record�
configLogData�envelopeVersion�returnc
Cs�t|tji�}d}t|t�rfztjfi|��}Wn4tyd}zt�dt	|��WYd}~n
d}~00t|t
�s�t
�}t|t�r�|�tj
�dur�|�tj
�}t
�|�}|�t
j�}|dkr�t||||�St�dt	|��t�||t
��S)aA factory method for producing an Envelope instance.

        :param record: The log record
        :param configLogData: The logging data
        :param envelopeVersion: The version of the envelope
        :returns: A new Envelope object
        :rtype: :class:`Envelope`
        N�&Unable to process extra log fields: %s�z<Unknown log envelope major version %s. Using default version)�getattrr�EXTRA_FIELD�
isinstance�dictZgetLogExtra�	Exception�LOG�error�strr�getr�ENVELOPE_VERSION_FIELDZ
fromStringZMAJOR_FIELD�
EnvelopeV1�getEnvelope)r
rr�extra�logextra�e�version�major�r$�H/opt/nydus/tmp/pip-target-wkfpz8uv/lib/python/primordial/log/envelope.pyrs$
&


zEnvelope.getEnvelope)N)
�__name__�
__module__�__qualname__�__doc__r�DATA_SCHEMA_FIELD�staticmethod�logging�	LogRecordr	rrrr$r$r$r%rs��r)�	metaclassc
seZdZdZdZdZdZejZdZ	dZ
dZej
Z
dZd	Zd
ZdZdZejZee
eeee	ee
eeeeef
Ze
eeeee
fZejejfZejeeed
d��fdd�Zejd
d��fdd�Zd
d�dd�Z d
d�dd�Z!d
d�dd�Z"d
d�dd�Z#d
d�dd�Z$d
d�dd �Z%�Z&S)!rz"Version 1 of the logging envelope.Zbrand_idZ
datacenter�environment�host�dataZ
request_idZ
session_idZseverityZsub_type�	timestamp�typeN)r
rrr rcsBt���||_||_|�|jt|��||_d|_|�	|�dS�N)
�super�__init__rr�setrrr �payloadLogData�load)�selfr
rrr ��	__class__r$r%r6ps
zEnvelopeV1.__init__)r
rcs@t��|�|��|��|��|��|��|��dSr4)r5r9�loadDefaults�
loadConfig�loadRecordFields�loadHost�loadPayload�	loadExtra)r:r
r;r$r%r9}szEnvelopeV1.load)rcCsB|�|jd�|�|jd�|�|jtt���|�|jd�dS)zLoad default fields.N)r7�BRAND_ID_FIELD�REQUEST_ID_FIELD�
ROLE_FIELDrr�SESSION_ID_FIELD�r:r$r$r%r=�szEnvelopeV1.loadDefaultscCsd|�|j|j�tj��|�|j|j�tj��|�|j|j�tj��|�|j|j�tj��dS)zLoad configuration data.N)r7�DATACENTER_FIELDrrr	�ENVIRONMENT_FIELD�SUB_TYPE_FIELD�
TYPE_FIELDrGr$r$r%r>�szEnvelopeV1.loadConfigcCs t|j�|_|�|j|j�dS)z%Load the payload from the log record.N)rr
r8r7�
PAYLOAD_FIELDrGr$r$r%rA�szEnvelopeV1.loadPayloadcCs|�|jt|j��dS)zLoad the host data.N)r7�
HOST_FIELDr
r
rGr$r$r%r@�szEnvelopeV1.loadHostcCs:tt�|jjtj��}|�|j|�|�|j	|jj
�dS)z)Load relevant fields from the log record.N)rr�
fromtimestampr
�created�pytz�utcr7�TIMESTAMP_FIELD�SEVERITY_FIELD�	levelname)r:r2r$r$r%r?�szEnvelopeV1.loadRecordFieldsc
Cs�t|jt�r�z�|j��tj��D]z\}}||jvr6q"||jvr�||jkr�t|t	�rv|��D]\}}|j
�||�q\q�td��q�|�||�q"|j
�||�q"Wn4t
y�}zt�dt|��WYd}~n
d}~00dS)zLoad any "extra" data.zPayload is not of type 'dict'rN)rr rrr�items�EXTRA_IGNORE_FIELDS�EXTRA_MODIFIABLE_FIELDSrLrr8r7�
ValueErrorrrrr)r:�k�v�key�valr!r$r$r%rB�s




zEnvelopeV1.loadExtra)'r&r'r(r)rCrHrIrrrMrLrDrrErFrSrJrRrKZROLE_DEVELOPMENTZDEFAULT_ROLEZFIELDSrWr*rVr,r-rr	rr6r9r=r>rAr@r?rB�
__classcell__r$r$r;r%rCsb��	�
	r)�abcr,�logging.configr�typingrrPZprimordial.timeutilsrZprimordial.log.extrarZprimordial.log.datarZprimordial.log.envelopedatarrr	r
r�	getLoggerr&r�ABCMetarrr$r$r$r%�<module>s
.