def authorize(self, context, action_name): # e.g. "snapshot_admin_actions:reset_status" action = '%s_admin_actions:%s' % (self.resource_name, action_name) extensions.extension_authorizer('volume', action)(context)
def authorize(context, action_name): action = 'volume_actions:%s' % action_name extensions.extension_authorizer('volume', action)(context)
from xml.parsers import expat from cinder.api.openstack import extensions from cinder.api.openstack import wsgi from cinder.api.openstack import xmlutil from cinder import db from cinder import exception from cinder import flags from cinder.openstack.common import log as logging from cinder.openstack.common import timeutils from cinder import utils from cinder.volume import api as volume_api FLAGS = flags.FLAGS LOG = logging.getLogger(__name__) authorize = extensions.extension_authorizer('volume', 'hosts') class HostIndexTemplate(xmlutil.TemplateBuilder): def construct(self): def shimmer(obj, do_raise=False): # A bare list is passed in; we need to wrap it in a dict return dict(hosts=obj) root = xmlutil.TemplateElement('hosts', selector=shimmer) elem = xmlutil.SubTemplateElement(root, 'host', selector='hosts') elem.set('host') elem.set('topic') return xmlutil.MasterTemplate(root, 1)
# License for the specific language governing permissions and limitations # under the License. """The volume types extra specs extension""" import webob from cinder.api.openstack import extensions from cinder.api.openstack import wsgi from cinder.api.openstack import xmlutil from cinder import db from cinder import exception from cinder.volume import volume_types authorize = extensions.extension_authorizer('volume', 'types_extra_specs') class VolumeTypeExtraSpecsTemplate(xmlutil.TemplateBuilder): def construct(self): root = xmlutil.make_flat_dict('extra_specs', selector='extra_specs') return xmlutil.MasterTemplate(root, 1) class VolumeTypeExtraSpecTemplate(xmlutil.TemplateBuilder): def construct(self): tagname = xmlutil.Selector('key') def extraspec_sel(obj, do_raise=False): # Have to extract the key and value for later use... key, value = obj.items()[0]
# License for the specific language governing permissions and limitations # under the License. """The volume types manage extension.""" import webob from cinder.api.openstack import extensions from cinder.api.openstack.volume import types from cinder.api.openstack.volume.views import types as views_types from cinder.api.openstack import wsgi from cinder import exception from cinder.volume import volume_types authorize = extensions.extension_authorizer('volume', 'types_manage') class VolumeTypesManageController(wsgi.Controller): """ The volume types API controller for the OpenStack API """ _view_builder_class = views_types.ViewBuilder @wsgi.action("create") @wsgi.serializers(xml=types.VolumeTypeTemplate) def _create(self, req, body): """Creates a new volume type.""" context = req.environ['cinder.context'] authorize(context) if not body or body == "":
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. """The volume types extra specs extension""" import webob from cinder.api.openstack import extensions from cinder.api.openstack import wsgi from cinder.api.openstack import xmlutil from cinder import db from cinder import exception from cinder.volume import volume_types authorize = extensions.extension_authorizer('volume', 'types_extra_specs') class VolumeTypeExtraSpecsTemplate(xmlutil.TemplateBuilder): def construct(self): root = xmlutil.make_flat_dict('extra_specs', selector='extra_specs') return xmlutil.MasterTemplate(root, 1) class VolumeTypeExtraSpecTemplate(xmlutil.TemplateBuilder): def construct(self): tagname = xmlutil.Selector('key') def extraspec_sel(obj, do_raise=False): # Have to extract the key and value for later use... key, value = obj.items()[0]
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. """The volume types manage extension.""" import webob from cinder.api.openstack import extensions from cinder.api.openstack.volume import types from cinder.api.openstack.volume.views import types as views_types from cinder.api.openstack import wsgi from cinder import exception from cinder.volume import volume_types authorize = extensions.extension_authorizer('volume', 'types_manage') class VolumeTypesManageController(wsgi.Controller): """ The volume types API controller for the OpenStack API """ _view_builder_class = views_types.ViewBuilder @wsgi.action("create") @wsgi.serializers(xml=types.VolumeTypeTemplate) def _create(self, req, body): """Creates a new volume type.""" context = req.environ['cinder.context'] authorize(context) if not self.is_valid_body(body, 'volume_type'):
# under the License. import webob from cinder.api.openstack import extensions from cinder.api.openstack import wsgi from cinder.api.openstack import xmlutil from cinder import db from cinder import exception from cinder import quota QUOTAS = quota.QUOTAS authorize = extensions.extension_authorizer('volume', 'quota_classes') class QuotaClassTemplate(xmlutil.TemplateBuilder): def construct(self): root = xmlutil.TemplateElement('quota_class_set', selector='quota_class_set') root.set('id') for resource in QUOTAS.resources: elem = xmlutil.SubTemplateElement(root, resource) elem.text = resource return xmlutil.MasterTemplate(root, 1)
# License for the specific language governing permissions and limitations # under the License. """The volume types extra specs extension""" import webob from cinder.api.openstack import extensions from cinder.api.openstack import wsgi from cinder.api.openstack import xmlutil from cinder import db from cinder import exception from cinder.volume import volume_types authorize = extensions.extension_authorizer("volume", "types_extra_specs") class VolumeTypeExtraSpecsTemplate(xmlutil.TemplateBuilder): def construct(self): root = xmlutil.make_flat_dict("extra_specs", selector="extra_specs") return xmlutil.MasterTemplate(root, 1) class VolumeTypeExtraSpecTemplate(xmlutil.TemplateBuilder): def construct(self): tagname = xmlutil.Selector("key") def extraspec_sel(obj, do_raise=False): # Have to extract the key and value for later use... key, value = obj.items()[0]
import webob from cinder.api.openstack import extensions from cinder.api.openstack import wsgi from cinder.api.openstack import xmlutil from cinder import db from cinder.db.sqlalchemy import api as sqlalchemy_api from cinder import exception from cinder import quota QUOTAS = quota.QUOTAS authorize_update = extensions.extension_authorizer('compute', 'quotas:update') authorize_show = extensions.extension_authorizer('compute', 'quotas:show') class QuotaTemplate(xmlutil.TemplateBuilder): def construct(self): root = xmlutil.TemplateElement('quota_set', selector='quota_set') root.set('id') for resource in QUOTAS.resources: elem = xmlutil.SubTemplateElement(root, resource) elem.text = resource return xmlutil.MasterTemplate(root, 1)
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. import webob from cinder.api.openstack import extensions from cinder.api.openstack import wsgi from cinder.api.openstack import xmlutil from cinder import db from cinder import exception from cinder import quota QUOTAS = quota.QUOTAS authorize = extensions.extension_authorizer('volume', 'quota_classes') class QuotaClassTemplate(xmlutil.TemplateBuilder): def construct(self): root = xmlutil.TemplateElement('quota_class_set', selector='quota_class_set') root.set('id') for resource in QUOTAS.resources: elem = xmlutil.SubTemplateElement(root, resource) elem.text = resource return xmlutil.MasterTemplate(root, 1)