[Freeipa-users] Alpha 2 Bugs or Misconfigurations?

Rob Crittenden rcritten at redhat.com
Fri Feb 19 04:04:42 UTC 2010


Ryan Thomson wrote:
> Hi,
> 
> First off, thanks to the freeIPA team for releasing the next iteration 
> of v2! I eagerly follow this project despite my limited deployment 
> goals. As such, I've already downloaded the source code and built it on 
> my Fedora 12 PPC server (IBM p505) for testing.

Wow, nice!

> The new web UI is definitely a move in the right direction! Good work. 
> It's quite difficult to judge the workflow at this point though because 
> there's a couple problems I'm facing that seem like bugs or errors in my 
> installation/configuration which prevent me from really starting to 
> hammer data into the UI.
> 
> On both the Automount Maps and Automount Keys pages, I can't see any of 
> the existing automount entries. An error is displayed above the table: 
> "'cn' is required". I'm thinking this might be referring to the cn for 
> the automount "location" being missing/not provided? Is there someone to 
> provide it that I'm just obviously missing?
> 
> When I use the "ipa" command on the CLI, I can verify the existence of 
> my entry:
> 
> # ipa automountkey-find
> Location: default
> Map: auto.home
>  <automountkey>: ryan
>  <automountinformation>: -wsize=65536,rsize=65536,intr dnsname:/home/ryan
> ----------------------------
> Number of entries returned 1
> ----------------------------
> 
> but browsing from the web UI, both the key and map tables appear empty. 
> I can however create automount key and map entries through the web UI 
> and when I do so, I can see the entry listed right after I create it but 
> once I navigate away from the map or key page and go back, it's gone 
> with the "'cn' is required' error in bold red again. Looking in the 
> httpd error logs, this is all I get when viewing the key or map pages:
> 
> ipa: INFO: Created connection context.ldap2
> ipa: INFO: Destroyed connection context.ldap2
> ipa: INFO: Created connection context.ldap2
> ipa: DEBUG: raw: automountmap_find(u'', None)
> ipa: INFO: automountmap_find(None, None, all=False, raw=False)
> ipa: INFO: Destroyed connection context.ldap2
> 
> It seems like automountmap_find() maybe isn't specifying any automount 
> "location" for where to find entries for but I'm not entirely certain 
> here. Is there somewhere I'm missing in the UI where I can specify 
> automount location I want to work with?

Yes, I think you're on the right path. We may need to add some 
additional meta-data to help the UI know what to do.

The command-line has another option, automountlocation-tofiles, which 
should spit out the maps as they would appear in discrete files if you 
weren't storing the data in LDAP. I use this to help check my work but 
I'm not sure it's all that useful otherwise. Does this seem like 
something you might use?

> Next, on the "Services" page of the web UI, I see an error in bold red 
> above the table which says "Request failed to /ipa/json". Checking my 
> httpd error logs, I find the following error:
> 
> ipa: ERROR: jsonserver.__call__():
> Traceback (most recent call last):
>  File "/usr/lib/python2.6/site-packages/ipaserver/rpcserver.py", line 
> 141, in __call__
>    response = self.wsgi_execute(environ)
>  File "/usr/lib/python2.6/site-packages/ipaserver/rpcserver.py", line 
> 128, in wsgi_execute
>    return self.marshal(result, error, _id)
>  File "/usr/lib/python2.6/site-packages/ipaserver/rpcserver.py", line 
> 244, in marshal
>    return json.dumps(response, sort_keys=True, indent=4)
>  File "/usr/lib/python2.6/json/__init__.py", line 237, in dumps
>    **kw).encode(obj)
>  File "/usr/lib/python2.6/json/encoder.py", line 367, in encode
>    chunks = list(self.iterencode(o))
>  File "/usr/lib/python2.6/json/encoder.py", line 309, in _iterencode
>    for chunk in self._iterencode_dict(o, markers):
>  File "/usr/lib/python2.6/json/encoder.py", line 275, in _iterencode_dict
>    for chunk in self._iterencode(value, markers):
>  File "/usr/lib/python2.6/json/encoder.py", line 309, in _iterencode
>    for chunk in self._iterencode_dict(o, markers):
>  File "/usr/lib/python2.6/json/encoder.py", line 275, in _iterencode_dict
>    for chunk in self._iterencode(value, markers):
>  File "/usr/lib/python2.6/json/encoder.py", line 306, in _iterencode
>    for chunk in self._iterencode_list(o, markers):
>  File "/usr/lib/python2.6/json/encoder.py", line 204, in _iterencode_list
>    for chunk in self._iterencode(value, markers):
>  File "/usr/lib/python2.6/json/encoder.py", line 309, in _iterencode
>    for chunk in self._iterencode_dict(o, markers):
>  File "/usr/lib/python2.6/json/encoder.py", line 275, in _iterencode_dict
>    for chunk in self._iterencode(value, markers):
>  File "/usr/lib/python2.6/json/encoder.py", line 306, in _iterencode
>    for chunk in self._iterencode_list(o, markers):
>  File "/usr/lib/python2.6/json/encoder.py", line 204, in _iterencode_list
>    for chunk in self._iterencode(value, markers):
>  File "/usr/lib/python2.6/json/encoder.py", line 294, in _iterencode
>    yield encoder(o)
> UnicodeDecodeError: 'utf8' codec can't decode byte 0x82 in position 1: 
> unexpected code byte
> 
> Unfortunately, I'm not entirely certain where to start investigating 
> this problem as I don't posses any significant knowledge of python, JSON 
> or UTF encoding!

It is probably choking on displaying the SSL certificate stored within 
the service. We have some special handling for this on the command-line 
(we base64-encode it), I guess we need something similar in the UI.

> Let me know how I can help discover what is going on here and then I'll 
> get to doing the more interesting testing of UI workflow, layout, etc.

You've done most of the legwork already on the automount problem, I 
think enough for us to figure out the problem. I recognize the encoding 
problem from running into it on the cli so fixing it should be 
relatively straightforward (famous last words).

Thanks for the bug reports!

cheers

rob

rob




More information about the Freeipa-users mailing list