)]}'
{"tempest/common/rest_client.py":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"90d441482ddb14e95022dc77bd256ed183d0cdf2","unresolved":false,"context_lines":[{"line_number":399,"context_line":"        \"\"\"A simple HTTP request interface.\"\"\""},{"line_number":400,"context_line":""},{"line_number":401,"context_line":"        if self.base_url and self.base_url[-1] \u003d\u003d \u0027/\u0027:"},{"line_number":402,"context_line":"            self.base_url \u003d self.base_url[:-1]"},{"line_number":403,"context_line":"        req_url \u003d \"%s/%s\" % (self.base_url, url)"},{"line_number":404,"context_line":"        self._log_request(method, req_url, headers, body)"},{"line_number":405,"context_line":"        resp, resp_body \u003d self.http_obj.request(req_url, method,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F%2BePA%3D","line":402,"updated":"2014-01-25 14:31:59.000000000","message":"I feel like cleaning up the base urls should be elsewhere, and they should be solid by this point.\n\nAlso I think using .rstrip(\u0027/\u0027) is more descriptive for the removal.","commit_id":"a4a6880c270b9922f0261d02e3fda46e9f0e4891"},{"author":{"_account_id":7126,"name":"Vadim Rovachev","email":"vrovachev@mirantis.com","username":"vrovachev"},"change_message_id":"4c4a2cacd48ddbefbe3ab3ee1fcf9902beb267ad","unresolved":false,"context_lines":[{"line_number":399,"context_line":"        \"\"\"A simple HTTP request interface.\"\"\""},{"line_number":400,"context_line":""},{"line_number":401,"context_line":"        if self.base_url and self.base_url[-1] \u003d\u003d \u0027/\u0027:"},{"line_number":402,"context_line":"            self.base_url \u003d self.base_url[:-1]"},{"line_number":403,"context_line":"        req_url \u003d \"%s/%s\" % (self.base_url, url)"},{"line_number":404,"context_line":"        self._log_request(method, req_url, headers, body)"},{"line_number":405,"context_line":"        resp, resp_body \u003d self.http_obj.request(req_url, method,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F9qJA%3D","line":402,"in_reply_to":"AAAAUH%2F%2BDjo%3D","updated":"2014-02-05 09:35:07.000000000","message":"Done. All true, check transferred a string 109.","commit_id":"a4a6880c270b9922f0261d02e3fda46e9f0e4891"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"8e76cdc8dd4cfe0b5656f07669bb2adbea15244a","unresolved":false,"context_lines":[{"line_number":399,"context_line":"        \"\"\"A simple HTTP request interface.\"\"\""},{"line_number":400,"context_line":""},{"line_number":401,"context_line":"        if self.base_url and self.base_url[-1] \u003d\u003d \u0027/\u0027:"},{"line_number":402,"context_line":"            self.base_url \u003d self.base_url[:-1]"},{"line_number":403,"context_line":"        req_url \u003d \"%s/%s\" % (self.base_url, url)"},{"line_number":404,"context_line":"        self._log_request(method, req_url, headers, body)"},{"line_number":405,"context_line":"        resp, resp_body \u003d self.http_obj.request(req_url, method,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F%2BDjo%3D","line":402,"in_reply_to":"AAAAUH%2F%2BLJk%3D","updated":"2014-02-05 08:44:48.000000000","message":"I don\u0027t understand why as you said.\nIf the self.base_url \u003d\u003d \u0027http://url:port/\u0027, then \nself.base_url will be \u0027http://url:port\u0027 by this check. And next time, \nself.base_url must not have the trailing slash. So the url shouldn\u0027t have double slash.\n\nDo I misunderstand it?\n\nAnd I feel this method should be moved to line.109 in _set_auth(). It is the first place setting self.base_url there.","commit_id":"a4a6880c270b9922f0261d02e3fda46e9f0e4891"},{"author":{"_account_id":7126,"name":"Vadim Rovachev","email":"vrovachev@mirantis.com","username":"vrovachev"},"change_message_id":"ac3a9cc6193e561a31a645abe20e37f06d364dd8","unresolved":false,"context_lines":[{"line_number":399,"context_line":"        \"\"\"A simple HTTP request interface.\"\"\""},{"line_number":400,"context_line":""},{"line_number":401,"context_line":"        if self.base_url and self.base_url[-1] \u003d\u003d \u0027/\u0027:"},{"line_number":402,"context_line":"            self.base_url \u003d self.base_url[:-1]"},{"line_number":403,"context_line":"        req_url \u003d \"%s/%s\" % (self.base_url, url)"},{"line_number":404,"context_line":"        self._log_request(method, req_url, headers, body)"},{"line_number":405,"context_line":"        resp, resp_body \u003d self.http_obj.request(req_url, method,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F%2BLJk%3D","line":402,"in_reply_to":"AAAAUH%2F%2BMXI%3D","updated":"2014-01-29 13:00:23.000000000","message":"Done.\nIf transfer a check to method request() at line 421, url will be the following: \"http://url:port/requestline\" or \"http://url:port//requestline\". And to delete double slash will need to parse url.","commit_id":"a4a6880c270b9922f0261d02e3fda46e9f0e4891"},{"author":{"_account_id":7126,"name":"Vadim Rovachev","email":"vrovachev@mirantis.com","username":"vrovachev"},"change_message_id":"ac3a9cc6193e561a31a645abe20e37f06d364dd8","unresolved":false,"context_lines":[{"line_number":399,"context_line":"        \"\"\"A simple HTTP request interface.\"\"\""},{"line_number":400,"context_line":""},{"line_number":401,"context_line":"        if self.base_url and self.base_url[-1] \u003d\u003d \u0027/\u0027:"},{"line_number":402,"context_line":"            self.base_url \u003d self.base_url[:-1]"},{"line_number":403,"context_line":"        req_url \u003d \"%s/%s\" % (self.base_url, url)"},{"line_number":404,"context_line":"        self._log_request(method, req_url, headers, body)"},{"line_number":405,"context_line":"        resp, resp_body \u003d self.http_obj.request(req_url, method,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F%2BLJo%3D","line":402,"in_reply_to":"AAAAUH%2F%2BePA%3D","updated":"2014-01-29 13:00:23.000000000","message":"Done","commit_id":"a4a6880c270b9922f0261d02e3fda46e9f0e4891"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"7d2c3c6369733c51ed12661497113771b9a57897","unresolved":false,"context_lines":[{"line_number":399,"context_line":"        \"\"\"A simple HTTP request interface.\"\"\""},{"line_number":400,"context_line":""},{"line_number":401,"context_line":"        if self.base_url and self.base_url[-1] \u003d\u003d \u0027/\u0027:"},{"line_number":402,"context_line":"            self.base_url \u003d self.base_url[:-1]"},{"line_number":403,"context_line":"        req_url \u003d \"%s/%s\" % (self.base_url, url)"},{"line_number":404,"context_line":"        self._log_request(method, req_url, headers, body)"},{"line_number":405,"context_line":"        resp, resp_body \u003d self.http_obj.request(req_url, method,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F%2BMXI%3D","line":402,"in_reply_to":"AAAAUH%2F%2BePA%3D","updated":"2014-01-29 07:56:28.000000000","message":"I agree with Sean about .rstrip() and its place. Is it better to move it to request() at L.421?","commit_id":"a4a6880c270b9922f0261d02e3fda46e9f0e4891"}]}
