)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"180bb75dc56fe88df589c13af7f8b234a3624a5c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"f2433f07_53bd221f","updated":"2025-03-25 18:50:51.000000000","message":"-1 for the pep8 failure, but also to highlight a question","commit_id":"b5cfa1e79d8836241c4a82578294c56daf26e2b1"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6322fc9b211c4b9005ae648318185e2747017f75","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"b90a99c1_9a895e07","updated":"2025-03-25 18:48:52.000000000","message":"@ralonsoh@redhat.com Your life will be much easier if you install/enable `pre-commit` 😉\n\n```\nsudo dnf install pre-commit\n# in this repo...\npre-commit install\n```\n\nAlternatively, you need to run the `tox -e pep8` step here.","commit_id":"b5cfa1e79d8836241c4a82578294c56daf26e2b1"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ff45fd2ad5994a97b4fa237c4f8f7fbcdc61351a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"98ed4351_6a52c23a","updated":"2025-03-26 10:45:33.000000000","message":"One nit inline","commit_id":"a7f3eb438791dee6629dcac2eee37ed1e4e210ac"}],"openstackclient/network/v2/port.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"180bb75dc56fe88df589c13af7f8b234a3624a5c","unresolved":true,"context_lines":[{"line_number":948,"context_line":"            column_headers, columns, parsed_args"},{"line_number":949,"context_line":"        )"},{"line_number":950,"context_line":"        return ("},{"line_number":951,"context_line":"            column_headers,"},{"line_number":952,"context_line":"            ("},{"line_number":953,"context_line":"                utils.get_item_properties("},{"line_number":954,"context_line":"                    s,"}],"source_content_type":"text/x-python","patch_set":2,"id":"2a453733_7cee6587","line":951,"range":{"start_line":951,"start_character":12,"end_line":951,"end_character":26},"updated":"2025-03-25 18:50:51.000000000","message":"Are you sure this correct? It looks like the return from `utils.calculate_header_and_attrs` (i.e. `headers`) is what we want? We\u0027re using `attrs` from same.","commit_id":"b5cfa1e79d8836241c4a82578294c56daf26e2b1"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c8ad154efaccf3afe2564784a389bfcba816d304","unresolved":true,"context_lines":[{"line_number":948,"context_line":"            column_headers, columns, parsed_args"},{"line_number":949,"context_line":"        )"},{"line_number":950,"context_line":"        return ("},{"line_number":951,"context_line":"            column_headers,"},{"line_number":952,"context_line":"            ("},{"line_number":953,"context_line":"                utils.get_item_properties("},{"line_number":954,"context_line":"                    s,"}],"source_content_type":"text/x-python","patch_set":2,"id":"b4188750_9839fe1a","line":951,"range":{"start_line":951,"start_character":12,"end_line":951,"end_character":26},"in_reply_to":"2a453733_7cee6587","updated":"2025-03-26 08:05:12.000000000","message":"Actually this is wrong, we don\u0027t need to call ``calculate_header_and_attrs``. Same as in many other resources, we just need to pass ``column_headers`` and ``columns``.\n\nI need to document a bit better this patch as long as I found why the call to ``calculate_header_and_attrs`` was done. In [1], that feature was added to allow to print a list of port properties that are not in the default columns.\n\nBut in [2], I added a filter list in the API call in order to reduce the CLI execution time. Of course, the drawback of this optimization patch is that we no longer retrieve any field that is not in the \"port list\" columns, making [1] useless. Because the optimization if preferred and we can always use \"port show\" to see all port fields, I would remove the code added in [1].\n\n[1]https://review.opendev.org/c/openstack/python-openstackclient/+/522901\n[2]https://review.opendev.org/c/openstack/python-openstackclient/+/754117","commit_id":"b5cfa1e79d8836241c4a82578294c56daf26e2b1"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ff45fd2ad5994a97b4fa237c4f8f7fbcdc61351a","unresolved":false,"context_lines":[{"line_number":948,"context_line":"            column_headers, columns, parsed_args"},{"line_number":949,"context_line":"        )"},{"line_number":950,"context_line":"        return ("},{"line_number":951,"context_line":"            column_headers,"},{"line_number":952,"context_line":"            ("},{"line_number":953,"context_line":"                utils.get_item_properties("},{"line_number":954,"context_line":"                    s,"}],"source_content_type":"text/x-python","patch_set":2,"id":"d8a0551d_6ecd2b5e","line":951,"range":{"start_line":951,"start_character":12,"end_line":951,"end_character":26},"in_reply_to":"b4188750_9839fe1a","updated":"2025-03-26 10:45:33.000000000","message":"Acknowledged","commit_id":"b5cfa1e79d8836241c4a82578294c56daf26e2b1"}],"openstackclient/tests/functional/network/v2/test_port.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ff45fd2ad5994a97b4fa237c4f8f7fbcdc61351a","unresolved":true,"context_lines":[{"line_number":167,"context_line":"        # Check an unknown field does not exist"},{"line_number":168,"context_line":"        self.assertNotIn(\u0027device_id\u0027, json_output[0])"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"        # Test list with only unknown fields"},{"line_number":171,"context_line":"        try:"},{"line_number":172,"context_line":"            self.openstack(\u0027port list -c device_id\u0027)"},{"line_number":173,"context_line":"        except tempest_exc.CommandFailed as exc:"},{"line_number":174,"context_line":"            self.assertIn("},{"line_number":175,"context_line":"                \"No recognized column names in [\u0027device_id\u0027]\", str(exc)"},{"line_number":176,"context_line":"            )"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    def test_port_set(self):"},{"line_number":179,"context_line":"        \"\"\"Test create, set, show, delete\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"d0b973ed_4c0ccac8","line":176,"range":{"start_line":170,"start_character":0,"end_line":176,"end_character":13},"updated":"2025-03-26 10:45:33.000000000","message":"```suggestion\n        # Test list with only unknown fields\n        exc \u003d self.assertRaises(\n            tempest_exc.CommandFailed,\n            self.openstack,\n            \u0027port list -c device_id\u0027,\n        )\n        self.assertIn(\n            \"No recognized column names in [\u0027device_id\u0027]\", str(exc)\n        )\n```","commit_id":"a7f3eb438791dee6629dcac2eee37ed1e4e210ac"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"7a84531c5154dad781e66e5b5ec2d85d5082b93e","unresolved":false,"context_lines":[{"line_number":167,"context_line":"        # Check an unknown field does not exist"},{"line_number":168,"context_line":"        self.assertNotIn(\u0027device_id\u0027, json_output[0])"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"        # Test list with only unknown fields"},{"line_number":171,"context_line":"        try:"},{"line_number":172,"context_line":"            self.openstack(\u0027port list -c device_id\u0027)"},{"line_number":173,"context_line":"        except tempest_exc.CommandFailed as exc:"},{"line_number":174,"context_line":"            self.assertIn("},{"line_number":175,"context_line":"                \"No recognized column names in [\u0027device_id\u0027]\", str(exc)"},{"line_number":176,"context_line":"            )"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    def test_port_set(self):"},{"line_number":179,"context_line":"        \"\"\"Test create, set, show, delete\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"fce1e691_843378ee","line":176,"range":{"start_line":170,"start_character":0,"end_line":176,"end_character":13},"in_reply_to":"d0b973ed_4c0ccac8","updated":"2025-03-26 14:18:30.000000000","message":"Done","commit_id":"a7f3eb438791dee6629dcac2eee37ed1e4e210ac"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"a2dc5a686a7b3849cea1066259312b3c0b0cc77b","unresolved":false,"context_lines":[{"line_number":167,"context_line":"        # Check an unknown field does not exist"},{"line_number":168,"context_line":"        self.assertNotIn(\u0027device_id\u0027, json_output[0])"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"        # Test list with only unknown fields"},{"line_number":171,"context_line":"        try:"},{"line_number":172,"context_line":"            self.openstack(\u0027port list -c device_id\u0027)"},{"line_number":173,"context_line":"        except tempest_exc.CommandFailed as exc:"},{"line_number":174,"context_line":"            self.assertIn("},{"line_number":175,"context_line":"                \"No recognized column names in [\u0027device_id\u0027]\", str(exc)"},{"line_number":176,"context_line":"            )"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    def test_port_set(self):"},{"line_number":179,"context_line":"        \"\"\"Test create, set, show, delete\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"f39ac602_944331a0","line":176,"range":{"start_line":170,"start_character":0,"end_line":176,"end_character":13},"in_reply_to":"fce1e691_843378ee","updated":"2025-03-26 14:18:54.000000000","message":"Fix applied.","commit_id":"a7f3eb438791dee6629dcac2eee37ed1e4e210ac"}]}
