diff options
author | Chuck Short <chuck.short@canonical.com> | 2012-04-30 13:52:37 -0400 |
---|---|---|
committer | Chuck Short <chuck.short@canonical.com> | 2012-04-30 15:10:19 -0400 |
commit | 7a5c505a3bc22a1542791b6f32ceaf0f0ec17a63 (patch) | |
tree | a4f5588a2eec22ad02b1a1d7ef591fdbd59931cb /nova | |
parent | 1c127f79c3331bc74b0b74c4eade87be695a8828 (diff) | |
download | nova-7a5c505a3bc22a1542791b6f32ceaf0f0ec17a63.tar.gz nova-7a5c505a3bc22a1542791b6f32ceaf0f0ec17a63.tar.xz nova-7a5c505a3bc22a1542791b6f32ceaf0f0ec17a63.zip |
Clean up ElementTree usage
Use lxml in favor of ElementTree to
make things more consistent.
Fixes LP: #953449
Change-Id: I7f48528d7df47fe7207ca88bce196dea7535df0e
Signed-off-by: Chuck Short <chuck.short@canonical.com>
Diffstat (limited to 'nova')
-rw-r--r-- | nova/image/s3.py | 4 | ||||
-rw-r--r-- | nova/tests/api/ec2/test_middleware.py | 5 | ||||
-rw-r--r-- | nova/tests/fakelibvirt.py | 21 | ||||
-rw-r--r-- | nova/tests/test_fakelibvirt.py | 10 | ||||
-rw-r--r-- | nova/tests/test_libvirt.py | 20 | ||||
-rw-r--r-- | nova/tests/test_libvirt_vif.py | 14 | ||||
-rw-r--r-- | nova/virt/libvirt/connection.py | 25 | ||||
-rw-r--r-- | nova/volume/san.py | 9 |
8 files changed, 51 insertions, 57 deletions
diff --git a/nova/image/s3.py b/nova/image/s3.py index fdf955515..1b8b76596 100644 --- a/nova/image/s3.py +++ b/nova/image/s3.py @@ -24,10 +24,10 @@ import os import shutil import tarfile import tempfile -from xml.etree import ElementTree import boto.s3.connection import eventlet +from lxml import etree from nova import rpc from nova import exception @@ -180,7 +180,7 @@ class S3ImageService(object): return local_filename def _s3_parse_manifest(self, context, metadata, manifest): - manifest = ElementTree.fromstring(manifest) + manifest = etree.fromstring(manifest) image_format = 'ami' image_type = 'machine' diff --git a/nova/tests/api/ec2/test_middleware.py b/nova/tests/api/ec2/test_middleware.py index 62e12abaa..d032d1ea3 100644 --- a/nova/tests/api/ec2/test_middleware.py +++ b/nova/tests/api/ec2/test_middleware.py @@ -16,6 +16,7 @@ # License for the specific language governing permissions and limitations # under the License. +from lxml import etree import webob import webob.dec import webob.exc @@ -27,8 +28,6 @@ from nova import flags from nova import test from nova import utils -from xml.etree import ElementTree - FLAGS = flags.FLAGS @@ -108,7 +107,7 @@ class ExecutorTestCase(test.TestCase): return self.executor(fake_wsgi_request) def _extract_message(self, result): - tree = ElementTree.fromstring(result.body) + tree = etree.fromstring(result.body) return tree.findall('./Errors')[0].find('Error/Message').text def test_instance_not_found(self): diff --git a/nova/tests/fakelibvirt.py b/nova/tests/fakelibvirt.py index 24ff5ae55..5a317dca1 100644 --- a/nova/tests/fakelibvirt.py +++ b/nova/tests/fakelibvirt.py @@ -14,12 +14,7 @@ # License for the specific language governing permissions and limitations # under the License. -from xml.etree import ElementTree -try: - ParseError = ElementTree.ParseError -except AttributeError: - from xml.parsers import expat - ParseError = expat.ExpatError +from lxml import etree import uuid @@ -141,7 +136,7 @@ class NWFilter(object): self._parse_xml(xml) def _parse_xml(self, xml): - tree = ElementTree.fromstring(xml) + tree = etree.fromstring(xml) root = tree.find('.') self._name = root.get('name') @@ -163,8 +158,8 @@ class Domain(object): def _parse_definition(self, xml): try: - tree = ElementTree.fromstring(xml) - except ParseError: + tree = etree.fromstring(xml) + except etree.ParseError: raise libvirtError(VIR_ERR_XML_DETAIL, VIR_FROM_DOMAIN, "Invalid XML.") @@ -301,13 +296,13 @@ class Domain(object): 123456789L] def attachDevice(self, xml): - disk_info = _parse_disk_info(ElementTree.fromstring(xml)) + disk_info = _parse_disk_info(etree.fromstring(xml)) disk_info['_attached'] = True self._def['devices']['disks'] += [disk_info] return True def detachDevice(self, xml): - disk_info = _parse_disk_info(ElementTree.fromstring(xml)) + disk_info = _parse_disk_info(etree.fromstring(xml)) disk_info['_attached'] = True return disk_info in self._def['devices']['disks'] @@ -404,7 +399,7 @@ class Domain(object): self._state = VIR_DOMAIN_RUNNING def snapshotCreateXML(self, xml, flags): - tree = ElementTree.fromstring(xml) + tree = etree.fromstring(xml) name = tree.find('./name').text snapshot = DomainSnapshot(name, self) self._snapshots[name] = snapshot @@ -741,7 +736,7 @@ class Connection(object): </capabilities>''' def compareCPU(self, xml, flags): - tree = ElementTree.fromstring(xml) + tree = etree.fromstring(xml) arch_node = tree.find('./arch') if arch_node is not None: diff --git a/nova/tests/test_fakelibvirt.py b/nova/tests/test_fakelibvirt.py index ac3ceea2d..51ff55b10 100644 --- a/nova/tests/test_fakelibvirt.py +++ b/nova/tests/test_fakelibvirt.py @@ -16,7 +16,7 @@ from nova import test -from xml.etree import ElementTree +from lxml import etree import fakelibvirt as libvirt @@ -252,7 +252,7 @@ class FakeLibvirtTests(test.TestCase): conn.defineXML(get_vm_xml()) dom = conn.lookupByName('testname') xml = dom.XMLDesc(0) - ElementTree.fromstring(xml) + etree.fromstring(xml) def _test_accepts_source_type(self, source_type): conn = self.get_openAuth_curry_func()('qemu:///system') @@ -260,7 +260,7 @@ class FakeLibvirtTests(test.TestCase): conn.defineXML(get_vm_xml(source_type=source_type)) dom = conn.lookupByName('testname') xml = dom.XMLDesc(0) - tree = ElementTree.fromstring(xml) + tree = etree.fromstring(xml) elem = tree.find('./devices/disk/source') self.assertEquals(elem.get('file'), '/somefile') @@ -282,7 +282,7 @@ class FakeLibvirtTests(test.TestCase): conn.defineXML(get_vm_xml(interface_type=network_type)) dom = conn.lookupByName('testname') xml = dom.XMLDesc(0) - tree = ElementTree.fromstring(xml) + tree = etree.fromstring(xml) elem = tree.find('./devices/interface') self.assertEquals(elem.get('type'), network_type) elem = elem.find('./source') @@ -298,7 +298,7 @@ class FakeLibvirtTests(test.TestCase): def test_getCapabilities(self): conn = self.get_openAuth_curry_func()('qemu:///system') - ElementTree.fromstring(conn.getCapabilities()) + etree.fromstring(conn.getCapabilities()) def test_nwfilter_define_undefine(self): conn = self.get_openAuth_curry_func()('qemu:///system') diff --git a/nova/tests/test_libvirt.py b/nova/tests/test_libvirt.py index 61cb2a32a..2343955ba 100644 --- a/nova/tests/test_libvirt.py +++ b/nova/tests/test_libvirt.py @@ -24,7 +24,7 @@ import shutil import sys import tempfile -from xml.etree import ElementTree +from lxml import etree from xml.dom import minidom from nova import context @@ -884,7 +884,7 @@ class LibvirtConnTestCase(test.TestCase): conn = connection.LibvirtConnection(True) instance_ref = db.instance_create(self.context, instance_data) xml = conn.to_xml(instance_ref, network_info, None, False) - tree = ElementTree.fromstring(xml) + tree = etree.fromstring(xml) interfaces = tree.findall("./devices/interface") self.assertEquals(len(interfaces), 2) parameters = interfaces[0].findall('./filterref/parameter') @@ -906,7 +906,7 @@ class LibvirtConnTestCase(test.TestCase): network_info = _fake_network_info(self.stubs, 1) xml = conn.to_xml(instance_ref, network_info) - tree = ElementTree.fromstring(xml) + tree = etree.fromstring(xml) check = [ (lambda t: t.find('.').get('type'), 'lxc'), @@ -947,7 +947,7 @@ class LibvirtConnTestCase(test.TestCase): network_info = _fake_network_info(self.stubs, 1) xml = conn.to_xml(instance_ref, network_info) - tree = ElementTree.fromstring(xml) + tree = etree.fromstring(xml) for i, (check, expected_result) in enumerate(checks): self.assertEqual(check(tree), @@ -982,7 +982,7 @@ class LibvirtConnTestCase(test.TestCase): xml = connection.LibvirtConnection(True).to_xml(instance_ref, network_info, image_meta) - tree = ElementTree.fromstring(xml) + tree = etree.fromstring(xml) disks = tree.findall('./devices/disk/driver') for disk in disks: self.assertEqual(disk.get("cache"), "none") @@ -994,7 +994,7 @@ class LibvirtConnTestCase(test.TestCase): xml = connection.LibvirtConnection(True).to_xml(instance_ref, network_info, image_meta) - tree = ElementTree.fromstring(xml) + tree = etree.fromstring(xml) disks = tree.findall('./devices/disk/driver') for disk in disks: self.assertEqual(disk.get("cache"), "writethrough") @@ -1007,7 +1007,7 @@ class LibvirtConnTestCase(test.TestCase): xml = connection.LibvirtConnection(True).to_xml(instance_ref, network_info, image_meta) - tree = ElementTree.fromstring(xml) + tree = etree.fromstring(xml) self.assertEqual(tree.find('./devices/disk').get('device'), device_type) self.assertEqual(tree.find('./devices/disk/target').get('bus'), bus) @@ -1020,7 +1020,7 @@ class LibvirtConnTestCase(test.TestCase): xml = connection.LibvirtConnection(True).to_xml(instance_ref, network_info, image_meta) - tree = ElementTree.fromstring(xml) + tree = etree.fromstring(xml) self.assertEqual(tree.find('./uuid').text, instance_ref['uuid']) @@ -1119,7 +1119,7 @@ class LibvirtConnTestCase(test.TestCase): network_info = _fake_network_info(self.stubs, 1) xml = conn.to_xml(instance_ref, network_info, None, rescue) - tree = ElementTree.fromstring(xml) + tree = etree.fromstring(xml) for i, (check, expected_result) in enumerate(checks): self.assertEqual(check(tree), expected_result, @@ -1676,7 +1676,7 @@ class NWFilterFakes: def undefine(self): del self.parent.filters[self.name] pass - tree = ElementTree.fromstring(xml) + tree = etree.fromstring(xml) name = tree.get('name') if name not in self.filters: self.filters[name] = FakeNWFilterInternal(self, name) diff --git a/nova/tests/test_libvirt_vif.py b/nova/tests/test_libvirt_vif.py index 2cc1abcef..dfa18325a 100644 --- a/nova/tests/test_libvirt_vif.py +++ b/nova/tests/test_libvirt_vif.py @@ -14,15 +14,15 @@ # License for the specific language governing permissions and limitations # under the License. -from xml.etree import ElementTree +from lxml import etree from nova import flags from nova import test from nova import utils from nova.virt import firewall -from nova.virt.libvirt import vif -from nova.virt.libvirt import connection from nova.virt.libvirt import config +from nova.virt.libvirt import connection +from nova.virt.libvirt import vif FLAGS = flags.FLAGS @@ -83,7 +83,7 @@ class LibvirtVifTestCase(test.TestCase): d = vif.LibvirtBridgeDriver() xml = self._get_instance_xml(d) - doc = ElementTree.fromstring(xml) + doc = etree.fromstring(xml) ret = doc.findall('./devices/interface') self.assertEqual(len(ret), 1) node = ret[0] @@ -99,7 +99,7 @@ class LibvirtVifTestCase(test.TestCase): d = vif.LibvirtOpenVswitchDriver() xml = self._get_instance_xml(d) - doc = ElementTree.fromstring(xml) + doc = etree.fromstring(xml) ret = doc.findall('./devices/interface') self.assertEqual(len(ret), 1) node = ret[0] @@ -117,7 +117,7 @@ class LibvirtVifTestCase(test.TestCase): d = vif.LibvirtOpenVswitchVirtualPortDriver() xml = self._get_instance_xml(d) - doc = ElementTree.fromstring(xml) + doc = etree.fromstring(xml) ret = doc.findall('./devices/interface') self.assertEqual(len(ret), 1) node = ret[0] @@ -143,7 +143,7 @@ class LibvirtVifTestCase(test.TestCase): d = vif.QuantumLinuxBridgeVIFDriver() xml = self._get_instance_xml(d) - doc = ElementTree.fromstring(xml) + doc = etree.fromstring(xml) ret = doc.findall('./devices/interface') self.assertEqual(len(ret), 1) node = ret[0] diff --git a/nova/virt/libvirt/connection.py b/nova/virt/libvirt/connection.py index b8ac5f0f7..234d94afd 100644 --- a/nova/virt/libvirt/connection.py +++ b/nova/virt/libvirt/connection.py @@ -39,8 +39,8 @@ Supports KVM, LXC, QEMU, UML, and XEN. """ import errno -import hashlib import functools +import hashlib import glob import multiprocessing import os @@ -51,9 +51,8 @@ import uuid from eventlet import greenthread from eventlet import tpool - +from lxml import etree from xml.dom import minidom -from xml.etree import ElementTree from nova import block_device from nova.compute import instance_types @@ -528,7 +527,7 @@ class LibvirtConnection(driver.ComputeDriver): def _get_disk_xml(xml, device): """Returns the xml for the disk mounted at device""" try: - doc = ElementTree.fromstring(xml) + doc = etree.fromstring(xml) except Exception: return None ret = doc.findall('./devices/disk') @@ -536,7 +535,7 @@ class LibvirtConnection(driver.ComputeDriver): for child in node.getchildren(): if child.tag == 'target': if child.get('dev') == device: - return ElementTree.tostring(node) + return etree.tostring(node) @exception.wrap_exception() def detach_volume(self, connection_info, instance_name, mountpoint): @@ -586,7 +585,7 @@ class LibvirtConnection(driver.ComputeDriver): @staticmethod def get_lxc_container_root(virt_dom): xml = virt_dom.XMLDesc(0) - doc = ElementTree.fromstring(xml) + doc = etree.fromstring(xml) filesystem_block = doc.findall('./devices/filesystem') for cnt, filesystem_nodes in enumerate(filesystem_block): return filesystem_nodes[cnt].get('dir') @@ -661,7 +660,7 @@ class LibvirtConnection(driver.ComputeDriver): # Find the disk xml_desc = virt_dom.XMLDesc(0) - domain = ElementTree.fromstring(xml_desc) + domain = etree.fromstring(xml_desc) source = domain.find('devices/disk/source') disk_path = source.get('file') @@ -946,7 +945,7 @@ class LibvirtConnection(driver.ComputeDriver): def get_console_output(self, instance): virt_dom = self._lookup_by_name(instance['name']) xml = virt_dom.XMLDesc(0) - tree = ElementTree.fromstring(xml) + tree = etree.fromstring(xml) console_types = {} @@ -1746,7 +1745,7 @@ class LibvirtConnection(driver.ComputeDriver): for dom_id in self._conn.listDomainsID(): domain = self._conn.lookupByID(dom_id) try: - doc = ElementTree.fromstring(domain.XMLDesc(0)) + doc = etree.fromstring(domain.XMLDesc(0)) except Exception: continue ret = doc.findall('./devices/disk') @@ -1769,7 +1768,7 @@ class LibvirtConnection(driver.ComputeDriver): doc = None try: - doc = ElementTree.fromstring(xml) + doc = etree.fromstring(xml) except Exception: return [] @@ -1802,7 +1801,7 @@ class LibvirtConnection(driver.ComputeDriver): doc = None try: - doc = ElementTree.fromstring(xml) + doc = etree.fromstring(xml) except Exception: return [] @@ -1960,7 +1959,7 @@ class LibvirtConnection(driver.ComputeDriver): """ xml = self._conn.getCapabilities() - xml = ElementTree.fromstring(xml) + xml = etree.fromstring(xml) nodes = xml.findall('.//host/cpu') if len(nodes) != 1: reason = _("'<cpu>' must be 1, but %d\n") % len(nodes) @@ -2363,7 +2362,7 @@ class LibvirtConnection(driver.ComputeDriver): virt_dom = self._lookup_by_name(instance_name) xml = virt_dom.XMLDesc(0) - doc = ElementTree.fromstring(xml) + doc = etree.fromstring(xml) disk_nodes = doc.findall('.//devices/disk') path_nodes = doc.findall('.//devices/disk/source') driver_nodes = doc.findall('.//devices/disk/driver') diff --git a/nova/volume/san.py b/nova/volume/san.py index 1d5a36057..aecb9a0b5 100644 --- a/nova/volume/san.py +++ b/nova/volume/san.py @@ -30,7 +30,8 @@ import random import socket import string import uuid -from xml.etree import ElementTree + +from lxml import etree from nova import exception from nova import flags @@ -145,7 +146,7 @@ class SanISCSIDriver(nova.volume.driver.ISCSIDriver): pass def check_for_setup_error(self): - """Returns an error if prerequisites aren't met""" + """Returns an error if prerequisites aren't met.""" if not self.run_local: if not (FLAGS.san_password or FLAGS.san_private_key): raise exception.Error(_('Specify san_password or ' @@ -451,7 +452,7 @@ class HpSanISCSIDriver(SanISCSIDriver): LOG.debug(_("CLIQ command returned %s"), out) - result_xml = ElementTree.fromstring(out) + result_xml = etree.fromstring(out) if check_cliq_result: response_node = result_xml.find("response") if response_node is None: @@ -492,7 +493,7 @@ class HpSanISCSIDriver(SanISCSIDriver): if len(vips) == 1: return vips[0] - _xml = ElementTree.tostring(cluster_xml) + _xml = etree.tostring(cluster_xml) msg = (_("Unexpected number of virtual ips for cluster " " %(cluster_name)s. Result=%(_xml)s") % locals()) |