On 03/12/2015 01:46 PM, Martin Kosek wrote: > On 03/12/2015 07:24 PM, Erinn Looney-Triggs wrote: >> On 03/12/2015 02:10 AM, Jan Cholasta wrote: >>> Dne 12.3.2015 v 08:25 Martin Kosek napsal(a): >>>> On 03/11/2015 09:05 PM, Dmitri Pal wrote: >>>>> On 03/11/2015 03:15 PM, Erinn Looney-Triggs wrote: >>>> ... >>>>>> Third, there appears to be a behavior change from in ipalib. >>>>>> I cleaned up a little inventory script for ansible, you can >>>>>> take a look at it here: >>>>>> https://github.com/ansible/ansible/blob/devel/plugins/inventory/freeipa.py >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >> Before RHEL 7.1 the call to api.Command.hostgroup_find()['result'] >>>>>> on line 30 worked, now it fails: >>>>>> >>>>>> Traceback (most recent call last): File "./freeipa.py", line >>>>>> 133, in <module> list_groups(api) File "./freeipa.py", line >>>>>> 71, in list_groups result = >>>>>> api.Command.host_find()['result'] 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 'MainThread' >>>>>> >>>>>> Is this expected? Is this a regression? >>>>> >>>>> Some things changed. I would leave for developers to take a >>>>> look and provide more guidance. >>>> >>>> Erinn, it may help us if you share the whole sequence how you >>>> bootstrap and authenticatoin the API. Honza, was there any >>>> related change causing ^^^? >>>> >>> >>> https://fedorahosted.org/freeipa/ticket/3299 >>> >>> There is api.Backend.xmlclient.connect() in the code, but JSON-RPC >>> is now used by default. This can be fixed by calling >>> api.Backend.rpcclient.connect() instead. >>> >> >> Thanks, is this backwards compatible? Or will I need to run a check >> for the IPA version? > > Unfortunately, I do not think this is backwards compatible. I would > suggest compatibility code like: > > try: > client = api.Backend.rpcclient > except AttributeError: > # Compatibility with FreeIPA < 4.0 > client = api.Backend.xmlclient > > client.connect() > > Sorry for inconvenience. > > Martin
That's fine, it happens, thanks for all the information. -Erinn -- Manage your subscription for the Freeipa-users mailing list: https://www.redhat.com/mailman/listinfo/freeipa-users Go to http://freeipa.org for more info on the project
