summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNaveed Massjouni <naveedm9@gmail.com>2011-09-02 01:07:30 -0400
committerNaveed Massjouni <naveedm9@gmail.com>2011-09-02 01:07:30 -0400
commit0c737cb60980b8db74496e7914322f567950c2c3 (patch)
treeb7e71f04c81d2b77ee69f02f09d1cf56696ad518
parentd99588a4caf855f3876ea83fa0d8517a77727aef (diff)
Removing xml functions that are no longer called.
-rw-r--r--nova/api/openstack/versions.py105
-rw-r--r--nova/tests/api/openstack/test_versions.py19
2 files changed, 27 insertions, 97 deletions
diff --git a/nova/api/openstack/versions.py b/nova/api/openstack/versions.py
index 0766e1eb7..31dd9dc11 100644
--- a/nova/api/openstack/versions.py
+++ b/nova/api/openstack/versions.py
@@ -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):
diff --git a/nova/tests/api/openstack/test_versions.py b/nova/tests/api/openstack/test_versions.py
index 03a47bf24..a9308e31d 100644
--- a/nova/tests/api/openstack/test_versions.py
+++ b/nova/tests/api/openstack/test_versions.py
@@ -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'}])