From 1da7610f3c4e6390a8a3c8d103efb6e419ccc7eb Mon Sep 17 00:00:00 2001 From: "ChangBo Guo(gcb)" Date: Thu, 8 Dec 2016 17:00:46 +0800 Subject: [PATCH] Set access_policy for messaging's dispatcher oslo.messaging allow dispatcher to restrict endpoint methods since 5.11.0 in d3a8f280ebd6fd12865fd20c4d772774e39aefa2, set with DefaultRPCAccessPolicy to fix FutureWarning like: "The access_policy argument is changing its default value to in version '?', please update the code to explicitly set None as the value: access_policy defaults to LegacyRPCAccessPolicy which exposes private methods. Explicitly set access_policy to DefaultRPCAccessPolicy or ExplicitRPCAccessPolicy. " Change-Id: I568d6bb8ec245059f09f853388c6fa3b30bded86 --- nova/rpc.py | 6 ++++-- nova/tests/unit/test_rpc.py | 9 +++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/nova/rpc.py b/nova/rpc.py index 9e170a2a60da..bf961c44a60b 100644 --- a/nova/rpc.py +++ b/nova/rpc.py @@ -30,6 +30,7 @@ import functools from oslo_log import log as logging import oslo_messaging as messaging +from oslo_messaging.rpc import dispatcher from oslo_serialization import jsonutils from oslo_service import periodic_task from oslo_utils import importutils @@ -205,12 +206,13 @@ def get_server(target, endpoints, serializer=None): serializer = ProfilerRequestContextSerializer(serializer) else: serializer = RequestContextSerializer(serializer) - + access_policy = dispatcher.DefaultRPCAccessPolicy return messaging.get_rpc_server(TRANSPORT, target, endpoints, executor='eventlet', - serializer=serializer) + serializer=serializer, + access_policy=access_policy) def get_notifier(service, host=None, publisher_id=None): diff --git a/nova/tests/unit/test_rpc.py b/nova/tests/unit/test_rpc.py index 3f50efec2118..a265d45cbd1a 100644 --- a/nova/tests/unit/test_rpc.py +++ b/nova/tests/unit/test_rpc.py @@ -17,6 +17,7 @@ import datetime import fixtures import mock import oslo_messaging as messaging +from oslo_messaging.rpc import dispatcher from oslo_serialization import jsonutils from oslo_utils import fixture as utils_fixture import testtools @@ -214,8 +215,10 @@ class TestRPC(testtools.TestCase): server = rpc.get_server(tgt, ends, serializer='foo') mock_ser.assert_called_once_with('foo') + access_policy = dispatcher.DefaultRPCAccessPolicy mock_get.assert_called_once_with(rpc.TRANSPORT, tgt, ends, - executor='eventlet', serializer=ser) + executor='eventlet', serializer=ser, + access_policy=access_policy) self.assertEqual('server', server) @mock.patch.object(rpc, 'profiler', mock.Mock()) @@ -250,8 +253,10 @@ class TestRPC(testtools.TestCase): server = rpc.get_server(tgt, ends, serializer='foo') mock_ser.assert_called_once_with('foo') + access_policy = dispatcher.DefaultRPCAccessPolicy mock_get.assert_called_once_with(rpc.TRANSPORT, tgt, ends, - executor='eventlet', serializer=ser) + executor='eventlet', serializer=ser, + access_policy=access_policy) self.assertEqual('server', server) def test_get_notifier(self):