)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"f564150a72d0edb33d89a7fb70cbfc08cec2937b","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Compute: Add start notification for resume"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The resume operation did not have a \u0027start\u0027 and \u0027end\u0027. This has"},{"line_number":10,"context_line":"been updated."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I3354d1d9c01b13bc2fed70ee06875f6d49ff1d16"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9aa7fdbe_23302207","line":9,"updated":"2014-10-29 03:42:51.000000000","message":"commit message should explain why this change was made.","commit_id":"3b76fa623afe2c60e95ff031708f568736894739"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"d1695a023168aff51162605e7020aca909019e94","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Compute: Add start notification for resume"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The resume operation did not have a \u0027start\u0027 and \u0027end\u0027. This has"},{"line_number":10,"context_line":"been updated."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I3354d1d9c01b13bc2fed70ee06875f6d49ff1d16"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"5a890539_deffcda8","line":9,"in_reply_to":"9aa7fdbe_23302207","updated":"2014-11-13 06:59:10.000000000","message":"Done","commit_id":"3b76fa623afe2c60e95ff031708f568736894739"}],"nova/compute/manager.py":[{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"f564150a72d0edb33d89a7fb70cbfc08cec2937b","unresolved":false,"context_lines":[{"line_number":4062,"context_line":"        instance.vm_state \u003d vm_states.SUSPENDED"},{"line_number":4063,"context_line":"        instance.task_state \u003d None"},{"line_number":4064,"context_line":"        instance.save(expected_task_state\u003dtask_states.SUSPENDING)"},{"line_number":4065,"context_line":"        self._notify_about_instance_usage(context, instance, \u0027suspend\u0027)"},{"line_number":4066,"context_line":""},{"line_number":4067,"context_line":"    @wrap_exception()"},{"line_number":4068,"context_line":"    @reverts_task_state"}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa7fdbe_633a2ae9","line":4065,"updated":"2014-10-29 03:42:51.000000000","message":"suspend doesn\u0027t have a start end pair either.","commit_id":"3b76fa623afe2c60e95ff031708f568736894739"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"d1695a023168aff51162605e7020aca909019e94","unresolved":false,"context_lines":[{"line_number":4062,"context_line":"        instance.vm_state \u003d vm_states.SUSPENDED"},{"line_number":4063,"context_line":"        instance.task_state \u003d None"},{"line_number":4064,"context_line":"        instance.save(expected_task_state\u003dtask_states.SUSPENDING)"},{"line_number":4065,"context_line":"        self._notify_about_instance_usage(context, instance, \u0027suspend\u0027)"},{"line_number":4066,"context_line":""},{"line_number":4067,"context_line":"    @wrap_exception()"},{"line_number":4068,"context_line":"    @reverts_task_state"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a890539_1e6315b2","line":4065,"in_reply_to":"9aa7fdbe_633a2ae9","updated":"2014-11-13 06:59:10.000000000","message":"that is addressed in the following patch https://review.openstack.org/121491","commit_id":"3b76fa623afe2c60e95ff031708f568736894739"}],"nova/tests/compute/test_compute.py":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"626feae5ea693b371e622edb53bd6ac83d91c69d","unresolved":false,"context_lines":[{"line_number":2334,"context_line":"                         \u0027compute.instance.resume.start\u0027)"},{"line_number":2335,"context_line":"        msg \u003d fake_notifier.NOTIFICATIONS[4]"},{"line_number":2336,"context_line":"        self.assertEqual(msg.event_type,"},{"line_number":2337,"context_line":"                         \u0027compute.instance.resume.end\u0027)"},{"line_number":2338,"context_line":"        self.compute.terminate_instance(self.context, instance, [], [])"},{"line_number":2339,"context_line":""},{"line_number":2340,"context_line":"    def test_suspend_error(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9aa7fdbe_a457ae01","line":2337,"updated":"2014-10-20 07:33:12.000000000","message":"I agree we can test here but the function name is \ntest_suspend which is used for test suspend\n\nthe resume_instance here is only to make sure we can destroy the instance, how about add those test into some function like \ntest_resume_xxx\n\nI think it\u0027s more clear","commit_id":"44b555ad71205a9087200fed6a87c060afd76b99"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"516ad070bd76ad3609f7f24de162a9ccb787700a","unresolved":false,"context_lines":[{"line_number":2395,"context_line":"        instance.task_state \u003d task_states.RESUMING"},{"line_number":2396,"context_line":"        instance.save()"},{"line_number":2397,"context_line":"        self.compute.resume_instance(self.context, instance)"},{"line_number":2398,"context_line":"        self.assertEqual(len(fake_notifier.NOTIFICATIONS), 5)"},{"line_number":2399,"context_line":"        msg \u003d fake_notifier.NOTIFICATIONS[3]"},{"line_number":2400,"context_line":"        self.assertEqual(msg.event_type,"},{"line_number":2401,"context_line":"                         \u0027compute.instance.resume.start\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aa7fdbe_1ef6fad7","line":2398,"updated":"2014-10-20 14:08:39.000000000","message":"Just a question: \nThe order of the parameters of `assertEqual()` are documented\nas `expected` and `observed`. The usage here is `observed` \nand `expected`. This is just to be consistent with the rest\nof the tests?","commit_id":"2f146db61088fd2706bc3bf3cae96d5adcc65523"}]}
