a ì)gôã@s~ddlmZmZmZeZddlZddlZddlZddl m Z ddl m Z ddl mZmZddlmZeƒZGdd„deƒZdS) é)Úabsolute_importÚdivisionÚprint_functionN)Úto_text)ÚConnectionError)Ú binary_typeÚ text_type)ÚDisplayc@speZdZeƒZdd„Zdd„Zdd„Zddd „Zdd d „Z dd d „Z ddd„Z ddd„Z ddd„Z ddd„ZdS)Ú JsonRpcServerc Cst t|dd�¡}| d¡}| d¡s0| d¡rB| ¡}t |¡S| d¡\}}t|d| d¡ƒd}|jD]}t ||dƒ}|rlq†ql|s |  ¡}t |¡}�nhz||i|¤Ž} WnÌt �y.} zbt   t ¡¡z|j| jt| ƒd �}Wn$t�y|jt| ƒd �}Yn0t |¡}WYd} ~ nâd} ~ 0t�y~} z8t   t ¡¡|jt| dd�d �}t |¡}WYd} ~ n’d} ~ 00t| tƒ�rœd | v�rœ| }n | | ¡}zt |¡}WnRt�y} z8t   t ¡¡|jt| dd�d �}t |¡}WYd} ~ n d} ~ 00t|dƒ|S) NZsurrogate_then_replace)ÚerrorsÚmethodzrpc.Ú_ÚparamsÚ _identifierÚid©ÚcodeÚmessage)ÚdataÚjsonrpc)ÚjsonÚloadsrÚgetÚ startswithÚinvalid_requestÚdumpsÚsetattrÚ_objectsÚgetattrÚmethod_not_foundrÚdisplayZvvvÚ tracebackÚ format_excÚerrorrÚAttributeErrorÚinternal_errorÚ ExceptionÚ isinstanceÚdictÚresponseÚdelattr) ÚselfZrequestr r#ÚargsÚkwargsZ rpc_methodÚobjr)ÚresultÚexc©r1ú9/usr/lib/python3.9/site-packages/ansible/utils/jsonrpc.pyÚhandle_requestsN        zJsonRpcServer.handle_requestcCs|j |¡dS)N)rÚadd)r+r.r1r1r2ÚregisterKszJsonRpcServer.registercCs d|jdœS)Nz2.0)rr)r)r+r1r1r2ÚheaderNszJsonRpcServer.headerNcCsJ| ¡}t|tƒrt|ƒ}t|tƒs>d|d<ttj|dd�ƒ}||d<|S)NÚpickleZ result_typer)Zprotocolr/)r6r'rrrr7r)r+r/r)r1r1r2r)Qs  zJsonRpcServer.responsecCs*| ¡}||dœ}|r||d<||d<|S)Nrrr#)r6)r+rrrr)r#r1r1r2r#[s  zJsonRpcServer.errorcCs| dd|¡S)NiD€ÿÿz Parse error©r#©r+rr1r1r2Ú parse_errordszJsonRpcServer.parse_errorcCs| dd|¡S)Ni§€ÿÿzMethod not foundr8r9r1r1r2rgszJsonRpcServer.method_not_foundcCs| dd|¡S)Ni¨€ÿÿzInvalid requestr8r9r1r1r2rjszJsonRpcServer.invalid_requestcCs| dd|¡S)Ni¦€ÿÿzInvalid paramsr8r9r1r1r2Úinvalid_paramsmszJsonRpcServer.invalid_paramscCs| dd|¡S)Ni¥€ÿÿzInternal errorr8r9r1r1r2r%pszJsonRpcServer.internal_error)N)N)N)N)N)N)N)Ú__name__Ú __module__Ú __qualname__Úsetrr3r5r6r)r#r:rrr;r%r1r1r1r2r s4    r )Z __future__rrrÚtypeZ __metaclass__rr7r!Zansible.module_utils._textrZansible.module_utils.connectionrZansible.module_utils.sixrrZansible.utils.displayr r Úobjectr r1r1r1r2Ús