File: //lib/python3.9/site-packages/up2date_client/__pycache__/rhnserver.cpython-39.pyc
a
c8h;% � @ s� d dl mZ d dlmZ d dlmZ d dlmZ d dlZd dlZzd dlZW n e yj d dl
mZ Y n0 G dd� de�Z
G dd � d e�ZG d
d� de�ZdS )� )�
raise_with_tb)� rpcServer)�
up2dateErrors)�capabilitiesNc @ s0 e Zd ZdZdd� Zdd� Zdd� Zdd � Zd
S )�_DoCallWrapperze
A callable object that will handle multiple levels of attributes,
and catch exceptions.
c C s || _ || _d S �N)�_server�_method_name)�selfZserver�method_name� r �</usr/lib/python3.9/site-packages/up2date_client/rhnserver.py�__init__5 s z_DoCallWrapper.__init__c C s t | jd| j|f �S )z= Recursively build up the method name to pass to the server. z%s.%s)r r r �r
r r r r
�__getattr__9 s �z_DoCallWrapper.__getattr__c O s� t | j| j�}ztj|g|�R i |��W S tjyR t| �t �
� d �� Y n� tjj
y� tt �
� d �}|�d�}|�d�}d}t|�dkr�|d }nt|�dkr�|d }|�d�}|dkr�tt�� � ntt�|�� Y n0 dS ) z3 Call the method. Catch faults and translate them. � z[()]�,� � z 'zcertificate verify failedN)�getattrr r r ZdoCall� xmlrpclibZFaultr �$_DoCallWrapper__exception_from_fault�sys�exc_info�OpenSSLZSSL�Error�str�strip�split�lenr ZSSLCertificateVerifyFailedErrorZNetworkError)r
�args�kwargs�method�error�pieces�messager r r
�__call__>