From c7936656c06625f27a99ae6cd402ea00d4712c78 Mon Sep 17 00:00:00 2001 From: Brad Pokorny Date: Mon, 29 Jul 2013 20:42:17 +0000 Subject: [PATCH] Make middleware.py Python 2.6 compatible Fixes bug 1206256 In Python 2.6 xml.etree.ElementTree.fromstring raises xml.parsers.expat.ExpatError instead of xml.etree.ElementTree.ParseError when faced with invalid xml. This change catches an import error and uses ExpatError instead of ParseError. Change-Id: I8ab41328c8eeacc28f4e01d730c73ff251df4a25 --- ceilometer/api/middleware.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ceilometer/api/middleware.py b/ceilometer/api/middleware.py index 69b6f169e..0faffcb81 100644 --- a/ceilometer/api/middleware.py +++ b/ceilometer/api/middleware.py @@ -24,6 +24,10 @@ Based on pecan.middleware.errordocument import json import webob from xml import etree as et +try: + from xml.etree.ElementTree import ParseError +except ImportError: + from xml.parsers.expat import ExpatError as ParseError from ceilometer.openstack.common import log @@ -76,7 +80,7 @@ class ParsableErrorMiddleware(object): et.ElementTree.fromstring('' + '\n'.join(app_iter) + ''))] - except et.ElementTree.ParseError as err: + except ParseError as err: LOG.error('Error parsing HTTP response: %s' % err) body = ['%s' % state['status_code'] + '']