)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"36aebf1fd7ddddfb71f4fd34d4fc744c5319ef8c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"f5cc6196_76077c9b","updated":"2023-01-06 15:38:05.000000000","message":"Thanks for working on the Lajos!","commit_id":"1042a00a3f4f3d1d1821c9211db78166ffe9c269"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"202eb55c2e5b34836239ba5d894fc182885eb110","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"337f79b9_35f4175f","updated":"2023-01-13 16:20:52.000000000","message":"The patch looks good, just one nit: you need to create the corresponding doc resources. E.g.: https://review.opendev.org/c/openstack/openstacksdk/+/804988/17/doc/source/user/resources/network/index.rst#20","commit_id":"470005cca4140480c54f2fd397c3486aa9a574bd"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"e4e9fbc1396d9de98fea53eb7080462cb39b017d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"bd34f68c_7e72cb9e","in_reply_to":"14989992_9c2d58a2","updated":"2023-01-16 13:17:23.000000000","message":"Thanks, I forgot that part of the doc, I am thinking on adding even reno for it.","commit_id":"470005cca4140480c54f2fd397c3486aa9a574bd"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"ca2738ac42cdab4bb0fbf136d5b76f790d55314b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"ad2a6538_abce45ae","in_reply_to":"337f79b9_35f4175f","updated":"2023-01-13 16:21:42.000000000","message":"I said nothing, this is for the SDK resources.","commit_id":"470005cca4140480c54f2fd397c3486aa9a574bd"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"0ce73743a4a03b8866b052bc0654ed6cb652d00a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"14989992_9c2d58a2","in_reply_to":"ad2a6538_abce45ae","updated":"2023-01-13 16:23:32.000000000","message":"And sorry again: for the CLI you need to create the doc for the new command objects. E.g.: https://review.opendev.org/c/openstack/python-openstackclient/+/805618/27/doc/source/cli/command-objects/local-ip.rst","commit_id":"470005cca4140480c54f2fd397c3486aa9a574bd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8f34ccb7ab050ed54f9b6fadbb28c932e4884949","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"057ca3bf_5a44fa96","updated":"2023-01-31 11:34:48.000000000","message":"This is very thorough. Excellent work. Thanks!","commit_id":"7f1c21b27aafacbf041d48d8b042901032310d5e"}],"openstackclient/network/v2/network_trunk.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"36aebf1fd7ddddfb71f4fd34d4fc744c5319ef8c","unresolved":true,"context_lines":[{"line_number":67,"context_line":"            optional_keys\u003d[\u0027segmentation-id\u0027, \u0027segmentation-type\u0027],"},{"line_number":68,"context_line":"            required_keys\u003d[\u0027port\u0027],"},{"line_number":69,"context_line":"            help\u003d_(\"Subport to add. Subport is of form \""},{"line_number":70,"context_line":"                   \"\\\u0027port\u003d\u003cname or ID\u003e,segmentation-type\u003d,segmentation-ID\u003d\\\u0027 \""},{"line_number":71,"context_line":"                   \"(--subport) option can be repeated\")"},{"line_number":72,"context_line":"        )"},{"line_number":73,"context_line":"        admin_group \u003d parser.add_mutually_exclusive_group()"}],"source_content_type":"text/x-python","patch_set":2,"id":"798eb662_b8623b54","line":70,"updated":"2023-01-06 15:38:05.000000000","message":"This seems a little strange to me, I think it should have values, like:\n\nport\u003d\u003cname or ID\u003e,segmentation-type\u003d\u003csegmentation-type\u003e,segmentation-ID\u003d\u003csegmentation-ID\u003e\n\nSame on L65","commit_id":"1042a00a3f4f3d1d1821c9211db78166ffe9c269"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"faa2f134b6150fb9dcd90abfabfeeb92a80aa26b","unresolved":false,"context_lines":[{"line_number":67,"context_line":"            optional_keys\u003d[\u0027segmentation-id\u0027, \u0027segmentation-type\u0027],"},{"line_number":68,"context_line":"            required_keys\u003d[\u0027port\u0027],"},{"line_number":69,"context_line":"            help\u003d_(\"Subport to add. Subport is of form \""},{"line_number":70,"context_line":"                   \"\\\u0027port\u003d\u003cname or ID\u003e,segmentation-type\u003d,segmentation-ID\u003d\\\u0027 \""},{"line_number":71,"context_line":"                   \"(--subport) option can be repeated\")"},{"line_number":72,"context_line":"        )"},{"line_number":73,"context_line":"        admin_group \u003d parser.add_mutually_exclusive_group()"}],"source_content_type":"text/x-python","patch_set":2,"id":"2fb3be1e_0606a986","line":70,"in_reply_to":"798eb662_b8623b54","updated":"2023-01-12 10:49:39.000000000","message":"Done","commit_id":"1042a00a3f4f3d1d1821c9211db78166ffe9c269"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"36aebf1fd7ddddfb71f4fd34d4fc744c5319ef8c","unresolved":true,"context_lines":[{"line_number":203,"context_line":"            optional_keys\u003d[\u0027segmentation-id\u0027, \u0027segmentation-type\u0027],"},{"line_number":204,"context_line":"            required_keys\u003d[\u0027port\u0027],"},{"line_number":205,"context_line":"            help\u003d_(\"Subport to add. Subport is of form \""},{"line_number":206,"context_line":"                   \"\\\u0027port\u003d\u003cname or ID\u003e,segmentation-type\u003d,segmentation-ID\u003d\\\u0027\""},{"line_number":207,"context_line":"                   \"(--subport) option can be repeated\")"},{"line_number":208,"context_line":"        )"},{"line_number":209,"context_line":"        admin_group \u003d parser.add_mutually_exclusive_group()"}],"source_content_type":"text/x-python","patch_set":2,"id":"e06c86da_c3cb75e1","line":206,"updated":"2023-01-06 15:38:05.000000000","message":"Same comment would apply in this block.","commit_id":"1042a00a3f4f3d1d1821c9211db78166ffe9c269"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"faa2f134b6150fb9dcd90abfabfeeb92a80aa26b","unresolved":false,"context_lines":[{"line_number":203,"context_line":"            optional_keys\u003d[\u0027segmentation-id\u0027, \u0027segmentation-type\u0027],"},{"line_number":204,"context_line":"            required_keys\u003d[\u0027port\u0027],"},{"line_number":205,"context_line":"            help\u003d_(\"Subport to add. Subport is of form \""},{"line_number":206,"context_line":"                   \"\\\u0027port\u003d\u003cname or ID\u003e,segmentation-type\u003d,segmentation-ID\u003d\\\u0027\""},{"line_number":207,"context_line":"                   \"(--subport) option can be repeated\")"},{"line_number":208,"context_line":"        )"},{"line_number":209,"context_line":"        admin_group \u003d parser.add_mutually_exclusive_group()"}],"source_content_type":"text/x-python","patch_set":2,"id":"96c11299_c9847b6a","line":206,"in_reply_to":"e06c86da_c3cb75e1","updated":"2023-01-12 10:49:39.000000000","message":"Done","commit_id":"1042a00a3f4f3d1d1821c9211db78166ffe9c269"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"4c3420a6146810007caf0d5ca6da2fa773fbded1","unresolved":true,"context_lines":[{"line_number":68,"context_line":"            required_keys\u003d[\u0027port\u0027],"},{"line_number":69,"context_line":"            help\u003d_(\"Subport to add. Subport is of form \""},{"line_number":70,"context_line":"                   \"\\\u0027port\u003d\u003cname or ID\u003e,segmentation-type\u003d\u003csegmentation-type\u003e,\""},{"line_number":71,"context_line":"                   \"segmentation-ID\u003d\u003csegmentation-ID\u003e\\\u0027 (--subport) option \""},{"line_number":72,"context_line":"                   \"can be repeated\")"},{"line_number":73,"context_line":"        )"},{"line_number":74,"context_line":"        admin_group \u003d parser.add_mutually_exclusive_group()"}],"source_content_type":"text/x-python","patch_set":4,"id":"71d68f79_8347377a","line":71,"range":{"start_line":71,"start_character":20,"end_line":71,"end_character":35},"updated":"2023-01-13 14:30:16.000000000","message":"nit: s/segmentation-id so it matches keyname, only noticed difference once I ran \u0027openstack network trunk create --help\u0027","commit_id":"eaca8063a3306ec59723139a499599100ae94b70"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"734418c12fed5c9b2b37ad6ab4b7d01f5f209eb4","unresolved":true,"context_lines":[{"line_number":68,"context_line":"            required_keys\u003d[\u0027port\u0027],"},{"line_number":69,"context_line":"            help\u003d_(\"Subport to add. Subport is of form \""},{"line_number":70,"context_line":"                   \"\\\u0027port\u003d\u003cname or ID\u003e,segmentation-type\u003d\u003csegmentation-type\u003e,\""},{"line_number":71,"context_line":"                   \"segmentation-ID\u003d\u003csegmentation-ID\u003e\\\u0027 (--subport) option \""},{"line_number":72,"context_line":"                   \"can be repeated\")"},{"line_number":73,"context_line":"        )"},{"line_number":74,"context_line":"        admin_group \u003d parser.add_mutually_exclusive_group()"}],"source_content_type":"text/x-python","patch_set":4,"id":"e150d3f3_41879609","line":71,"range":{"start_line":71,"start_character":20,"end_line":71,"end_character":35},"in_reply_to":"71d68f79_8347377a","updated":"2023-01-13 14:56:36.000000000","message":"Thanks","commit_id":"eaca8063a3306ec59723139a499599100ae94b70"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8f34ccb7ab050ed54f9b6fadbb28c932e4884949","unresolved":false,"context_lines":[{"line_number":68,"context_line":"            required_keys\u003d[\u0027port\u0027],"},{"line_number":69,"context_line":"            help\u003d_(\"Subport to add. Subport is of form \""},{"line_number":70,"context_line":"                   \"\\\u0027port\u003d\u003cname or ID\u003e,segmentation-type\u003d\u003csegmentation-type\u003e,\""},{"line_number":71,"context_line":"                   \"segmentation-ID\u003d\u003csegmentation-ID\u003e\\\u0027 (--subport) option \""},{"line_number":72,"context_line":"                   \"can be repeated\")"},{"line_number":73,"context_line":"        )"},{"line_number":74,"context_line":"        admin_group \u003d parser.add_mutually_exclusive_group()"}],"source_content_type":"text/x-python","patch_set":4,"id":"56b27bb0_5ded71fe","line":71,"range":{"start_line":71,"start_character":20,"end_line":71,"end_character":35},"in_reply_to":"e150d3f3_41879609","updated":"2023-01-31 11:34:48.000000000","message":"Done","commit_id":"eaca8063a3306ec59723139a499599100ae94b70"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"4c3420a6146810007caf0d5ca6da2fa773fbded1","unresolved":true,"context_lines":[{"line_number":205,"context_line":"            required_keys\u003d[\u0027port\u0027],"},{"line_number":206,"context_line":"            help\u003d_(\"Subport to add. Subport is of form \""},{"line_number":207,"context_line":"                   \"\\\u0027port\u003d\u003cname or ID\u003e,segmentation-type\u003d\u003csegmentation-type\u003e\""},{"line_number":208,"context_line":"                   \",segmentation-ID\u003d\u003csegmentation-ID\u003e\\\u0027 (--subport) option \""},{"line_number":209,"context_line":"                   \"can be repeated\")"},{"line_number":210,"context_line":"        )"},{"line_number":211,"context_line":"        admin_group \u003d parser.add_mutually_exclusive_group()"}],"source_content_type":"text/x-python","patch_set":4,"id":"1c22727f_d1753d1c","line":208,"updated":"2023-01-13 14:30:16.000000000","message":"Same","commit_id":"eaca8063a3306ec59723139a499599100ae94b70"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"734418c12fed5c9b2b37ad6ab4b7d01f5f209eb4","unresolved":false,"context_lines":[{"line_number":205,"context_line":"            required_keys\u003d[\u0027port\u0027],"},{"line_number":206,"context_line":"            help\u003d_(\"Subport to add. Subport is of form \""},{"line_number":207,"context_line":"                   \"\\\u0027port\u003d\u003cname or ID\u003e,segmentation-type\u003d\u003csegmentation-type\u003e\""},{"line_number":208,"context_line":"                   \",segmentation-ID\u003d\u003csegmentation-ID\u003e\\\u0027 (--subport) option \""},{"line_number":209,"context_line":"                   \"can be repeated\")"},{"line_number":210,"context_line":"        )"},{"line_number":211,"context_line":"        admin_group \u003d parser.add_mutually_exclusive_group()"}],"source_content_type":"text/x-python","patch_set":4,"id":"812f2f1c_10e5e7b1","line":208,"in_reply_to":"1c22727f_d1753d1c","updated":"2023-01-13 14:56:36.000000000","message":"Done","commit_id":"eaca8063a3306ec59723139a499599100ae94b70"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8f34ccb7ab050ed54f9b6fadbb28c932e4884949","unresolved":true,"context_lines":[{"line_number":43,"context_line":"    \"\"\"Create a network trunk for a given project\"\"\""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def get_parser(self, prog_name):"},{"line_number":46,"context_line":"        parser \u003d super(CreateNetworkTrunk, self).get_parser(prog_name)"},{"line_number":47,"context_line":"        parser.add_argument("},{"line_number":48,"context_line":"            \u0027name\u0027,"},{"line_number":49,"context_line":"            metavar\u003d\u0027\u003cname\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"c1cd661f_34058d76","line":46,"range":{"start_line":46,"start_character":23,"end_line":46,"end_character":47},"updated":"2023-01-31 11:34:48.000000000","message":"nit: not necessary (Python 3)","commit_id":"7f1c21b27aafacbf041d48d8b042901032310d5e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8f34ccb7ab050ed54f9b6fadbb28c932e4884949","unresolved":true,"context_lines":[{"line_number":67,"context_line":"            optional_keys\u003d[\u0027segmentation-id\u0027, \u0027segmentation-type\u0027],"},{"line_number":68,"context_line":"            required_keys\u003d[\u0027port\u0027],"},{"line_number":69,"context_line":"            help\u003d_(\"Subport to add. Subport is of form \""},{"line_number":70,"context_line":"                   \"\\\u0027port\u003d\u003cname or ID\u003e,segmentation-type\u003d\u003csegmentation-type\u003e,\""},{"line_number":71,"context_line":"                   \"segmentation-id\u003d\u003csegmentation-ID\u003e\\\u0027 (--subport) option \""},{"line_number":72,"context_line":"                   \"can be repeated\")"},{"line_number":73,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":6,"id":"3e8201c7_460986ca","line":70,"range":{"start_line":70,"start_character":20,"end_line":70,"end_character":21},"updated":"2023-01-31 11:34:48.000000000","message":"nit: unnecessary escape? Also, it would be nice to take advantage of the brackets and wrap this on new lines\n\n help\u003d_(\n     \"Subport to add. Subport is of form \"\n     \"\\\u0027port\u003d\u003cname or ID\u003e,segmentation-type\u003d\u003csegmentation-type\u003e,\"\n     \"segmentation-id\u003d\u003csegmentation-ID\u003e\\\u0027 (--subport) option \"\n     \"can be repeated\"\n )","commit_id":"7f1c21b27aafacbf041d48d8b042901032310d5e"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"91a39d954d569ac1d02abe517f7ded4a9a2a1831","unresolved":true,"context_lines":[{"line_number":120,"context_line":"            except Exception as e:"},{"line_number":121,"context_line":"                result +\u003d 1"},{"line_number":122,"context_line":"                LOG.error(_(\"Failed to delete trunk with name \""},{"line_number":123,"context_line":"                          \"or ID \u0027%(trunk)s\u0027: %(e)s\"),"},{"line_number":124,"context_line":"                          {\u0027trunk\u0027: trunk, \u0027e\u0027: e})"},{"line_number":125,"context_line":"        if result \u003e 0:"},{"line_number":126,"context_line":"            total \u003d len(parsed_args.trunk)"}],"source_content_type":"text/x-python","patch_set":6,"id":"dca6b8fb_dfe43dcd","line":123,"updated":"2023-01-23 11:51:08.000000000","message":"nit: shouldn\u0027t this be aligned with line above?","commit_id":"7f1c21b27aafacbf041d48d8b042901032310d5e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8f34ccb7ab050ed54f9b6fadbb28c932e4884949","unresolved":true,"context_lines":[{"line_number":120,"context_line":"            except Exception as e:"},{"line_number":121,"context_line":"                result +\u003d 1"},{"line_number":122,"context_line":"                LOG.error(_(\"Failed to delete trunk with name \""},{"line_number":123,"context_line":"                          \"or ID \u0027%(trunk)s\u0027: %(e)s\"),"},{"line_number":124,"context_line":"                          {\u0027trunk\u0027: trunk, \u0027e\u0027: e})"},{"line_number":125,"context_line":"        if result \u003e 0:"},{"line_number":126,"context_line":"            total \u003d len(parsed_args.trunk)"}],"source_content_type":"text/x-python","patch_set":6,"id":"b038e91c_42731227","line":123,"in_reply_to":"dca6b8fb_dfe43dcd","updated":"2023-01-31 11:34:48.000000000","message":"Yeah, I usually do:\n\n  msg \u003d _(...)\n  LOG.error(msg, ...)\n\nThough it\u0027s worth noting that you don\u0027t need to translate logs. Heck, I don\u0027t think you *need* to translate anything these days since I don\u0027t think anyone is actually translating stuff.","commit_id":"7f1c21b27aafacbf041d48d8b042901032310d5e"}]}
