)]}'
{"tempest/api/compute/servers/test_server_actions.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"2a4db6db9ee62f63d5c6bdf323e0d97577a453fa","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import base64"},{"line_number":19,"context_line":"import testtools"},{"line_number":20,"context_line":"import time"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from tempest.api import compute"},{"line_number":23,"context_line":"from tempest.api.compute import base"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATH%2F%2F1aI%3D","line":20,"updated":"2013-10-09 07:37:37.000000000","message":"I tried the same change, but this was wrong.\n\nPlease see Matthew\u0027s comment on https://review.openstack.org/#/c/45779/ .","commit_id":"57a00a077c9055de1de6f09b19e3cc1df71be886"},{"author":{"_account_id":6732,"name":"Lingxian Kong","email":"anlin.kong@gmail.com","username":"kong"},"change_message_id":"9bb021763cf9a21b956a998226be564bd9c9289f","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import base64"},{"line_number":19,"context_line":"import testtools"},{"line_number":20,"context_line":"import time"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from tempest.api import compute"},{"line_number":23,"context_line":"from tempest.api.compute import base"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATH%2F%2F1ME%3D","line":20,"in_reply_to":"AAAATH%2F%2F1Mo%3D","updated":"2013-10-09 08:49:54.000000000","message":"I\u0027ll try! Thanks very much!","commit_id":"57a00a077c9055de1de6f09b19e3cc1df71be886"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"3c06aacff6b8582fd4805b1ea06caeec9926c66c","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import base64"},{"line_number":19,"context_line":"import testtools"},{"line_number":20,"context_line":"import time"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from tempest.api import compute"},{"line_number":23,"context_line":"from tempest.api.compute import base"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATH%2F%2F1Mo%3D","line":20,"in_reply_to":"AAAATH%2F%2F1OQ%3D","updated":"2013-10-09 08:47:34.000000000","message":"If putting a new line after \"import time\", pep8 would not fail.","commit_id":"57a00a077c9055de1de6f09b19e3cc1df71be886"},{"author":{"_account_id":6732,"name":"Lingxian Kong","email":"anlin.kong@gmail.com","username":"kong"},"change_message_id":"5329c1207e4f97f7d2e42ed014cc8ae3b7589081","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import base64"},{"line_number":19,"context_line":"import testtools"},{"line_number":20,"context_line":"import time"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from tempest.api import compute"},{"line_number":23,"context_line":"from tempest.api.compute import base"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATH%2F%2F1OQ%3D","line":20,"in_reply_to":"AAAATH%2F%2F1aI%3D","updated":"2013-10-09 08:44:53.000000000","message":"hi, Ken\u0027ichi, if put it up, the pep8 will fail","commit_id":"57a00a077c9055de1de6f09b19e3cc1df71be886"}],"tempest/api/compute/servers/test_servers_negative.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"2a4db6db9ee62f63d5c6bdf323e0d97577a453fa","unresolved":false,"context_lines":[{"line_number":271,"context_line":"                          non_exist_id)"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":274,"context_line":"    def test_force_delete_nonexistent_server_id(self):"},{"line_number":275,"context_line":"        non_existent_server_id \u003d str(uuid.uuid4())"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"        self.assertRaises(exceptions.NotFound,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATH%2F%2F1dE%3D","line":274,"updated":"2013-10-09 07:37:37.000000000","message":"Could you add some comments about this test case such as the existing test cases?","commit_id":"57a00a077c9055de1de6f09b19e3cc1df71be886"},{"author":{"_account_id":6732,"name":"Lingxian Kong","email":"anlin.kong@gmail.com","username":"kong"},"change_message_id":"34a33f9e274f111d51efc441f0365c4dc4a3f629","unresolved":false,"context_lines":[{"line_number":271,"context_line":"                          non_exist_id)"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":274,"context_line":"    def test_force_delete_nonexistent_server_id(self):"},{"line_number":275,"context_line":"        non_existent_server_id \u003d str(uuid.uuid4())"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"        self.assertRaises(exceptions.NotFound,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATH%2F%2F1AU%3D","line":274,"in_reply_to":"AAAATH%2F%2F1LA%3D","updated":"2013-10-09 09:52:36.000000000","message":"after thinking for a while, I will fix it as your advice. :)","commit_id":"57a00a077c9055de1de6f09b19e3cc1df71be886"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"fa33a2fc481363acb3e06518894feb9da64b0543","unresolved":false,"context_lines":[{"line_number":271,"context_line":"                          non_exist_id)"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":274,"context_line":"    def test_force_delete_nonexistent_server_id(self):"},{"line_number":275,"context_line":"        non_existent_server_id \u003d str(uuid.uuid4())"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"        self.assertRaises(exceptions.NotFound,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATH%2F%2F1LA%3D","line":274,"in_reply_to":"AAAATH%2F%2F1Nc%3D","updated":"2013-10-09 08:52:13.000000000","message":"I know, this is a nit comment.\n\nIt is no problem if not taking it :-)","commit_id":"57a00a077c9055de1de6f09b19e3cc1df71be886"},{"author":{"_account_id":6732,"name":"Lingxian Kong","email":"anlin.kong@gmail.com","username":"kong"},"change_message_id":"5329c1207e4f97f7d2e42ed014cc8ae3b7589081","unresolved":false,"context_lines":[{"line_number":271,"context_line":"                          non_exist_id)"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":274,"context_line":"    def test_force_delete_nonexistent_server_id(self):"},{"line_number":275,"context_line":"        non_existent_server_id \u003d str(uuid.uuid4())"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"        self.assertRaises(exceptions.NotFound,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATH%2F%2F1Nc%3D","line":274,"in_reply_to":"AAAATH%2F%2F1dE%3D","updated":"2013-10-09 08:44:53.000000000","message":"Thanks for suggestion, Ken\u0027ichi. IMHO, the function name will tell exactly, dose the comments make sense?","commit_id":"57a00a077c9055de1de6f09b19e3cc1df71be886"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"a46cf9dbe487d7b4e3f371b5bb1c5db3113b0746","unresolved":false,"context_lines":[{"line_number":281,"context_line":""},{"line_number":282,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":283,"context_line":"    def test_force_delete_server_invalid_state(self):"},{"line_number":284,"context_line":"        # force-deleting a server in invalid state should raise exception"},{"line_number":285,"context_line":"        resp, server \u003d self.create_server(wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":286,"context_line":"        self.assertEqual(\u0027202\u0027, resp[\u0027status\u0027])"},{"line_number":287,"context_line":"        server_id \u003d server[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATH%2F%2FTec%3D","line":284,"updated":"2013-10-18 02:13:33.000000000","message":"This comment doesn\u0027t match what you\u0027re doing here. How is the server invalid? It was just created.","commit_id":"28979acc9c2b9c77c516ed4134e5454f5d373103"},{"author":{"_account_id":6732,"name":"Lingxian Kong","email":"anlin.kong@gmail.com","username":"kong"},"change_message_id":"4cb83ed4824cfaf274d244d71969681885e65789","unresolved":false,"context_lines":[{"line_number":281,"context_line":""},{"line_number":282,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":283,"context_line":"    def test_force_delete_server_invalid_state(self):"},{"line_number":284,"context_line":"        # force-deleting a server in invalid state should raise exception"},{"line_number":285,"context_line":"        resp, server \u003d self.create_server(wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":286,"context_line":"        self.assertEqual(\u0027202\u0027, resp[\u0027status\u0027])"},{"line_number":287,"context_line":"        server_id \u003d server[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATH%2F%2FTYY%3D","line":284,"in_reply_to":"AAAATH%2F%2FTec%3D","updated":"2013-10-18 03:37:40.000000000","message":"hi, Matthew, thanks for your review and comments first. \n\n\u0027invalid\u0027 here means \u0027server which in invalid state\u0027 for force_delete action. Because we can not perform a \u0027force-delete\u0027 action on a server which is active.","commit_id":"28979acc9c2b9c77c516ed4134e5454f5d373103"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"a46cf9dbe487d7b4e3f371b5bb1c5db3113b0746","unresolved":false,"context_lines":[{"line_number":301,"context_line":""},{"line_number":302,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":303,"context_line":"    def test_restore_server_invalid_state(self):"},{"line_number":304,"context_line":"        # restore-deleting a server in invalid state should raise exception"},{"line_number":305,"context_line":"        resp, server \u003d self.create_server(wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":306,"context_line":"        self.assertEqual(\u0027202\u0027, resp[\u0027status\u0027])"},{"line_number":307,"context_line":"        server_id \u003d server[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATH%2F%2FTeQ%3D","line":304,"updated":"2013-10-18 02:13:33.000000000","message":"This comment also doesn\u0027t match the test.","commit_id":"28979acc9c2b9c77c516ed4134e5454f5d373103"}],"tempest/services/compute/json/servers_client.py":[{"author":{"_account_id":6983,"name":"YangLei","email":"iamhappg@aliyun.com","username":"YangLei"},"change_message_id":"2f646d39905702ad0ca133238c4a557146c59380","unresolved":false,"context_lines":[{"line_number":384,"context_line":"        \"\"\"Force delete a server\"\"\""},{"line_number":385,"context_line":"        return self.action(server_id, \u0027forceDelete\u0027, None, **kwargs)"},{"line_number":386,"context_line":""},{"line_number":387,"context_line":"    def restore_delete(self, server_id, **kwargs):"},{"line_number":388,"context_line":"        \"\"\"Restore a server\"\"\""},{"line_number":389,"context_line":"        return self.action(server_id, \u0027restore\u0027, None, **kwargs)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATH%2F%2Fw44%3D","line":387,"updated":"2013-10-10 06:30:30.000000000","message":"Confused by the function name \"restore_delete\".\nWhy the function name is \"restore_delete\"?","commit_id":"7ffc125483f61fa9d504fc92b7b3f6b38640171d"},{"author":{"_account_id":6983,"name":"YangLei","email":"iamhappg@aliyun.com","username":"YangLei"},"change_message_id":"066b8e78b2dd1a5f5274fc3f478592b2d29058fa","unresolved":false,"context_lines":[{"line_number":384,"context_line":"        \"\"\"Force delete a server\"\"\""},{"line_number":385,"context_line":"        return self.action(server_id, \u0027forceDelete\u0027, None, **kwargs)"},{"line_number":386,"context_line":""},{"line_number":387,"context_line":"    def restore_delete(self, server_id, **kwargs):"},{"line_number":388,"context_line":"        \"\"\"Restore a server\"\"\""},{"line_number":389,"context_line":"        return self.action(server_id, \u0027restore\u0027, None, **kwargs)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATH%2F%2Fwn0%3D","line":387,"in_reply_to":"AAAATH%2F%2Fw0E%3D","updated":"2013-10-10 08:13:46.000000000","message":"The function name should be \"restore\" rather than \"restore_delete\".\nPlease see your code:\n\"return self.action(server_id, \u0027restore\u0027, None, **kwargs)\"\n\nI donot understand why \"_delete\" exists in the function name.","commit_id":"7ffc125483f61fa9d504fc92b7b3f6b38640171d"},{"author":{"_account_id":6732,"name":"Lingxian Kong","email":"anlin.kong@gmail.com","username":"kong"},"change_message_id":"87ca369e426aab1b11e846c3a591c59199d84b36","unresolved":false,"context_lines":[{"line_number":384,"context_line":"        \"\"\"Force delete a server\"\"\""},{"line_number":385,"context_line":"        return self.action(server_id, \u0027forceDelete\u0027, None, **kwargs)"},{"line_number":386,"context_line":""},{"line_number":387,"context_line":"    def restore_delete(self, server_id, **kwargs):"},{"line_number":388,"context_line":"        \"\"\"Restore a server\"\"\""},{"line_number":389,"context_line":"        return self.action(server_id, \u0027restore\u0027, None, **kwargs)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATH%2F%2Fw0E%3D","line":387,"in_reply_to":"AAAATH%2F%2Fw44%3D","updated":"2013-10-10 06:56:58.000000000","message":"Hi YangLei, when a server is in soft-deleted state, it can be restored to active. Or what\u0027s your suggestion?","commit_id":"7ffc125483f61fa9d504fc92b7b3f6b38640171d"},{"author":{"_account_id":6732,"name":"Lingxian Kong","email":"anlin.kong@gmail.com","username":"kong"},"change_message_id":"649d3d698a1417f46af86f30eb550ccfe97c6c0b","unresolved":false,"context_lines":[{"line_number":384,"context_line":"        \"\"\"Force delete a server\"\"\""},{"line_number":385,"context_line":"        return self.action(server_id, \u0027forceDelete\u0027, None, **kwargs)"},{"line_number":386,"context_line":""},{"line_number":387,"context_line":"    def restore_delete(self, server_id, **kwargs):"},{"line_number":388,"context_line":"        \"\"\"Restore a server\"\"\""},{"line_number":389,"context_line":"        return self.action(server_id, \u0027restore\u0027, None, **kwargs)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATH%2F%2FwYA%3D","line":387,"in_reply_to":"AAAATH%2F%2FwcI%3D","updated":"2013-10-10 09:32:13.000000000","message":"Maybe a good choice.","commit_id":"7ffc125483f61fa9d504fc92b7b3f6b38640171d"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"f773c51f8a3737778700d8bdc0169fb2ca0f92b6","unresolved":false,"context_lines":[{"line_number":384,"context_line":"        \"\"\"Force delete a server\"\"\""},{"line_number":385,"context_line":"        return self.action(server_id, \u0027forceDelete\u0027, None, **kwargs)"},{"line_number":386,"context_line":""},{"line_number":387,"context_line":"    def restore_delete(self, server_id, **kwargs):"},{"line_number":388,"context_line":"        \"\"\"Restore a server\"\"\""},{"line_number":389,"context_line":"        return self.action(server_id, \u0027restore\u0027, None, **kwargs)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATH%2F%2FwcI%3D","line":387,"in_reply_to":"AAAATH%2F%2Fwfw%3D","updated":"2013-10-10 09:16:42.000000000","message":"\"delete\" is almost verb, so \"verb + verb\" is a little difficult.\n\nHow about restore_soft_deleted_server? too long?","commit_id":"7ffc125483f61fa9d504fc92b7b3f6b38640171d"},{"author":{"_account_id":6983,"name":"YangLei","email":"iamhappg@aliyun.com","username":"YangLei"},"change_message_id":"fc95d12d3b8926751089a40a0df843203dd5a81a","unresolved":false,"context_lines":[{"line_number":384,"context_line":"        \"\"\"Force delete a server\"\"\""},{"line_number":385,"context_line":"        return self.action(server_id, \u0027forceDelete\u0027, None, **kwargs)"},{"line_number":386,"context_line":""},{"line_number":387,"context_line":"    def restore_delete(self, server_id, **kwargs):"},{"line_number":388,"context_line":"        \"\"\"Restore a server\"\"\""},{"line_number":389,"context_line":"        return self.action(server_id, \u0027restore\u0027, None, **kwargs)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATH%2F%2Fwfw%3D","line":387,"in_reply_to":"AAAATH%2F%2Fwlk%3D","updated":"2013-10-10 09:04:59.000000000","message":"I still donot think \"restore_delete\" is a good choice.\nAnyway, I remove \"-1\". Maybe other reviewers have good ideas for it.","commit_id":"7ffc125483f61fa9d504fc92b7b3f6b38640171d"},{"author":{"_account_id":6732,"name":"Lingxian Kong","email":"anlin.kong@gmail.com","username":"kong"},"change_message_id":"dd92c859d5319af4f25bce6c203286c494aa1be0","unresolved":false,"context_lines":[{"line_number":384,"context_line":"        \"\"\"Force delete a server\"\"\""},{"line_number":385,"context_line":"        return self.action(server_id, \u0027forceDelete\u0027, None, **kwargs)"},{"line_number":386,"context_line":""},{"line_number":387,"context_line":"    def restore_delete(self, server_id, **kwargs):"},{"line_number":388,"context_line":"        \"\"\"Restore a server\"\"\""},{"line_number":389,"context_line":"        return self.action(server_id, \u0027restore\u0027, None, **kwargs)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATH%2F%2Fwlk%3D","line":387,"in_reply_to":"AAAATH%2F%2Fwn0%3D","updated":"2013-10-10 08:27:29.000000000","message":"hi, YangLei, IMHO, \u0027restore\u0027 here maybe more confused, because when we say \u0027restore\u0027, we commonly refer to restore a server from a snapshot. So I add \u0027_delete here to clarify we just want to restore from the \u0027deleted\u0027 state. make sense?\n\nBTW, thanks for reviewing!","commit_id":"7ffc125483f61fa9d504fc92b7b3f6b38640171d"},{"author":{"_account_id":6983,"name":"YangLei","email":"iamhappg@aliyun.com","username":"YangLei"},"change_message_id":"0249b6ce5c602b582573f4ca8e67aaccd473a13c","unresolved":false,"context_lines":[{"line_number":385,"context_line":"        return self.action(server_id, \u0027forceDelete\u0027, None, **kwargs)"},{"line_number":386,"context_line":""},{"line_number":387,"context_line":"    def restore_delete(self, server_id, **kwargs):"},{"line_number":388,"context_line":"        \"\"\"Restore a server\"\"\""},{"line_number":389,"context_line":"        return self.action(server_id, \u0027restore\u0027, None, **kwargs)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATH%2F%2FwfA%3D","line":388,"updated":"2013-10-10 09:07:38.000000000","message":"\"Restore a soft-deleted server\" should be better.","commit_id":"7ffc125483f61fa9d504fc92b7b3f6b38640171d"},{"author":{"_account_id":6732,"name":"Lingxian Kong","email":"anlin.kong@gmail.com","username":"kong"},"change_message_id":"649d3d698a1417f46af86f30eb550ccfe97c6c0b","unresolved":false,"context_lines":[{"line_number":385,"context_line":"        return self.action(server_id, \u0027forceDelete\u0027, None, **kwargs)"},{"line_number":386,"context_line":""},{"line_number":387,"context_line":"    def restore_delete(self, server_id, **kwargs):"},{"line_number":388,"context_line":"        \"\"\"Restore a server\"\"\""},{"line_number":389,"context_line":"        return self.action(server_id, \u0027restore\u0027, None, **kwargs)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATH%2F%2FwX8%3D","line":388,"in_reply_to":"AAAATH%2F%2FwfA%3D","updated":"2013-10-10 09:32:13.000000000","message":"Got it, thanks, yang, I\u0027ll fix this, and both take ken\u0027ich\u0027s advice.","commit_id":"7ffc125483f61fa9d504fc92b7b3f6b38640171d"}]}
