diff options
| author | Rajaram Mallya <rajarammallya@gmail.com> | 2011-09-08 18:29:40 +0530 |
|---|---|---|
| committer | Rajaram Mallya <rajarammallya@gmail.com> | 2011-09-08 18:29:40 +0530 |
| commit | 02c95aeb2ffe112f7b60a1d3c53cdde22bc5db4d (patch) | |
| tree | 4d568600fcfe27a20552e8a9184b08cbca49e2fc /openstack/common/extensions.py | |
| parent | 87dceb46c403305264387925efd5baa1ecb91c54 (diff) | |
| download | oslo-02c95aeb2ffe112f7b60a1d3c53cdde22bc5db4d.tar.gz oslo-02c95aeb2ffe112f7b60a1d3c53cdde22bc5db4d.tar.xz oslo-02c95aeb2ffe112f7b60a1d3c53cdde22bc5db4d.zip | |
Rajaram/Vinkesh | Copied tests for wsgi from nova. Added default content/accept types in Request which can be overridden by projects. Copied tests for XML serialization of Extension Controller's action from nova
Diffstat (limited to 'openstack/common/extensions.py')
| -rw-r--r-- | openstack/common/extensions.py | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/openstack/common/extensions.py b/openstack/common/extensions.py index 7044227..d2fab36 100644 --- a/openstack/common/extensions.py +++ b/openstack/common/extensions.py @@ -27,8 +27,9 @@ from lxml import etree from openstack.common import exception from openstack.common import wsgi - LOG = logging.getLogger('extensions') +DEFAULT_XMLNS = "http://docs.openstack.org/" +XMLNS_ATOM = "http://www.w3.org/2005/Atom" class ExtensionDescriptor(object): @@ -166,6 +167,9 @@ class ExtensionsResource(wsgi.Resource): def __init__(self, extension_manager): self.extension_manager = extension_manager + body_serializers = {'application/xml': ExtensionsXMLSerializer()} + serializer = wsgi.ResponseSerializer(body_serializers=body_serializers) + super(ExtensionsResource, self).__init__(self, None, serializer) def _translate(self, ext): ext_data = {} @@ -342,8 +346,11 @@ class ExtensionManager(object): def get_resources(self): """Returns a list of ResourceExtension objects.""" resources = [] - resources.append(ResourceExtension('extensions', - ExtensionsResource(self))) + extension_resource = ExtensionsResource(self) + res_ext = ResourceExtension('extensions', + extension_resource, + serializer=extension_resource.serializer) + resources.append(res_ext) for alias, ext in self.extensions.iteritems(): try: resources.extend(ext.get_resources()) @@ -486,7 +493,7 @@ class ResourceExtension(object): class ExtensionsXMLSerializer(wsgi.XMLDictSerializer): -# NSMAP = {None: xmlutil.XMLNS_V11, 'atom': xmlutil.XMLNS_ATOM} + NSMAP = {None: DEFAULT_XMLNS, 'atom': XMLNS_ATOM} def show(self, ext_dict): ext = etree.Element('extension', nsmap=self.NSMAP) @@ -511,7 +518,7 @@ class ExtensionsXMLSerializer(wsgi.XMLDictSerializer): desc.text = ext_dict['description'] ext_elem.append(desc) for link in ext_dict.get('links', []): - elem = etree.SubElement(ext_elem, '{%s}link' % xmlutil.XMLNS_ATOM) + elem = etree.SubElement(ext_elem, '{%s}link' % XMLNS_ATOM) elem.set('rel', link['rel']) elem.set('href', link['href']) elem.set('type', link['type']) |
