Removing xml functions that are no longer called.

This commit is contained in:
Naveed Massjouni
2011-09-02 01:07:30 -04:00
parent d99588a4ca
commit 0c737cb609
2 changed files with 27 additions and 97 deletions

View File

@@ -19,7 +19,6 @@ from datetime import datetime
from lxml import etree
import webob
import webob.dec
from xml.dom import minidom
import nova.api.openstack.views.versions
from nova.api.openstack import wsgi
@@ -188,32 +187,25 @@ class VersionsXMLSerializer(wsgi.XMLDictSerializer):
for version in data['versions']:
version_elem = etree.SubElement(root, 'version')
self._populate_version(version_elem, version)
return etree.tostring(root, encoding='UTF-8')
return self._to_xml(root)
def show(self, data):
root = etree.Element('version', nsmap=self.NSMAP)
self._populate_version(root, data['version'])
return etree.tostring(root, encoding='UTF-8')
return self._to_xml(root)
def multi(self, data):
root = etree.Element('choices', nsmap=self.NSMAP)
for version in data['choices']:
version_elem = etree.SubElement(root, 'version')
self._populate_version(version_elem, version)
return etree.tostring(root, encoding='UTF-8')
return self._to_xml(root)
class VersionsAtomSerializer(wsgi.XMLDictSerializer):
NSMAP = {None: xmlutil.XMLNS_ATOM}
#TODO(wwolf): this is temporary until we get rid of toprettyxml
# in the base class (XMLDictSerializer), which I plan to do in
# another branch
def to_xml_string(self, node, has_atom=False):
self._add_xmlns(node, has_atom)
return node.toxml(encoding='UTF-8')
def __init__(self, metadata=None, xmlns=None):
self.metadata = metadata or {}
if not xmlns:
@@ -221,14 +213,6 @@ class VersionsAtomSerializer(wsgi.XMLDictSerializer):
else:
self.xmlns = xmlns
def _create_text_elem(self, name, text, type=None):
elem = self._xml_doc.createElement(name)
if type:
elem.setAttribute('type', type)
elem_text = self._xml_doc.createTextNode(text)
elem.appendChild(elem_text)
return elem
def _get_most_recent_update(self, versions):
recent = None
for version in versions:
@@ -246,47 +230,21 @@ class VersionsAtomSerializer(wsgi.XMLDictSerializer):
link_href = link_href.rstrip('/')
return link_href.rsplit('/', 1)[0] + '/'
def _create_detail_meta(self, root, version):
title = self._create_text_elem('title', "About This Version",
type='text')
updated = self._create_text_elem('updated', version['updated'])
uri = version['links'][0]['href']
id = self._create_text_elem('id', uri)
link = self._xml_doc.createElement('link')
link.setAttribute('rel', 'self')
link.setAttribute('href', uri)
author = self._xml_doc.createElement('author')
author_name = self._create_text_elem('name', 'Rackspace')
author_uri = self._create_text_elem('uri', 'http://www.rackspace.com/')
author.appendChild(author_name)
author.appendChild(author_uri)
root.appendChild(title)
root.appendChild(updated)
root.appendChild(id)
root.appendChild(author)
root.appendChild(link)
def _create_feed(self, versions):
def _create_feed(self, versions, feed_title, feed_id):
feed = etree.Element('feed', nsmap=self.NSMAP)
title = etree.SubElement(feed, 'title')
title.set('type', 'text')
title.text = 'Available API Versions'
title.text = feed_title
# Set this updated to the most recently updated version
recent = self._get_most_recent_update(versions)
etree.SubElement(feed, 'updated').text = recent
base_url = self._get_base_url(versions[0]['links'][0]['href'])
etree.SubElement(feed, 'id').text = base_url
etree.SubElement(feed, 'id').text = feed_id
link = etree.SubElement(feed, 'link')
link.set('rel', 'self')
link.set('href', base_url)
link.set('href', feed_id)
author = etree.SubElement(feed, 'author')
etree.SubElement(author, 'name').text = 'Rackspace'
@@ -319,50 +277,17 @@ class VersionsAtomSerializer(wsgi.XMLDictSerializer):
version['updated'])
return entry
def _create_version_entries(self, root, versions):
for version in versions:
entry = self._xml_doc.createElement('entry')
id = self._create_text_elem('id', version['links'][0]['href'])
title = self._create_text_elem('title',
'Version %s' % version['id'],
type='text')
updated = self._create_text_elem('updated', version['updated'])
entry.appendChild(id)
entry.appendChild(title)
entry.appendChild(updated)
for link in version['links']:
link_node = self._xml_doc.createElement('link')
link_node.setAttribute('rel', link['rel'])
link_node.setAttribute('href', link['href'])
if 'type' in link:
link_node.setAttribute('type', link['type'])
entry.appendChild(link_node)
content = self._create_text_elem('content',
'Version %s %s (%s)' %
(version['id'],
version['status'],
version['updated']),
type='text')
entry.appendChild(content)
root.appendChild(entry)
def index(self, data):
feed = self._create_feed(data['versions'])
return etree.tostring(feed, encoding='UTF-8')
versions = data['versions']
feed_id = self._get_base_url(versions[0]['links'][0]['href'])
feed = self._create_feed(versions, 'Available API Versions', feed_id)
return self._to_xml(feed)
def show(self, data):
self._xml_doc = minidom.Document()
node = self._xml_doc.createElementNS(self.xmlns, 'feed')
self._create_detail_meta(node, data['version'])
self._create_version_entries(node, [data['version']])
return self.to_xml_string(node)
version = data['version']
feed_id = version['links'][0]['href']
feed = self._create_feed([version], 'About This Version', feed_id)
return self._to_xml(feed)
class VersionsHeadersSerializer(wsgi.ResponseHeadersSerializer):

View File

@@ -306,7 +306,8 @@ class VersionsTest(test.TestCase):
self.assertEqual(f.feed.updated, '2011-01-21T11:33:21Z')
self.assertEqual(f.feed.id, 'http://localhost/v1.0/')
self.assertEqual(f.feed.author, 'Rackspace')
self.assertEqual(f.feed.author_detail.href, 'http://www.rackspace.com/')
self.assertEqual(f.feed.author_detail.href,
'http://www.rackspace.com/')
self.assertEqual(f.feed.links, [{'href': 'http://localhost/v1.0/',
'type': 'application/atom+xml',
'rel': 'self'}])
@@ -350,7 +351,8 @@ class VersionsTest(test.TestCase):
self.assertEqual(f.feed.updated, '2011-01-21T11:33:21Z')
self.assertEqual(f.feed.id, 'http://localhost/v1.1/')
self.assertEqual(f.feed.author, 'Rackspace')
self.assertEqual(f.feed.author_detail.href, 'http://www.rackspace.com/')
self.assertEqual(f.feed.author_detail.href,
'http://www.rackspace.com/')
self.assertEqual(f.feed.links, [{'href': 'http://localhost/v1.1/',
'type': 'application/atom+xml',
'rel': 'self'}])
@@ -394,7 +396,8 @@ class VersionsTest(test.TestCase):
self.assertEqual(f.feed.updated, '2011-01-21T11:33:21Z')
self.assertEqual(f.feed.id, 'http://localhost/')
self.assertEqual(f.feed.author, 'Rackspace')
self.assertEqual(f.feed.author_detail.href, 'http://www.rackspace.com/')
self.assertEqual(f.feed.author_detail.href,
'http://www.rackspace.com/')
self.assertEqual(f.feed.links, [{'href': 'http://localhost/',
'type': 'application/atom+xml',
'rel': 'self'}])
@@ -489,7 +492,7 @@ class VersionsTest(test.TestCase):
self.assertEqual(len(versions), 2)
version = versions[0]
self.assertEqual(version.get('id'), 'v1.1');
self.assertEqual(version.get('id'), 'v1.1')
self.assertEqual(version.get('status'), 'CURRENT')
media_types = version.xpath('ns:media-types/ns:media-type',
namespaces=NS)
@@ -500,7 +503,7 @@ class VersionsTest(test.TestCase):
[{'rel': 'self', 'href': 'http://localhost/v1.1/images/1'}]))
version = versions[1]
self.assertEqual(version.get('id'), 'v1.0');
self.assertEqual(version.get('id'), 'v1.0')
self.assertEqual(version.get('status'), 'DEPRECATED')
media_types = version.xpath('ns:media-types/ns:media-type',
namespaces=NS)
@@ -784,7 +787,8 @@ class VersionsSerializerTests(test.TestCase):
self.assertEqual(f.feed.updated, '2011-07-20T11:40:00Z')
self.assertEqual(f.feed.id, 'http://test/')
self.assertEqual(f.feed.author, 'Rackspace')
self.assertEqual(f.feed.author_detail.href, 'http://www.rackspace.com/')
self.assertEqual(f.feed.author_detail.href,
'http://www.rackspace.com/')
self.assertEqual(f.feed.links, [{'href': 'http://test/',
'type': 'application/atom+xml',
'rel': 'self'}])
@@ -846,7 +850,8 @@ class VersionsSerializerTests(test.TestCase):
self.assertEqual(f.feed.updated, '2011-01-21T11:33:21Z')
self.assertEqual(f.feed.id, 'http://localhost/v1.1/')
self.assertEqual(f.feed.author, 'Rackspace')
self.assertEqual(f.feed.author_detail.href, 'http://www.rackspace.com/')
self.assertEqual(f.feed.author_detail.href,
'http://www.rackspace.com/')
self.assertEqual(f.feed.links, [{'href': 'http://localhost/v1.1/',
'type': 'application/atom+xml',
'rel': 'self'}])