summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--etc/nova/policy.json1
-rw-r--r--nova/api/openstack/compute/plugins/v3/flavor_disabled.py26
-rw-r--r--nova/tests/api/openstack/compute/plugins/v3/test_flavor_disabled.py25
-rw-r--r--nova/tests/fake_policy.py1
-rw-r--r--setup.cfg1
5 files changed, 27 insertions, 27 deletions
diff --git a/etc/nova/policy.json b/etc/nova/policy.json
index d37ee60a4..7c563b936 100644
--- a/etc/nova/policy.json
+++ b/etc/nova/policy.json
@@ -59,6 +59,7 @@
"compute_extension:flavor_access": "",
"compute_extension:v3:os-flavor-access": "",
"compute_extension:flavor_disabled": "",
+ "compute_extension:v3:os-flavor-disabled": "",
"compute_extension:flavor_rxtx": "",
"compute_extension:flavor_swap": "",
"compute_extension:flavorextradata": "",
diff --git a/nova/api/openstack/compute/plugins/v3/flavor_disabled.py b/nova/api/openstack/compute/plugins/v3/flavor_disabled.py
index 62f902409..79f6df9ce 100644
--- a/nova/api/openstack/compute/plugins/v3/flavor_disabled.py
+++ b/nova/api/openstack/compute/plugins/v3/flavor_disabled.py
@@ -18,15 +18,15 @@ from nova.api.openstack import extensions
from nova.api.openstack import wsgi
from nova.api.openstack import xmlutil
-
-authorize = extensions.soft_extension_authorizer('compute', 'flavor_disabled')
+ALIAS = 'os-flavor-disabled'
+authorize = extensions.soft_extension_authorizer('compute', 'v3:' + ALIAS)
class FlavorDisabledController(wsgi.Controller):
def _extend_flavors(self, req, flavors):
for flavor in flavors:
db_flavor = req.get_db_flavor(flavor['id'])
- key = "%s:disabled" % Flavor_disabled.alias
+ key = "%s:disabled" % FlavorDisabled.alias
flavor[key] = db_flavor['disabled']
def _show(self, req, resp_obj):
@@ -52,24 +52,26 @@ class FlavorDisabledController(wsgi.Controller):
self._extend_flavors(req, list(resp_obj.obj['flavors']))
-class Flavor_disabled(extensions.ExtensionDescriptor):
+class FlavorDisabled(extensions.V3APIExtensionBase):
"""Support to show the disabled status of a flavor."""
name = "FlavorDisabled"
- alias = "OS-FLV-DISABLED"
- namespace = ("http://docs.openstack.org/compute/ext/"
- "flavor_disabled/api/v1.1")
- updated = "2012-08-29T00:00:00+00:00"
+ alias = ALIAS
+ namespace = "http://docs.openstack.org/compute/ext/%s/api/v3" % ALIAS
+ version = 1
def get_controller_extensions(self):
controller = FlavorDisabledController()
extension = extensions.ControllerExtension(self, 'flavors', controller)
return [extension]
+ def get_resources(self):
+ return []
+
def make_flavor(elem):
- elem.set('{%s}disabled' % Flavor_disabled.namespace,
- '%s:disabled' % Flavor_disabled.alias)
+ elem.set('{%s}disabled' % FlavorDisabled.namespace,
+ '%s:disabled' % FlavorDisabled.alias)
class FlavorDisabledTemplate(xmlutil.TemplateBuilder):
@@ -77,7 +79,7 @@ class FlavorDisabledTemplate(xmlutil.TemplateBuilder):
root = xmlutil.TemplateElement('flavor', selector='flavor')
make_flavor(root)
return xmlutil.SlaveTemplate(root, 1, nsmap={
- Flavor_disabled.alias: Flavor_disabled.namespace})
+ FlavorDisabled.alias: FlavorDisabled.namespace})
class FlavorsDisabledTemplate(xmlutil.TemplateBuilder):
@@ -86,4 +88,4 @@ class FlavorsDisabledTemplate(xmlutil.TemplateBuilder):
elem = xmlutil.SubTemplateElement(root, 'flavor', selector='flavors')
make_flavor(elem)
return xmlutil.SlaveTemplate(root, 1, nsmap={
- Flavor_disabled.alias: Flavor_disabled.namespace})
+ FlavorDisabled.alias: FlavorDisabled.namespace})
diff --git a/nova/tests/api/openstack/compute/plugins/v3/test_flavor_disabled.py b/nova/tests/api/openstack/compute/plugins/v3/test_flavor_disabled.py
index e46e02a44..5ff7f4035 100644
--- a/nova/tests/api/openstack/compute/plugins/v3/test_flavor_disabled.py
+++ b/nova/tests/api/openstack/compute/plugins/v3/test_flavor_disabled.py
@@ -15,7 +15,7 @@
from lxml import etree
import webob
-from nova.api.openstack.compute.contrib import flavor_disabled
+from nova.api.openstack.compute.plugins.v3 import flavor_disabled
from nova.compute import flavors
from nova.openstack.common import jsonutils
from nova import test
@@ -49,13 +49,10 @@ def fake_flavor_get_all(*args, **kwargs):
class FlavorDisabledTest(test.TestCase):
content_type = 'application/json'
- prefix = '%s:' % flavor_disabled.Flavor_disabled.alias
+ prefix = '%s:' % flavor_disabled.FlavorDisabled.alias
def setUp(self):
super(FlavorDisabledTest, self).setUp()
- ext = ('nova.api.openstack.compute.contrib'
- '.flavor_disabled.Flavor_disabled')
- self.flags(osapi_compute_extension=[ext])
fakes.stub_out_nw_api(self.stubs)
self.stubs.Set(flavors, "get_all_flavors",
fake_flavor_get_all)
@@ -66,8 +63,9 @@ class FlavorDisabledTest(test.TestCase):
def _make_request(self, url):
req = webob.Request.blank(url)
req.headers['Accept'] = self.content_type
- res = req.get_response(fakes.wsgi_app())
- return res
+ app = fakes.wsgi_app_v3(init_only=('servers', 'flavors',
+ 'os-flavor-disabled'))
+ return req.get_response(app)
def _get_flavor(self, body):
return jsonutils.loads(body).get('flavor')
@@ -79,17 +77,14 @@ class FlavorDisabledTest(test.TestCase):
self.assertEqual(str(flavor.get('%sdisabled' % self.prefix)), disabled)
def test_show(self):
- url = '/v2/fake/flavors/1'
- res = self._make_request(url)
-
- self.assertEqual(res.status_int, 200)
+ res = self._make_request('/v3/flavors/1')
+ self.assertEqual(res.status_int, 200, res.body)
self.assertFlavorDisabled(self._get_flavor(res.body), 'False')
def test_detail(self):
- url = '/v2/fake/flavors/detail'
- res = self._make_request(url)
+ res = self._make_request('/v3/flavors/detail')
- self.assertEqual(res.status_int, 200)
+ self.assertEqual(res.status_int, 200, res.body)
flavors = self._get_flavors(res.body)
self.assertFlavorDisabled(flavors[0], 'False')
self.assertFlavorDisabled(flavors[1], 'True')
@@ -97,7 +92,7 @@ class FlavorDisabledTest(test.TestCase):
class FlavorDisabledXmlTest(FlavorDisabledTest):
content_type = 'application/xml'
- prefix = '{%s}' % flavor_disabled.Flavor_disabled.namespace
+ prefix = '{%s}' % flavor_disabled.FlavorDisabled.namespace
def _get_flavor(self, body):
return etree.XML(body)
diff --git a/nova/tests/fake_policy.py b/nova/tests/fake_policy.py
index bbde1787a..da43115d0 100644
--- a/nova/tests/fake_policy.py
+++ b/nova/tests/fake_policy.py
@@ -135,6 +135,7 @@ policy_data = """
"compute_extension:flavor_access": "",
"compute_extension:v3:os-flavor-access": "",
"compute_extension:flavor_disabled": "",
+ "compute_extension:v3:os-flavor-disabled": "",
"compute_extension:flavor_rxtx": "",
"compute_extension:flavor_swap": "",
"compute_extension:flavorextradata": "",
diff --git a/setup.cfg b/setup.cfg
index 5b52a5464..3d90a8a44 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -61,6 +61,7 @@ nova.api.v3.extensions =
fixed_ips = nova.api.openstack.compute.plugins.v3.fixed_ips:FixedIPs
flavors = nova.api.openstack.compute.plugins.v3.flavors:Flavors
flavor_access = nova.api.openstack.compute.plugins.v3.flavor_access:FlavorAccess
+ flavor_disabled = nova.api.openstack.compute.plugins.v3.flavor_disabled:FlavorDisabled
ips = nova.api.openstack.compute.plugins.v3.ips:IPs
keypairs = nova.api.openstack.compute.plugins.v3.keypairs:Keypairs
quota_sets = nova.api.openstack.compute.plugins.v3.quota_sets:QuotaSets