o
    ix
                     @   s  d dl Z d dlmZ d dlmZ d dlmZ d dlm	Z	 d dlm
Z
 d dlmZ d dlmZ d d	lm Z d d
lmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ g dZdefddZ de!eef fddZ"dd Z#dd Z$dd Z%dS )    N)wrap_function_wrapper)config)Pin)_SPAN_MEASURED_KEY)	SPAN_KIND)SpanKind)	SpanTypes)consul)net)	COMPONENT)schematize_service_name)schematize_url_operation)SpanDirection)get_argument_value)unwrap)tracer)putgetdeletereturnc                   C   s   t tddS )N__version__ )getattrr	    r   r   Y/home/ubuntu/.local/lib/python3.10/site-packages/ddtrace/contrib/internal/consul/patch.pyget_version   s   r   c                   C   s   ddiS )Nr	   z>=1.1r   r   r   r   r   _supported_versions   s   r   c                  C   sV   t tddrd S dt_tttjd} | tjj	 t
D ]}tdd| t| qd S )N__datadog_patchFT)servicer	   zConsul.KV.%s)r   r	   r   r   r   consulxSERVICEontoConsulKV	_KV_FUNCS_wwrap_function)pinf_namer   r   r   patch    s   r)   c                  C   s2   t tddsd S dt_tD ]	} ttjj|  qd S )Nr   F)r   r	   r   r$   _ur"   r#   )r(   r   r   r   unpatch,   s   r+   c                    s    fdd}|S )Nc                    s
  t |}|r| s| |i |S t|jjtjjs"| |i |S t	||dd} 
 }tjttjdtjd|j|tjd<}|ttjj |tj|jjj |ttj |t d |tj!| |tj| | |i |W  d    S 1 s~w   Y  d S )Nr   keyhttp)protocol	direction)r   resource	span_type   )"r   get_fromenabled
isinstanceagentr-   r	   std
HTTPClientr   upperr   tracer   r   CMDr   OUTBOUNDr   r   HTTP_set_tag_strr   r   integration_namer
   TARGET_HOSThostr   r   CLIENT
set_metricr   KEY)wrappedinstanceargskwargsr'   pathr0   spannamer   r   
trace_func6   s,   
$z!wrap_function.<locals>.trace_funcr   )rL   rM   r   rK   r   r&   5   s   r&   )&r	   wraptr   r%   ddtracer   ddtrace._trace.pinr   ddtrace.constantsr   r   ddtrace.extr   r   r   r
   ddtrace.internal.constantsr   ddtrace.internal.schemar   r   -ddtrace.internal.schema.span_attribute_schemar   ddtrace.internal.utilsr   ddtrace.internal.utils.wrappersr   r*   ddtrace.tracer   r$   strr   dictr   r)   r+   r&   r   r   r   r   <module>   s.    	