boto/boto — pull request #477 by gholms (2012-01-16 23:28:26+00:00)
Title: XmlHandler's list/item markers should propagate to all child elements

XmlHandlers are currently incapable of parsing structures that contain nested lists correctly because elements don't always pass their list_marker and item_marker lists to their children, causing those lists to revert to their default values when the parser is already building a ListElement.

For example, try parsing this response with list_markers = ['euca:registered', 'euca:instances'] and list_items = ['euca:item']:

```xml

true

192.168.37.9
zone01cc01

i-E3BC3F7E

i-C294423D

```

Parsing that XML without this patch yields this dict, which fails to convert 'euca:instances' to a list:

```python
{u'euca:DescribeNodesResponseType': {u'euca:ConfigurationMessage': {u'euca:_disabledServices': {},
u'euca:_notreadyServices': {},
u'euca:_return': u'true',
u'euca:_services': {}},
u'euca:registered': [{u'euca:clusterName': u'zone01cc01',
u'euca:instances': {u'euca:item': {u'euca:entry': u'i-C294423D'}},
u'euca:name': u'192.168.37.9'}]}}
```

With the patch, 'euca:instances' points to a list as one would expect:

```python
{u'euca:DescribeNodesResponseType': {u'euca:ConfigurationMessage': {u'euca:_disabledServices': {},
u'euca:_notreadyServices': {},
u'euca:_return': u'true',
u'euca:_services': {}},
u'euca:registered': [{u'euca:clusterName': u'zone01cc01',
u'euca:instances': [{u'euca:entry': u'i-E3BC3F7E'},
{u'euca:entry': u'i-C294423D'}],
u'euca:name': u'192.168.37.9'}]}}
```