summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2013-10-29 07:09:21 +0000
committerGerrit Code Review <review@openstack.org>2013-10-29 07:09:21 +0000
commit9e6458a6dce5c60afc14d1730f90014ed688622a (patch)
tree38b79e7d0d1e5bb5ecc6ae98e03778287ff7557d
parent1357397d8a6ef530e07eb266a9b4c0f39e5dedfb (diff)
parentedcc7dcbcbfa50a002767d437ea9cf344d1d7a37 (diff)
downloadnova-9e6458a6dce5c60afc14d1730f90014ed688622a.tar.gz
Merge "Correct update extension point's check_func for v3 server's controller"
-rw-r--r--nova/api/openstack/compute/plugins/v3/servers.py2
-rw-r--r--nova/tests/api/openstack/compute/plugins/v3/test_servers.py72
2 files changed, 73 insertions, 1 deletions
diff --git a/nova/api/openstack/compute/plugins/v3/servers.py b/nova/api/openstack/compute/plugins/v3/servers.py
index 4e93986338..e69eda8b8e 100644
--- a/nova/api/openstack/compute/plugins/v3/servers.py
+++ b/nova/api/openstack/compute/plugins/v3/servers.py
@@ -468,7 +468,7 @@ class ServersController(wsgi.Controller):
self.update_extension_manager = \
stevedore.enabled.EnabledExtensionManager(
namespace=self.EXTENSION_UPDATE_NAMESPACE,
- check_func=_check_load_extension('server_resize'),
+ check_func=_check_load_extension('server_update'),
invoke_on_load=True,
invoke_kwds={"extension_info": self.extension_info},
propagate_map_exceptions=True)
diff --git a/nova/tests/api/openstack/compute/plugins/v3/test_servers.py b/nova/tests/api/openstack/compute/plugins/v3/test_servers.py
index e713758cb0..1b6941e5c6 100644
--- a/nova/tests/api/openstack/compute/plugins/v3/test_servers.py
+++ b/nova/tests/api/openstack/compute/plugins/v3/test_servers.py
@@ -31,10 +31,12 @@ import webob
from nova.api.openstack import compute
from nova.api.openstack.compute import plugins
from nova.api.openstack.compute.plugins.v3 import availability_zone
+from nova.api.openstack.compute.plugins.v3 import disk_config
from nova.api.openstack.compute.plugins.v3 import ips
from nova.api.openstack.compute.plugins.v3 import keypairs
from nova.api.openstack.compute.plugins.v3 import servers
from nova.api.openstack.compute import views
+from nova.api.openstack import extensions
from nova.api.openstack import xmlutil
from nova.compute import api as compute_api
from nova.compute import flavors
@@ -4470,3 +4472,73 @@ class TestServerRebuildXMLDeserializer(test.TestCase):
},
}
self.assertThat(request['body'], matchers.DictMatches(expected))
+
+
+class FakeDiskConfigExt(extensions.V3APIExtensionBase):
+ name = "DiskConfig"
+ alias = 'os-disk-config'
+ namespace = "http://docs.openstack.org/compute/ext/disk_config/api/v3"
+ version = 1
+
+ def fake_extension_point(self, *args, **kwargs):
+ pass
+
+ def get_controller_extensions(self):
+ return []
+
+ def get_resources(self):
+ return []
+
+
+class TestServersExtensionPoint(test.NoDBTestCase):
+ def setUp(self):
+ super(TestServersExtensionPoint, self).setUp()
+ CONF.set_override('extensions_whitelist', ['os-disk-config'],
+ 'osapi_v3')
+ self.stubs.Set(disk_config, 'DiskConfig', FakeDiskConfigExt)
+
+ def _test_load_extension_point(self, name):
+ setattr(FakeDiskConfigExt, 'server_%s' % name,
+ FakeDiskConfigExt.fake_extension_point)
+ ext_info = plugins.LoadedExtensionInfo()
+ controller = servers.ServersController(extension_info=ext_info)
+ self.assertEqual(
+ 'os-disk-config',
+ list(getattr(controller,
+ '%s_extension_manager' % name))[0].obj.alias)
+ delattr(FakeDiskConfigExt, 'server_%s' % name)
+
+ def test_load_resize_extension_point(self):
+ self._test_load_extension_point('resize')
+
+ def test_load_update_extension_point(self):
+ self._test_load_extension_point('update')
+
+ def test_load_rebuild_extension_point(self):
+ self._test_load_extension_point('rebuild')
+
+ def test_load_create_extension_point(self):
+ self._test_load_extension_point('rebuild')
+
+ def _test_load_deserialize_extension_point(self, name):
+ extension_point_func = 'server_xml_extract_%s_deserialize' % name
+ if name == 'create':
+ extension_point_func = 'server_xml_extract_server_deserialize'
+ setattr(FakeDiskConfigExt, extension_point_func,
+ FakeDiskConfigExt.fake_extension_point)
+ ext_info = plugins.LoadedExtensionInfo()
+ controller = servers.ServersController(extension_info=ext_info)
+ self.assertEqual(
+ 'os-disk-config',
+ list(getattr(controller,
+ '%s_xml_deserialize_manager' % name))[0].obj.alias)
+ delattr(FakeDiskConfigExt, extension_point_func)
+
+ def test_load_create_xml_deserialize_extension_point(self):
+ self._test_load_deserialize_extension_point('create')
+
+ def test_load_resize_xml_deserialize_extension_point(self):
+ self._test_load_deserialize_extension_point('resize')
+
+ def test_load_rebuild_xml_deserialize_extension_point(self):
+ self._test_load_deserialize_extension_point('rebuild')