[Freeipa-devel] [PATCH] 186 Use XML routines in ra plugin

Rob Crittenden rcritten at redhat.com
Tue Apr 28 21:22:33 UTC 2009


Pavel Zuna wrote:
> Rob Crittenden wrote:
>> Pavel Zuna wrote:
>>> Rob Crittenden wrote:
>>>> Some of the data coming back from dogtag is a horrific javascript 
>>>> jumble, some of it is valid XML. In the case of XML lets use xml 
>>>> parsing functions instead.
>>>>
>>>> Also strip any CR/LF off stored passwords. Leaving them in will 
>>>> cause NSS certdb authentication issues.
>>>>
>>>> rob
>>> I don't know much about dogtag, but after playing a bit with 
>>> xml.dom.minidom, I think some of the checks in this patch need to be 
>>> changed.
>>>
>>> doc = xml.dom.minidom.parseString(stdout)
>>>
>>> item_node = doc.getElementByTagName('Status')
>>> # if there's no Status tag, item_node is empty, item_node[0] raises 
>>> IndexError
>>> # if the value is empty ('<Status></Status>') item_node[0].childNodes 
>>> is empty, item_node.childNodes[0] raises IndexError
>>> status = item_node[0].childNodes[0].data
>>> # I think that status will never be None at this point
>>> if status is not None:
>>> #...
>>>
>>> Something like this would probably make more sense:
>>>
>>> item_node = doc.getElementsByTagName('Status')
>>> try:
>>>     status = item_node[0].childNodes[0].data
>>> except (IndexError, AttributeError):
>>>     pass
>>> else:
>>>     response['status'] = status
>>>
>>> Other than that, it looks fine.
>>>
>>> As I said I know almost nothing about dogtag, so maybe I'm wrong. I'm 
>>> just commenting on what I can read from the code alone.
>>>
>>> Pavel
>>
>> Bah, thanks for catching that. I've attached a revised patch.
>>
>> rob
> 
> ack.
> 
> Pavel

pushed to master




More information about the Freeipa-devel mailing list