)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"3ca7165d57dc20dc1da71ef38f61972f31845d94","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"This commit makes empty string request to 400 which are"},{"line_number":17,"context_line":"currently 200. Doing for server and device tags and same can"},{"line_number":18,"context_line":"be adopted for other resource tagging also if any in future."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Fixing this as bug fix hoping no backward incompatibility"},{"line_number":21,"context_line":"logically."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3a71b18c_ac126c60","line":18,"range":{"start_line":18,"start_character":59,"end_line":18,"end_character":60},"updated":"2016-12-09 13:40:59.000000000","message":"empty string means nothing and make no sense\n\nwe already returned 400 in some case so it should be fine","commit_id":"b66980a586dc82551ad15396a3365058e871dfd6"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"5730f6e12366fe93e238ee828996a832b9c74533","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Stop allowing tags as empty string"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Nova support tagging of instance or other resource like device etc."},{"line_number":10,"context_line":"But those tags are allowed to be as empty string which does not make"},{"line_number":11,"context_line":"much sense or any real use case."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"In such request it should be 400."},{"line_number":14,"context_line":"Currently empty tags are being accepted and stored as same."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"1a6eadb0_a845fe70","line":11,"range":{"start_line":10,"start_character":0,"end_line":11,"end_character":31},"updated":"2016-12-14 11:54:40.000000000","message":"The delete/show API doesn\u0027t work with empty string. I think this is a point we can fix it without microversion. I prefer to put that point in the commit message","commit_id":"d44ded8a552364b37e12167702816d079b7eb7ef"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7f0fa438b95467fbaeee3f3712e3e3ac6ba5f9c6","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Stop allowing tags as empty string"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Nova support tagging of instance or other resource like device etc."},{"line_number":10,"context_line":"But those tags are allowed to be as empty string which does not make"},{"line_number":11,"context_line":"much sense or any real use case."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"In such request it should be 400."},{"line_number":14,"context_line":"Currently empty tags are being accepted and stored as same."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"1a6eadb0_5e38a0a0","line":11,"range":{"start_line":10,"start_character":0,"end_line":11,"end_character":31},"in_reply_to":"1a6eadb0_a845fe70","updated":"2016-12-14 12:18:57.000000000","message":"Thanks. done","commit_id":"d44ded8a552364b37e12167702816d079b7eb7ef"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"36c68bcdd82ecc44bbe440a60d12e99c5db80596","unresolved":false,"context_lines":[{"line_number":10,"context_line":"But those tags are allowed to be as empty string which does not make"},{"line_number":11,"context_line":"much sense or any real use case."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Updating single tag with empty string is not possible as it will"},{"line_number":14,"context_line":"be 404 due to url itself has single tag as id."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"But updating all tags with few or all of them as empty string"},{"line_number":17,"context_line":"does not complain. In those cases, empty tags are being accepted and"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1a6eadb0_9e9a3862","line":14,"range":{"start_line":13,"start_character":0,"end_line":14,"end_character":46},"updated":"2016-12-14 12:25:40.000000000","message":"This is the point I think we can fix this without microversion.","commit_id":"7cad745ebac9e054ebc220d464c277f404f261e3"}],"nova/tests/unit/api/openstack/compute/test_server_tags.py":[{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"e963ad823ee3463f6cbf40cafe04a97b89ba31a4","unresolved":false,"context_lines":[{"line_number":228,"context_line":"        req \u003d self._get_request("},{"line_number":229,"context_line":"              \u0027/v2/fake/servers/%s/tags/%s\u0027 % (UUID, tag), \u0027PUT\u0027)"},{"line_number":230,"context_line":"        self.assertRaises(exc.HTTPBadRequest, self.controller.update,"},{"line_number":231,"context_line":"                          req, UUID, tag, body\u003dNone)"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"    def test_update_invalid_instance_state(self):"},{"line_number":234,"context_line":"        self.stub_out(\u0027nova.api.openstack.common.get_instance\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a6eadb0_03c61567","line":231,"updated":"2016-12-13 10:16:41.000000000","message":"I just wondering about this test. Here we test method \u0027self.controller.update\u0027 directly. But in real life only links like \u0027servers/{server}/tags/{something}\u0027 will be processed by this method. \n\nLinks with empty tag name (PUT \"servers/{server}/tags/\") will got a 404 because only GET requests is registered to handle this URL.\n\nSo controller.update method even wouldn\u0027t be called if we will try to create an empty tag.\n\nHonestly I don\u0027t know should we add this test or not.","commit_id":"6877ede0813644221f9f5c794e54bbfb5b08250f"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"0cd2264abc91283d8609426379e8c6a86f7d6b29","unresolved":false,"context_lines":[{"line_number":228,"context_line":"        req \u003d self._get_request("},{"line_number":229,"context_line":"              \u0027/v2/fake/servers/%s/tags/%s\u0027 % (UUID, tag), \u0027PUT\u0027)"},{"line_number":230,"context_line":"        self.assertRaises(exc.HTTPBadRequest, self.controller.update,"},{"line_number":231,"context_line":"                          req, UUID, tag, body\u003dNone)"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"    def test_update_invalid_instance_state(self):"},{"line_number":234,"context_line":"        self.stub_out(\u0027nova.api.openstack.common.get_instance\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a6eadb0_0d71bbe0","line":231,"in_reply_to":"1a6eadb0_03c61567","updated":"2016-12-14 00:37:11.000000000","message":"Nice catch. Yea you are right. I think we can delete this tests to avoid any mis understanding about updating single empty tag.","commit_id":"6877ede0813644221f9f5c794e54bbfb5b08250f"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"a6f3fda0befa251c9c34275201e4aa1eea9fbed4","unresolved":false,"context_lines":[{"line_number":228,"context_line":"        req \u003d self._get_request("},{"line_number":229,"context_line":"              \u0027/v2/fake/servers/%s/tags/%s\u0027 % (UUID, tag), \u0027PUT\u0027)"},{"line_number":230,"context_line":"        self.assertRaises(exc.HTTPBadRequest, self.controller.update,"},{"line_number":231,"context_line":"                          req, UUID, tag, body\u003dNone)"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"    def test_update_invalid_instance_state(self):"},{"line_number":234,"context_line":"        self.stub_out(\u0027nova.api.openstack.common.get_instance\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a6eadb0_9913725c","line":231,"in_reply_to":"1a6eadb0_03c61567","updated":"2016-12-13 10:38:25.000000000","message":"agree with the point here\nseems we are not able to update a tag if it\u0027s empty","commit_id":"6877ede0813644221f9f5c794e54bbfb5b08250f"}]}
