summaryrefslogtreecommitdiffstats
path: root/ipalib/rpc.py
diff options
context:
space:
mode:
authorJason Gerard DeRose <jderose@redhat.com>2009-01-23 18:02:32 -0700
committerRob Crittenden <rcritten@redhat.com>2009-02-03 15:29:03 -0500
commit66b6029e4058e1d29f35e4170423d127c2ebb2c4 (patch)
treefdc6655aee4267166166c512229402a2e17c3188 /ipalib/rpc.py
parent0a3ae60038c7b672d83f24678e2d791b3cad443e (diff)
downloadfreeipa-66b6029e4058e1d29f35e4170423d127c2ebb2c4.tar.gz
freeipa-66b6029e4058e1d29f35e4170423d127c2ebb2c4.tar.xz
freeipa-66b6029e4058e1d29f35e4170423d127c2ebb2c4.zip
Ported xmlclient to subclass from Connectible
Diffstat (limited to 'ipalib/rpc.py')
-rw-r--r--ipalib/rpc.py29
1 files changed, 7 insertions, 22 deletions
diff --git a/ipalib/rpc.py b/ipalib/rpc.py
index b6db683e3..a70b372bd 100644
--- a/ipalib/rpc.py
+++ b/ipalib/rpc.py
@@ -35,7 +35,7 @@ import threading
import socket
from xmlrpclib import Binary, Fault, dumps, loads, ServerProxy, SafeTransport
import kerberos
-from ipalib.backend import Backend
+from ipalib.backend import Connectible
from ipalib.errors2 import public_errors, PublicError, UnknownError, NetworkError
from ipalib import errors2
from ipalib.request import context
@@ -205,35 +205,26 @@ class KerbTransport(SafeTransport):
return (host, extra_headers, x509)
-class xmlclient(Backend):
+class xmlclient(Connectible):
"""
Forwarding backend plugin for XML-RPC client.
Also see the `ipaserver.rpcserver.xmlserver` plugin.
"""
- connection_name = 'xmlconn'
-
def __init__(self):
super(xmlclient, self).__init__()
self.__errors = dict((e.errno, e) for e in public_errors)
- def connect(self, ccache=None, user=None, password=None):
- if hasattr(context, self.connection_name):
- raise StandardError(
- '%s.connect(): context.%s already exists in thread %r' % (
- self.name, self.connection_name, threading.currentThread().getName()
- )
- )
- conn = ServerProxy(self.env.xmlrpc_uri,
+ def create_connection(self, ccache=None):
+ return ServerProxy(self.env.xmlrpc_uri,
#transport=KerbTransport(),
allow_none=True,
encoding='UTF-8',
)
- setattr(context, self.connection_name, conn)
- def get_connection(self):
- return getattr(context, self.connection_name)
+ def destroy_connection(self):
+ pass
def forward(self, name, *args, **kw):
"""
@@ -250,13 +241,7 @@ class xmlclient(Backend):
raise ValueError(
'%s.forward(): %r not in api.Command' % (self.name, name)
)
- if not hasattr(context, 'xmlconn'):
- raise StandardError(
- '%s.forward(%r): need context.xmlconn in thread %r' % (
- self.name, name, threading.currentThread().getName()
- )
- )
- command = getattr(context.xmlconn, name)
+ command = getattr(self.conn, name)
params = args + (kw,)
try:
response = command(*xml_wrap(params))