)]}'
{"tempest_lib/services/compute/servers_client.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"d6614de0276fefce75e2f3c6cf63f884d7d998ff","unresolved":false,"context_lines":[{"line_number":561,"context_line":"        \"\"\""},{"line_number":562,"context_line":"        return self.action(server_id, \u0027removeFixedIp\u0027, **kwargs)"},{"line_number":563,"context_line":""},{"line_number":564,"context_line":"    def show_instance_tag(self, server_id, tag):"},{"line_number":565,"context_line":"        \"\"\"Get tag for server\"\"\""},{"line_number":566,"context_line":"        req \u003d \u0027servers/%s/tags/%s\u0027 % (server_id, tag)"},{"line_number":567,"context_line":"        resp, body \u003d self.get(req)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_072cf2a9","line":564,"range":{"start_line":564,"start_character":13,"end_line":564,"end_character":21},"updated":"2015-12-25 01:09:47.000000000","message":"Why this method name should contain *instance* instead of *server\" ?\n\nNow \"server\" seems better on whole OpenStack projects because of https://github.com/openstack/api-wg/blob/master/guidelines/terms.rst#terms","commit_id":"c869e890d544f4bd8ea3a10e0074c29ab2a09aba"},{"author":{"_account_id":13454,"name":"Alexander Gubanov","email":"ogubanov@mirantis.com","username":"hop"},"change_message_id":"2ac1e938418db874dba65f5bbab01d78481d09ab","unresolved":false,"context_lines":[{"line_number":561,"context_line":"        \"\"\""},{"line_number":562,"context_line":"        return self.action(server_id, \u0027removeFixedIp\u0027, **kwargs)"},{"line_number":563,"context_line":""},{"line_number":564,"context_line":"    def show_instance_tag(self, server_id, tag):"},{"line_number":565,"context_line":"        \"\"\"Get tag for server\"\"\""},{"line_number":566,"context_line":"        req \u003d \u0027servers/%s/tags/%s\u0027 % (server_id, tag)"},{"line_number":567,"context_line":"        resp, body \u003d self.get(req)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_d3fd433b","line":564,"range":{"start_line":564,"start_character":13,"end_line":564,"end_character":21},"in_reply_to":"1a7b0d38_072cf2a9","updated":"2015-12-25 11:39:20.000000000","message":"ok, I\u0027ll fix it","commit_id":"c869e890d544f4bd8ea3a10e0074c29ab2a09aba"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"d6614de0276fefce75e2f3c6cf63f884d7d998ff","unresolved":false,"context_lines":[{"line_number":566,"context_line":"        req \u003d \u0027servers/%s/tags/%s\u0027 % (server_id, tag)"},{"line_number":567,"context_line":"        resp, body \u003d self.get(req)"},{"line_number":568,"context_line":"        self.expected_success(204, resp.status)"},{"line_number":569,"context_line":"        return rest_client.ResponseBody(resp)"},{"line_number":570,"context_line":""},{"line_number":571,"context_line":"    def list_instance_tags(self, server_id):"},{"line_number":572,"context_line":"        \"\"\"List tag items for server\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_47ad1a30","line":569,"range":{"start_line":569,"start_character":8,"end_line":569,"end_character":45},"updated":"2015-12-25 01:09:47.000000000","message":"Why don\u0027t you pass body here?\nThe caller(Tempest etc) cannot check the body on current patch.","commit_id":"c869e890d544f4bd8ea3a10e0074c29ab2a09aba"},{"author":{"_account_id":13454,"name":"Alexander Gubanov","email":"ogubanov@mirantis.com","username":"hop"},"change_message_id":"2ac1e938418db874dba65f5bbab01d78481d09ab","unresolved":false,"context_lines":[{"line_number":566,"context_line":"        req \u003d \u0027servers/%s/tags/%s\u0027 % (server_id, tag)"},{"line_number":567,"context_line":"        resp, body \u003d self.get(req)"},{"line_number":568,"context_line":"        self.expected_success(204, resp.status)"},{"line_number":569,"context_line":"        return rest_client.ResponseBody(resp)"},{"line_number":570,"context_line":""},{"line_number":571,"context_line":"    def list_instance_tags(self, server_id):"},{"line_number":572,"context_line":"        \"\"\"List tag items for server\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_e602ff0a","line":569,"range":{"start_line":569,"start_character":8,"end_line":569,"end_character":45},"in_reply_to":"1a7b0d38_47ad1a30","updated":"2015-12-25 11:39:20.000000000","message":"GET /servers/{server_id}/tags/{tag}\n\nReturns 204 No Content if tag exist on a server.","commit_id":"c869e890d544f4bd8ea3a10e0074c29ab2a09aba"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"d6614de0276fefce75e2f3c6cf63f884d7d998ff","unresolved":false,"context_lines":[{"line_number":581,"context_line":"        post_body \u003d \u0027{}\u0027"},{"line_number":582,"context_line":"        req \u003d \u0027servers/%s/tags/%s\u0027 % (server_id, tag)"},{"line_number":583,"context_line":"        resp, body \u003d self.put("},{"line_number":584,"context_line":"            req, post_body)"},{"line_number":585,"context_line":"        self.expected_success([201, 204], resp.status)"},{"line_number":586,"context_line":"        return rest_client.ResponseBody(resp)"},{"line_number":587,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_8771c2e2","line":584,"range":{"start_line":584,"start_character":12,"end_line":584,"end_character":27},"updated":"2015-12-25 01:09:47.000000000","message":"A new blank afer \"self.put(\" seems unnecessary.","commit_id":"c869e890d544f4bd8ea3a10e0074c29ab2a09aba"},{"author":{"_account_id":13454,"name":"Alexander Gubanov","email":"ogubanov@mirantis.com","username":"hop"},"change_message_id":"2ac1e938418db874dba65f5bbab01d78481d09ab","unresolved":false,"context_lines":[{"line_number":581,"context_line":"        post_body \u003d \u0027{}\u0027"},{"line_number":582,"context_line":"        req \u003d \u0027servers/%s/tags/%s\u0027 % (server_id, tag)"},{"line_number":583,"context_line":"        resp, body \u003d self.put("},{"line_number":584,"context_line":"            req, post_body)"},{"line_number":585,"context_line":"        self.expected_success([201, 204], resp.status)"},{"line_number":586,"context_line":"        return rest_client.ResponseBody(resp)"},{"line_number":587,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_f3f87f4b","line":584,"range":{"start_line":584,"start_character":12,"end_line":584,"end_character":27},"in_reply_to":"1a7b0d38_8771c2e2","updated":"2015-12-25 11:39:20.000000000","message":"ok","commit_id":"c869e890d544f4bd8ea3a10e0074c29ab2a09aba"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"d6614de0276fefce75e2f3c6cf63f884d7d998ff","unresolved":false,"context_lines":[{"line_number":582,"context_line":"        req \u003d \u0027servers/%s/tags/%s\u0027 % (server_id, tag)"},{"line_number":583,"context_line":"        resp, body \u003d self.put("},{"line_number":584,"context_line":"            req, post_body)"},{"line_number":585,"context_line":"        self.expected_success([201, 204], resp.status)"},{"line_number":586,"context_line":"        return rest_client.ResponseBody(resp)"},{"line_number":587,"context_line":""},{"line_number":588,"context_line":"    def set_instance_tags(self, server_id, tags):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_c74eea95","line":585,"range":{"start_line":585,"start_character":30,"end_line":585,"end_character":40},"updated":"2015-12-25 01:09:47.000000000","message":"Is the status code different ?","commit_id":"c869e890d544f4bd8ea3a10e0074c29ab2a09aba"},{"author":{"_account_id":13454,"name":"Alexander Gubanov","email":"ogubanov@mirantis.com","username":"hop"},"change_message_id":"2ac1e938418db874dba65f5bbab01d78481d09ab","unresolved":false,"context_lines":[{"line_number":582,"context_line":"        req \u003d \u0027servers/%s/tags/%s\u0027 % (server_id, tag)"},{"line_number":583,"context_line":"        resp, body \u003d self.put("},{"line_number":584,"context_line":"            req, post_body)"},{"line_number":585,"context_line":"        self.expected_success([201, 204], resp.status)"},{"line_number":586,"context_line":"        return rest_client.ResponseBody(resp)"},{"line_number":587,"context_line":""},{"line_number":588,"context_line":"    def set_instance_tags(self, server_id, tags):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_a64e3794","line":585,"range":{"start_line":585,"start_character":30,"end_line":585,"end_character":40},"in_reply_to":"1a7b0d38_c74eea95","updated":"2015-12-25 11:39:20.000000000","message":"yes,\nhttp://specs.openstack.org/openstack/nova-specs/specs/mitaka/approved/tag-instances.html\n\nAdd a single tag on a server - returns 201\nIf the tag already exists, no error is raised, it just returns the 204 No Content","commit_id":"c869e890d544f4bd8ea3a10e0074c29ab2a09aba"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"d6614de0276fefce75e2f3c6cf63f884d7d998ff","unresolved":false,"context_lines":[{"line_number":590,"context_line":"        post_body \u003d json.dumps({\u0027tags\u0027: tags})"},{"line_number":591,"context_line":"        req \u003d \u0027servers/%s/tags\u0027 % server_id"},{"line_number":592,"context_line":"        resp, body \u003d self.put("},{"line_number":593,"context_line":"            req, post_body)"},{"line_number":594,"context_line":"        self.expected_success(200, resp.status)"},{"line_number":595,"context_line":"        body \u003d json.loads(body)"},{"line_number":596,"context_line":"        return rest_client.ResponseBody(resp, body)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_6745b66e","line":593,"range":{"start_line":593,"start_character":12,"end_line":593,"end_character":27},"updated":"2015-12-25 01:09:47.000000000","message":"ditto","commit_id":"c869e890d544f4bd8ea3a10e0074c29ab2a09aba"},{"author":{"_account_id":13454,"name":"Alexander Gubanov","email":"ogubanov@mirantis.com","username":"hop"},"change_message_id":"2ac1e938418db874dba65f5bbab01d78481d09ab","unresolved":false,"context_lines":[{"line_number":590,"context_line":"        post_body \u003d json.dumps({\u0027tags\u0027: tags})"},{"line_number":591,"context_line":"        req \u003d \u0027servers/%s/tags\u0027 % server_id"},{"line_number":592,"context_line":"        resp, body \u003d self.put("},{"line_number":593,"context_line":"            req, post_body)"},{"line_number":594,"context_line":"        self.expected_success(200, resp.status)"},{"line_number":595,"context_line":"        body \u003d json.loads(body)"},{"line_number":596,"context_line":"        return rest_client.ResponseBody(resp, body)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_53a07343","line":593,"range":{"start_line":593,"start_character":12,"end_line":593,"end_character":27},"in_reply_to":"1a7b0d38_6745b66e","updated":"2015-12-25 11:39:20.000000000","message":"ok","commit_id":"c869e890d544f4bd8ea3a10e0074c29ab2a09aba"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"d6a73639185bbea62859862a36182cc1a8b895b9","unresolved":false,"context_lines":[{"line_number":597,"context_line":"        \"\"\"Delete tag items for server\"\"\""},{"line_number":598,"context_line":"        req \u003d \"servers/%s/tags\" % server_id"},{"line_number":599,"context_line":"        if tags:"},{"line_number":600,"context_line":"            req +\u003d \u0027/%s\u0027 % tags"},{"line_number":601,"context_line":"        resp, body \u003d self.delete(req)"},{"line_number":602,"context_line":"        self.expected_success(204, resp.status)"},{"line_number":603,"context_line":"        return rest_client.ResponseBody(resp, body)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da6ed579_8beed289","line":600,"updated":"2016-01-12 20:45:59.000000000","message":"is it really tags plural?","commit_id":"74c137a0d50abcad4c152c6057a238d334c98f63"},{"author":{"_account_id":13454,"name":"Alexander Gubanov","email":"ogubanov@mirantis.com","username":"hop"},"change_message_id":"6cc2cf0f08fbaf0fdcb0471191864435c8456824","unresolved":false,"context_lines":[{"line_number":597,"context_line":"        \"\"\"Delete tag items for server\"\"\""},{"line_number":598,"context_line":"        req \u003d \"servers/%s/tags\" % server_id"},{"line_number":599,"context_line":"        if tags:"},{"line_number":600,"context_line":"            req +\u003d \u0027/%s\u0027 % tags"},{"line_number":601,"context_line":"        resp, body \u003d self.delete(req)"},{"line_number":602,"context_line":"        self.expected_success(204, resp.status)"},{"line_number":603,"context_line":"        return rest_client.ResponseBody(resp, body)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da6ed579_d9600d38","line":600,"in_reply_to":"da6ed579_8beed289","updated":"2016-01-13 08:59:04.000000000","message":"No, it\u0027s always single tag.\nok, I\u0027ll rename it to \"tag\"","commit_id":"74c137a0d50abcad4c152c6057a238d334c98f63"}]}
