diff options
author | Jenkins <jenkins@review.openstack.org> | 2013-06-24 16:34:48 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2013-06-24 16:34:48 +0000 |
commit | 0866c5f98f77e03e7a7a687cbefe8adf37424657 (patch) | |
tree | f73e89fa479d10c0cae5eb4f8551a1df51a6f8dd | |
parent | 1980a0d2e3e1b844f907db59b4d5e4bc9c34ec39 (diff) | |
parent | e3d7f1edf958ea9a76ab29d87677f70ffaef2bde (diff) | |
download | nova-0866c5f98f77e03e7a7a687cbefe8adf37424657.tar.gz nova-0866c5f98f77e03e7a7a687cbefe8adf37424657.tar.xz nova-0866c5f98f77e03e7a7a687cbefe8adf37424657.zip |
Merge "Port rescue API to v3 Part 2"
-rw-r--r-- | etc/nova/policy.json | 1 | ||||
-rw-r--r-- | nova/api/openstack/compute/plugins/v3/rescue.py | 18 | ||||
-rw-r--r-- | nova/tests/api/openstack/compute/plugins/v3/test_rescue.py | 18 | ||||
-rw-r--r-- | nova/tests/fake_policy.py | 1 | ||||
-rw-r--r-- | setup.cfg | 1 |
5 files changed, 21 insertions, 18 deletions
diff --git a/etc/nova/policy.json b/etc/nova/policy.json index 3b138743e..e79ff8380 100644 --- a/etc/nova/policy.json +++ b/etc/nova/policy.json @@ -88,6 +88,7 @@ "compute_extension:quotas:delete": "rule:admin_api", "compute_extension:quota_classes": "", "compute_extension:rescue": "", + "compute_extension:v3:os-rescue": "", "compute_extension:security_group_default_rules": "rule:admin_api", "compute_extension:security_groups": "", "compute_extension:server_diagnostics": "rule:admin_api", diff --git a/nova/api/openstack/compute/plugins/v3/rescue.py b/nova/api/openstack/compute/plugins/v3/rescue.py index c89d11117..ded18bb1a 100644 --- a/nova/api/openstack/compute/plugins/v3/rescue.py +++ b/nova/api/openstack/compute/plugins/v3/rescue.py @@ -19,15 +19,16 @@ import webob from webob import exc from nova.api.openstack import common -from nova.api.openstack import extensions as exts +from nova.api.openstack import extensions from nova.api.openstack import wsgi from nova import compute from nova import exception from nova import utils +ALIAS = "os-rescue" CONF = cfg.CONF -authorize = exts.extension_authorizer('compute', 'rescue') +authorize = extensions.extension_authorizer('compute', 'v3:' + ALIAS) class RescueController(wsgi.Controller): @@ -82,15 +83,18 @@ class RescueController(wsgi.Controller): return webob.Response(status_int=202) -class Rescue(exts.ExtensionDescriptor): +class Rescue(extensions.V3APIExtensionBase): """Instance rescue mode.""" name = "Rescue" - alias = "os-rescue" - namespace = "http://docs.openstack.org/compute/ext/rescue/api/v1.1" - updated = "2011-08-18T00:00:00+00:00" + alias = ALIAS + namespace = "http://docs.openstack.org/compute/ext/rescue/api/v3" + version = 1 + + def get_resources(self): + return [] def get_controller_extensions(self): controller = RescueController() - extension = exts.ControllerExtension(self, 'servers', controller) + extension = extensions.ControllerExtension(self, 'servers', controller) return [extension] diff --git a/nova/tests/api/openstack/compute/plugins/v3/test_rescue.py b/nova/tests/api/openstack/compute/plugins/v3/test_rescue.py index ea0a96cbf..75733e50f 100644 --- a/nova/tests/api/openstack/compute/plugins/v3/test_rescue.py +++ b/nova/tests/api/openstack/compute/plugins/v3/test_rescue.py @@ -44,15 +44,11 @@ class RescueTest(test.TestCase): self.stubs.Set(compute.api.API, "get", fake_compute_get) self.stubs.Set(compute.api.API, "rescue", rescue) self.stubs.Set(compute.api.API, "unrescue", unrescue) - self.flags( - osapi_compute_extension=[ - 'nova.api.openstack.compute.contrib.select_extensions'], - osapi_compute_ext_list=['Rescue']) - self.app = fakes.wsgi_app(init_only=('servers',)) + self.app = fakes.wsgi_app_v3(init_only=('servers', 'os-rescue')) def test_rescue_with_preset_password(self): body = {"rescue": {"adminPass": "AABBCC112233"}} - req = webob.Request.blank('/v2/fake/servers/test_inst/action') + req = webob.Request.blank('/v3/servers/test_inst/action') req.method = "POST" req.body = jsonutils.dumps(body) req.headers["content-type"] = "application/json" @@ -64,7 +60,7 @@ class RescueTest(test.TestCase): def test_rescue_generates_password(self): body = dict(rescue=None) - req = webob.Request.blank('/v2/fake/servers/test_inst/action') + req = webob.Request.blank('/v3/servers/test_inst/action') req.method = "POST" req.body = jsonutils.dumps(body) req.headers["content-type"] = "application/json" @@ -81,7 +77,7 @@ class RescueTest(test.TestCase): raise exception.InstanceInvalidState('fake message') self.stubs.Set(compute.api.API, "rescue", fake_rescue) - req = webob.Request.blank('/v2/fake/servers/test_inst/action') + req = webob.Request.blank('/v3/servers/test_inst/action') req.method = "POST" req.body = jsonutils.dumps(body) req.headers["content-type"] = "application/json" @@ -91,7 +87,7 @@ class RescueTest(test.TestCase): def test_unrescue(self): body = dict(unrescue=None) - req = webob.Request.blank('/v2/fake/servers/test_inst/action') + req = webob.Request.blank('/v3/servers/test_inst/action') req.method = "POST" req.body = jsonutils.dumps(body) req.headers["content-type"] = "application/json" @@ -106,7 +102,7 @@ class RescueTest(test.TestCase): raise exception.InstanceInvalidState('fake message') self.stubs.Set(compute.api.API, "unrescue", fake_unrescue) - req = webob.Request.blank('/v2/fake/servers/test_inst/action') + req = webob.Request.blank('/v3/servers/test_inst/action') req.method = "POST" req.body = jsonutils.dumps(body) req.headers["content-type"] = "application/json" @@ -121,7 +117,7 @@ class RescueTest(test.TestCase): raise exception.InstanceNotRescuable('fake message') self.stubs.Set(compute.api.API, "rescue", fake_rescue) - req = webob.Request.blank('/v2/fake/servers/test_inst/action') + req = webob.Request.blank('/v3/servers/test_inst/action') req.method = "POST" req.body = jsonutils.dumps(body) req.headers["content-type"] = "application/json" diff --git a/nova/tests/fake_policy.py b/nova/tests/fake_policy.py index 0843306b4..d4264153c 100644 --- a/nova/tests/fake_policy.py +++ b/nova/tests/fake_policy.py @@ -168,6 +168,7 @@ policy_data = """ "compute_extension:quotas:delete": "", "compute_extension:quota_classes": "", "compute_extension:rescue": "", + "compute_extension:v3:os-rescue": "", "compute_extension:security_group_default_rules": "", "compute_extension:security_groups": "", "compute_extension:server_diagnostics": "", @@ -61,6 +61,7 @@ nova.api.v3.extensions = fixed_ips = nova.api.openstack.compute.plugins.v3.fixed_ips:FixedIPs ips = nova.api.openstack.compute.plugins.v3.ips:IPs keypairs = nova.api.openstack.compute.plugins.v3.keypairs:Keypairs + rescue = nova.api.openstack.compute.plugins.v3.rescue:Rescue servers = nova.api.openstack.compute.plugins.v3.servers:Servers nova.api.v3.extensions.server.create = |