Added XML serialization for access actions

Resources related to share access management hasn't xml
serrialisation so it returns incorrect response for xml
requests. XML temptates constructors added to
share_actions.py ato solve this problem

Change-Id: Ie76e768fc696c15dac4f18757ffcfe84335e04ce
This commit is contained in:
119Vik 2013-09-24 09:54:12 -04:00
parent 36adea3b26
commit 14301ca01e
1 changed files with 38 additions and 0 deletions

View File

@ -16,6 +16,7 @@ import webob
from manila.api import extensions
from manila.api.openstack import wsgi
from manila.api import xmlutil
from manila import exception
from manila import share
@ -23,12 +24,47 @@ from manila import share
authorize = extensions.extension_authorizer('share', 'services')
class ShareAccessTemplate(xmlutil.TemplateBuilder):
"""XML Template for share access management methods."""
def construct(self):
root = xmlutil.TemplateElement('access',
selector='access')
root.set("share_id")
root.set("deleted")
root.set("created_at")
root.set("updated_at")
root.set("access_type")
root.set("access_to")
root.set("state")
root.set("deleted_at")
root.set("id")
return xmlutil.MasterTemplate(root, 1)
class ShareAccessListTemplate(xmlutil.TemplateBuilder):
"""XML Template for share access list."""
def construct(self):
root = xmlutil.TemplateElement('access_list')
elem = xmlutil.SubTemplateElement(root, 'share',
selector='access_list')
elem.set("state")
elem.set("id")
elem.set("access_type")
elem.set("access_to")
return xmlutil.MasterTemplate(root, 1)
class ShareActionsController(wsgi.Controller):
def __init__(self, *args, **kwargs):
super(ShareActionsController, self).__init__(*args, **kwargs)
self.share_api = share.API()
@wsgi.action('os-allow_access')
@wsgi.serializers(xml=ShareAccessTemplate)
def _allow_access(self, req, id, body):
"""Add share access rule."""
context = req.environ['manila.context']
@ -43,6 +79,7 @@ class ShareActionsController(wsgi.Controller):
return {'access': access}
@wsgi.action('os-deny_access')
@wsgi.serializers(xml=ShareAccessTemplate)
def _deny_access(self, req, id, body):
"""Remove access rule."""
context = req.environ['manila.context']
@ -60,6 +97,7 @@ class ShareActionsController(wsgi.Controller):
return webob.Response(status_int=202)
@wsgi.action('os-access_list')
@wsgi.serializers(xml=ShareAccessListTemplate)
def _access_list(self, req, id, body):
"""list access rules."""
context = req.environ['manila.context']