)]}'
{"nova/api/openstack/__init__.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"0eaf539a1032efe1dcceebc97b5f1b67ed8e62fb","unresolved":false,"context_lines":[{"line_number":83,"context_line":"                               \u0027server-metadata\u0027,"},{"line_number":84,"context_line":"                               \u0027servers\u0027,"},{"line_number":85,"context_line":"                               \u0027versions\u0027,"},{"line_number":86,"context_line":"                               \u0027os-server-tags\u0027])"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"class FaultWrapper(base_wsgi.Middleware):"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba63e191_0bed248b","line":86,"range":{"start_line":86,"start_character":31,"end_line":86,"end_character":47},"updated":"2016-01-19 06:34:43.000000000","message":"why we need change this? this list didn\u0027t have any actual meaning anymore.","commit_id":"7ba3502f49822b43fdb6fd615afd3ef354c8f9f6"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"a1c1d212941265a10a308b56590b3b5d9b4f968c","unresolved":false,"context_lines":[{"line_number":83,"context_line":"                               \u0027server-metadata\u0027,"},{"line_number":84,"context_line":"                               \u0027servers\u0027,"},{"line_number":85,"context_line":"                               \u0027versions\u0027,"},{"line_number":86,"context_line":"                               \u0027os-server-tags\u0027])"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"class FaultWrapper(base_wsgi.Middleware):"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba63e191_6b6376b2","line":86,"range":{"start_line":86,"start_character":31,"end_line":86,"end_character":47},"in_reply_to":"ba63e191_0bed248b","updated":"2016-01-19 09:57:43.000000000","message":"Yep. you are right. I just forgot to remove it.","commit_id":"7ba3502f49822b43fdb6fd615afd3ef354c8f9f6"}],"nova/api/openstack/compute/views/servers.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"0eaf539a1032efe1dcceebc97b5f1b67ed8e62fb","unresolved":false,"context_lines":[{"line_number":310,"context_line":"                                          else False)"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"        if api_version_request.is_supported(request, min_version\u003d\"2.17\"):"},{"line_number":313,"context_line":"            server[\"server\"][\"tags\"] \u003d [t.tag for t in instance.tags.objects]"},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"        return server"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba63e191_cb238c04","line":313,"range":{"start_line":313,"start_character":39,"end_line":313,"end_character":77},"updated":"2016-01-19 06:34:43.000000000","message":"[t.tag for t in instance.tags] should work?","commit_id":"7ba3502f49822b43fdb6fd615afd3ef354c8f9f6"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"a1c1d212941265a10a308b56590b3b5d9b4f968c","unresolved":false,"context_lines":[{"line_number":310,"context_line":"                                          else False)"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"        if api_version_request.is_supported(request, min_version\u003d\"2.17\"):"},{"line_number":313,"context_line":"            server[\"server\"][\"tags\"] \u003d [t.tag for t in instance.tags.objects]"},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"        return server"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba63e191_4bd31239","line":313,"range":{"start_line":313,"start_character":39,"end_line":313,"end_character":77},"in_reply_to":"ba63e191_cb238c04","updated":"2016-01-19 09:57:43.000000000","message":"yes. it works!","commit_id":"7ba3502f49822b43fdb6fd615afd3ef354c8f9f6"}],"nova/api/openstack/rest_api_version_history.rst":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"0eaf539a1032efe1dcceebc97b5f1b67ed8e62fb","unresolved":false,"context_lines":[{"line_number":198,"context_line":"      }"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"  A user can get **only** a set of server tags by sending GET request to the"},{"line_number":201,"context_line":"  /servers/\u003cserver_id\u003e"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"  Response ::"},{"line_number":204,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba63e191_eb6c500a","line":201,"range":{"start_line":201,"start_character":2,"end_line":201,"end_character":22},"updated":"2016-01-19 06:34:43.000000000","message":"There should be \u0027/servers/\u003cserver_id\u003e/tags\u0027 I guess","commit_id":"7ba3502f49822b43fdb6fd615afd3ef354c8f9f6"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"a1c1d212941265a10a308b56590b3b5d9b4f968c","unresolved":false,"context_lines":[{"line_number":198,"context_line":"      }"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"  A user can get **only** a set of server tags by sending GET request to the"},{"line_number":201,"context_line":"  /servers/\u003cserver_id\u003e"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"  Response ::"},{"line_number":204,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba63e191_4bba32e3","line":201,"range":{"start_line":201,"start_character":2,"end_line":201,"end_character":22},"in_reply_to":"ba63e191_eb6c500a","updated":"2016-01-19 09:57:43.000000000","message":"my bad(","commit_id":"7ba3502f49822b43fdb6fd615afd3ef354c8f9f6"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"0eaf539a1032efe1dcceebc97b5f1b67ed8e62fb","unresolved":false,"context_lines":[{"line_number":210,"context_line":"  GET /servers/{server_id}/tags/{tag}"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"  Request returns `204 No Content` if tag exist on a server or `404 Not Found`"},{"line_number":213,"context_line":"  if tag doesn\u0027t exist on a server."}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba63e191_eb43f06a","line":213,"updated":"2016-01-19 06:34:43.000000000","message":"Just forget mention we can filter servers by tags.","commit_id":"7ba3502f49822b43fdb6fd615afd3ef354c8f9f6"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"e0777632a4ad0b236dd8ad2dd671e410023b79d7","unresolved":false,"context_lines":[{"line_number":164,"context_line":"  Added support of server tags."},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"  A user can create, update, delete or check existence of simple string tags"},{"line_number":167,"context_line":"  for servers by the os-server-tags plugin."},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"  The resource point for these operations is /servers/\u003cserver_id\u003e/tags"},{"line_number":170,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a68dd71_0cac2e9f","line":167,"updated":"2016-01-21 15:05:30.000000000","message":"s/by/via ?","commit_id":"f374b8dcc0c023cd02597b839263add958635976"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"e0777632a4ad0b236dd8ad2dd671e410023b79d7","unresolved":false,"context_lines":[{"line_number":169,"context_line":"  The resource point for these operations is /servers/\u003cserver_id\u003e/tags"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"  A user can add a single tag to the server by sending PUT request to the"},{"line_number":172,"context_line":"  /servers/\u003cserver_id\u003e/tags/\u003ctag\u003e"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"  where \u003ctag\u003e is any valid tag name."},{"line_number":175,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a68dd71_ecc67a48","line":172,"updated":"2016-01-21 15:05:30.000000000","message":"You don\u0027t need \"the\" in this sentence unless you follow the URL with the term \"URL\"","commit_id":"f374b8dcc0c023cd02597b839263add958635976"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"e0777632a4ad0b236dd8ad2dd671e410023b79d7","unresolved":false,"context_lines":[{"line_number":173,"context_line":""},{"line_number":174,"context_line":"  where \u003ctag\u003e is any valid tag name."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"  A user can replace **all** current server tags to the new set of tags"},{"line_number":177,"context_line":"  by sending PUT request to the /servers/\u003cserver_id\u003e/tags. New set of tags"},{"line_number":178,"context_line":"  must be specified in request body. This set must be in list \u0027tags\u0027."},{"line_number":179,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a68dd71_6c084a92","line":176,"updated":"2016-01-21 15:05:30.000000000","message":"s/to the/with a/","commit_id":"f374b8dcc0c023cd02597b839263add958635976"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"e0777632a4ad0b236dd8ad2dd671e410023b79d7","unresolved":false,"context_lines":[{"line_number":174,"context_line":"  where \u003ctag\u003e is any valid tag name."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"  A user can replace **all** current server tags to the new set of tags"},{"line_number":177,"context_line":"  by sending PUT request to the /servers/\u003cserver_id\u003e/tags. New set of tags"},{"line_number":178,"context_line":"  must be specified in request body. This set must be in list \u0027tags\u0027."},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"  A user can remove specified tag from the server by sending DELETE request"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a68dd71_cc4056a8","line":177,"updated":"2016-01-21 15:05:30.000000000","message":"s/sending/sending a/\ns/the//\ns/New/The new/","commit_id":"f374b8dcc0c023cd02597b839263add958635976"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"e0777632a4ad0b236dd8ad2dd671e410023b79d7","unresolved":false,"context_lines":[{"line_number":175,"context_line":""},{"line_number":176,"context_line":"  A user can replace **all** current server tags to the new set of tags"},{"line_number":177,"context_line":"  by sending PUT request to the /servers/\u003cserver_id\u003e/tags. New set of tags"},{"line_number":178,"context_line":"  must be specified in request body. This set must be in list \u0027tags\u0027."},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"  A user can remove specified tag from the server by sending DELETE request"},{"line_number":181,"context_line":"  to the /servers/\u003cserver_id\u003e/tags/\u003ctag\u003e"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a68dd71_0c0d0e90","line":178,"updated":"2016-01-21 15:05:30.000000000","message":"in a list named \u0027tags\u0027","commit_id":"f374b8dcc0c023cd02597b839263add958635976"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"e0777632a4ad0b236dd8ad2dd671e410023b79d7","unresolved":false,"context_lines":[{"line_number":177,"context_line":"  by sending PUT request to the /servers/\u003cserver_id\u003e/tags. New set of tags"},{"line_number":178,"context_line":"  must be specified in request body. This set must be in list \u0027tags\u0027."},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"  A user can remove specified tag from the server by sending DELETE request"},{"line_number":181,"context_line":"  to the /servers/\u003cserver_id\u003e/tags/\u003ctag\u003e"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"  where \u003ctag\u003e is tag name which user wants to remove."}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a68dd71_8c781ef4","line":180,"updated":"2016-01-21 15:05:30.000000000","message":"A user can remove a single specifed tag from the server by sending a DELETE request to /servers[...]","commit_id":"f374b8dcc0c023cd02597b839263add958635976"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"e0777632a4ad0b236dd8ad2dd671e410023b79d7","unresolved":false,"context_lines":[{"line_number":180,"context_line":"  A user can remove specified tag from the server by sending DELETE request"},{"line_number":181,"context_line":"  to the /servers/\u003cserver_id\u003e/tags/\u003ctag\u003e"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"  where \u003ctag\u003e is tag name which user wants to remove."},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"  A user can remove **all** tags from the server by sending DELETE request"},{"line_number":186,"context_line":"  to the /servers/\u003cserver_id\u003e/tags"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a68dd71_0c5bce88","line":183,"updated":"2016-01-21 15:05:30.000000000","message":"where \u003ctag\u003e is the name of the tag which the user wants to remove.","commit_id":"f374b8dcc0c023cd02597b839263add958635976"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"e0777632a4ad0b236dd8ad2dd671e410023b79d7","unresolved":false,"context_lines":[{"line_number":183,"context_line":"  where \u003ctag\u003e is tag name which user wants to remove."},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"  A user can remove **all** tags from the server by sending DELETE request"},{"line_number":186,"context_line":"  to the /servers/\u003cserver_id\u003e/tags"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"  A user can get a set of server tags with information about server by sending"},{"line_number":189,"context_line":"  GET request to the /servers/\u003cserver_id\u003e"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a68dd71_4cc8e622","line":186,"updated":"2016-01-21 15:05:30.000000000","message":"no the","commit_id":"f374b8dcc0c023cd02597b839263add958635976"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"e0777632a4ad0b236dd8ad2dd671e410023b79d7","unresolved":false,"context_lines":[{"line_number":186,"context_line":"  to the /servers/\u003cserver_id\u003e/tags"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"  A user can get a set of server tags with information about server by sending"},{"line_number":189,"context_line":"  GET request to the /servers/\u003cserver_id\u003e"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"  Request returns dictionary with information about specified server, including"},{"line_number":192,"context_line":"  list \u0027tags\u0027 ::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a68dd71_4cbd4667","line":189,"updated":"2016-01-21 15:05:30.000000000","message":"This sentence is not quite right, but I\u0027m not sure of the intent so not sure what to suggest.","commit_id":"f374b8dcc0c023cd02597b839263add958635976"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"e0777632a4ad0b236dd8ad2dd671e410023b79d7","unresolved":false,"context_lines":[{"line_number":188,"context_line":"  A user can get a set of server tags with information about server by sending"},{"line_number":189,"context_line":"  GET request to the /servers/\u003cserver_id\u003e"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"  Request returns dictionary with information about specified server, including"},{"line_number":192,"context_line":"  list \u0027tags\u0027 ::"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"      {"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a68dd71_8c825e93","line":191,"updated":"2016-01-21 15:05:30.000000000","message":"The request returns a dictionary with information about the specified server, including list \u0027tags\u0027::","commit_id":"f374b8dcc0c023cd02597b839263add958635976"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"e0777632a4ad0b236dd8ad2dd671e410023b79d7","unresolved":false,"context_lines":[{"line_number":197,"context_line":"          \u0027tags\u0027: [\u0027foo\u0027, \u0027bar\u0027, \u0027baz\u0027]"},{"line_number":198,"context_line":"      }"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"  A user can get **only** a set of server tags by sending GET request to the"},{"line_number":201,"context_line":"  /servers/\u003cserver_id\u003e/tags"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"  Response ::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a68dd71_2c3fb2d7","line":200,"updated":"2016-01-21 15:05:30.000000000","message":"by sending a GET request to /servers...","commit_id":"f374b8dcc0c023cd02597b839263add958635976"}],"nova/tests/functional/api_sample_tests/test_server_tags.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"0eaf539a1032efe1dcceebc97b5f1b67ed8e62fb","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        uuid \u003d self._post_server()"},{"line_number":34,"context_line":"        subs \u003d self._get_create_subs()"},{"line_number":35,"context_line":"        response \u003d self._do_put(\u0027servers/%s/tags\u0027 % uuid,"},{"line_number":36,"context_line":"                                \u0027server-tags-post-req\u0027, subs)"},{"line_number":37,"context_line":"        self.assertEqual(200, response.status_code)"},{"line_number":38,"context_line":"        return uuid"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba63e191_abdbb8ec","line":36,"range":{"start_line":36,"start_character":45,"end_line":36,"end_character":49},"updated":"2016-01-19 06:34:43.000000000","message":"nit. maybe the sample file name is \"put-all\", as this is put, not post.","commit_id":"7ba3502f49822b43fdb6fd615afd3ef354c8f9f6"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"a1c1d212941265a10a308b56590b3b5d9b4f968c","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        uuid \u003d self._post_server()"},{"line_number":34,"context_line":"        subs \u003d self._get_create_subs()"},{"line_number":35,"context_line":"        response \u003d self._do_put(\u0027servers/%s/tags\u0027 % uuid,"},{"line_number":36,"context_line":"                                \u0027server-tags-post-req\u0027, subs)"},{"line_number":37,"context_line":"        self.assertEqual(200, response.status_code)"},{"line_number":38,"context_line":"        return uuid"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba63e191_6ba616c3","line":36,"range":{"start_line":36,"start_character":45,"end_line":36,"end_character":49},"in_reply_to":"ba63e191_abdbb8ec","updated":"2016-01-19 09:57:43.000000000","message":"thanks, forgot to rename","commit_id":"7ba3502f49822b43fdb6fd615afd3ef354c8f9f6"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"8e027db8545a5c02ebda7b2a531b8c6c3518674a","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        response \u003d self._do_put(\u0027servers/%s/tags/%s\u0027 % (uuid, tag.tag),"},{"line_number":86,"context_line":"                                \u0027server-tags-put-req\u0027, {})"},{"line_number":87,"context_line":"        self.assertEqual(201, response.status_code)"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    @mock.patch(\u0027nova.db.instance_tag_delete\u0027)"},{"line_number":90,"context_line":"    def test_server_tags_delete(self, mock_delete):"}],"source_content_type":"text/x-python","patch_set":30,"id":"9a061dce_d7bacf09","line":87,"updated":"2016-04-05 13:09:50.000000000","message":"We better to validate the Location header","commit_id":"7655bb1088069f5f474f2d76d6da47ad5fd4ee80"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"8e027db8545a5c02ebda7b2a531b8c6c3518674a","unresolved":false,"context_lines":[{"line_number":86,"context_line":"                                \u0027server-tags-put-req\u0027, {})"},{"line_number":87,"context_line":"        self.assertEqual(201, response.status_code)"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    @mock.patch(\u0027nova.db.instance_tag_delete\u0027)"},{"line_number":90,"context_line":"    def test_server_tags_delete(self, mock_delete):"},{"line_number":91,"context_line":"        uuid \u003d self._put_server_tags()"},{"line_number":92,"context_line":"        response \u003d self._do_delete(\u0027servers/%s/tags/%s\u0027 % (uuid, TAG))"}],"source_content_type":"text/x-python","patch_set":30,"id":"9a061dce_17ed6725","line":89,"range":{"start_line":89,"start_character":4,"end_line":89,"end_character":46},"updated":"2016-04-05 13:09:50.000000000","message":"We shouldn\u0027t mock the db layer, as this is functional test, it should test the whole stack","commit_id":"7655bb1088069f5f474f2d76d6da47ad5fd4ee80"}],"releasenotes/notes/bp-instance-tags-3acb227083320796.yaml":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"0eaf539a1032efe1dcceebc97b5f1b67ed8e62fb","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Microversion v2.17 allows to create/update/delete simple string tags."},{"line_number":4,"context_line":"    They can be used for filtering instances by these tags."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"ba63e191_2b9588e3","line":4,"range":{"start_line":4,"start_character":35,"end_line":4,"end_character":44},"updated":"2016-01-19 06:34:43.000000000","message":"for API user, they only know \u0027servers\u0027, \u0027instances\u0027 only used in nova internal","commit_id":"7ba3502f49822b43fdb6fd615afd3ef354c8f9f6"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"a1c1d212941265a10a308b56590b3b5d9b4f968c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Microversion v2.17 allows to create/update/delete simple string tags."},{"line_number":4,"context_line":"    They can be used for filtering instances by these tags."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"ba63e191_2b87be10","line":4,"range":{"start_line":4,"start_character":35,"end_line":4,"end_character":44},"in_reply_to":"ba63e191_2b9588e3","updated":"2016-01-19 09:57:43.000000000","message":"ok","commit_id":"7ba3502f49822b43fdb6fd615afd3ef354c8f9f6"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"e0777632a4ad0b236dd8ad2dd671e410023b79d7","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Microversion v2.17 allows to create/update/delete simple string tags."},{"line_number":4,"context_line":"    They can be used for filtering servers by these tags."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"9a68dd71_67edc524","line":3,"updated":"2016-01-21 15:05:30.000000000","message":"simple string tags associated with servers.\n\nOr something like that. Otherwise it seems like they just exist without being attached to anything.","commit_id":"f374b8dcc0c023cd02597b839263add958635976"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"f395f1d6c4f5bbb02a4766d31919bfebdb21ad4f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Microversion v2.22 allows to create/update/delete simple string tags."},{"line_number":4,"context_line":"    They can be used for filtering servers by these tags."}],"source_content_type":"text/x-yaml","patch_set":18,"id":"5a5ae5dd_3950ae0a","line":4,"updated":"2016-02-08 16:15:23.000000000","message":"I know this is in the original spec, but can we specify here that this change aims to be used *only* by users?","commit_id":"1044fed8e40d2d2dceba609c1d4136e595a1cd9b"}]}
