)]}'
{"tempest/common/rest_client.py":[{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"c126fc3da977e35e40b88f2db84864d03418f020","unresolved":false,"context_lines":[{"line_number":358,"context_line":"            try:"},{"line_number":359,"context_line":"                headers \u003d dict(headers)"},{"line_number":360,"context_line":"                get_headers \u003d self.get_headers()"},{"line_number":361,"context_line":"                headers.update(get_headers)"},{"line_number":362,"context_line":"            except (ValueError, TypeError):"},{"line_number":363,"context_line":"                headers \u003d None"},{"line_number":364,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2B1Ko%3D","line":361,"updated":"2014-03-23 22:50:39.000000000","message":"If headers and get_headers have a same key, I think that a header\u0027s value is updated by a get_headers\u0027s value. Is this intentional?","commit_id":"fe98d51d30b19f7943c89527a363dcd40b95ead6"},{"author":{"_account_id":7227,"name":"Timur Nurlygayanov","email":"tnurlygayanov@mirantis.com","username":"tnurlygayanov"},"change_message_id":"bed08a2ed4c5de4567c1463b571185063e3a89f0","unresolved":false,"context_lines":[{"line_number":358,"context_line":"            try:"},{"line_number":359,"context_line":"                headers \u003d dict(headers)"},{"line_number":360,"context_line":"                get_headers \u003d self.get_headers()"},{"line_number":361,"context_line":"                headers.update(get_headers)"},{"line_number":362,"context_line":"            except (ValueError, TypeError):"},{"line_number":363,"context_line":"                headers \u003d None"},{"line_number":364,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2B1F0%3D","line":361,"in_reply_to":"AAAAWH%2F%2B1Ko%3D","updated":"2014-03-23 23:18:17.000000000","message":"Yes, if headers and get_headers will have the same key, header\u0027s value will be updated and will be equal to get_headers.\nAnd looks like the idea of this commit is to add this functionality to tempest.","commit_id":"fe98d51d30b19f7943c89527a363dcd40b95ead6"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"f4ea58f0e9585f2eb8653995883c6c3baaec3973","unresolved":false,"context_lines":[{"line_number":354,"context_line":"    def request(self, method, url, headers\u003dNone, body\u003dNone):"},{"line_number":355,"context_line":"        retry \u003d 0"},{"line_number":356,"context_line":""},{"line_number":357,"context_line":"        if isinstance(headers, list):"},{"line_number":358,"context_line":"            try:"},{"line_number":359,"context_line":"                headers \u003d dict(headers)"},{"line_number":360,"context_line":"                headers.update(self.get_headers())"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWH%2F%2BkMg%3D","line":357,"updated":"2014-03-25 21:09:57.000000000","message":"Having a single optional argument with two ways to specify a dict (actual dict or list of key/value) with different behaviors is confusing. It would be better to add  another method that takes a dict and returns the default headers updated with that dict, or to not bother adding this at all.","commit_id":"c2d8113318891cf72a12227c812cfae46e30a6e1"},{"author":{"_account_id":8824,"name":"Sergey Murashov","email":"smurashov@mirantis.com","username":"SergeyMurashov"},"change_message_id":"3dfd9f910ce0535be82eb1ad85c57fe82f2b52f0","unresolved":false,"context_lines":[{"line_number":354,"context_line":"    def request(self, method, url, headers\u003dNone, body\u003dNone):"},{"line_number":355,"context_line":"        retry \u003d 0"},{"line_number":356,"context_line":""},{"line_number":357,"context_line":"        if isinstance(headers, list):"},{"line_number":358,"context_line":"            try:"},{"line_number":359,"context_line":"                headers \u003d dict(headers)"},{"line_number":360,"context_line":"                headers.update(self.get_headers())"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWH%2F%2BhSI%3D","line":357,"updated":"2014-03-26 08:36:08.000000000","message":"May be i will add optional argument \"update\u003dFalse\" in request method. if \"update\u003dTrue\", default headers will be updated.\nFor example:\ndef request(self, method, url, headers\u003dNone, body\u003dNone, update\u003dFalse):\n    if headers is None:\n        headers \u003d self.get_headers()\n    elif update:\n        try:\n            headers.update(self.get_headers())\n\texcept (ValueError, TypeError):\n            headers \u003d self.get_headers()","commit_id":"c2d8113318891cf72a12227c812cfae46e30a6e1"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"93cd6db86409e8ce6609160b760ba86a252238f9","unresolved":false,"context_lines":[{"line_number":354,"context_line":"    def request(self, method, url, headers\u003dNone, body\u003dNone):"},{"line_number":355,"context_line":"        retry \u003d 0"},{"line_number":356,"context_line":""},{"line_number":357,"context_line":"        if isinstance(headers, list):"},{"line_number":358,"context_line":"            try:"},{"line_number":359,"context_line":"                headers \u003d dict(headers)"},{"line_number":360,"context_line":"                headers.update(self.get_headers())"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWH%2F%2BfeE%3D","line":357,"in_reply_to":"AAAAWH%2F%2BhSI%3D","updated":"2014-03-26 12:52:21.000000000","message":"I think this is on the right track but I would use extra_headers\u003dFalse with that adding and \"headers\" replacing. I thought about this but wasn\u0027t sure if there were any inheritance issues with this method.","commit_id":"c2d8113318891cf72a12227c812cfae46e30a6e1"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"5d4e366e6691cec627fc1cfe9923e28e95986b44","unresolved":false,"context_lines":[{"line_number":389,"context_line":""},{"line_number":390,"context_line":"        return resp, resp_body"},{"line_number":391,"context_line":""},{"line_number":392,"context_line":"    def request(self, method, url, extra_headers, headers\u003dNone, body\u003dNone):"},{"line_number":393,"context_line":"        retry \u003d 0"},{"line_number":394,"context_line":""},{"line_number":395,"context_line":"        if headers is None:"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAWH%2F9Q6g%3D","line":392,"updated":"2014-04-07 15:08:41.000000000","message":"Note:\nextra_headers should have default value here as in the other locations.\nMay be a  doc string wouldn\u0027t harm.","commit_id":"68ca16646e2098c73269b7c78fcdfd8010141903"},{"author":{"_account_id":8824,"name":"Sergey Murashov","email":"smurashov@mirantis.com","username":"SergeyMurashov"},"change_message_id":"f4b056750ae9c6905633201fdac155f88f593a40","unresolved":false,"context_lines":[{"line_number":389,"context_line":""},{"line_number":390,"context_line":"        return resp, resp_body"},{"line_number":391,"context_line":""},{"line_number":392,"context_line":"    def request(self, method, url, extra_headers, headers\u003dNone, body\u003dNone):"},{"line_number":393,"context_line":"        retry \u003d 0"},{"line_number":394,"context_line":""},{"line_number":395,"context_line":"        if headers is None:"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAWn%2F%2F99w%3D","line":392,"in_reply_to":"AAAAWH%2F9Q6g%3D","updated":"2014-04-08 07:36:00.000000000","message":"ok.","commit_id":"68ca16646e2098c73269b7c78fcdfd8010141903"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"5d4e366e6691cec627fc1cfe9923e28e95986b44","unresolved":false,"context_lines":[{"line_number":398,"context_line":"            headers \u003d self.get_headers()"},{"line_number":399,"context_line":"        elif extra_headers:"},{"line_number":400,"context_line":"            try:"},{"line_number":401,"context_line":"                headers.update(self.get_headers())"},{"line_number":402,"context_line":"            except (ValueError, TypeError):"},{"line_number":403,"context_line":"                headers \u003d self.get_headers()"},{"line_number":404,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAWH%2F9Q4k%3D","line":401,"updated":"2014-04-07 15:08:41.000000000","message":"This code path updates the caller\u0027s headers. (-1)","commit_id":"68ca16646e2098c73269b7c78fcdfd8010141903"},{"author":{"_account_id":8824,"name":"Sergey Murashov","email":"smurashov@mirantis.com","username":"SergeyMurashov"},"change_message_id":"f4b056750ae9c6905633201fdac155f88f593a40","unresolved":false,"context_lines":[{"line_number":398,"context_line":"            headers \u003d self.get_headers()"},{"line_number":399,"context_line":"        elif extra_headers:"},{"line_number":400,"context_line":"            try:"},{"line_number":401,"context_line":"                headers.update(self.get_headers())"},{"line_number":402,"context_line":"            except (ValueError, TypeError):"},{"line_number":403,"context_line":"                headers \u003d self.get_headers()"},{"line_number":404,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAWn%2F%2F99o%3D","line":401,"in_reply_to":"AAAAWH%2F9Q4k%3D","updated":"2014-04-08 07:36:00.000000000","message":"thanks, i will fix it","commit_id":"68ca16646e2098c73269b7c78fcdfd8010141903"}],"tempest/services/identity/json/identity_client.py":[{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"5d4e366e6691cec627fc1cfe9923e28e95986b44","unresolved":false,"context_lines":[{"line_number":269,"context_line":""},{"line_number":270,"context_line":"        return resp, body[\u0027access\u0027]"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"    def request(self, method, url, extra_headers\u003dFalse, headers\u003dNone,"},{"line_number":273,"context_line":"                body\u003dNone):"},{"line_number":274,"context_line":"        \"\"\"A simple HTTP request interface.\"\"\""},{"line_number":275,"context_line":"        if headers is None:"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAWH%2F9Q3U%3D","line":272,"updated":"2014-04-07 15:08:41.000000000","message":"Different signature than the one used in the base class.","commit_id":"68ca16646e2098c73269b7c78fcdfd8010141903"}],"tempest/tests/test_rest_client.py":[{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"5b8e2512eaef6adf1161c07208e4a955e3c3ea48","unresolved":false,"context_lines":[{"line_number":144,"context_line":"        __, return_dict \u003d self.rest_client.post(self.url, {},"},{"line_number":145,"context_line":"                                                [(\u0027X-Configuration-Session\u0027,"},{"line_number":146,"context_line":"                                                 \u0027session_id\u0027)])"},{"line_number":147,"context_line":"        self.assertDictContainsSubset("},{"line_number":148,"context_line":"            {\u0027X-Configuration-Session\u0027: \u0027session_id\u0027},"},{"line_number":149,"context_line":"            return_dict[\u0027headers\u0027]"},{"line_number":150,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2B7v8%3D","line":147,"updated":"2014-03-21 15:28:37.000000000","message":"I think you should also verify that original headers from self.get_headers() are preserved.","commit_id":"6d75defe85b17ef04f308c96107ddb7bc17ee6f3"}]}
