[Freeipa-devel] IPA Python API

Drew Erny derny at redhat.com
Tue Jun 23 20:36:16 UTC 2015


Resurrecting this thread, because the problem is getting me again.

If I go through the python interpreter and import the code that calls 
the ipalib, and then manually call it myself the way the webserver does, 
the code works. If the same code is run in the course of the web server 
process, I get the error:

Traceback (most recent call last):
   File "/home/derny/freeipa/env/lib/python2.7/site-packages/cherrypy/_cprequest.py", line 670, in respond
     response.body = self.handler()
   File "/home/derny/freeipa/env/lib/python2.7/site-packages/cherrypy/lib/encoding.py", line 217, in __call__
     self.body = self.oldhandler(*args, **kwargs)
   File "/home/derny/freeipa/env/lib/python2.7/site-packages/cherrypy/_cpdispatch.py", line 61, in __call__
     return self.callable(*self.args, **self.kwargs)
   File "freeipa_community_portal/app.py", line 39, in POST
     errors = user.save()
   File "freeipa_community_portal/model/user.py", line 33, in save
     self._call_api()
   File "freeipa_community_portal/model/user.py", line 45, in _call_api
     mail=self.email
   File "/usr/lib/python2.7/site-packages/ipalib/frontend.py", line 439, in __call__
     ret = self.run(*args, **options)
   File "/usr/lib/python2.7/site-packages/ipalib/frontend.py", line 755, in run
     return self.forward(*args, **options)
   File "/usr/lib/python2.7/site-packages/ipalib/frontend.py", line 776, in forward
     return self.Backend.rpcclient.forward(self.name, *args, **kw)
   File "/usr/lib/python2.7/site-packages/ipalib/rpc.py", line 880, in forward
     command = getattr(self.conn, name)
   File "/usr/lib/python2.7/site-packages/ipalib/backend.py", line 97, in __get_conn
     self.id, threading.currentThread().getName())
AttributeError: no context.rpcclient in thread 'CP Server Thread-6'

The error shows up whether the server is run from within the python 
interpreter or by itself.

I kinit and have a TGT from the IPA server. The client machine is 
registered with the IPA server. When I run the commands "by hand", an 
HTTP ticket can be seen in the klist. When I run the webserver, no HTTP 
ticket is ever recieved, so the code is failing on the client side 
before it even gets to the server.

Which is obviously not what should be happening. It's the same error I 
got when I was using Flask, and now I'm using cherrypy and it's still 
broken. Could this have something to do with the web server being a 
multithreaded environment?




More information about the Freeipa-devel mailing list