On Thu, Nov 3, 2016 at 1:04 PM, Amrith Kumar <amr...@tesora.com> wrote:
> Gordon, > > You can see a very quick-and-dirty prototype of the kind of thing I'm > looking to do in Trove at > https://gist.github.com/amrith/6a89ff478f81c2910e84325923eddebe > > Uncommenting line 51 would simulate a bad hash. > > I'd be happy to propose something similar in oslo.messaging if you think > that would pass muster there. > > -amrith > > -----Original Message----- > From: gordon chung [mailto:g...@live.ca] > Sent: Thursday, November 3, 2016 3:09 PM > To: openstack-dev@lists.openstack.org > Subject: Re: [openstack-dev] [all][dev][python] constructing a > deterministic > representation of a python data structure > > > > On 03/11/16 02:24 PM, Amrith Kumar wrote: > > > > > So, just before calling call() or cast(), I could compute the hash and > > stuff it into the dictionary that is being sent over, and I can do the > > same on the receiving side. But since I cannot guarantee that the > > representation on the receiving side is necessarily identical to the > > representation on the sending side, I have issues computing the hash. > > > > > > based on description, you're trying to sign the messages? there was some > effort done in oslo.messaging[1] > > we do something similar in Ceilometer to sign IPC messages[2]. it does add > overhead though. > > [1] https://review.openstack.org/#/c/205330/ > [2] > https://github.com/openstack/ceilometer/blob/ > ffc9ee99c10ede988769907fdb0594a > 512c890cd/ceilometer/publisher/utils.py#L43-L58 > > cheers, > -- > gord > > __________________________________________________________________________ > OpenStack Development Mailing List (not for usage questions) > Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev > > __________________________________________________________________________ > OpenStack Development Mailing List (not for usage questions) > Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev > > I had to solve a similar issue for deterministic key generation in dogpile (key for memcache/etc) when memoizing methods/functions with kwargs. There are a couple issues you run into, default args are not represented in **kwargs, and non-positional args can come in any order. If you want an example of what we did to generate the cache-key programatically you can look here: https://bitbucket.org/zzzeek/dogpile.cache/src/669582c2e5bf12b1303f50c4b7ba3dad308eb1cc/dogpile/cache/util.py?at=master&fileviewer=file-view-default#util.py-67:118 You don't need all the namespace and probably not fn/module info, but this can look at the call and handle / ensure defaults also match (or be used to extract default kwargs if needed) for passing down to RPC. --Morgan
__________________________________________________________________________ OpenStack Development Mailing List (not for usage questions) Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev