)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"5ef3020fd57219210e7ae011c315e9a16fbe6f05","unresolved":false,"context_lines":[{"line_number":11,"context_line":"the sharing server can\u0027t reach ACTIVE status and has to be recreated"},{"line_number":12,"context_line":"after the timeout period is expired."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"We can\u0027t use addCleanup because the steps added by addCleanup will"},{"line_number":15,"context_line":"be executed after tearDown."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I84330d7bf24e4d693a42fb604fd728ad99bfb5cf"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"ff82abbf_9e97e73a","line":15,"range":{"start_line":14,"start_character":0,"end_line":15,"end_character":27},"updated":"2017-11-28 21:05:34.000000000","message":"Actually this isn\u0027t true: \"TestCase.addCleanup is a robust way to arrange for a clean up function to be called before tearDown\" [0].\n\nIn any case, addOnException is recommended because \"so that you only do it when a test actually raises an exception\" because unshelve_server is expensive.\n\nhttp://testtools.readthedocs.io/en/latest/for-test-authors.html#addcleanup","commit_id":"d1ee6c448f769a1f6cce1c6ddeb6a55af5b1e1c1"}],"tempest/api/compute/servers/test_servers_negative.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"44cd29e86f516eb4ae08dcaa8a65b361cbff62f9","unresolved":false,"context_lines":[{"line_number":478,"context_line":"        compute.shelve_server(self.client, self.server_id)"},{"line_number":479,"context_line":""},{"line_number":480,"context_line":"        def _unshelve_server():"},{"line_number":481,"context_line":"            self.client.unshelve_server(self.server_id)"},{"line_number":482,"context_line":"        self.addOnException(_unshelve_server)"},{"line_number":483,"context_line":""},{"line_number":484,"context_line":"        server \u003d self.client.show_server(self.server_id)[\u0027server\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff82abbf_63082691","line":481,"updated":"2017-11-29 22:36:50.000000000","message":"Why don\u0027t you also do:\n\n    server_info \u003d self.client.show_server(self.server_id)[\u0027server\u0027]\n    if server_info[\u0027status\u0027] !\u003d \u0027ACTIVE\u0027:\n\nhere?","commit_id":"d1ee6c448f769a1f6cce1c6ddeb6a55af5b1e1c1"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"5fc4976472ff16ba3921af771f29a3ebfe3b52ec","unresolved":false,"context_lines":[{"line_number":478,"context_line":"        compute.shelve_server(self.client, self.server_id)"},{"line_number":479,"context_line":""},{"line_number":480,"context_line":"        def _unshelve_server():"},{"line_number":481,"context_line":"            self.client.unshelve_server(self.server_id)"},{"line_number":482,"context_line":"        self.addOnException(_unshelve_server)"},{"line_number":483,"context_line":""},{"line_number":484,"context_line":"        server \u003d self.client.show_server(self.server_id)[\u0027server\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff82abbf_fb737ee5","line":481,"in_reply_to":"ff82abbf_63082691","updated":"2017-11-30 01:59:43.000000000","message":"Because in this testcase unshelve_server is the last step, so if any exception is raised then the server is sure not to be in \u0027ACTIVE\u0027 status.","commit_id":"d1ee6c448f769a1f6cce1c6ddeb6a55af5b1e1c1"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"35fb3c3a0ea36e65039e2fd765aca1c83cc1333e","unresolved":false,"context_lines":[{"line_number":478,"context_line":"        compute.shelve_server(self.client, self.server_id)"},{"line_number":479,"context_line":""},{"line_number":480,"context_line":"        def _unshelve_server():"},{"line_number":481,"context_line":"            self.client.unshelve_server(self.server_id)"},{"line_number":482,"context_line":"        self.addOnException(_unshelve_server)"},{"line_number":483,"context_line":""},{"line_number":484,"context_line":"        server \u003d self.client.show_server(self.server_id)[\u0027server\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff82abbf_97e8e57c","line":481,"in_reply_to":"ff82abbf_fb737ee5","updated":"2017-12-01 01:29:39.000000000","message":"Well, unshelve_server on L602 in [0] is practically the same step too, no?\n\n[0] https://review.openstack.org/#/c/523056/3/tempest/api/compute/servers/test_server_actions.py","commit_id":"d1ee6c448f769a1f6cce1c6ddeb6a55af5b1e1c1"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"1fbd8f29cad4b00343d719366bd571878b3f1899","unresolved":false,"context_lines":[{"line_number":479,"context_line":""},{"line_number":480,"context_line":"        def _unshelve_server():"},{"line_number":481,"context_line":"            server_info \u003d self.client.show_server(self.server_id)[\u0027server\u0027]"},{"line_number":482,"context_line":"            if \u0027SHELVED\u0027 in server_info[\u0027status\u0027]:"},{"line_number":483,"context_line":"                self.client.unshelve_server(self.server_id)"},{"line_number":484,"context_line":"        self.addOnException(_unshelve_server)"},{"line_number":485,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"df87a7cf_54624040","line":482,"range":{"start_line":482,"start_character":16,"end_line":482,"end_character":23},"updated":"2017-12-04 16:24:38.000000000","message":"++\n\nThis is safer","commit_id":"aa270031a389eae0d4362d1904768f8d1c25280c"}]}
