)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"7e14fff946965c9a21c2d49975cfbabaa482fdaa","unresolved":false,"context_lines":[{"line_number":14,"context_line":"vnic_type \u003d attrs and attrs.get(portbindings.VNIC_TYPE)"},{"line_number":15,"context_line":"vnic_type \u003d {}"},{"line_number":16,"context_line":"because attrs as False, will not execute attrs.get(portbindings.VNIC_TYPE)"},{"line_number":17,"context_line":"vnic_type will be replicated as attrs."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: I40d388543387ebdd72f26d761339c1829bef9413"},{"line_number":20,"context_line":"Partial-bug: #1838396"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7faddb67_9fe3afd8","line":17,"range":{"start_line":17,"start_character":1,"end_line":17,"end_character":37},"updated":"2019-07-30 12:33:22.000000000","message":"When bool(attrs) is False, then vnic_type will be assigned to this value. This is what this line is looking for.\n\nWith your change, is the positive case, you are assigning attrs to vnic_type.","commit_id":"ca67d42766c36cea2ab789e7cf6f8a8147863775"},{"author":{"_account_id":30380,"name":"ZhouHeng","email":"zhouhenglc@inspur.com","username":"zhouhenglc"},"change_message_id":"70bdb8d804f3089a3741017718a1395c877392d0","unresolved":false,"context_lines":[{"line_number":14,"context_line":"vnic_type \u003d attrs and attrs.get(portbindings.VNIC_TYPE)"},{"line_number":15,"context_line":"vnic_type \u003d {}"},{"line_number":16,"context_line":"because attrs as False, will not execute attrs.get(portbindings.VNIC_TYPE)"},{"line_number":17,"context_line":"vnic_type will be replicated as attrs."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: I40d388543387ebdd72f26d761339c1829bef9413"},{"line_number":20,"context_line":"Partial-bug: #1838396"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7faddb67_a404504b","line":17,"range":{"start_line":17,"start_character":1,"end_line":17,"end_character":37},"in_reply_to":"7faddb67_9fe3afd8","updated":"2019-07-30 23:50:09.000000000","message":"Within the framework of neutron, attrs should be an object, if not will return 400. but I will update it make it more rigorous. thanks.","commit_id":"ca67d42766c36cea2ab789e7cf6f8a8147863775"}],"neutron/plugins/ml2/plugin.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"c008171ebed74576fa9aa643f559d027c3f40657","unresolved":false,"context_lines":[{"line_number":427,"context_line":"            binding.host \u003d host"},{"line_number":428,"context_line":"            changes \u003d True"},{"line_number":429,"context_line":""},{"line_number":430,"context_line":"        vnic_type \u003d attrs.get(portbindings.VNIC_TYPE) and attrs"},{"line_number":431,"context_line":"        if (validators.is_attr_set(vnic_type) and"},{"line_number":432,"context_line":"                binding.vnic_type !\u003d vnic_type):"},{"line_number":433,"context_line":"            binding.vnic_type \u003d vnic_type"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_903cfc2f","line":430,"updated":"2019-07-30 15:00:09.000000000","message":"Rodolfo - so should this maybe be setting vnic_type to None or ATTR_NOT_SPECIFIED as above/below do?","commit_id":"ca67d42766c36cea2ab789e7cf6f8a8147863775"}],"neutron/tests/unit/plugins/ml2/test_plugin.py":[{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"01dec91a7c118a2cd7f38ae93f9756c5f794087b","unresolved":false,"context_lines":[{"line_number":1073,"context_line":"                plugin.update_port_status(ctx, short_id, \u0027UP\u0027)"},{"line_number":1074,"context_line":"                mock_gbl.assert_called_once_with(mock.ANY, port_id, mock.ANY)"},{"line_number":1075,"context_line":""},{"line_number":1076,"context_line":"    def test_update_port_no_update_data(self):"},{"line_number":1077,"context_line":"        ctx \u003d context.get_admin_context()"},{"line_number":1078,"context_line":"        plugin \u003d directory.get_plugin()"},{"line_number":1079,"context_line":"        with self.port() as port:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_65a70bbe","line":1076,"range":{"start_line":1076,"start_character":8,"end_line":1076,"end_character":39},"updated":"2019-08-02 02:42:12.000000000","message":"s/test_update_port_no_update_data/test_update_port_with_empty_data","commit_id":"0caa0f806269d02643a2e301a6c32142c4db563b"},{"author":{"_account_id":30380,"name":"ZhouHeng","email":"zhouhenglc@inspur.com","username":"zhouhenglc"},"change_message_id":"f2203804d64bdabdb27f8b6fa92cbf38cc0d0815","unresolved":false,"context_lines":[{"line_number":1073,"context_line":"                plugin.update_port_status(ctx, short_id, \u0027UP\u0027)"},{"line_number":1074,"context_line":"                mock_gbl.assert_called_once_with(mock.ANY, port_id, mock.ANY)"},{"line_number":1075,"context_line":""},{"line_number":1076,"context_line":"    def test_update_port_no_update_data(self):"},{"line_number":1077,"context_line":"        ctx \u003d context.get_admin_context()"},{"line_number":1078,"context_line":"        plugin \u003d directory.get_plugin()"},{"line_number":1079,"context_line":"        with self.port() as port:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_25a353a0","line":1076,"range":{"start_line":1076,"start_character":8,"end_line":1076,"end_character":39},"in_reply_to":"7faddb67_65a70bbe","updated":"2019-08-02 02:48:40.000000000","message":"thanks Brin, I update it in next patch.","commit_id":"0caa0f806269d02643a2e301a6c32142c4db563b"},{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"24e6f00c2909cbdb7af3b7ed2f94adf3a4a142eb","unresolved":false,"context_lines":[{"line_number":1103,"context_line":"                plugin.update_port_status(ctx, short_id, \u0027UP\u0027)"},{"line_number":1104,"context_line":"                mock_gbl.assert_called_once_with(mock.ANY, port_id, mock.ANY)"},{"line_number":1105,"context_line":""},{"line_number":1106,"context_line":"    def test_update_port_with_empty_data(self):"},{"line_number":1107,"context_line":"        ctx \u003d context.get_admin_context()"},{"line_number":1108,"context_line":"        plugin \u003d directory.get_plugin()"},{"line_number":1109,"context_line":"        with self.port() as port:"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_74af5f7d","line":1106,"range":{"start_line":1106,"start_character":8,"end_line":1106,"end_character":40},"updated":"2019-08-08 11:20:21.000000000","message":"This tests neutron.tests.unit.plugins.ml2.drivers.mechanism_test.TestMechanismDriver which in fact does nothing in update_port_postcommit()","commit_id":"dd080c70b423a56a69abf7e52d1fee0cb7988c92"},{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"9fa46b25fec807de2e1674f0395423325ec95be1","unresolved":false,"context_lines":[{"line_number":1109,"context_line":"        with self.port() as port:"},{"line_number":1110,"context_line":"            port_id \u003d port[\u0027port\u0027][\u0027id\u0027]"},{"line_number":1111,"context_line":"            new_port \u003d plugin.update_port(ctx, port_id, {\"port\": {}})"},{"line_number":1112,"context_line":"            self.assertEqual(port[\"port\"], new_port)"},{"line_number":1113,"context_line":""},{"line_number":1114,"context_line":"    def _add_fake_dhcp_agent(self):"},{"line_number":1115,"context_line":"        agent \u003d mock.Mock()"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_d4d4134a","line":1112,"range":{"start_line":1112,"start_character":11,"end_line":1112,"end_character":52},"updated":"2019-08-08 11:01:56.000000000","message":"Idk why we\u0027re making possible to update the port with empty content. Shouldn\u0027t it be just 400?","commit_id":"dd080c70b423a56a69abf7e52d1fee0cb7988c92"},{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"75eb9a0fb2da3967548f00cd4f097f05a64170e1","unresolved":false,"context_lines":[{"line_number":1109,"context_line":"        with self.port() as port:"},{"line_number":1110,"context_line":"            port_id \u003d port[\u0027port\u0027][\u0027id\u0027]"},{"line_number":1111,"context_line":"            new_port \u003d plugin.update_port(ctx, port_id, {\"port\": {}})"},{"line_number":1112,"context_line":"            self.assertEqual(port[\"port\"], new_port)"},{"line_number":1113,"context_line":""},{"line_number":1114,"context_line":"    def _add_fake_dhcp_agent(self):"},{"line_number":1115,"context_line":"        agent \u003d mock.Mock()"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_5408232c","line":1112,"range":{"start_line":1112,"start_character":11,"end_line":1112,"end_character":52},"in_reply_to":"7faddb67_d4917348","updated":"2019-08-08 11:53:37.000000000","message":"Ok, after a sync with Slawek, all the resources works the same way, so that\u0027s why it could be still 200. Doing 400 for such requests will end with updating all other resoureces, api-references etc. No worth time.","commit_id":"dd080c70b423a56a69abf7e52d1fee0cb7988c92"},{"author":{"_account_id":30380,"name":"ZhouHeng","email":"zhouhenglc@inspur.com","username":"zhouhenglc"},"change_message_id":"93ef4ed56cf009c032d06390d86e354b883ec8b6","unresolved":false,"context_lines":[{"line_number":1109,"context_line":"        with self.port() as port:"},{"line_number":1110,"context_line":"            port_id \u003d port[\u0027port\u0027][\u0027id\u0027]"},{"line_number":1111,"context_line":"            new_port \u003d plugin.update_port(ctx, port_id, {\"port\": {}})"},{"line_number":1112,"context_line":"            self.assertEqual(port[\"port\"], new_port)"},{"line_number":1113,"context_line":""},{"line_number":1114,"context_line":"    def _add_fake_dhcp_agent(self):"},{"line_number":1115,"context_line":"        agent \u003d mock.Mock()"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_d4917348","line":1112,"range":{"start_line":1112,"start_character":11,"end_line":1112,"end_character":52},"in_reply_to":"7faddb67_d4d4134a","updated":"2019-08-08 11:18:47.000000000","message":"I think both of them are reasonable. At present, the interface of neutron is returned normally. so updating ports also keeps this style.","commit_id":"dd080c70b423a56a69abf7e52d1fee0cb7988c92"}]}
