[openstack-dev] [oslo] oslo.messaging dispatching into private/protected methods?

Joshua Harlow harlowja at fastmail.com
Thu Mar 17 22:44:06 UTC 2016


In a follow-up to this.

Seems like the patch to disable/disallow this itself found some 
'violations' @ 
http://logs.openstack.org/24/289624/3/check/gate-oslo.messaging-src-dsvm-full-amqp1-centos7/e3b485c/console.html.gz#_2016-03-11_00_06_56_177

Details: {u'message': u'Unable to associate floating IP 172.24.5.1 to 
fixed IP 10.1.14.255 for instance 3660f872-a8c2-4469-99c3-062ed1a90131. 
Error: Remote error: NoSuchMethod Endpoint does not support RPC method 
_associate_floating_ip\n[u\'Traceback (most recent call last):\\n\', u\' 
  File "/opt/stack/new/oslo.messaging/oslo_messaging/rpc/dispatcher.py", 
line 138, in _dispatch_and_reply\\n    incoming.message))\\n\', u\' 
File "/opt/stack/new/oslo.messaging/oslo_messaging/rpc/dispatcher.py", 
line 170, in _dispatch\\n    raise NoSuchMethod(method)\\n\', 
u\'NoSuchMethod: Endpoint does not support RPC method 
_associate_floating_ip\\n\'].', u'code': 400}

I believe this is a nova error as the test name is 
'tempest.api.compute.floating_ips.test_floating_ips_actions'

So I guess the question becomes, should we start warning using 
warnings.warn (instead of raising a NoSuchMethod error) and at a later 
point in the future stop using warnings.warn and switch to NoSuchMethod, 
giving people ample enough time to stop dispatching into 
protected/private methods.

Thoughts?

-Josh

On 03/08/2016 09:43 AM, Joshua Harlow wrote:
> Hi all,
>
> As I was working through https://review.openstack.org/#/c/288719/ for
> kevin benton to do some things with in neutron it came to my
> understanding that this code (the dispatcher code that is) can dispatch
> into nearly arbitrary callables of any object (or that is what it looks
> like it can do):
>
> https://github.com/openstack/oslo.messaging/blob/4.5.0/oslo_messaging/rpc/dispatcher.py#L169
>
>
> So during this exploration of this code for the above review it made me
> wonder if this is a feature or bug, or if we should at least close the
> hole of allowing calling into nearly any endpoint method/attribute (even
> non-callable ones to?).
>
> So before doing much more of this (which I started in review
> https://review.openstack.org/#/c/289624/) I wanted to see if people are
> actually using this 'ability' (for lack of better words) to call into
> private/protected methods before pursuing 289624 much more...
>
> Thoughts?
>
> -Josh



More information about the OpenStack-dev mailing list