)]}'
{"specs/clients-return-one-value.rst":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"56137bab61adbde30b2cf270977572088aec8697","unresolved":false,"context_lines":[{"line_number":23,"context_line":"class ResponseBody(object):"},{"line_number":24,"context_line":"    def __init__(self, status_code, body\u003dNone):"},{"line_number":25,"context_line":"        self._data_dict \u003d body or {}"},{"line_number":26,"context_line":"        self.status_code \u003d status_code"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def __getitem__(self, index):"},{"line_number":29,"context_line":"        return self._data_dict[index]"}],"source_content_type":"text/x-rst","patch_set":1,"id":"baa201ad_afaf0029","line":26,"updated":"2014-10-06 05:25:36.000000000","message":"Not only status_code, we should store the whole response object to examine header in test cases if needed (one example may be for Nova microversion)","commit_id":"62ed5a06c162f807f597c37e8a7cffc56394e3c8"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"ed79da38bda4d1a8030d546d2d066c0fca39f13d","unresolved":false,"context_lines":[{"line_number":10,"context_line":"https://blueprints.launchpad.net/tempest/+spec/clients-return-one-value"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Currently tempest clients return a response code and body. Since we moved"},{"line_number":13,"context_line":"response checking to clients, almost all callers of the clients ignore the"},{"line_number":14,"context_line":"response code. It would be much cleaner if clients returned a single response"},{"line_number":15,"context_line":"object that was the body, with a property to get the response status and"},{"line_number":16,"context_line":"headers if needed."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9aa7fdbe_9ad35a03","line":13,"updated":"2014-10-24 00:38:31.000000000","message":"Can you do an internal link/ref to that spec here?","commit_id":"d28dff3131e78667344f01128f96c685b2168b97"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"ed79da38bda4d1a8030d546d2d066c0fca39f13d","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Proposed change"},{"line_number":20,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Introduce a new ResponseBody class:"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class ResponseBody(object):"},{"line_number":25,"context_line":"    def __init__(self, response, body\u003dNone):"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9aa7fdbe_9acc3a6c","line":22,"updated":"2014-10-24 00:38:31.000000000","message":"Where will this be defined? In the rest client?","commit_id":"d28dff3131e78667344f01128f96c685b2168b97"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"2fa7dbf1c43f6c59d8b3d446ab44881a88ff976d","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Proposed change"},{"line_number":20,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Introduce a new ResponseBody class:"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class ResponseBody(object):"},{"line_number":25,"context_line":"    def __init__(self, response, body\u003dNone):"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9aa7fdbe_15445d72","line":22,"in_reply_to":"9aa7fdbe_9acc3a6c","updated":"2014-10-27 20:10:43.000000000","message":"In rest client.","commit_id":"d28dff3131e78667344f01128f96c685b2168b97"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"ed79da38bda4d1a8030d546d2d066c0fca39f13d","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Introduce a new ResponseBody class:"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class ResponseBody(object):"},{"line_number":25,"context_line":"    def __init__(self, response, body\u003dNone):"},{"line_number":26,"context_line":"        self._data_dict \u003d body or {}"},{"line_number":27,"context_line":"        self.response \u003d response"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9aa7fdbe_1a8bea1f","line":24,"updated":"2014-10-24 00:38:31.000000000","message":"This probably needs to inherit from dict. Unless you want to go through and update ever usage of body this will need to behave like a dictionary since that\u0027s been the case for everything up until this point.","commit_id":"d28dff3131e78667344f01128f96c685b2168b97"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"2fa7dbf1c43f6c59d8b3d446ab44881a88ff976d","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Introduce a new ResponseBody class:"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class ResponseBody(object):"},{"line_number":25,"context_line":"    def __init__(self, response, body\u003dNone):"},{"line_number":26,"context_line":"        self._data_dict \u003d body or {}"},{"line_number":27,"context_line":"        self.response \u003d response"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9aa7fdbe_153b7deb","line":24,"in_reply_to":"9aa7fdbe_1a8bea1f","updated":"2014-10-27 20:10:43.000000000","message":"Yes, I discovered that the hard way. In our usage it is fine to delegate but there are random internal calls that fail.","commit_id":"d28dff3131e78667344f01128f96c685b2168b97"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"ed79da38bda4d1a8030d546d2d066c0fca39f13d","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def __getitem__(self, index):"},{"line_number":30,"context_line":"        return self._data_dict[index]"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Change all the tempest clients to return this object and change all the calls"},{"line_number":34,"context_line":"to the clients, getting rid of the current \u0027_\u0027 for the response."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9aa7fdbe_fa71c644","line":31,"updated":"2014-10-24 00:38:31.000000000","message":"You might want to also overload __str__() to avoid having to do something like \n\nLOG.info(\"request: %s\\nBody: %s\" % (body.response, body,_data_dict)\n\nyou could do\n\nLOG.info(body)","commit_id":"d28dff3131e78667344f01128f96c685b2168b97"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"ed79da38bda4d1a8030d546d2d066c0fca39f13d","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        return self._data_dict[index]"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Change all the tempest clients to return this object and change all the calls"},{"line_number":34,"context_line":"to the clients, getting rid of the current \u0027_\u0027 for the response."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9aa7fdbe_1a076a83","line":33,"updated":"2014-10-24 00:38:31.000000000","message":"I\u0027m just curious is there a reason not to bake this into the rest client http method responses? Is it just because we do deserialization in the service clients and we can\u0027t bake that into the rest client for various reasons?","commit_id":"d28dff3131e78667344f01128f96c685b2168b97"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"2fa7dbf1c43f6c59d8b3d446ab44881a88ff976d","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        return self._data_dict[index]"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Change all the tempest clients to return this object and change all the calls"},{"line_number":34,"context_line":"to the clients, getting rid of the current \u0027_\u0027 for the response."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9aa7fdbe_e82c609b","line":33,"in_reply_to":"9aa7fdbe_1a076a83","updated":"2014-10-27 20:10:43.000000000","message":"Ideally this could be done in the rest client but it would imply much more regularity of the service clients than we have. Also, it would then be necessary to change everything at once because all the tests currently expect two values.","commit_id":"d28dff3131e78667344f01128f96c685b2168b97"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"ed79da38bda4d1a8030d546d2d066c0fca39f13d","unresolved":false,"context_lines":[{"line_number":37,"context_line":"Alternatives"},{"line_number":38,"context_line":"------------"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Continue to have the test code littered with unused underscores."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Implementation"},{"line_number":43,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9aa7fdbe_faa8e678","line":40,"updated":"2014-10-24 00:38:31.000000000","message":"Well, to be fair you could also do something like have a flag in all the api calls like response\u003dFalse and only return it if it\u0027s set to true or something like that.","commit_id":"d28dff3131e78667344f01128f96c685b2168b97"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"2fa7dbf1c43f6c59d8b3d446ab44881a88ff976d","unresolved":false,"context_lines":[{"line_number":37,"context_line":"Alternatives"},{"line_number":38,"context_line":"------------"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Continue to have the test code littered with unused underscores."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Implementation"},{"line_number":43,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9aa7fdbe_a845f843","line":40,"in_reply_to":"9aa7fdbe_faa8e678","updated":"2014-10-27 20:10:43.000000000","message":"We could do that but I don\u0027t see how it is better. Just different.","commit_id":"d28dff3131e78667344f01128f96c685b2168b97"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"ed79da38bda4d1a8030d546d2d066c0fca39f13d","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Work Items"},{"line_number":60,"context_line":"----------"},{"line_number":61,"context_line":"- Change all methods in the tempest clients to return ResponseBody."},{"line_number":62,"context_line":"- Change all calls to clients to receive just the response body and check"},{"line_number":63,"context_line":"  the response code if necessary."},{"line_number":64,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9aa7fdbe_dad96223","line":61,"updated":"2014-10-24 00:38:31.000000000","message":"Why not iterate over clients and do the migration on both sides one at a time. That might make reviews a bit more manageable.","commit_id":"d28dff3131e78667344f01128f96c685b2168b97"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"2fa7dbf1c43f6c59d8b3d446ab44881a88ff976d","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Work Items"},{"line_number":60,"context_line":"----------"},{"line_number":61,"context_line":"- Change all methods in the tempest clients to return ResponseBody."},{"line_number":62,"context_line":"- Change all calls to clients to receive just the response body and check"},{"line_number":63,"context_line":"  the response code if necessary."},{"line_number":64,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9aa7fdbe_c89ebcb8","line":61,"in_reply_to":"9aa7fdbe_dad96223","updated":"2014-10-27 20:10:43.000000000","message":"That was the intent, same as was done with the success checking.","commit_id":"d28dff3131e78667344f01128f96c685b2168b97"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"03149d35066fedcde16748c879d78bcc9ed6058c","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Introduce a new ResponseBody class in rest_client::"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    class ResponseBody(dict):"},{"line_number":25,"context_line":"        \"\"\""},{"line_number":26,"context_line":"        Class that wraps an http response and body into a single value."},{"line_number":27,"context_line":"        Callers that receive this object will normally use it as a dict but"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9aa7fdbe_18d704ef","line":24,"updated":"2014-10-29 08:24:28.000000000","message":"sorry for jumping late into this discussion.\nI like the previous (patchset #2) implementation (composition rather than inheritance) where we can choose specifically which dict methods are being overloaded.\nIn my experience we might have trouble down the road if we\u0027d want to extend the capabilities of this class and find out that we are confined by inheriting a python builtin class\n\nIt might take us a little more work to implement all the required overloads but I think it\u0027s worth it\n\nYou\u0027ve mentioned \"random internal calls that fail\" - could you please elaborate on that?","commit_id":"7406bbd29e5f7f31fc7908023236e57e985a2d6a"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"204d0c2fa3735aca95a51a1459308ee19c885ef1","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Introduce a new ResponseBody class in rest_client::"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    class ResponseBody(dict):"},{"line_number":25,"context_line":"        \"\"\""},{"line_number":26,"context_line":"        Class that wraps an http response and body into a single value."},{"line_number":27,"context_line":"        Callers that receive this object will normally use it as a dict but"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9aa7fdbe_c4b4b2d3","line":24,"in_reply_to":"9aa7fdbe_18d704ef","updated":"2014-10-29 13:42:21.000000000","message":"The use case here is trivial, just adding a property. There is obviously code around in unittest that expects some unadvertised interface for the body. IMO, it is far more likely that we will be bitten by that than by adding a response method.","commit_id":"7406bbd29e5f7f31fc7908023236e57e985a2d6a"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"2d7c6364871d43d9deec4e91934f3d417cb3dd20","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        def __init__(self, response, body\u003dNone):"},{"line_number":31,"context_line":"            body_data \u003d body or {}"},{"line_number":32,"context_line":"    \tself.update(body_data)"},{"line_number":33,"context_line":"    \tself.response \u003d response"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        def __str__(self):"},{"line_number":36,"context_line":"            body \u003d super.__str__(self)"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9aa7fdbe_5e409907","line":33,"updated":"2014-10-29 04:08:16.000000000","message":"maybe unnecessary tabs are included.","commit_id":"7406bbd29e5f7f31fc7908023236e57e985a2d6a"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"2d7c6364871d43d9deec4e91934f3d417cb3dd20","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        def __str__(self):"},{"line_number":36,"context_line":"            body \u003d super.__str__(self)"},{"line_number":37,"context_line":"    \treturn \"request: %s\\nBody: %s\" % (self.response, body)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"And a decorator for service client methods::"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9aa7fdbe_7e455d16","line":37,"updated":"2014-10-29 04:08:16.000000000","message":"ditto","commit_id":"7406bbd29e5f7f31fc7908023236e57e985a2d6a"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"03149d35066fedcde16748c879d78bcc9ed6058c","unresolved":false,"context_lines":[{"line_number":66,"context_line":"Assignee(s)"},{"line_number":67,"context_line":"-----------"},{"line_number":68,"context_line":"Primary assignee:"},{"line_number":69,"context_line":"  David Kranz \u003cdkranz@redhat.com\u003e"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Milestones"},{"line_number":72,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9aa7fdbe_b8d998f6","line":69,"updated":"2014-10-29 08:24:28.000000000","message":"please sign me up to work on this","commit_id":"7406bbd29e5f7f31fc7908023236e57e985a2d6a"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"204d0c2fa3735aca95a51a1459308ee19c885ef1","unresolved":false,"context_lines":[{"line_number":66,"context_line":"Assignee(s)"},{"line_number":67,"context_line":"-----------"},{"line_number":68,"context_line":"Primary assignee:"},{"line_number":69,"context_line":"  David Kranz \u003cdkranz@redhat.com\u003e"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Milestones"},{"line_number":72,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9aa7fdbe_a4596e90","line":69,"in_reply_to":"9aa7fdbe_b8d998f6","updated":"2014-10-29 13:42:21.000000000","message":"ok","commit_id":"7406bbd29e5f7f31fc7908023236e57e985a2d6a"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"dde44a3f77883ff807bc2f20d6c9bbafa08ed102","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Currently tempest clients return a response code and body. Since we moved"},{"line_number":13,"context_line":"response checking to clients, almost all callers of the clients ignore the"},{"line_number":14,"context_line":"response code: https://blueprints.launchpad.net/tempest/+spec/client-checks-success. It would be much cleaner if clients returned a single response"},{"line_number":15,"context_line":"object that was the body, with a property to get the response status and"},{"line_number":16,"context_line":"headers if needed."},{"line_number":17,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a8c0949_d4b8f42c","line":14,"updated":"2014-10-30 00:05:30.000000000","message":"I was actually referring to using this:\n\nhttp://sphinx-doc.org/markup/inline.html#ref-role\n\nto refer to the spec for this effort, but I guess having a link to the bp works fine too.\n\nAlso you might want to fix the line wrap here.","commit_id":"9367d99c1c90d27a8ee355a90a12bf102f6b5d61"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"dde44a3f77883ff807bc2f20d6c9bbafa08ed102","unresolved":false,"context_lines":[{"line_number":36,"context_line":"            body \u003d super.__str__(self)"},{"line_number":37,"context_line":"            return \"request: %s\\nBody: %s\" % (self.response, body)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"And a decorator for service client methods::"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def response_body(f):"},{"line_number":42,"context_line":"        \"\"\"A decorator that combines a returned response and body to one value.\"\"\""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a8c0949_7414a0f5","line":39,"updated":"2014-10-30 00:05:30.000000000","message":"So I missed this on the first pass. Are you planning to decorate every single client method with the decorator to do the switchover? If so I feel that is the wrong approach. Using decorators should be a shortcut for things, like if this was an optional step that would work. (or something like for the expected response checking) If we\u0027re really talking about changing the return type for all the externally called client methods we should just bake it in everywhere.\n\nI get that you probably did this as a tradeoff for staging the commits, but I just feel it\u0027s kinda weird to decorate every single method. I feel like there should be a better way to accomplish this. \n\nWhat I keep coming back to is why not just bake this into the http methods directly, the other alternative I\u0027m thinking of right now is to just do:\n\n  return rest_client.ResponseBody(resp, body)\n\nin the client methods. In fact the pattern:\n\n  return resp, body\n\nis so universal I bet you can just find replace it all. Which would definitely be easier then having to look at each method individually to figure out if it needs to be changed.","commit_id":"9367d99c1c90d27a8ee355a90a12bf102f6b5d61"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"1186b7e1c175a02af721328819a8a4efc7ae0373","unresolved":false,"context_lines":[{"line_number":36,"context_line":"            body \u003d super.__str__(self)"},{"line_number":37,"context_line":"            return \"request: %s\\nBody: %s\" % (self.response, body)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"And a decorator for service client methods::"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def response_body(f):"},{"line_number":42,"context_line":"        \"\"\"A decorator that combines a returned response and body to one value.\"\"\""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a8c0949_bcb6d888","line":39,"in_reply_to":"7a8c0949_7414a0f5","updated":"2014-10-30 19:09:03.000000000","message":"I actually did it in case we wanted to change the implementation in the future. I view this decorator more as an abstraction than a shortcut. That said, I don\u0027t feel super strongly about it and if the consensus of the team is to just call the constructor I will be ok with that.","commit_id":"9367d99c1c90d27a8ee355a90a12bf102f6b5d61"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"dde44a3f77883ff807bc2f20d6c9bbafa08ed102","unresolved":false,"context_lines":[{"line_number":55,"context_line":"Alternatives"},{"line_number":56,"context_line":"------------"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Continue to have the test code littered with unused underscores."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Implementation"},{"line_number":61,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a8c0949_34bf78d2","line":58,"updated":"2014-10-30 00:05:30.000000000","message":"I would have liked to see other alternatives flushed out here. (which is what my earlier comment was on) Just saying the status quo isn\u0027t really showing that other approaches were considered. For example, this would would have been the place to say why doing it in the rest client doesn\u0027t work.","commit_id":"9367d99c1c90d27a8ee355a90a12bf102f6b5d61"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"dde44a3f77883ff807bc2f20d6c9bbafa08ed102","unresolved":false,"context_lines":[{"line_number":67,"context_line":"-----------"},{"line_number":68,"context_line":"Primary assignees:"},{"line_number":69,"context_line":"  David Kranz \u003cdkranz@redhat.com\u003e"},{"line_number":70,"context_line":"  Yair Fried \u003cyfried@redhat.com\u003e"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Milestones"},{"line_number":73,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a8c0949_f4e33031","line":70,"updated":"2014-10-30 00:05:30.000000000","message":"Umm, how can there be more than 1 primary assignee? It\u0027s mostly used to match up the launchpad field. If you want to add a second person just do:\n\n  Primary assignee:\n      David Kranz \u003cdkranz@redhat.com\u003e\n\n  Other Contributors:\n      Yair Fried \u003cyfried@redhat.com\u003e","commit_id":"9367d99c1c90d27a8ee355a90a12bf102f6b5d61"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"1186b7e1c175a02af721328819a8a4efc7ae0373","unresolved":false,"context_lines":[{"line_number":67,"context_line":"-----------"},{"line_number":68,"context_line":"Primary assignees:"},{"line_number":69,"context_line":"  David Kranz \u003cdkranz@redhat.com\u003e"},{"line_number":70,"context_line":"  Yair Fried \u003cyfried@redhat.com\u003e"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Milestones"},{"line_number":73,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a8c0949_1c744cce","line":70,"in_reply_to":"7a8c0949_f4e33031","updated":"2014-10-30 19:09:03.000000000","message":"ok","commit_id":"9367d99c1c90d27a8ee355a90a12bf102f6b5d61"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"dde44a3f77883ff807bc2f20d6c9bbafa08ed102","unresolved":false,"context_lines":[{"line_number":73,"context_line":"----------"},{"line_number":74,"context_line":"Target Milestone for completion:"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"- Kilo"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Work Items (for each service client)"},{"line_number":79,"context_line":"------------------------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a8c0949_34d85853","line":76,"updated":"2014-10-30 00:05:30.000000000","message":"Do you have an actual milestone goal? If it\u0027s asap just put kilo-1","commit_id":"9367d99c1c90d27a8ee355a90a12bf102f6b5d61"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"1186b7e1c175a02af721328819a8a4efc7ae0373","unresolved":false,"context_lines":[{"line_number":73,"context_line":"----------"},{"line_number":74,"context_line":"Target Milestone for completion:"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"- Kilo"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Work Items (for each service client)"},{"line_number":79,"context_line":"------------------------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a8c0949_fc5dc049","line":76,"in_reply_to":"7a8c0949_34d85853","updated":"2014-10-30 19:09:03.000000000","message":"ok. This is pretty important to the tempest-lib and func-test-in-projects stuff.","commit_id":"9367d99c1c90d27a8ee355a90a12bf102f6b5d61"}]}
