)]}'
{"ironic/conductor/manager.py":[{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"e7607c8dcc5a21a749c86559a4398cb9f82d6a1f","unresolved":false,"context_lines":[{"line_number":1651,"context_line":"        with task_manager.acquire(context, port.node_id,"},{"line_number":1652,"context_line":"                                  purpose\u003d\u0027port deletion\u0027) as task:"},{"line_number":1653,"context_line":"            node \u003d task.node"},{"line_number":1654,"context_line":"            if ((node.provision_state \u003d\u003d states.ACTIVE or node.instance_uuid)"},{"line_number":1655,"context_line":"                and not node.maintenance):"},{"line_number":1656,"context_line":"                    action \u003d _(\"Cannot delete the port %(port)s as node \""},{"line_number":1657,"context_line":"                               \"%(node)s is active or has \""}],"source_content_type":"text/x-python","patch_set":2,"id":"df140735_d0069d52","line":1654,"range":{"start_line":1654,"start_character":58,"end_line":1654,"end_character":76},"updated":"2017-06-05 08:51:52.000000000","message":"Add a testcase for this path.","commit_id":"8cdeec68820b41f04562dc6af474458e4416114d"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"d05da50b471e4589cfc2a3a2b674ad87a957f5f9","unresolved":false,"context_lines":[{"line_number":1651,"context_line":"        with task_manager.acquire(context, port.node_id,"},{"line_number":1652,"context_line":"                                  purpose\u003d\u0027port deletion\u0027) as task:"},{"line_number":1653,"context_line":"            node \u003d task.node"},{"line_number":1654,"context_line":"            if ((node.provision_state \u003d\u003d states.ACTIVE or node.instance_uuid)"},{"line_number":1655,"context_line":"                and not node.maintenance):"},{"line_number":1656,"context_line":"                    action \u003d _(\"Cannot delete the port %(port)s as node \""},{"line_number":1657,"context_line":"                               \"%(node)s is active or has \""}],"source_content_type":"text/x-python","patch_set":3,"id":"df140735_425d0445","line":1654,"range":{"start_line":1654,"start_character":54,"end_line":1654,"end_character":76},"updated":"2017-06-06 03:52:24.000000000","message":"The node can\u0027t be active if there is no instance inside right? I think we can remove this.","commit_id":"63f8d0d9267b9368ed8f9cb3caaf21dc74ad29f9"},{"author":{"_account_id":20401,"name":"M V P Nitesh","email":"parimalanitesh@gmail.com","username":"mvpnitesh"},"change_message_id":"20b0d07c9a882de361f15de9d4389cf0939363cb","unresolved":false,"context_lines":[{"line_number":1651,"context_line":"        with task_manager.acquire(context, port.node_id,"},{"line_number":1652,"context_line":"                                  purpose\u003d\u0027port deletion\u0027) as task:"},{"line_number":1653,"context_line":"            node \u003d task.node"},{"line_number":1654,"context_line":"            if ((node.provision_state \u003d\u003d states.ACTIVE or node.instance_uuid)"},{"line_number":1655,"context_line":"                and not node.maintenance):"},{"line_number":1656,"context_line":"                    action \u003d _(\"Cannot delete the port %(port)s as node \""},{"line_number":1657,"context_line":"                               \"%(node)s is active or has \""}],"source_content_type":"text/x-python","patch_set":3,"id":"df140735_5ba04a42","line":1654,"range":{"start_line":1654,"start_character":54,"end_line":1654,"end_character":76},"in_reply_to":"df140735_425d0445","updated":"2017-06-06 09:23:51.000000000","message":"for port_update it is like that so i\u0027m leaving it like that","commit_id":"63f8d0d9267b9368ed8f9cb3caaf21dc74ad29f9"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"d05da50b471e4589cfc2a3a2b674ad87a957f5f9","unresolved":false,"context_lines":[{"line_number":1653,"context_line":"            node \u003d task.node"},{"line_number":1654,"context_line":"            if ((node.provision_state \u003d\u003d states.ACTIVE or node.instance_uuid)"},{"line_number":1655,"context_line":"                and not node.maintenance):"},{"line_number":1656,"context_line":"                    action \u003d _(\"Cannot delete the port %(port)s as node \""},{"line_number":1657,"context_line":"                               \"%(node)s is active or has \""},{"line_number":1658,"context_line":"                               \"instance UUID assigned\")"},{"line_number":1659,"context_line":"                    raise exception.InvalidState(action % {\u0027node\u0027: node.uuid,"}],"source_content_type":"text/x-python","patch_set":3,"id":"df140735_826e7cfd","line":1656,"range":{"start_line":1656,"start_character":20,"end_line":1656,"end_character":26},"updated":"2017-06-06 03:52:24.000000000","message":"It would be better if we use \u0027msg\u0027 or \u0027result\u0027.","commit_id":"63f8d0d9267b9368ed8f9cb3caaf21dc74ad29f9"},{"author":{"_account_id":20401,"name":"M V P Nitesh","email":"parimalanitesh@gmail.com","username":"mvpnitesh"},"change_message_id":"20b0d07c9a882de361f15de9d4389cf0939363cb","unresolved":false,"context_lines":[{"line_number":1653,"context_line":"            node \u003d task.node"},{"line_number":1654,"context_line":"            if ((node.provision_state \u003d\u003d states.ACTIVE or node.instance_uuid)"},{"line_number":1655,"context_line":"                and not node.maintenance):"},{"line_number":1656,"context_line":"                    action \u003d _(\"Cannot delete the port %(port)s as node \""},{"line_number":1657,"context_line":"                               \"%(node)s is active or has \""},{"line_number":1658,"context_line":"                               \"instance UUID assigned\")"},{"line_number":1659,"context_line":"                    raise exception.InvalidState(action % {\u0027node\u0027: node.uuid,"}],"source_content_type":"text/x-python","patch_set":3,"id":"df140735_3bdd96df","line":1656,"range":{"start_line":1656,"start_character":20,"end_line":1656,"end_character":26},"in_reply_to":"df140735_826e7cfd","updated":"2017-06-06 09:23:51.000000000","message":"Done","commit_id":"63f8d0d9267b9368ed8f9cb3caaf21dc74ad29f9"}],"ironic/tests/unit/conductor/test_manager.py":[{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"e7607c8dcc5a21a749c86559a4398cb9f82d6a1f","unresolved":false,"context_lines":[{"line_number":5465,"context_line":"        node.provision_state \u003d states.ACTIVE"},{"line_number":5466,"context_line":"        port \u003d obj_utils.create_test_port(self.context,"},{"line_number":5467,"context_line":"                                          node_id\u003dnode.id)"},{"line_number":5468,"context_line":"        self.service.destroy_port(self.context, port)"},{"line_number":5469,"context_line":""},{"line_number":5470,"context_line":"    def test_destory_port_node_in_maintenance(self):"},{"line_number":5471,"context_line":"        node \u003d obj_utils.create_test_node(self.context, driver\u003d\u0027fake\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"df140735_50c16de4","line":5468,"range":{"start_line":5468,"start_character":8,"end_line":5468,"end_character":53},"updated":"2017-06-05 08:51:52.000000000","message":"Need to validate that exception.InvalidState is raised.","commit_id":"8cdeec68820b41f04562dc6af474458e4416114d"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"e7607c8dcc5a21a749c86559a4398cb9f82d6a1f","unresolved":false,"context_lines":[{"line_number":5469,"context_line":""},{"line_number":5470,"context_line":"    def test_destory_port_node_in_maintenance(self):"},{"line_number":5471,"context_line":"        node \u003d obj_utils.create_test_node(self.context, driver\u003d\u0027fake\u0027)"},{"line_number":5472,"context_line":"        node.maintenance \u003d False"},{"line_number":5473,"context_line":"        port \u003d obj_utils.create_test_port(self.context,"},{"line_number":5474,"context_line":"                                          node_id\u003dnode.id)"},{"line_number":5475,"context_line":"        self.service.destroy_port(self.context, port)"}],"source_content_type":"text/x-python","patch_set":2,"id":"df140735_3052793c","line":5472,"range":{"start_line":5472,"start_character":8,"end_line":5472,"end_character":32},"updated":"2017-06-05 08:51:52.000000000","message":"nit: May be you can set the provision_state to \u0027active\u0027 as well.","commit_id":"8cdeec68820b41f04562dc6af474458e4416114d"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"d05da50b471e4589cfc2a3a2b674ad87a957f5f9","unresolved":false,"context_lines":[{"line_number":5473,"context_line":""},{"line_number":5474,"context_line":"    def test_destory_port_node_in_maintenance(self):"},{"line_number":5475,"context_line":"        node \u003d obj_utils.create_test_node(self.context, driver\u003d\u0027fake\u0027,"},{"line_number":5476,"context_line":"                                          maintenance\u003dFalse)"},{"line_number":5477,"context_line":"        port \u003d obj_utils.create_test_port(self.context,"},{"line_number":5478,"context_line":"                                          node_id\u003dnode.id)"},{"line_number":5479,"context_line":"        exc \u003d self.assertRaises(messaging.rpc.ExpectedException,"}],"source_content_type":"text/x-python","patch_set":3,"id":"df140735_b6866565","line":5476,"range":{"start_line":5476,"start_character":42,"end_line":5476,"end_character":59},"updated":"2017-06-06 03:52:24.000000000","message":"This test case has no difference with the upper one, since maintenance defaults to False. \nAs the function name indicates, are you going to check delete port in maintenance mode? If that so, you need to change it to True, and there would be no exception raised as an expectation.","commit_id":"63f8d0d9267b9368ed8f9cb3caaf21dc74ad29f9"},{"author":{"_account_id":20401,"name":"M V P Nitesh","email":"parimalanitesh@gmail.com","username":"mvpnitesh"},"change_message_id":"20b0d07c9a882de361f15de9d4389cf0939363cb","unresolved":false,"context_lines":[{"line_number":5473,"context_line":""},{"line_number":5474,"context_line":"    def test_destory_port_node_in_maintenance(self):"},{"line_number":5475,"context_line":"        node \u003d obj_utils.create_test_node(self.context, driver\u003d\u0027fake\u0027,"},{"line_number":5476,"context_line":"                                          maintenance\u003dFalse)"},{"line_number":5477,"context_line":"        port \u003d obj_utils.create_test_port(self.context,"},{"line_number":5478,"context_line":"                                          node_id\u003dnode.id)"},{"line_number":5479,"context_line":"        exc \u003d self.assertRaises(messaging.rpc.ExpectedException,"}],"source_content_type":"text/x-python","patch_set":3,"id":"df140735_bbc9a626","line":5476,"range":{"start_line":5476,"start_character":42,"end_line":5476,"end_character":59},"in_reply_to":"df140735_b6866565","updated":"2017-06-06 09:23:51.000000000","message":"Done","commit_id":"63f8d0d9267b9368ed8f9cb3caaf21dc74ad29f9"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c4bb3686ee8b5567b472bef8d741a634bbb68465","unresolved":false,"context_lines":[{"line_number":5460,"context_line":"        # Compare true exception hidden by @messaging.expected_exceptions"},{"line_number":5461,"context_line":"        self.assertEqual(exception.NodeLocked, exc.exc_info[0])"},{"line_number":5462,"context_line":""},{"line_number":5463,"context_line":"    def test_destory_port_node_active_state(self):"},{"line_number":5464,"context_line":"        node \u003d obj_utils.create_test_node(self.context, driver\u003d\u0027fake\u0027,"},{"line_number":5465,"context_line":"                                          instance_uuid\u003dNone,"},{"line_number":5466,"context_line":"                                          provision_state\u003d\u0027active\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa0c359_ac8eddcd","line":5463,"updated":"2018-02-16 13:00:05.000000000","message":"typo: destroy","commit_id":"0246dcba2ab02914894238ebdf240f6ec6b082a7"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"a77c27d824810ecead1ed36d4f9d30cb3e3d7b9c","unresolved":false,"context_lines":[{"line_number":5460,"context_line":"        # Compare true exception hidden by @messaging.expected_exceptions"},{"line_number":5461,"context_line":"        self.assertEqual(exception.NodeLocked, exc.exc_info[0])"},{"line_number":5462,"context_line":""},{"line_number":5463,"context_line":"    def test_destory_port_node_active_state(self):"},{"line_number":5464,"context_line":"        node \u003d obj_utils.create_test_node(self.context, driver\u003d\u0027fake\u0027,"},{"line_number":5465,"context_line":"                                          instance_uuid\u003dNone,"},{"line_number":5466,"context_line":"                                          provision_state\u003d\u0027active\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_a34d2272","line":5463,"in_reply_to":"3fa0c359_ac8eddcd","updated":"2018-07-30 09:10:17.000000000","message":"Done","commit_id":"0246dcba2ab02914894238ebdf240f6ec6b082a7"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"85f7df230a52b400a321bced0e4d9c90b8274341","unresolved":false,"context_lines":[{"line_number":7183,"context_line":"    def test_destroy_port_node_active_state(self):"},{"line_number":7184,"context_line":"        node \u003d obj_utils.create_test_node(self.context, driver\u003d\u0027fake-hardware\u0027,"},{"line_number":7185,"context_line":"                                          instance_uuid\u003dNone,"},{"line_number":7186,"context_line":"                                          provision_state\u003d\u0027active\u0027)"},{"line_number":7187,"context_line":"        port \u003d obj_utils.create_test_port(self.context,"},{"line_number":7188,"context_line":"                                          node_id\u003dnode.id,"},{"line_number":7189,"context_line":"                                          extra\u003d{\u0027vif_port_id\u0027: \u0027fake-id\u0027})"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_cbedc0f0","line":7186,"updated":"2018-08-14 01:31:23.000000000","message":"if a node is active, the instance_uuid is usually set so this is an atypical situation. Hopefully it doesn\u0027t confuse anyone.","commit_id":"dbdd0a581c8b9fc05690f6ed2c876fb7b56f95d5"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"9689f3451b717121ed18f5ab917dd937912b10b1","unresolved":false,"context_lines":[{"line_number":7183,"context_line":"    def test_destroy_port_node_active_state(self):"},{"line_number":7184,"context_line":"        node \u003d obj_utils.create_test_node(self.context, driver\u003d\u0027fake-hardware\u0027,"},{"line_number":7185,"context_line":"                                          instance_uuid\u003dNone,"},{"line_number":7186,"context_line":"                                          provision_state\u003d\u0027active\u0027)"},{"line_number":7187,"context_line":"        port \u003d obj_utils.create_test_port(self.context,"},{"line_number":7188,"context_line":"                                          node_id\u003dnode.id,"},{"line_number":7189,"context_line":"                                          extra\u003d{\u0027vif_port_id\u0027: \u0027fake-id\u0027})"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_cb7dc0b2","line":7186,"in_reply_to":"3f79a3b5_cbedc0f0","updated":"2018-08-14 02:26:03.000000000","message":"Ah, right, missing one test here, active without instance uuid is the use case of standalone or adopt.","commit_id":"dbdd0a581c8b9fc05690f6ed2c876fb7b56f95d5"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"85f7df230a52b400a321bced0e4d9c90b8274341","unresolved":false,"context_lines":[{"line_number":7203,"context_line":"        self.service.destroy_port(self.context, port)"},{"line_number":7204,"context_line":"        self.assertRaises(exception.PortNotFound,"},{"line_number":7205,"context_line":"                          self.dbapi.get_port_by_uuid,"},{"line_number":7206,"context_line":"                          port.uuid)"},{"line_number":7207,"context_line":""},{"line_number":7208,"context_line":""},{"line_number":7209,"context_line":"@mgr_utils.mock_record_keepalive"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_8bbd88d9","line":7206,"updated":"2018-08-14 01:31:23.000000000","message":"there\u0027s no test for instance_uuid\u003d\u003csome uuid\u003e, provision_state\u003dnot-active-state, but I guess it is OK.","commit_id":"dbdd0a581c8b9fc05690f6ed2c876fb7b56f95d5"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"9689f3451b717121ed18f5ab917dd937912b10b1","unresolved":false,"context_lines":[{"line_number":7203,"context_line":"        self.service.destroy_port(self.context, port)"},{"line_number":7204,"context_line":"        self.assertRaises(exception.PortNotFound,"},{"line_number":7205,"context_line":"                          self.dbapi.get_port_by_uuid,"},{"line_number":7206,"context_line":"                          port.uuid)"},{"line_number":7207,"context_line":""},{"line_number":7208,"context_line":""},{"line_number":7209,"context_line":"@mgr_utils.mock_record_keepalive"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_ab3724ff","line":7206,"in_reply_to":"3f79a3b5_8bbd88d9","updated":"2018-08-14 02:26:03.000000000","message":"This is interesting, it seems there are cases we are not covered yet, though it\u0027s beyond this patch, considering this, when a node is in deploying state, we can remove ports, that doesn\u0027t sound logical, it may need further discussion.","commit_id":"dbdd0a581c8b9fc05690f6ed2c876fb7b56f95d5"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"58d7e30110102968d9177e57a8521546fb1509da","unresolved":false,"context_lines":[{"line_number":7203,"context_line":"        self.service.destroy_port(self.context, port)"},{"line_number":7204,"context_line":"        self.assertRaises(exception.PortNotFound,"},{"line_number":7205,"context_line":"                          self.dbapi.get_port_by_uuid,"},{"line_number":7206,"context_line":"                          port.uuid)"},{"line_number":7207,"context_line":""},{"line_number":7208,"context_line":""},{"line_number":7209,"context_line":"@mgr_utils.mock_record_keepalive"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_4caa2719","line":7206,"in_reply_to":"3f79a3b5_ab3724ff","updated":"2018-08-14 06:02:28.000000000","message":"Nope, not gonna happen, port will not get removed when instance_uuid is there.","commit_id":"dbdd0a581c8b9fc05690f6ed2c876fb7b56f95d5"}],"releasenotes/notes/port_delete-6628b736a1b556f6.yaml":[{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"e7607c8dcc5a21a749c86559a4398cb9f82d6a1f","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Now user cannot delete the port which is associated to a node whose"},{"line_number":5,"context_line":"    provision state is active. User can delete the port of such node\u0027s"},{"line_number":6,"context_line":"    only when the node\u0027s are in maintenance mode."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"df140735_9075c5fc","line":5,"range":{"start_line":5,"start_character":56,"end_line":5,"end_character":70},"updated":"2017-06-05 08:51:52.000000000","message":"nit: s/ \u0027of such node\u0027s \u0027/ \u0027of such a node \u0027","commit_id":"8cdeec68820b41f04562dc6af474458e4416114d"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"e7607c8dcc5a21a749c86559a4398cb9f82d6a1f","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Now user cannot delete the port which is associated to a node whose"},{"line_number":5,"context_line":"    provision state is active. User can delete the port of such node\u0027s"},{"line_number":6,"context_line":"    only when the node\u0027s are in maintenance mode."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"df140735_b053296b","line":6,"range":{"start_line":6,"start_character":18,"end_line":6,"end_character":28},"updated":"2017-06-05 08:51:52.000000000","message":"nit: s/ \u0027node\u0027s are in\u0027 / \u0027 node is in\u0027","commit_id":"8cdeec68820b41f04562dc6af474458e4416114d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c4bb3686ee8b5567b472bef8d741a634bbb68465","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Now user cannot delete the port which is associated to a node whose"},{"line_number":5,"context_line":"    provision state is active. User can delete the port of such node\u0027s"},{"line_number":6,"context_line":"    only when the node\u0027s are in maintenance mode."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"3fa0c359_8c91a1f4","line":4,"updated":"2018-02-16 13:00:05.000000000","message":"\"Prevents deletion of ports for active nodes. It is still possible to delete them after putting the node in the maintenance mode.\"","commit_id":"0246dcba2ab02914894238ebdf240f6ec6b082a7"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"a77c27d824810ecead1ed36d4f9d30cb3e3d7b9c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Now user cannot delete the port which is associated to a node whose"},{"line_number":5,"context_line":"    provision state is active. User can delete the port of such node\u0027s"},{"line_number":6,"context_line":"    only when the node\u0027s are in maintenance mode."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"5f7c97a3_636ceace","line":4,"in_reply_to":"3fa0c359_8c91a1f4","updated":"2018-07-30 09:10:17.000000000","message":"Done","commit_id":"0246dcba2ab02914894238ebdf240f6ec6b082a7"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"047a9ce6f26b9eea65bad452ce9299317b517277","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Now user cannot delete the port which is associated to a node whose"},{"line_number":5,"context_line":"    provision state is active. User can delete the port of such node\u0027s"},{"line_number":6,"context_line":"    only when the node\u0027s are in maintenance mode."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"7f231b9d_f1552afb","line":5,"range":{"start_line":5,"start_character":59,"end_line":5,"end_character":70},"updated":"2017-06-16 08:05:14.000000000","message":"s/such node\u0027s/an active node/\nI think that would be more clear.","commit_id":"0246dcba2ab02914894238ebdf240f6ec6b082a7"}]}
