diff options
| author | Rajaram Mallya <rajarammallya@gmail.com> | 2011-09-09 11:56:02 +0530 |
|---|---|---|
| committer | Rajaram Mallya <rajarammallya@gmail.com> | 2011-09-09 11:56:02 +0530 |
| commit | b9954d5046ff0ccc6f280ebfcfd0592d64ff71b9 (patch) | |
| tree | e3399c2a60154918d8989770f9aad9427a5b9503 /openstack/common | |
| parent | 02c95aeb2ffe112f7b60a1d3c53cdde22bc5db4d (diff) | |
| download | oslo-b9954d5046ff0ccc6f280ebfcfd0592d64ff71b9.tar.gz oslo-b9954d5046ff0ccc6f280ebfcfd0592d64ff71b9.tar.xz oslo-b9954d5046ff0ccc6f280ebfcfd0592d64ff71b9.zip | |
Rajaram/Vinkesh|Default xmlns for extension serialization can be overriden, added default factory for extension middleware
Diffstat (limited to 'openstack/common')
| -rw-r--r-- | openstack/common/extensions.py | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/openstack/common/extensions.py b/openstack/common/extensions.py index d2fab36..162a02a 100644 --- a/openstack/common/extensions.py +++ b/openstack/common/extensions.py @@ -206,6 +206,13 @@ class ExtensionsResource(wsgi.Resource): class ExtensionMiddleware(wsgi.Middleware): """Extensions middleware for WSGI.""" + @classmethod + def factory(cls, global_config, **local_config): + """Paste factory.""" + def _factory(app): + return cls(app, global_config, **local_config) + return _factory + def _action_ext_resources(self, application, ext_mgr, mapper): """Return a dict of ActionExtensionResource-s by collection.""" action_resources = {} @@ -245,9 +252,9 @@ class ExtensionMiddleware(wsgi.Middleware): return request_ext_resources - def __init__(self, application, ext_mgr): - self.ext_mgr = ext_mgr - + def __init__(self, application, config, ext_mgr=None): + ext_mgr = ext_mgr or ExtensionManager( + config['api_extensions_path']) mapper = routes.Mapper() # extended resources @@ -493,15 +500,16 @@ class ResourceExtension(object): class ExtensionsXMLSerializer(wsgi.XMLDictSerializer): - NSMAP = {None: DEFAULT_XMLNS, 'atom': XMLNS_ATOM} + def __init__(self): + self.nsmap = {None: DEFAULT_XMLNS, 'atom': XMLNS_ATOM} def show(self, ext_dict): - ext = etree.Element('extension', nsmap=self.NSMAP) + ext = etree.Element('extension', nsmap=self.nsmap) self._populate_ext(ext, ext_dict['extension']) return self._to_xml(ext) def index(self, exts_dict): - exts = etree.Element('extensions', nsmap=self.NSMAP) + exts = etree.Element('extensions', nsmap=self.nsmap) for ext_dict in exts_dict['extensions']: ext = etree.SubElement(exts, 'extension') self._populate_ext(ext, ext_dict) |
