本文整理汇总了Python中nova.api.openstack.common.get_flavor函数的典型用法代码示例。如果您正苦于以下问题:Python get_flavor函数的具体用法?Python get_flavor怎么用?Python get_flavor使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了get_flavor函数的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: show
def show(self, req, flavor_id, id):
"""Return a single extra spec item."""
context = req.environ['nova.context']
context.can(fes_policies.POLICY_ROOT % 'show')
flavor = common.get_flavor(context, flavor_id)
try:
return {id: flavor.extra_specs[id]}
except KeyError:
msg = _("Flavor %(flavor_id)s has no extra specs with "
"key %(key)s.") % dict(flavor_id=flavor_id,
key=id)
raise webob.exc.HTTPNotFound(explanation=msg)
示例2: index
def index(self, req, flavor_id):
context = req.environ['nova.context']
context.can(fa_policies.BASE_POLICY_NAME)
flavor = common.get_flavor(context, flavor_id)
# public flavor to all projects
if flavor.is_public:
explanation = _("Access list not available for public flavors.")
raise webob.exc.HTTPNotFound(explanation=explanation)
# private flavor to listed projects only
return _marshall_flavor_access(flavor)
示例3: index
def index(self, req, flavor_id):
context = req.environ["nova.context"]
authorize(context)
flavor = common.get_flavor(context, flavor_id)
# public flavor to all projects
if flavor.is_public:
explanation = _("Access list not available for public flavors.")
raise webob.exc.HTTPNotFound(explanation=explanation)
# private flavor to listed projects only
return _marshall_flavor_access(flavor)
示例4: create
def create(self, req, flavor_id, body):
context = req.environ['nova.context']
context.can(fes_policies.POLICY_ROOT % 'create')
specs = body['extra_specs']
self._check_extra_specs_value(specs)
flavor = common.get_flavor(context, flavor_id)
try:
flavor.extra_specs = dict(flavor.extra_specs, **specs)
flavor.save()
except exception.FlavorExtraSpecUpdateCreateFailed as e:
raise webob.exc.HTTPConflict(explanation=e.format_message())
except exception.FlavorNotFound as e:
raise webob.exc.HTTPNotFound(explanation=e.format_message())
return body
示例5: index
def index(self, req, flavor_id):
context = req.environ['nova.context']
authorize(context)
# NOTE(alex_xu): back-compatible with db layer hard-code admin
# permission checks.
nova_context.require_admin_context(context)
flavor = common.get_flavor(context, flavor_id)
# public flavor to all projects
if flavor.is_public:
explanation = _("Access list not available for public flavors.")
raise webob.exc.HTTPNotFound(explanation=explanation)
# private flavor to listed projects only
return _marshall_flavor_access(flavor)
示例6: delete
def delete(self, req, flavor_id, id):
"""Deletes an existing extra spec."""
context = req.environ['nova.context']
context.can(fes_policies.POLICY_ROOT % 'delete')
flavor = common.get_flavor(context, flavor_id)
try:
del flavor.extra_specs[id]
flavor.save()
except (exception.FlavorExtraSpecsNotFound,
exception.FlavorNotFound) as e:
raise webob.exc.HTTPNotFound(explanation=e.format_message())
except KeyError:
msg = _("Flavor %(flavor_id)s has no extra specs with "
"key %(key)s.") % dict(flavor_id=flavor_id,
key=id)
raise webob.exc.HTTPNotFound(explanation=msg)
示例7: create
def create(self, req, flavor_id, body):
context = req.environ['nova.context']
authorize(context, action='create')
self._check_body(body)
specs = body.get('extra_specs')
self._check_extra_specs(specs)
flavor = common.get_flavor(context, flavor_id)
try:
flavor.extra_specs = dict(flavor.extra_specs, **specs)
flavor.save()
except exception.FlavorExtraSpecUpdateCreateFailed as e:
raise exc.HTTPConflict(explanation=e.format_message())
except exception.FlavorNotFound as error:
raise exc.HTTPNotFound(explanation=error.format_message())
return body
示例8: update
def update(self, req, flavor_id, id, body):
context = req.environ['nova.context']
context.can(fes_policies.POLICY_ROOT % 'update')
self._check_extra_specs_value(body)
if id not in body:
expl = _('Request body and URI mismatch')
raise webob.exc.HTTPBadRequest(explanation=expl)
flavor = common.get_flavor(context, flavor_id)
try:
flavor.extra_specs = dict(flavor.extra_specs, **body)
flavor.save()
except exception.FlavorExtraSpecUpdateCreateFailed as e:
raise webob.exc.HTTPConflict(explanation=e.format_message())
except exception.FlavorNotFound as e:
raise webob.exc.HTTPNotFound(explanation=e.format_message())
return body
示例9: _remove_tenant_access
def _remove_tenant_access(self, req, id, body):
context = req.environ['nova.context']
context.can(
fa_policies.POLICY_ROOT % "remove_tenant_access")
vals = body['removeTenantAccess']
tenant = vals['tenant']
# NOTE(gibi): We have to load a flavor from the db here as
# flavor.remove_access() will try to emit a notification and that needs
# a fully loaded flavor.
flavor = common.get_flavor(context, id)
try:
flavor.remove_access(tenant)
except (exception.FlavorAccessNotFound,
exception.FlavorNotFound) as e:
raise webob.exc.HTTPNotFound(explanation=e.format_message())
return _marshall_flavor_access(flavor)
示例10: update
def update(self, req, flavor_id, id, body):
context = req.environ['nova.context']
authorize(context, action='update')
self._check_extra_specs(body)
if id not in body:
expl = _('Request body and URI mismatch')
raise exc.HTTPBadRequest(explanation=expl)
if len(body) > 1:
expl = _('Request body contains too many items')
raise exc.HTTPBadRequest(explanation=expl)
flavor = common.get_flavor(context, flavor_id)
try:
flavor.extra_specs = dict(flavor.extra_specs, **body)
flavor.save()
except exception.FlavorExtraSpecUpdateCreateFailed as e:
raise exc.HTTPConflict(explanation=e.format_message())
except exception.FlavorNotFound as error:
raise exc.HTTPNotFound(explanation=error.format_message())
return body
示例11: _add_tenant_access
def _add_tenant_access(self, req, id, body):
context = req.environ['nova.context']
context.can(fa_policies.POLICY_ROOT % "add_tenant_access")
vals = body['addTenantAccess']
tenant = vals['tenant']
flavor = common.get_flavor(context, id)
try:
if api_version_request.is_supported(req, min_version='2.7'):
if flavor.is_public:
exp = _("Can not add access to a public flavor.")
raise webob.exc.HTTPConflict(explanation=exp)
flavor.add_access(tenant)
except exception.FlavorNotFound as e:
raise webob.exc.HTTPNotFound(explanation=e.format_message())
except exception.FlavorAccessExists as err:
raise webob.exc.HTTPConflict(explanation=err.format_message())
return _marshall_flavor_access(flavor)
示例12: _add_tenant_access
def _add_tenant_access(self, req, id, body):
context = req.environ["nova.context"]
authorize(context, action="add_tenant_access")
vals = body["addTenantAccess"]
tenant = vals["tenant"]
flavor = common.get_flavor(context, id)
try:
if api_version_request.is_supported(req, min_version="2.7"):
if flavor.is_public:
exp = _("Can not add access to a public flavor.")
raise webob.exc.HTTPConflict(explanation=exp)
flavor.add_access(tenant)
except exception.FlavorNotFound as e:
raise webob.exc.HTTPNotFound(explanation=e.format_message())
except exception.FlavorAccessExists as err:
raise webob.exc.HTTPConflict(explanation=err.format_message())
except exception.AdminRequired as e:
raise webob.exc.HTTPForbidden(explanation=e.format_message())
return _marshall_flavor_access(flavor)
示例13: _get_extra_specs
def _get_extra_specs(self, context, flavor_id):
flavor = common.get_flavor(context, flavor_id)
return dict(extra_specs=flavor.extra_specs)