Merge "Remove and deprecate conductor object_backport()"
This commit is contained in:
commit
fd72f2200c
@ -17,6 +17,7 @@
|
|||||||
from oslo_config import cfg
|
from oslo_config import cfg
|
||||||
from oslo_log import log as logging
|
from oslo_log import log as logging
|
||||||
import oslo_messaging as messaging
|
import oslo_messaging as messaging
|
||||||
|
from oslo_versionedobjects import base as ovo_base
|
||||||
|
|
||||||
from nova import baserpc
|
from nova import baserpc
|
||||||
from nova.conductor import manager
|
from nova.conductor import manager
|
||||||
@ -65,7 +66,11 @@ class LocalAPI(object):
|
|||||||
return self._manager.provider_fw_rule_get_all(context)
|
return self._manager.provider_fw_rule_get_all(context)
|
||||||
|
|
||||||
def object_backport(self, context, objinst, target_version):
|
def object_backport(self, context, objinst, target_version):
|
||||||
return self._manager.object_backport(context, objinst, target_version)
|
# NOTE(hanlind): This shouldn't be called anymore but leaving it for
|
||||||
|
# now just in case. Collect the object version manifest and redirect
|
||||||
|
# to the newer backport call.
|
||||||
|
object_versions = ovo_base.obj_tree_get_versions(objinst.obj_name())
|
||||||
|
return self.object_backport_versions(context, objinst, object_versions)
|
||||||
|
|
||||||
def object_backport_versions(self, context, objinst, object_versions):
|
def object_backport_versions(self, context, objinst, object_versions):
|
||||||
return self._manager.object_backport_versions(context, objinst,
|
return self._manager.object_backport_versions(context, objinst,
|
||||||
|
@ -447,6 +447,7 @@ class ConductorManager(manager.Manager):
|
|||||||
except Exception:
|
except Exception:
|
||||||
raise messaging.ExpectedException()
|
raise messaging.ExpectedException()
|
||||||
|
|
||||||
|
# NOTE(hanlind): This can be removed in version 3.0 of the RPC API
|
||||||
def object_class_action(self, context, objname, objmethod,
|
def object_class_action(self, context, objname, objmethod,
|
||||||
objver, args, kwargs):
|
objver, args, kwargs):
|
||||||
"""Perform a classmethod action on an object."""
|
"""Perform a classmethod action on an object."""
|
||||||
@ -494,6 +495,7 @@ class ConductorManager(manager.Manager):
|
|||||||
updates['obj_what_changed'] = objinst.obj_what_changed()
|
updates['obj_what_changed'] = objinst.obj_what_changed()
|
||||||
return updates, result
|
return updates, result
|
||||||
|
|
||||||
|
# NOTE(hanlind): This can be removed in version 3.0 of the RPC API
|
||||||
def object_backport(self, context, objinst, target_version):
|
def object_backport(self, context, objinst, target_version):
|
||||||
return objinst.obj_to_primitive(target_version=target_version)
|
return objinst.obj_to_primitive(target_version=target_version)
|
||||||
|
|
||||||
|
@ -188,6 +188,7 @@ class ConductorAPI(object):
|
|||||||
* 2.2 - Add object_backport_versions()
|
* 2.2 - Add object_backport_versions()
|
||||||
* 2.3 - Add object_class_action_versions()
|
* 2.3 - Add object_class_action_versions()
|
||||||
* Remove compute_node_create()
|
* Remove compute_node_create()
|
||||||
|
* Remove object_backport()
|
||||||
"""
|
"""
|
||||||
|
|
||||||
VERSION_ALIASES = {
|
VERSION_ALIASES = {
|
||||||
@ -212,6 +213,9 @@ class ConductorAPI(object):
|
|||||||
cctxt = self.client.prepare()
|
cctxt = self.client.prepare()
|
||||||
return cctxt.call(context, 'provider_fw_rule_get_all')
|
return cctxt.call(context, 'provider_fw_rule_get_all')
|
||||||
|
|
||||||
|
# TODO(hanlind): This method can be removed once oslo.versionedobjects
|
||||||
|
# has been converted to use version_manifests in remotable_classmethod
|
||||||
|
# operations, which will use the new class action handler.
|
||||||
def object_class_action(self, context, objname, objmethod, objver,
|
def object_class_action(self, context, objname, objmethod, objver,
|
||||||
args, kwargs):
|
args, kwargs):
|
||||||
if self.client.can_send_version('2.3'):
|
if self.client.can_send_version('2.3'):
|
||||||
@ -242,11 +246,6 @@ class ConductorAPI(object):
|
|||||||
return cctxt.call(context, 'object_action', objinst=objinst,
|
return cctxt.call(context, 'object_action', objinst=objinst,
|
||||||
objmethod=objmethod, args=args, kwargs=kwargs)
|
objmethod=objmethod, args=args, kwargs=kwargs)
|
||||||
|
|
||||||
def object_backport(self, context, objinst, target_version):
|
|
||||||
cctxt = self.client.prepare()
|
|
||||||
return cctxt.call(context, 'object_backport', objinst=objinst,
|
|
||||||
target_version=target_version)
|
|
||||||
|
|
||||||
def object_backport_versions(self, context, objinst, object_versions):
|
def object_backport_versions(self, context, objinst, object_versions):
|
||||||
cctxt = self.client.prepare(version='2.2')
|
cctxt = self.client.prepare(version='2.2')
|
||||||
return cctxt.call(context, 'object_backport_versions', objinst=objinst,
|
return cctxt.call(context, 'object_backport_versions', objinst=objinst,
|
||||||
|
@ -840,6 +840,20 @@ class ConductorAPITestCase(_BaseTestCase, test.TestCase):
|
|||||||
self.assertEqual(timeouts.count(10), 10)
|
self.assertEqual(timeouts.count(10), 10)
|
||||||
self.assertIn(None, timeouts)
|
self.assertIn(None, timeouts)
|
||||||
|
|
||||||
|
@mock.patch('oslo_versionedobjects.base.obj_tree_get_versions')
|
||||||
|
def test_object_backport_redirect(self, mock_ovo):
|
||||||
|
mock_ovo.return_value = mock.sentinel.obj_versions
|
||||||
|
mock_objinst = mock.Mock()
|
||||||
|
|
||||||
|
with mock.patch.object(self.conductor,
|
||||||
|
'object_backport_versions') as mock_call:
|
||||||
|
self.conductor.object_backport(mock.sentinel.ctxt,
|
||||||
|
mock_objinst,
|
||||||
|
mock.sentinel.target_version)
|
||||||
|
mock_call.assert_called_once_with(mock.sentinel.ctxt,
|
||||||
|
mock_objinst,
|
||||||
|
mock.sentinel.obj_versions)
|
||||||
|
|
||||||
|
|
||||||
class ConductorLocalAPITestCase(ConductorAPITestCase):
|
class ConductorLocalAPITestCase(ConductorAPITestCase):
|
||||||
"""Conductor LocalAPI Tests."""
|
"""Conductor LocalAPI Tests."""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user