diff options
author | Russell Bryant <rbryant@redhat.com> | 2013-06-10 21:44:22 -0400 |
---|---|---|
committer | Russell Bryant <rbryant@redhat.com> | 2013-06-11 14:30:46 -0400 |
commit | 80476f0c6e70e23102495e383e98ae0e912e07f6 (patch) | |
tree | 71d0fc46e397704b5466001a8c0770d400bc66a3 | |
parent | 165b98415d3949f8a9dddbdbc1f304fb7d257718 (diff) | |
download | oslo-80476f0c6e70e23102495e383e98ae0e912e07f6.tar.gz oslo-80476f0c6e70e23102495e383e98ae0e912e07f6.tar.xz oslo-80476f0c6e70e23102495e383e98ae0e912e07f6.zip |
Add can_send_version() to RpcProxy.
Add a helper method to the RpcProxy class. This is a little nicer to
use for checking to see if a given message is copmatible with the set
version cap.
Change-Id: Ic44d76f4181351dff367f2d1181a3d508a11db78
-rw-r--r-- | openstack/common/rpc/proxy.py | 5 | ||||
-rw-r--r-- | tests/unit/rpc/test_proxy.py | 10 |
2 files changed, 15 insertions, 0 deletions
diff --git a/openstack/common/rpc/proxy.py b/openstack/common/rpc/proxy.py index 3b74fe1..8523421 100644 --- a/openstack/common/rpc/proxy.py +++ b/openstack/common/rpc/proxy.py @@ -76,6 +76,11 @@ class RpcProxy(object): """Return the topic to use for a message.""" return topic if topic else self.topic + def can_send_version(self, version): + """Check to see if a version is compatible with the version cap.""" + return (not self.version_cap or + rpc_common.version_is_compatible(self.version_cap, version)) + @staticmethod def make_namespaced_msg(method, namespace, **kwargs): return {'method': method, 'namespace': namespace, 'args': kwargs} diff --git a/tests/unit/rpc/test_proxy.py b/tests/unit/rpc/test_proxy.py index 9427cbe..9f67c83 100644 --- a/tests/unit/rpc/test_proxy.py +++ b/tests/unit/rpc/test_proxy.py @@ -209,3 +209,13 @@ class RpcProxyTestCase(utils.BaseTestCase): msg = rpc_proxy.make_msg('foo', a=1, b=2) result = rpc_proxy.call(ctxt, msg) self.assertEqual(result, 'worked!') + + def test_can_send_version(self): + proxy_obj = proxy.RpcProxy('fake', '1.0', version_cap='1.5') + self.assertTrue(proxy_obj.can_send_version('1.5')) + self.assertFalse(proxy_obj.can_send_version('1.6')) + + def test_can_send_version_with_no_cap(self): + proxy_obj = proxy.RpcProxy('fake', '1.0') + self.assertTrue(proxy_obj.can_send_version('1.5')) + self.assertTrue(proxy_obj.can_send_version('1.99')) |