<div dir="ltr">Sean, <div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span style="font-family:arial,sans-serif;font-size:13px">class ResponseBody(dict):<br>
</span><span style="font-family:arial,sans-serif;font-size:13px">    def __init__(self, body={}, resp=None):<br></span><span style="font-family:arial,sans-serif;font-size:13px">        self.update(body)<br></span><span style="font-family:arial,sans-serif;font-size:13px">        self.resp = resp</span></blockquote>
<div><br></div><div><br></div><div>Are you sure that you would like to have default value {} for method argument and not something like: </div><div><br></div><div><br></div><div><span style="font-size:13px;font-family:arial,sans-serif">class ResponseBody(dict):<br>
</span><span style="font-size:13px;font-family:arial,sans-serif">    def __init__(self, body=None, resp=None):</span></div><div><span style="font-size:13px;font-family:arial,sans-serif">        body = body or {}<br></span><span style="font-size:13px;font-family:arial,sans-serif">        self.update(body)<br>
</span><span style="font-size:13px;font-family:arial,sans-serif">        self.resp = resp</span><br></div><div> </div><div><br></div><div>In your case you have side effect. Take a look at:</div><div><a href="http://stackoverflow.com/questions/1132941/least-astonishment-in-python-the-mutable-default-argument">http://stackoverflow.com/questions/1132941/least-astonishment-in-python-the-mutable-default-argument</a><br>
</div><div><br></div><div>Best regards,</div><div>Boris Pavlovic </div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, Aug 30, 2014 at 10:08 AM, GHANSHYAM MANN <span dir="ltr"><<a href="mailto:ghanshyammann@gmail.com" target="_blank">ghanshyammann@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra">+1. That will also help full for API coming up with microversion like Nova.<div>
<div class="h5"><br><br><div class="gmail_quote">On Fri, Aug 29, 2014 at 11:56 PM, Sean Dague <span dir="ltr"><<a href="mailto:sean@dague.net" target="_blank">sean@dague.net</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 08/29/2014 10:19 AM, David Kranz wrote:<br>
> While reviewing patches for moving response checking to the clients, I<br>
> noticed that there are places where client methods do not return any value.<br>
> This is usually, but not always, a delete method. IMO, every rest client<br>
> method should return at least the response. Some services return just<br>
> the response for delete methods and others return (resp, body). Does any<br>
> one object to cleaning this up by just making all client methods return<br>
> resp, body? This is mostly a change to the clients. There were only a<br>
> few places where a non-delete  method was returning just a body that was<br>
> used in test code.<br>
<br>
Yair and I were discussing this yesterday. As the response correctness<br>
checking is happening deeper in the code (and you are seeing more and<br>
more people assigning the response object to _ ) my feeling is Tempest<br>
clients should probably return a body obj that's basically.<br>
<br>
class ResponseBody(dict):<br>
    def __init__(self, body={}, resp=None):<br>
        self.update(body)<br>
        self.resp = resp<br>
<br>
Then all the clients would have single return values, the body would be<br>
the default thing you were accessing (which is usually what you want),<br>
and the response object is accessible if needed to examine headers.<br>
<span><font color="#888888"><br>
        -Sean<br>
<br>
--<br>
Sean Dague<br>
<a href="http://dague.net" target="_blank">http://dague.net</a><br>
<br>
_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">OpenStack-dev@lists.openstack.org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
</font></span></blockquote></div><br><br clear="all"><div><br></div></div></div><span class="HOEnZb"><font color="#888888">-- <br><div dir="ltr"><div>Thanks & Regards</div><div>Ghanshyam Mann</div><div><br></div></div>

</font></span></div></div>
<br>_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
<br></blockquote></div><br></div>