
    Vh                        d dl mZ d dlZd dlZd dlZd dlmZ d dlmZ d dl	m
Z
mZ d dlmZ  e       Z G d de      Zy)	    )annotationsN)to_text)ConnectionError)binary_type	text_type)Displayc                  d    e Zd Z e       Zd Zd Zd ZddZddZ	ddZ
ddZdd	Zdd
ZddZy)JsonRpcServerc                   t        j                  t        |d            }|j                  d      }|j	                  d      s|j	                  d      r%| j                         }t        j                  |      S |j                  d      \  }}t        | d|j                  d             d }| j                  D ]  }t        ||d       }|s n |s&| j                         }t        j                  |      }nG	  ||i |}	t        |	t              rd	|	v r|	}n| j                  |	      }	 t        j                  |      }t1        | d       |S # t        $ rc}
t        j!                  t#        j$                                | j'                  t        |
d      
      }t        j                  |      }Y d }
~
ud }
~
ww xY w# t(        $ r}
t        j!                  t#        j$                                	 | j+                  |
j,                  t        |
            }n*# t.        $ r | j'                  t        |
      
      }Y nw xY wt        j                  |      }Y d }
~
d }
~
wt        $ rd}
t        j!                  t#        j$                                | j'                  t        |
d      
      }t        j                  |      }Y d }
~
d }
~
ww xY w)Nsurrogate_then_replaceerrorsmethodzrpc._params_identifieridjsonrpc)datacodemessage)jsonloadsr   get
startswithinvalid_requestdumpssetattr_objectsgetattrmethod_not_found
isinstancedictresponse	Exceptiondisplayvvv	traceback
format_excinternal_errorr   errorr   AttributeErrordelattr)selfrequestr   r,   argskwargs
rpc_methodobjr%   resultexcs              E/home/dcms/DCMS/lib/python3.12/site-packages/ansible/utils/jsonrpc.pyhandle_requestzJsonRpcServer.handle_request   sC   **WW5MNOX&V$(9(9#(>((*E::e$${{8,fmW[[%67
== 	C fd3J	
 ))+Ezz%(H1#T4V4 fd+	V0C%H#}}V4H1#zz(3H 	m$ ! 1KK	 4 4 67 //WSIa5b/cE#zz%0H1' # -I0023C JJCHHgclJKE% C //WS\/BEC::e, -I0023++E]1^+_::e,-sb   6F9 'E
 
	F6AF11F69	K'I*&HI$H85I7H88IK"AKKc                :    | j                   j                  |       y N)r    add)r/   r4   s     r7   registerzJsonRpcServer.registerJ   s    #    c                     d| j                   dS )Nz2.0)r   r   )r   )r/   s    r7   headerzJsonRpcServer.headerM   s     (8(899r=   Nc                    | j                         }t        |t              rt        |      }t        |t              s%d|d<   t        t        j                  |      d      }||d<   |S )Npickleresult_typesurrogateescaper   r5   )r?   r#   r   r   r   rA   r   )r/   r5   r%   s      r7   r%   zJsonRpcServer.responseP   sY    ;;=fk*V_F&),&.H]#V\\&1:KLF#r=   c                H    | j                         }||d}|r||d<   ||d<   |S )Nr   r   r,   )r?   )r/   r   r   r   r%   r,   s         r7   r,   zJsonRpcServer.errorZ   s2    ;;='2 E&M!r=   c                (    | j                  dd|      S )NiDzParse errorr,   r/   r   s     r7   parse_errorzJsonRpcServer.parse_errorc   s    zz&-66r=   c                (    | j                  dd|      S )NizMethod not foundrF   rG   s     r7   r"   zJsonRpcServer.method_not_foundf   s    zz&"4d;;r=   c                (    | j                  dd|      S )NizInvalid requestrF   rG   s     r7   r   zJsonRpcServer.invalid_requesti   s    zz&"3T::r=   c                (    | j                  dd|      S )NizInvalid paramsrF   rG   s     r7   invalid_paramszJsonRpcServer.invalid_paramsl       zz&"2D99r=   c                (    | j                  dd|      S )NizInternal errorrF   rG   s     r7   r+   zJsonRpcServer.internal_erroro   rM   r=   r:   )__name__
__module____qualname__setr    r8   r<   r?   r%   r,   rH   r"   r   rL   r+    r=   r7   r
   r
      s<    uH2h:7<;::r=   r
   )
__future__r   r   rA   r)   +ansible.module_utils.common.text.convertersr   ansible.module_utils.connectionr   ansible.module_utils.sixr   r   ansible.utils.displayr   r'   objectr
   rS   r=   r7   <module>rZ      s4    #    ? ; ; )
)^:F ^:r=   