)]}'
{"nova/compute/manager.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"f06d20422ed993ac8b09c657eee52b177fed0af6","unresolved":false,"context_lines":[{"line_number":5469,"context_line":"            pass"},{"line_number":5470,"context_line":""},{"line_number":5471,"context_line":"    @wrap_exception()"},{"line_number":5472,"context_line":"    @wrap_instance_event(prefix\u003d\u0027compute\u0027)"},{"line_number":5473,"context_line":"    @wrap_instance_fault"},{"line_number":5474,"context_line":"    def attach_interface(self, context, instance, network_id, port_id,"},{"line_number":5475,"context_line":"                         requested_ip, tag\u003dNone):"}],"source_content_type":"text/x-python","patch_set":14,"id":"1f485f77_7b1a2717","line":5472,"range":{"start_line":5472,"start_character":4,"end_line":5472,"end_character":42},"updated":"2017-11-17 08:15:47.000000000","message":"can we add test for this to check this call the __enter__ , may be in https://github.com/openstack/nova/blob/66a2b50a3eec089999be2d127dc5f58a4d6bb1f4/nova/tests/unit/compute/test_compute_mgr.py#L1778","commit_id":"a4de110ead068c9fb65eafb999f39c35b85ebb28"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"f06d20422ed993ac8b09c657eee52b177fed0af6","unresolved":false,"context_lines":[{"line_number":5533,"context_line":"        return network_info[0]"},{"line_number":5534,"context_line":""},{"line_number":5535,"context_line":"    @wrap_exception()"},{"line_number":5536,"context_line":"    @wrap_instance_event(prefix\u003d\u0027compute\u0027)"},{"line_number":5537,"context_line":"    @wrap_instance_fault"},{"line_number":5538,"context_line":"    def detach_interface(self, context, instance, port_id):"},{"line_number":5539,"context_line":"        \"\"\"Detach a network adapter from an instance.\"\"\""}],"source_content_type":"text/x-python","patch_set":14,"id":"1f485f77_1bd9f355","line":5536,"range":{"start_line":5536,"start_character":0,"end_line":5536,"end_character":42},"updated":"2017-11-17 08:15:47.000000000","message":"ditto","commit_id":"a4de110ead068c9fb65eafb999f39c35b85ebb28"}],"nova/tests/unit/compute/test_compute.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"63ccd8994c9bcac509dace3667e73a10cbd1e365","unresolved":false,"context_lines":[{"line_number":9823,"context_line":""},{"line_number":9824,"context_line":"    @mock.patch.object(compute_utils, \u0027notify_about_instance_action\u0027)"},{"line_number":9825,"context_line":"    def test_attach_interface(self, mock_notify):"},{"line_number":9826,"context_line":"        instance \u003d self._create_fake_instance_obj()"},{"line_number":9827,"context_line":"        nwinfo \u003d [fake_network_cache_model.new_vif()]"},{"line_number":9828,"context_line":"        network_id \u003d nwinfo[0][\u0027network\u0027][\u0027id\u0027]"},{"line_number":9829,"context_line":"        port_id \u003d nwinfo[0][\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":18,"id":"ff82abbf_16561e2b","line":9826,"updated":"2017-11-20 17:15:01.000000000","message":"Why does this need to change? Because the wrap_instance_event decorator requires a uuid? We could just add that to the fake instance in this test and then we don\u0027t have to change other things in here.","commit_id":"a5b4c443596d1c83d0543938d262bf31387d5781"}],"nova/tests/unit/compute/test_compute_api.py":[{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"0bca37777ac9ec27caded49c1ba7a3139f9a00c0","unresolved":false,"context_lines":[{"line_number":4078,"context_line":"                                          None)"},{"line_number":4079,"context_line":"        mock_attach.assert_called_with(self.context, instance\u003dinstance,"},{"line_number":4080,"context_line":"                                       network_id\u003dNone, port_id\u003dNone,"},{"line_number":4081,"context_line":"                                       requested_ip\u003dNone)"},{"line_number":4082,"context_line":"        mock_record.assert_called_once_with("},{"line_number":4083,"context_line":"            self.context, instance, instance_actions.ATTACH_INTERFACE)"},{"line_number":4084,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5f4e5783_0b72b4ad","line":4081,"range":{"start_line":4081,"start_character":56,"end_line":4081,"end_character":57},"updated":"2017-10-17 12:45:21.000000000","message":"nova.tests.unit.compute.test_compute_api.ComputeAPIComputeCellUnitTestCase\nnova.tests.unit.compute.test_compute_api.ComputeAPIUnitTestCase\n\n,tag\u003dNone","commit_id":"956c5144fc143edbfcaf3404ad6993c891b5f64c"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"0bca37777ac9ec27caded49c1ba7a3139f9a00c0","unresolved":false,"context_lines":[{"line_number":4084,"context_line":""},{"line_number":4085,"context_line":"    @mock.patch(\u0027nova.compute.api.API._record_action_start\u0027)"},{"line_number":4086,"context_line":"    @mock.patch.object(compute_rpcapi.ComputeAPI, \u0027detach_interface\u0027)"},{"line_number":4087,"context_line":"    def test_detach_interface(self, mock_attach, mock_record):"},{"line_number":4088,"context_line":"        instance \u003d self._create_instance_obj()"},{"line_number":4089,"context_line":"        self.compute_api.detach_interface(self.context, instance, None)"},{"line_number":4090,"context_line":"        mock_attach.assert_called_with(self.context, instance\u003dinstance,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f4e5783_abd96022","line":4087,"range":{"start_line":4087,"start_character":36,"end_line":4087,"end_character":47},"updated":"2017-10-17 12:45:21.000000000","message":"typo","commit_id":"956c5144fc143edbfcaf3404ad6993c891b5f64c"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"0bca37777ac9ec27caded49c1ba7a3139f9a00c0","unresolved":false,"context_lines":[{"line_number":4087,"context_line":"    def test_detach_interface(self, mock_attach, mock_record):"},{"line_number":4088,"context_line":"        instance \u003d self._create_instance_obj()"},{"line_number":4089,"context_line":"        self.compute_api.detach_interface(self.context, instance, None)"},{"line_number":4090,"context_line":"        mock_attach.assert_called_with(self.context, instance\u003dinstance,"},{"line_number":4091,"context_line":"                                       port_id\u003dNone)"},{"line_number":4092,"context_line":"        mock_record.assert_called_once_with("},{"line_number":4093,"context_line":"            self.context, instance, instance_actions.DETACH_INTERFACE)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f4e5783_6b092894","line":4090,"range":{"start_line":4090,"start_character":8,"end_line":4090,"end_character":19},"updated":"2017-10-17 12:45:21.000000000","message":"typo","commit_id":"956c5144fc143edbfcaf3404ad6993c891b5f64c"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"0bca37777ac9ec27caded49c1ba7a3139f9a00c0","unresolved":false,"context_lines":[{"line_number":5256,"context_line":"                self.assertEqual(instance, instances[i])"},{"line_number":5257,"context_line":""},{"line_number":5258,"context_line":""},{"line_number":5259,"context_line":"class ComputeAPIAPICellUnitTestCase(Cellsv1DeprecatedTestMixIn,"},{"line_number":5260,"context_line":"                                    _ComputeAPIUnitTestMixIn,"},{"line_number":5261,"context_line":"                                    test.NoDBTestCase):"},{"line_number":5262,"context_line":"    def setUp(self):"},{"line_number":5263,"context_line":"        super(ComputeAPIAPICellUnitTestCase, self).setUp()"},{"line_number":5264,"context_line":"        self.flags(cell_type\u003d\u0027api\u0027, enable\u003dTrue, group\u003d\u0027cells\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f4e5783_0b2bd382","line":5261,"range":{"start_line":5259,"start_character":0,"end_line":5261,"end_character":55},"updated":"2017-10-17 12:45:21.000000000","message":"nova.tests.unit.compute.test_compute_api.ComputeAPIAPICellUnitTestCase.test_detach_interface\nnova.tests.unit.compute.test_compute_api.ComputeAPIAPICellUnitTestCase.test_attach_interface\n\nThese cases failed(raise AssertionError(\u0027Expected call: %s\\nNot called\u0027 % (expected,)))\n\nIt seems we need write some code in subclass to support test case of cell API ?","commit_id":"956c5144fc143edbfcaf3404ad6993c891b5f64c"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"e9a5b352666bc5dd40d000d7fc77b8444c95eb2b","unresolved":false,"context_lines":[{"line_number":5256,"context_line":"                self.assertEqual(instance, instances[i])"},{"line_number":5257,"context_line":""},{"line_number":5258,"context_line":""},{"line_number":5259,"context_line":"class ComputeAPIAPICellUnitTestCase(Cellsv1DeprecatedTestMixIn,"},{"line_number":5260,"context_line":"                                    _ComputeAPIUnitTestMixIn,"},{"line_number":5261,"context_line":"                                    test.NoDBTestCase):"},{"line_number":5262,"context_line":"    def setUp(self):"},{"line_number":5263,"context_line":"        super(ComputeAPIAPICellUnitTestCase, self).setUp()"},{"line_number":5264,"context_line":"        self.flags(cell_type\u003d\u0027api\u0027, enable\u003dTrue, group\u003d\u0027cells\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4b6375_ea4a1f25","line":5261,"range":{"start_line":5259,"start_character":0,"end_line":5261,"end_character":55},"updated":"2017-11-01 09:32:27.000000000","message":"nova.tests.unit.compute.test_compute_api.ComputeAPIAPICellUnitTestCase.test_detach_interface\nnova.tests.unit.compute.test_compute_api.ComputeAPIAPICellUnitTestCase.test_attach_interface\n\nCell cases failed again. It seems we really should do some stuff on cell API test case, otherwise cell API will execute _ComputeAPIUnitTestMixIn cases directly and will be failed.","commit_id":"6f5504643f61d5ed3b17b76bd5cd10126c6da6ec"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"cb2818b829238fc94ac9f1e8dfc68a2b50ffbd3c","unresolved":false,"context_lines":[{"line_number":5343,"context_line":"            self.context, requested_networks, 5)"},{"line_number":5344,"context_line":"        self.assertEqual(5, count)"},{"line_number":5345,"context_line":""},{"line_number":5346,"context_line":"    def test_attach_interface(self, mock_attach, mock_record):"},{"line_number":5347,"context_line":"        self.skipTest(\"Attach interface is never done in the API cell.\")"},{"line_number":5348,"context_line":""},{"line_number":5349,"context_line":"    def test_detach_interface(self, mock_detach, mock_record):"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f4b6375_1db92714","line":5346,"range":{"start_line":5346,"start_character":34,"end_line":5346,"end_character":60},"updated":"2017-11-02 05:41:25.000000000","message":"Remove it.","commit_id":"1c427b3800bdb7e69034907ca136559496cbdfe1"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"86740c618eff7b0dbb06a3e9bf29b4e338d9f110","unresolved":false,"context_lines":[{"line_number":5343,"context_line":"            self.context, requested_networks, 5)"},{"line_number":5344,"context_line":"        self.assertEqual(5, count)"},{"line_number":5345,"context_line":""},{"line_number":5346,"context_line":"    def test_attach_interface(self, mock_attach, mock_record):"},{"line_number":5347,"context_line":"        self.skipTest(\"Attach interface is never done in the API cell.\")"},{"line_number":5348,"context_line":""},{"line_number":5349,"context_line":"    def test_detach_interface(self, mock_detach, mock_record):"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f4b6375_1d53673b","line":5346,"range":{"start_line":5346,"start_character":34,"end_line":5346,"end_character":60},"in_reply_to":"3f4b6375_1db92714","updated":"2017-11-02 06:21:19.000000000","message":"Done","commit_id":"1c427b3800bdb7e69034907ca136559496cbdfe1"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"cb2818b829238fc94ac9f1e8dfc68a2b50ffbd3c","unresolved":false,"context_lines":[{"line_number":5346,"context_line":"    def test_attach_interface(self, mock_attach, mock_record):"},{"line_number":5347,"context_line":"        self.skipTest(\"Attach interface is never done in the API cell.\")"},{"line_number":5348,"context_line":""},{"line_number":5349,"context_line":"    def test_detach_interface(self, mock_detach, mock_record):"},{"line_number":5350,"context_line":"        self.skipTest(\"Detach interface is never done in the API cell.\")"},{"line_number":5351,"context_line":""},{"line_number":5352,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"3f4b6375_bd3d738f","line":5349,"range":{"start_line":5349,"start_character":34,"end_line":5349,"end_character":60},"updated":"2017-11-02 05:41:25.000000000","message":"ditto","commit_id":"1c427b3800bdb7e69034907ca136559496cbdfe1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4a17e51dba3a9a756489d98cdd753be47be9ec5d","unresolved":false,"context_lines":[{"line_number":4081,"context_line":""},{"line_number":4082,"context_line":"        do_test()"},{"line_number":4083,"context_line":""},{"line_number":4084,"context_line":"    @mock.patch(\u0027nova.compute.api.API._record_action_start\u0027)"},{"line_number":4085,"context_line":"    @mock.patch.object(compute_rpcapi.ComputeAPI, \u0027attach_interface\u0027)"},{"line_number":4086,"context_line":"    def test_attach_interface(self, mock_attach, mock_record):"},{"line_number":4087,"context_line":"        instance \u003d self._create_instance_obj()"},{"line_number":4088,"context_line":"        self.compute_api.attach_interface(self.context, instance, None, None,"},{"line_number":4089,"context_line":"                                          None)"},{"line_number":4090,"context_line":"        mock_attach.assert_called_with(self.context, instance\u003dinstance,"},{"line_number":4091,"context_line":"                                       network_id\u003dNone, port_id\u003dNone,"},{"line_number":4092,"context_line":"                                       requested_ip\u003dNone, tag\u003dNone)"},{"line_number":4093,"context_line":"        mock_record.assert_called_once_with("},{"line_number":4094,"context_line":"            self.context, instance, instance_actions.ATTACH_INTERFACE)"},{"line_number":4095,"context_line":""},{"line_number":4096,"context_line":"    @mock.patch(\u0027nova.compute.api.API._record_action_start\u0027)"},{"line_number":4097,"context_line":"    @mock.patch.object(compute_rpcapi.ComputeAPI, \u0027detach_interface\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"1f485f77_454fbc6a","line":4094,"range":{"start_line":4084,"start_character":4,"end_line":4094,"end_character":70},"updated":"2017-11-15 21:57:56.000000000","message":"This is redundant with test_tagged_interface_attach - so we could just remove this test.","commit_id":"05c2496af0efa80e3924741e1418dc45872b1e36"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"476f16eaa50647cc372e7443ce4736c440826f42","unresolved":false,"context_lines":[{"line_number":4081,"context_line":""},{"line_number":4082,"context_line":"        do_test()"},{"line_number":4083,"context_line":""},{"line_number":4084,"context_line":"    @mock.patch(\u0027nova.compute.api.API._record_action_start\u0027)"},{"line_number":4085,"context_line":"    @mock.patch.object(compute_rpcapi.ComputeAPI, \u0027attach_interface\u0027)"},{"line_number":4086,"context_line":"    def test_attach_interface(self, mock_attach, mock_record):"},{"line_number":4087,"context_line":"        instance \u003d self._create_instance_obj()"},{"line_number":4088,"context_line":"        self.compute_api.attach_interface(self.context, instance, None, None,"},{"line_number":4089,"context_line":"                                          None)"},{"line_number":4090,"context_line":"        mock_attach.assert_called_with(self.context, instance\u003dinstance,"},{"line_number":4091,"context_line":"                                       network_id\u003dNone, port_id\u003dNone,"},{"line_number":4092,"context_line":"                                       requested_ip\u003dNone, tag\u003dNone)"},{"line_number":4093,"context_line":"        mock_record.assert_called_once_with("},{"line_number":4094,"context_line":"            self.context, instance, instance_actions.ATTACH_INTERFACE)"},{"line_number":4095,"context_line":""},{"line_number":4096,"context_line":"    @mock.patch(\u0027nova.compute.api.API._record_action_start\u0027)"},{"line_number":4097,"context_line":"    @mock.patch.object(compute_rpcapi.ComputeAPI, \u0027detach_interface\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"1f485f77_39be25d5","line":4094,"range":{"start_line":4084,"start_character":4,"end_line":4094,"end_character":70},"in_reply_to":"1f485f77_454fbc6a","updated":"2017-11-16 01:28:12.000000000","message":"Done","commit_id":"05c2496af0efa80e3924741e1418dc45872b1e36"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4a17e51dba3a9a756489d98cdd753be47be9ec5d","unresolved":false,"context_lines":[{"line_number":4095,"context_line":""},{"line_number":4096,"context_line":"    @mock.patch(\u0027nova.compute.api.API._record_action_start\u0027)"},{"line_number":4097,"context_line":"    @mock.patch.object(compute_rpcapi.ComputeAPI, \u0027detach_interface\u0027)"},{"line_number":4098,"context_line":"    def test_detach_interface(self, mock_detach, mock_record):"},{"line_number":4099,"context_line":"        instance \u003d self._create_instance_obj()"},{"line_number":4100,"context_line":"        self.compute_api.detach_interface(self.context, instance, None)"},{"line_number":4101,"context_line":"        mock_detach.assert_called_with(self.context, instance\u003dinstance,"}],"source_content_type":"text/x-python","patch_set":9,"id":"1f485f77_8548145c","line":4098,"range":{"start_line":4098,"start_character":8,"end_line":4098,"end_character":29},"updated":"2017-11-15 21:57:56.000000000","message":"Move this into ComputeAPIUnitTestCase and then you don\u0027t have to override in the cellsv1 case.","commit_id":"05c2496af0efa80e3924741e1418dc45872b1e36"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"476f16eaa50647cc372e7443ce4736c440826f42","unresolved":false,"context_lines":[{"line_number":4095,"context_line":""},{"line_number":4096,"context_line":"    @mock.patch(\u0027nova.compute.api.API._record_action_start\u0027)"},{"line_number":4097,"context_line":"    @mock.patch.object(compute_rpcapi.ComputeAPI, \u0027detach_interface\u0027)"},{"line_number":4098,"context_line":"    def test_detach_interface(self, mock_detach, mock_record):"},{"line_number":4099,"context_line":"        instance \u003d self._create_instance_obj()"},{"line_number":4100,"context_line":"        self.compute_api.detach_interface(self.context, instance, None)"},{"line_number":4101,"context_line":"        mock_detach.assert_called_with(self.context, instance\u003dinstance,"}],"source_content_type":"text/x-python","patch_set":9,"id":"1f485f77_59eb21db","line":4098,"range":{"start_line":4098,"start_character":8,"end_line":4098,"end_character":29},"in_reply_to":"1f485f77_8548145c","updated":"2017-11-16 01:28:12.000000000","message":"Done","commit_id":"05c2496af0efa80e3924741e1418dc45872b1e36"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"28613556faaa16ac963d06edf0aef457771a49cd","unresolved":false,"context_lines":[{"line_number":5407,"context_line":"            self.context, requested_networks, 5)"},{"line_number":5408,"context_line":"        self.assertEqual(5, count)"},{"line_number":5409,"context_line":""},{"line_number":5410,"context_line":"    def test_attach_interface(self):"},{"line_number":5411,"context_line":"        self.skipTest(\"Attach interface is never done in the API cell.\")"},{"line_number":5412,"context_line":""},{"line_number":5413,"context_line":"    def test_detach_interface(self):"},{"line_number":5414,"context_line":"        self.skipTest(\"Detach interface is never done in the API cell.\")"},{"line_number":5415,"context_line":""},{"line_number":5416,"context_line":""},{"line_number":5417,"context_line":"class ComputeAPIComputeCellUnitTestCase(Cellsv1DeprecatedTestMixIn,"}],"source_content_type":"text/x-python","patch_set":18,"id":"ff82abbf_b95f25e4","line":5414,"range":{"start_line":5410,"start_character":4,"end_line":5414,"end_character":72},"updated":"2017-11-20 17:25:31.000000000","message":"These are no loner needed.","commit_id":"a5b4c443596d1c83d0543938d262bf31387d5781"}],"nova/tests/unit/compute/test_compute_mgr.py":[{"author":{"_account_id":19853,"name":"Nguyen Hung Phuong","email":"phuongnh@vn.fujitsu.com","username":"phuongnh"},"change_message_id":"0911c877ceeef5229fde34adefb75a1d49252eab","unresolved":false,"context_lines":[{"line_number":1813,"context_line":"        # Build test data that will cause a PortNotFound exception"},{"line_number":1814,"context_line":"        f_instance \u003d objects.Instance._from_db_object(self.context,"},{"line_number":1815,"context_line":"                                                      objects.Instance(),"},{"line_number":1816,"context_line":"                                                      db_instance)"},{"line_number":1817,"context_line":"        f_instance.info_cache \u003d mock.MagicMock()"},{"line_number":1818,"context_line":"        f_instance.info_cache.network_info \u003d []"},{"line_number":1819,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"ff82abbf_8893fb4f","line":1816,"range":{"start_line":1816,"start_character":54,"end_line":1816,"end_character":65},"updated":"2017-11-20 04:49:15.000000000","message":"? db_instance \u003d fake_instance.fake_db_instance","commit_id":"826db7dd8077177fac75b3346873b8a64a84b74f"}],"releasenotes/notes/fill-instance-action-record-gaps-14b36eba313d6d87.yaml":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"63ccd8994c9bcac509dace3667e73a10cbd1e365","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"    The following instance action records has been added:"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"     * Attaching/detaching interfaces."}],"source_content_type":"text/x-yaml","patch_set":18,"id":"ff82abbf_9974a19b","line":4,"updated":"2017-11-20 17:15:01.000000000","message":"Remove this unnecessary blank line.","commit_id":"a5b4c443596d1c83d0543938d262bf31387d5781"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"63ccd8994c9bcac509dace3667e73a10cbd1e365","unresolved":false,"context_lines":[{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"    The following instance action records has been added:"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"     * Attaching/detaching interfaces."}],"source_content_type":"text/x-yaml","patch_set":18,"id":"ff82abbf_3969d5bd","line":5,"range":{"start_line":5,"start_character":42,"end_line":5,"end_character":45},"updated":"2017-11-20 17:15:01.000000000","message":"have","commit_id":"a5b4c443596d1c83d0543938d262bf31387d5781"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"28613556faaa16ac963d06edf0aef457771a49cd","unresolved":false,"context_lines":[{"line_number":4,"context_line":""},{"line_number":5,"context_line":"    The following instance action records has been added:"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"     * Attaching/detaching interfaces."}],"source_content_type":"text/x-yaml","patch_set":18,"id":"ff82abbf_591e190d","line":7,"range":{"start_line":7,"start_character":7,"end_line":7,"end_character":38},"updated":"2017-11-20 17:25:31.000000000","message":"Maybe we should list these as they\u0027d show up in the API, so:\n\n* attach_interface\n* detach_interface","commit_id":"a5b4c443596d1c83d0543938d262bf31387d5781"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"28613556faaa16ac963d06edf0aef457771a49cd","unresolved":false,"context_lines":[{"line_number":4,"context_line":""},{"line_number":5,"context_line":"    The following instance action records has been added:"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"     * Attaching/detaching interfaces."}],"source_content_type":"text/x-yaml","patch_set":18,"id":"ff82abbf_19ff31ab","line":7,"range":{"start_line":7,"start_character":4,"end_line":7,"end_character":5},"updated":"2017-11-20 17:25:31.000000000","message":"One too many spaces.","commit_id":"a5b4c443596d1c83d0543938d262bf31387d5781"}]}
