Merge "Add common function for v2.1 API flavor_get."

This commit is contained in:
Jenkins 2015-07-02 15:31:00 +00:00 committed by Gerrit Code Review
commit 395825d179
2 changed files with 8 additions and 12 deletions

View File

@ -17,6 +17,7 @@
import webob import webob
from nova.api.openstack import common
from nova.api.openstack.compute.schemas.v3 import flavor_access from nova.api.openstack.compute.schemas.v3 import flavor_access
from nova.api.openstack import extensions from nova.api.openstack import extensions
from nova.api.openstack import wsgi from nova.api.openstack import wsgi
@ -50,10 +51,7 @@ class FlavorAccessController(wsgi.Controller):
context = req.environ['nova.context'] context = req.environ['nova.context']
authorize(context) authorize(context)
try: flavor = common.get_flavor(context, flavor_id)
flavor = objects.Flavor.get_by_flavor_id(context, flavor_id)
except exception.FlavorNotFound as e:
raise webob.exc.HTTPNotFound(explanation=e.format_message())
# public flavor to all projects # public flavor to all projects
if flavor.is_public: if flavor.is_public:

View File

@ -16,13 +16,13 @@
import six import six
import webob import webob
from nova.api.openstack import common
from nova.api.openstack.compute.schemas.v3 import flavors_extraspecs from nova.api.openstack.compute.schemas.v3 import flavors_extraspecs
from nova.api.openstack import extensions from nova.api.openstack import extensions
from nova.api.openstack import wsgi from nova.api.openstack import wsgi
from nova.api import validation from nova.api import validation
from nova import exception from nova import exception
from nova.i18n import _ from nova.i18n import _
from nova import objects
from nova import utils from nova import utils
ALIAS = 'os-flavor-extra-specs' ALIAS = 'os-flavor-extra-specs'
@ -36,7 +36,7 @@ class FlavorExtraSpecsController(wsgi.Controller):
super(FlavorExtraSpecsController, self).__init__(*args, **kwargs) super(FlavorExtraSpecsController, self).__init__(*args, **kwargs)
def _get_extra_specs(self, context, flavor_id): def _get_extra_specs(self, context, flavor_id):
flavor = objects.Flavor.get_by_flavor_id(context, flavor_id) flavor = common.get_flavor(context, flavor_id)
return dict(extra_specs=flavor.extra_specs) return dict(extra_specs=flavor.extra_specs)
# NOTE(gmann): Max length for numeric value is being checked # NOTE(gmann): Max length for numeric value is being checked
@ -70,8 +70,8 @@ class FlavorExtraSpecsController(wsgi.Controller):
specs = body['extra_specs'] specs = body['extra_specs']
self._check_extra_specs_value(specs) self._check_extra_specs_value(specs)
flavor = common.get_flavor(context, flavor_id)
try: try:
flavor = objects.Flavor.get_by_flavor_id(context, flavor_id)
flavor.extra_specs = dict(flavor.extra_specs, **specs) flavor.extra_specs = dict(flavor.extra_specs, **specs)
flavor.save() flavor.save()
except exception.FlavorExtraSpecUpdateCreateFailed as e: except exception.FlavorExtraSpecUpdateCreateFailed as e:
@ -90,8 +90,8 @@ class FlavorExtraSpecsController(wsgi.Controller):
if id not in body: if id not in body:
expl = _('Request body and URI mismatch') expl = _('Request body and URI mismatch')
raise webob.exc.HTTPBadRequest(explanation=expl) raise webob.exc.HTTPBadRequest(explanation=expl)
flavor = common.get_flavor(context, flavor_id)
try: try:
flavor = objects.Flavor.get_by_flavor_id(context, flavor_id)
flavor.extra_specs = dict(flavor.extra_specs, **body) flavor.extra_specs = dict(flavor.extra_specs, **body)
flavor.save() flavor.save()
except exception.FlavorExtraSpecUpdateCreateFailed as e: except exception.FlavorExtraSpecUpdateCreateFailed as e:
@ -105,11 +105,9 @@ class FlavorExtraSpecsController(wsgi.Controller):
"""Return a single extra spec item.""" """Return a single extra spec item."""
context = req.environ['nova.context'] context = req.environ['nova.context']
authorize(context, action='show') authorize(context, action='show')
flavor = common.get_flavor(context, flavor_id)
try: try:
flavor = objects.Flavor.get_by_flavor_id(context, flavor_id)
return {id: flavor.extra_specs[id]} return {id: flavor.extra_specs[id]}
except exception.FlavorNotFound as e:
raise webob.exc.HTTPNotFound(explanation=e.format_message())
except KeyError: except KeyError:
msg = _("Flavor %(flavor_id)s has no extra specs with " msg = _("Flavor %(flavor_id)s has no extra specs with "
"key %(key)s.") % dict(flavor_id=flavor_id, "key %(key)s.") % dict(flavor_id=flavor_id,
@ -124,8 +122,8 @@ class FlavorExtraSpecsController(wsgi.Controller):
"""Deletes an existing extra spec.""" """Deletes an existing extra spec."""
context = req.environ['nova.context'] context = req.environ['nova.context']
authorize(context, action='delete') authorize(context, action='delete')
flavor = common.get_flavor(context, flavor_id)
try: try:
flavor = objects.Flavor.get_by_flavor_id(context, flavor_id)
del flavor.extra_specs[id] del flavor.extra_specs[id]
flavor.save() flavor.save()
except (exception.FlavorExtraSpecsNotFound, except (exception.FlavorExtraSpecsNotFound,