)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"74e27d2a0e9878bf82285617e76191b5c97e9bf0","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The instance action event is recorded in API/Conductor/Compute using"},{"line_number":10,"context_line":"EventReporter. We already had self.host in API/Conductor/Compute"},{"line_number":11,"context_line":"(where the EventReporter would be used) after previous patch."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"In this patch, the self.host param would be passed in EventReporter,"},{"line_number":14,"context_line":"and then the host would be recorded in instance action event."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"bf659307_f6b8a075","line":11,"range":{"start_line":11,"start_character":40,"end_line":11,"end_character":60},"updated":"2018-04-12 20:37:14.000000000","message":"nit: just say, \"in change Idf57fb5fbc611abb83943bd7e36d3cebf03b3977\" since \"after previous patch\" won\u0027t make sense in a year from now.","commit_id":"ba8d061911aeddc86b732f4ebc44c3defc56006e"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"63ab567c1c3c1d62ef8c72b06d82c08ef43053a0","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The instance action event is recorded in API/Conductor/Compute using"},{"line_number":10,"context_line":"EventReporter. We already had self.host in API/Conductor/Compute"},{"line_number":11,"context_line":"(where the EventReporter would be used) after previous patch."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"In this patch, the self.host param would be passed in EventReporter,"},{"line_number":14,"context_line":"and then the host would be recorded in instance action event."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"bf659307_abb39309","line":11,"range":{"start_line":11,"start_character":40,"end_line":11,"end_character":60},"in_reply_to":"bf659307_f6b8a075","updated":"2018-04-13 11:47:53.000000000","message":"Done","commit_id":"ba8d061911aeddc86b732f4ebc44c3defc56006e"}],"nova/compute/utils.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"d334da452c3fd05a3b1ad9382869e56069ee3e17","unresolved":false,"context_lines":[{"line_number":983,"context_line":"            instance_uuid \u003d keyed_args[\u0027instance\u0027][\u0027uuid\u0027]"},{"line_number":984,"context_line":""},{"line_number":985,"context_line":"            event_name \u003d \u0027{0}_{1}\u0027.format(prefix, function.__name__)"},{"line_number":986,"context_line":"            host \u003d self.host if hasattr(self, \u0027host\u0027) else None"},{"line_number":987,"context_line":"            with EventReporter(context, event_name, host, instance_uuid):"},{"line_number":988,"context_line":"                return function(self, context, *args, **kwargs)"},{"line_number":989,"context_line":"        return decorated_function"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_0b050a10","line":986,"range":{"start_line":986,"start_character":29,"end_line":986,"end_character":53},"updated":"2018-04-12 02:54:45.000000000","message":"i do not think we have any case where there is no self.host now. but as util functional this check make sense.","commit_id":"ba8d061911aeddc86b732f4ebc44c3defc56006e"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"c9c3b0b44021b1919d813b1aefb9acd4d3d07f57","unresolved":false,"context_lines":[{"line_number":983,"context_line":"            instance_uuid \u003d keyed_args[\u0027instance\u0027][\u0027uuid\u0027]"},{"line_number":984,"context_line":""},{"line_number":985,"context_line":"            event_name \u003d \u0027{0}_{1}\u0027.format(prefix, function.__name__)"},{"line_number":986,"context_line":"            host \u003d self.host if hasattr(self, \u0027host\u0027) else None"},{"line_number":987,"context_line":"            with EventReporter(context, event_name, host, instance_uuid):"},{"line_number":988,"context_line":"                return function(self, context, *args, **kwargs)"},{"line_number":989,"context_line":"        return decorated_function"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_641f136c","line":986,"range":{"start_line":986,"start_character":29,"end_line":986,"end_character":53},"in_reply_to":"bf659307_0b050a10","updated":"2018-04-12 06:20:01.000000000","message":"Yes, now API/Conductor/Compute have the self.host, it\u0027s just for some classes if have no self.host, more in function test case:\nhttps://review.openstack.org/#/c/556746/3/nova/tests/unit/compute/test_compute_utils.py@995","commit_id":"ba8d061911aeddc86b732f4ebc44c3defc56006e"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"07244b121687d30fa5ccda0dd15c9a8b1d5fed4d","unresolved":false,"context_lines":[{"line_number":1021,"context_line":"        return False"},{"line_number":1022,"context_line":""},{"line_number":1023,"context_line":""},{"line_number":1024,"context_line":"def wrap_instance_event(prefix):"},{"line_number":1025,"context_line":"    \"\"\"Wraps a method to log the event taken on the instance, and result."},{"line_number":1026,"context_line":""},{"line_number":1027,"context_line":"    This decorator wraps a method to log the start and result of an event, as"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f6a8fd7_b2c9d659","line":1024,"updated":"2018-04-24 00:22:24.000000000","message":"Interesting that wrap_instance_event from nova.compute.utils is used in nova/compute/apy.py too. Would not have expected that because nova/compute/utils.py are usually for compute, I thought.","commit_id":"cbf02e050e4071565d549856ef878f3f36c0455c"}],"nova/conductor/manager.py":[{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"dd38cb23e394e08619830e44a5347790b039c057","unresolved":false,"context_lines":[{"line_number":737,"context_line":"            # instance during the shelve process"},{"line_number":738,"context_line":"            if image_id:"},{"line_number":739,"context_line":"                with compute_utils.EventReporter("},{"line_number":740,"context_line":"                        context, \u0027get_image_info\u0027, self.host, instance.uuid):"},{"line_number":741,"context_line":"                    try:"},{"line_number":742,"context_line":"                        image \u003d safe_image_show(context, image_id)"},{"line_number":743,"context_line":"                    except exception.ImageNotFound:"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_bc6e77fd","line":740,"range":{"start_line":740,"start_character":20,"end_line":740,"end_character":24},"updated":"2018-04-03 07:00:48.000000000","message":"unrelated??","commit_id":"ba8d061911aeddc86b732f4ebc44c3defc56006e"}],"nova/tests/unit/compute/test_compute_mgr.py":[{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"d2083e0c51977a19bcc45ff349609020b83abbed","unresolved":false,"context_lines":[{"line_number":4583,"context_line":""},{"line_number":4584,"context_line":"    def _instance_action_events(self, mock_start, mock_finish):"},{"line_number":4585,"context_line":"        mock_start.assert_called_once_with(self.context, self.instance.uuid,"},{"line_number":4586,"context_line":"                mock.ANY, CONF.host, want_result\u003dFalse)"},{"line_number":4587,"context_line":"        mock_finish.assert_called_once_with(self.context, self.instance.uuid,"},{"line_number":4588,"context_line":"                mock.ANY, exc_val\u003dmock.ANY, exc_tb\u003dmock.ANY, want_result\u003dFalse)"},{"line_number":4589,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"bf659307_56cc6169","line":4586,"range":{"start_line":4586,"start_character":26,"end_line":4586,"end_character":36},"updated":"2018-03-27 11:03:39.000000000","message":"host\u003dCONF.host","commit_id":"93f5792a3e582cc8e54d465cb600ae08206e55da"}],"nova/tests/unit/compute/test_compute_utils.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"74e27d2a0e9878bf82285617e76191b5c97e9bf0","unresolved":false,"context_lines":[{"line_number":993,"context_line":""},{"line_number":994,"context_line":"    @mock.patch.object(compute_utils, \u0027EventReporter\u0027)"},{"line_number":995,"context_line":"    def test_wrap_instance_event_without_host(self, mock_event):"},{"line_number":996,"context_line":"        inst \u003d {\"uuid\": uuids.instance}"},{"line_number":997,"context_line":""},{"line_number":998,"context_line":"        @compute_utils.wrap_instance_event(prefix\u003d\u0027compute\u0027)"},{"line_number":999,"context_line":"        def fake_event(self, context, instance):"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_b67308e7","line":996,"range":{"start_line":996,"start_character":15,"end_line":996,"end_character":39},"updated":"2018-04-12 20:37:14.000000000","message":"Use objects.Instance(uuid\u003duuids.instance)\n\nEventually we want to get rid of the dict compat mixin for the Instance object, so adding tests that use dicts doesn\u0027t help.","commit_id":"ba8d061911aeddc86b732f4ebc44c3defc56006e"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"63ab567c1c3c1d62ef8c72b06d82c08ef43053a0","unresolved":false,"context_lines":[{"line_number":993,"context_line":""},{"line_number":994,"context_line":"    @mock.patch.object(compute_utils, \u0027EventReporter\u0027)"},{"line_number":995,"context_line":"    def test_wrap_instance_event_without_host(self, mock_event):"},{"line_number":996,"context_line":"        inst \u003d {\"uuid\": uuids.instance}"},{"line_number":997,"context_line":""},{"line_number":998,"context_line":"        @compute_utils.wrap_instance_event(prefix\u003d\u0027compute\u0027)"},{"line_number":999,"context_line":"        def fake_event(self, context, instance):"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_6bd1fb22","line":996,"range":{"start_line":996,"start_character":15,"end_line":996,"end_character":39},"in_reply_to":"bf659307_b67308e7","updated":"2018-04-13 11:47:53.000000000","message":"Done","commit_id":"ba8d061911aeddc86b732f4ebc44c3defc56006e"}]}
