)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1fcc0d5b5766baadfca488c42ea0625e6b77219d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"ec8d0a1a_60c64801","updated":"2023-10-06 11:05:44.000000000","message":"Pretty much all the same comments as https://review.opendev.org/c/openstack/python-openstackclient/+/887048/. To be honest, this change should probably be rebased on top of that one","commit_id":"4452fca701a66d3d18734c81a53b578a1ed81e9f"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"f746728db1665460c441d97927aed5d5de054a31","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"ad027862_1affe835","updated":"2023-11-07 06:58:55.000000000","message":"thank you!","commit_id":"f8c708900c7c522d12b2ca95e0c335219db75bf8"}],"openstackclient/image/v2/metadef_objects.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"42fcc9fde1aa841952d663e1759c1bc95ec2890f","unresolved":true,"context_lines":[{"line_number":29,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"def _format_object(md_object):"},{"line_number":33,"context_line":"    info \u003d {}"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    fields_to_show \u003d ["}],"source_content_type":"text/x-python","patch_set":1,"id":"1e15c633_c074d8b5","line":32,"updated":"2023-07-18 14:52:17.000000000","message":"I think you\u0027ve forgotten to call this?","commit_id":"edfadb8796a3c9e234db828788090fab39bb5acd"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"f7e2e84472158891abac540de7118803b823554d","unresolved":false,"context_lines":[{"line_number":29,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"def _format_object(md_object):"},{"line_number":33,"context_line":"    info \u003d {}"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    fields_to_show \u003d ["}],"source_content_type":"text/x-python","patch_set":1,"id":"fbbab37a_6e75be0f","line":32,"in_reply_to":"1e15c633_c074d8b5","updated":"2023-07-18 17:59:54.000000000","message":"Done","commit_id":"edfadb8796a3c9e234db828788090fab39bb5acd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"42fcc9fde1aa841952d663e1759c1bc95ec2890f","unresolved":true,"context_lines":[{"line_number":36,"context_line":"        \u0027created_at\u0027,"},{"line_number":37,"context_line":"        \u0027description\u0027,"},{"line_number":38,"context_line":"        \u0027name\u0027,"},{"line_number":39,"context_line":"        \u0027namespace_name\u0027 \u0027properties\u0027,"},{"line_number":40,"context_line":"        \u0027required\u0027,"},{"line_number":41,"context_line":"        \u0027schema\u0027,"},{"line_number":42,"context_line":"    ]"}],"source_content_type":"text/x-python","patch_set":1,"id":"a7d85a0f_e270ab8e","line":39,"updated":"2023-07-18 14:52:17.000000000","message":"You missed a comma","commit_id":"edfadb8796a3c9e234db828788090fab39bb5acd"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"f7e2e84472158891abac540de7118803b823554d","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        \u0027created_at\u0027,"},{"line_number":37,"context_line":"        \u0027description\u0027,"},{"line_number":38,"context_line":"        \u0027name\u0027,"},{"line_number":39,"context_line":"        \u0027namespace_name\u0027 \u0027properties\u0027,"},{"line_number":40,"context_line":"        \u0027required\u0027,"},{"line_number":41,"context_line":"        \u0027schema\u0027,"},{"line_number":42,"context_line":"    ]"}],"source_content_type":"text/x-python","patch_set":1,"id":"42e50161_cc3a85b3","line":39,"in_reply_to":"a7d85a0f_e270ab8e","updated":"2023-07-18 17:59:54.000000000","message":"Done","commit_id":"edfadb8796a3c9e234db828788090fab39bb5acd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"42fcc9fde1aa841952d663e1759c1bc95ec2890f","unresolved":true,"context_lines":[{"line_number":41,"context_line":"        \u0027schema\u0027,"},{"line_number":42,"context_line":"    ]"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    md_object \u003d md_object.to_dict(ignore_none\u003dTrue, original_names\u003dTrue)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    # split out the usual key and the properties which are top-level"},{"line_number":47,"context_line":"    for key in md_object:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f43e18a_fac75637","line":44,"updated":"2023-07-18 14:52:17.000000000","message":"You _could_ use `to_dict`, but how about:\n\n```\nreturn (\n    columns,\n    utils.get_item_properties( \n        md_object,\n        columns,\n    ),\n)\n```","commit_id":"edfadb8796a3c9e234db828788090fab39bb5acd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1fcc0d5b5766baadfca488c42ea0625e6b77219d","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        \u0027schema\u0027,"},{"line_number":42,"context_line":"    ]"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    md_object \u003d md_object.to_dict(ignore_none\u003dTrue, original_names\u003dTrue)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    # split out the usual key and the properties which are top-level"},{"line_number":47,"context_line":"    for key in md_object:"}],"source_content_type":"text/x-python","patch_set":1,"id":"d475512f_d820e020","line":44,"in_reply_to":"8ed956be_e7ddffc7","updated":"2023-10-06 11:05:44.000000000","message":"Done","commit_id":"edfadb8796a3c9e234db828788090fab39bb5acd"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"f7e2e84472158891abac540de7118803b823554d","unresolved":true,"context_lines":[{"line_number":41,"context_line":"        \u0027schema\u0027,"},{"line_number":42,"context_line":"    ]"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    md_object \u003d md_object.to_dict(ignore_none\u003dTrue, original_names\u003dTrue)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    # split out the usual key and the properties which are top-level"},{"line_number":47,"context_line":"    for key in md_object:"}],"source_content_type":"text/x-python","patch_set":1,"id":"8ed956be_e7ddffc7","line":44,"in_reply_to":"9f43e18a_fac75637","updated":"2023-07-18 17:59:54.000000000","message":"yes, I think this is better","commit_id":"edfadb8796a3c9e234db828788090fab39bb5acd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"42fcc9fde1aa841952d663e1759c1bc95ec2890f","unresolved":true,"context_lines":[{"line_number":68,"context_line":"            metavar\u003d\u0027\u003cNAME\u003e\u0027,"},{"line_number":69,"context_line":"            required\u003dTrue,"},{"line_number":70,"context_line":"            help\u003d_(\u0027Internal name of an object.\u0027),"},{"line_number":71,"context_line":"        )"},{"line_number":72,"context_line":"        return parser"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    def take_action(self, parsed_args):"}],"source_content_type":"text/x-python","patch_set":1,"id":"44990245_52e6201a","line":71,"updated":"2023-07-18 14:52:17.000000000","message":"These are backwards: per the [Human Interface Guide in the docs](https://docs.openstack.org/python-openstackclient/latest/contributor/humaninterfaceguide.html#arguments) the positional argument for a create command is the identifier of the new object. So this should read:\n\n```\nparser.add_argument(\n    \"--namespace\",\n    metavar\u003d\"\u003cnamespace\u003e\",\n    help\u003d_(\"Metadef namespace to create the metadef object in (name or ID)\"),\n)\nparser.add_argument(\n    \"name\",\n    metavar\u003d\u0027\u003cmetadef-object-name\u003e\u0027,\n    required\u003dTrue,\n    help\u003d_(\u0027New metadef object name\u0027),\n)\n```","commit_id":"edfadb8796a3c9e234db828788090fab39bb5acd"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"f7e2e84472158891abac540de7118803b823554d","unresolved":false,"context_lines":[{"line_number":68,"context_line":"            metavar\u003d\u0027\u003cNAME\u003e\u0027,"},{"line_number":69,"context_line":"            required\u003dTrue,"},{"line_number":70,"context_line":"            help\u003d_(\u0027Internal name of an object.\u0027),"},{"line_number":71,"context_line":"        )"},{"line_number":72,"context_line":"        return parser"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    def take_action(self, parsed_args):"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba1c4cc3_ea6a3811","line":71,"in_reply_to":"44990245_52e6201a","updated":"2023-07-18 17:59:54.000000000","message":"Done","commit_id":"edfadb8796a3c9e234db828788090fab39bb5acd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"42fcc9fde1aa841952d663e1759c1bc95ec2890f","unresolved":true,"context_lines":[{"line_number":80,"context_line":"        for key in filter_keys:"},{"line_number":81,"context_line":"            argument \u003d getattr(parsed_args, key, None)"},{"line_number":82,"context_line":"            if argument is not None:"},{"line_number":83,"context_line":"                kwargs[key] \u003d argument"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        data \u003d image_client.create_metadef_object(**kwargs)"},{"line_number":86,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"501f7589_dd414484","line":83,"updated":"2023-07-18 14:52:17.000000000","message":"Please don\u0027t rely on getattr if you can avoid it as it makes the code harder to read and debug. It\u0027s not necessary here either since both of those options are required:\n\n```\nnamespace \u003d image_client.get_metadef_namespace(\n    parsed_args.namespace,\n)\ndata \u003d image_client.create_metadef_object(\n    namespace\u003dnamespace,\n    name\u003dparsed_args.name,\n)\n```","commit_id":"edfadb8796a3c9e234db828788090fab39bb5acd"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"f7e2e84472158891abac540de7118803b823554d","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        for key in filter_keys:"},{"line_number":81,"context_line":"            argument \u003d getattr(parsed_args, key, None)"},{"line_number":82,"context_line":"            if argument is not None:"},{"line_number":83,"context_line":"                kwargs[key] \u003d argument"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        data \u003d image_client.create_metadef_object(**kwargs)"},{"line_number":86,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"d5c29cbc_8cdb91de","line":83,"in_reply_to":"501f7589_dd414484","updated":"2023-07-18 17:59:54.000000000","message":"Ack","commit_id":"edfadb8796a3c9e234db828788090fab39bb5acd"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"dcfb1ad0b4181a120807274cc9ccd1647d46f4c3","unresolved":true,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from openstackclient.i18n import _"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"_formatters \u003d {"},{"line_number":27,"context_line":"    \u0027tags\u0027: format_columns.ListColumn,"},{"line_number":28,"context_line":"}"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"4bb2fb1f_13f17d96","line":28,"range":{"start_line":26,"start_character":0,"end_line":28,"end_character":1},"updated":"2023-09-27 06:43:50.000000000","message":"not used anywhere","commit_id":"dd88d7c11f0d14ccbe514a4bad30a75821c68f4b"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"e549a7f3f1671c4d9987da017da1efddb5ea012e","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from openstackclient.i18n import _"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"_formatters \u003d {"},{"line_number":27,"context_line":"    \u0027tags\u0027: format_columns.ListColumn,"},{"line_number":28,"context_line":"}"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"cdddb719_51369f0a","line":28,"range":{"start_line":26,"start_character":0,"end_line":28,"end_character":1},"in_reply_to":"0ac371b3_0b3d6342","updated":"2023-09-29 05:55:52.000000000","message":"Ack","commit_id":"dd88d7c11f0d14ccbe514a4bad30a75821c68f4b"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"8d7b00d8863385b77453e1e7a6cd9950b1b17f55","unresolved":true,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from openstackclient.i18n import _"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"_formatters \u003d {"},{"line_number":27,"context_line":"    \u0027tags\u0027: format_columns.ListColumn,"},{"line_number":28,"context_line":"}"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"0ac371b3_0b3d6342","line":28,"range":{"start_line":26,"start_character":0,"end_line":28,"end_character":1},"in_reply_to":"4bb2fb1f_13f17d96","updated":"2023-09-28 00:59:14.000000000","message":"Agreed. In the end we will keep this line because it is used in one of the three patches that add this file, but let\u0027s keep the code as clean as possible.","commit_id":"dd88d7c11f0d14ccbe514a4bad30a75821c68f4b"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"ef1543af3f42c843904229f8af3221c4e5b3c775","unresolved":true,"context_lines":[{"line_number":72,"context_line":"    def take_action(self, parsed_args):"},{"line_number":73,"context_line":"        image_client \u003d self.app.client_manager.image"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        namespace \u003d image_client.get_metadef_namespace("},{"line_number":76,"context_line":"            parsed_args.namespace,"},{"line_number":77,"context_line":"        )"},{"line_number":78,"context_line":"        data \u003d image_client.create_metadef_object("},{"line_number":79,"context_line":"            namespace\u003dnamespace.namespace,"},{"line_number":80,"context_line":"            name\u003dparsed_args.name,"}],"source_content_type":"text/x-python","patch_set":5,"id":"15a589bc_fff18fbb","line":77,"range":{"start_line":75,"start_character":8,"end_line":77,"end_character":9},"updated":"2023-09-12 06:50:34.000000000","message":"what if namespace does not exist?","commit_id":"dd88d7c11f0d14ccbe514a4bad30a75821c68f4b"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"dd3c0826e988269422ff2df8227c581993f1000c","unresolved":true,"context_lines":[{"line_number":72,"context_line":"    def take_action(self, parsed_args):"},{"line_number":73,"context_line":"        image_client \u003d self.app.client_manager.image"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        namespace \u003d image_client.get_metadef_namespace("},{"line_number":76,"context_line":"            parsed_args.namespace,"},{"line_number":77,"context_line":"        )"},{"line_number":78,"context_line":"        data \u003d image_client.create_metadef_object("},{"line_number":79,"context_line":"            namespace\u003dnamespace.namespace,"},{"line_number":80,"context_line":"            name\u003dparsed_args.name,"}],"source_content_type":"text/x-python","patch_set":5,"id":"ec91249a_1ecf326f","line":77,"range":{"start_line":75,"start_character":8,"end_line":77,"end_character":9},"in_reply_to":"15a589bc_fff18fbb","updated":"2023-09-12 09:10:59.000000000","message":"I will raise an error stating No MetadefNamespace found","commit_id":"dd88d7c11f0d14ccbe514a4bad30a75821c68f4b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1fcc0d5b5766baadfca488c42ea0625e6b77219d","unresolved":true,"context_lines":[{"line_number":72,"context_line":"    def take_action(self, parsed_args):"},{"line_number":73,"context_line":"        image_client \u003d self.app.client_manager.image"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        namespace \u003d image_client.get_metadef_namespace("},{"line_number":76,"context_line":"            parsed_args.namespace,"},{"line_number":77,"context_line":"        )"},{"line_number":78,"context_line":"        data \u003d image_client.create_metadef_object("},{"line_number":79,"context_line":"            namespace\u003dnamespace.namespace,"},{"line_number":80,"context_line":"            name\u003dparsed_args.name,"}],"source_content_type":"text/x-python","patch_set":5,"id":"e0c73661_3317fb5f","line":77,"range":{"start_line":75,"start_character":8,"end_line":77,"end_character":9},"in_reply_to":"238891fb_6b536dde","updated":"2023-10-06 11:05:44.000000000","message":"This is the wrong method. The `get_*` proxy methods only allow looking up by ID. The help text above suggests we want to allow looking up by *name or ID*. For this you want the `find_*` proxy method, `find_metadef_namespace` (with the `ignore_missing\u003dFalse` argument).\n\nLater: Actually, there is no `find_metadef_namespace` method. I noted why in the `openstack.image.v2._proxy.Proxy` class why:\n\n\u003e ```\n\u003e # NOTE(stephenfin): There is no \u0027find_metadef_namespace\u0027 since namespaces\n\u003e # are identified by the namespace name, not an arbitrary UUID, meaning\n\u003e # \u0027find_metadef_namespace\u0027 would be identical to \u0027get_metadef_namespace\u0027\n\u003e ```\n\nSo you need to update your help text above to replace `(name or ID)` with simply `(name)`","commit_id":"dd88d7c11f0d14ccbe514a4bad30a75821c68f4b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"349e94fe75f8d40b003df2266ec0bd03b498a302","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    def take_action(self, parsed_args):"},{"line_number":73,"context_line":"        image_client \u003d self.app.client_manager.image"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        namespace \u003d image_client.get_metadef_namespace("},{"line_number":76,"context_line":"            parsed_args.namespace,"},{"line_number":77,"context_line":"        )"},{"line_number":78,"context_line":"        data \u003d image_client.create_metadef_object("},{"line_number":79,"context_line":"            namespace\u003dnamespace.namespace,"},{"line_number":80,"context_line":"            name\u003dparsed_args.name,"}],"source_content_type":"text/x-python","patch_set":5,"id":"437534e4_f0fcecf8","line":77,"range":{"start_line":75,"start_character":8,"end_line":77,"end_character":9},"in_reply_to":"e0c73661_3317fb5f","updated":"2023-10-27 13:35:14.000000000","message":"Done","commit_id":"dd88d7c11f0d14ccbe514a4bad30a75821c68f4b"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"e549a7f3f1671c4d9987da017da1efddb5ea012e","unresolved":true,"context_lines":[{"line_number":72,"context_line":"    def take_action(self, parsed_args):"},{"line_number":73,"context_line":"        image_client \u003d self.app.client_manager.image"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        namespace \u003d image_client.get_metadef_namespace("},{"line_number":76,"context_line":"            parsed_args.namespace,"},{"line_number":77,"context_line":"        )"},{"line_number":78,"context_line":"        data \u003d image_client.create_metadef_object("},{"line_number":79,"context_line":"            namespace\u003dnamespace.namespace,"},{"line_number":80,"context_line":"            name\u003dparsed_args.name,"}],"source_content_type":"text/x-python","patch_set":5,"id":"238891fb_6b536dde","line":77,"range":{"start_line":75,"start_character":8,"end_line":77,"end_character":9},"in_reply_to":"ec91249a_1ecf326f","updated":"2023-09-29 05:55:52.000000000","message":"It will raise an error","commit_id":"dd88d7c11f0d14ccbe514a4bad30a75821c68f4b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1fcc0d5b5766baadfca488c42ea0625e6b77219d","unresolved":true,"context_lines":[{"line_number":51,"context_line":"            \"--namespace\","},{"line_number":52,"context_line":"            metavar\u003d\"\u003cnamespace\u003e\","},{"line_number":53,"context_line":"            help\u003d_("},{"line_number":54,"context_line":"                \"Metadef namespace to create the metadef object in (name or ID)\""},{"line_number":55,"context_line":"            ),"},{"line_number":56,"context_line":"        )"},{"line_number":57,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":6,"id":"f70589bd_fb27faf3","line":54,"range":{"start_line":54,"start_character":67,"end_line":54,"end_character":79},"updated":"2023-10-06 11:05:44.000000000","message":"per below, this should just read `(name)`.","commit_id":"4452fca701a66d3d18734c81a53b578a1ed81e9f"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"349e94fe75f8d40b003df2266ec0bd03b498a302","unresolved":false,"context_lines":[{"line_number":51,"context_line":"            \"--namespace\","},{"line_number":52,"context_line":"            metavar\u003d\"\u003cnamespace\u003e\","},{"line_number":53,"context_line":"            help\u003d_("},{"line_number":54,"context_line":"                \"Metadef namespace to create the metadef object in (name or ID)\""},{"line_number":55,"context_line":"            ),"},{"line_number":56,"context_line":"        )"},{"line_number":57,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":6,"id":"95b7ac05_6051a626","line":54,"range":{"start_line":54,"start_character":67,"end_line":54,"end_character":79},"in_reply_to":"f70589bd_fb27faf3","updated":"2023-10-27 13:35:14.000000000","message":"Done","commit_id":"4452fca701a66d3d18734c81a53b578a1ed81e9f"}],"openstackclient/tests/unit/image/v2/fakes.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1fcc0d5b5766baadfca488c42ea0625e6b77219d","unresolved":true,"context_lines":[{"line_number":239,"context_line":"    return tasks"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"class FakeMetadefNamespaceClient:"},{"line_number":243,"context_line":"    def __init__(self, **kwargs):"},{"line_number":244,"context_line":"        self.create_metadef_namespace \u003d mock.Mock()"},{"line_number":245,"context_line":"        self.delete_metadef_namespace \u003d mock.Mock()"},{"line_number":246,"context_line":"        self.metadef_namespaces \u003d mock.Mock()"},{"line_number":247,"context_line":"        self.get_metadef_namespace \u003d mock.Mock()"},{"line_number":248,"context_line":"        self.update_metadef_namespace \u003d mock.Mock()"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"        self.create_metadef_object \u003d mock.Mock()"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"        self.auth_token \u003d kwargs[\u0027token\u0027]"},{"line_number":253,"context_line":"        self.management_url \u003d kwargs[\u0027endpoint\u0027]"},{"line_number":254,"context_line":"        self.version \u003d 2.0"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"class TestMetadefNamespaces(utils.TestCommand):"},{"line_number":258,"context_line":"    def setUp(self):"},{"line_number":259,"context_line":"        super().setUp()"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"        self.app.client_manager.image \u003d FakeMetadefNamespaceClient("},{"line_number":262,"context_line":"            endpoint\u003dfakes.AUTH_URL,"},{"line_number":263,"context_line":"            token\u003dfakes.AUTH_TOKEN,"},{"line_number":264,"context_line":"        )"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"        self.app.client_manager.identity \u003d identity_fakes.FakeIdentityv3Client("},{"line_number":267,"context_line":"            endpoint\u003dfakes.AUTH_URL,"},{"line_number":268,"context_line":"            token\u003dfakes.AUTH_TOKEN,"},{"line_number":269,"context_line":"        )"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"def create_one_metadef_namespace(attrs\u003dNone):"}],"source_content_type":"text/x-python","patch_set":6,"id":"d768d733_04cb3a07","line":269,"range":{"start_line":242,"start_character":0,"end_line":269,"end_character":9},"updated":"2023-10-06 11:05:44.000000000","message":"Same comment as https://review.opendev.org/c/openstack/python-openstackclient/+/887048/5/openstackclient/tests/unit/image/v2/fakes.py You don\u0027t need/want this","commit_id":"4452fca701a66d3d18734c81a53b578a1ed81e9f"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"349e94fe75f8d40b003df2266ec0bd03b498a302","unresolved":false,"context_lines":[{"line_number":239,"context_line":"    return tasks"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"class FakeMetadefNamespaceClient:"},{"line_number":243,"context_line":"    def __init__(self, **kwargs):"},{"line_number":244,"context_line":"        self.create_metadef_namespace \u003d mock.Mock()"},{"line_number":245,"context_line":"        self.delete_metadef_namespace \u003d mock.Mock()"},{"line_number":246,"context_line":"        self.metadef_namespaces \u003d mock.Mock()"},{"line_number":247,"context_line":"        self.get_metadef_namespace \u003d mock.Mock()"},{"line_number":248,"context_line":"        self.update_metadef_namespace \u003d mock.Mock()"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"        self.create_metadef_object \u003d mock.Mock()"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"        self.auth_token \u003d kwargs[\u0027token\u0027]"},{"line_number":253,"context_line":"        self.management_url \u003d kwargs[\u0027endpoint\u0027]"},{"line_number":254,"context_line":"        self.version \u003d 2.0"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"class TestMetadefNamespaces(utils.TestCommand):"},{"line_number":258,"context_line":"    def setUp(self):"},{"line_number":259,"context_line":"        super().setUp()"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"        self.app.client_manager.image \u003d FakeMetadefNamespaceClient("},{"line_number":262,"context_line":"            endpoint\u003dfakes.AUTH_URL,"},{"line_number":263,"context_line":"            token\u003dfakes.AUTH_TOKEN,"},{"line_number":264,"context_line":"        )"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"        self.app.client_manager.identity \u003d identity_fakes.FakeIdentityv3Client("},{"line_number":267,"context_line":"            endpoint\u003dfakes.AUTH_URL,"},{"line_number":268,"context_line":"            token\u003dfakes.AUTH_TOKEN,"},{"line_number":269,"context_line":"        )"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"def create_one_metadef_namespace(attrs\u003dNone):"}],"source_content_type":"text/x-python","patch_set":6,"id":"e8584987_1b13d412","line":269,"range":{"start_line":242,"start_character":0,"end_line":269,"end_character":9},"in_reply_to":"d768d733_04cb3a07","updated":"2023-10-27 13:35:14.000000000","message":"Done","commit_id":"4452fca701a66d3d18734c81a53b578a1ed81e9f"}],"openstackclient/tests/unit/image/v2/test_metadef_objects.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1fcc0d5b5766baadfca488c42ea0625e6b77219d","unresolved":true,"context_lines":[{"line_number":13,"context_line":"#   under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from openstackclient.image.v2 import metadef_objects"},{"line_number":16,"context_line":"from openstackclient.tests.unit.image.v2 import fakes as md_objects_fakes"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"class TestMetadefObjects(md_objects_fakes.TestMetadefNamespaces):"}],"source_content_type":"text/x-python","patch_set":6,"id":"d7d08b8a_b3d619c4","line":16,"range":{"start_line":16,"start_character":54,"end_line":16,"end_character":73},"updated":"2023-10-06 11:05:44.000000000","message":"Same comment as https://review.opendev.org/c/openstack/python-openstackclient/+/887048/5/openstackclient/tests/unit/image/v2/test_metadef_objects.py: why the aliasing?","commit_id":"4452fca701a66d3d18734c81a53b578a1ed81e9f"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"349e94fe75f8d40b003df2266ec0bd03b498a302","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#   under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from openstackclient.image.v2 import metadef_objects"},{"line_number":16,"context_line":"from openstackclient.tests.unit.image.v2 import fakes as md_objects_fakes"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"class TestMetadefObjects(md_objects_fakes.TestMetadefNamespaces):"}],"source_content_type":"text/x-python","patch_set":6,"id":"14a911bb_401f7651","line":16,"range":{"start_line":16,"start_character":54,"end_line":16,"end_character":73},"in_reply_to":"d7d08b8a_b3d619c4","updated":"2023-10-27 13:35:14.000000000","message":"Done","commit_id":"4452fca701a66d3d18734c81a53b578a1ed81e9f"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1fcc0d5b5766baadfca488c42ea0625e6b77219d","unresolved":true,"context_lines":[{"line_number":16,"context_line":"from openstackclient.tests.unit.image.v2 import fakes as md_objects_fakes"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"class TestMetadefObjects(md_objects_fakes.TestMetadefNamespaces):"},{"line_number":20,"context_line":"    def setUp(self):"},{"line_number":21,"context_line":"        super().setUp()"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"        # Get shortcuts to mocked image client"},{"line_number":24,"context_line":"        self.client \u003d self.app.client_manager.image"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"        # Get shortcut to the Mocks in identity client"},{"line_number":27,"context_line":"        self.project_mock \u003d self.app.client_manager.identity.projects"},{"line_number":28,"context_line":"        self.project_mock.reset_mock()"},{"line_number":29,"context_line":"        self.domain_mock \u003d self.app.client_manager.identity.domains"},{"line_number":30,"context_line":"        self.domain_mock.reset_mock()"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"class TestMetadefObjectsCreate(TestMetadefObjects):"}],"source_content_type":"text/x-python","patch_set":6,"id":"1e31e6f2_4b056c3e","line":30,"range":{"start_line":19,"start_character":0,"end_line":30,"end_character":37},"updated":"2023-10-06 11:05:44.000000000","message":"Same comment as https://review.opendev.org/c/openstack/python-openstackclient/+/887048/5/openstackclient/tests/unit/image/v2/test_metadef_objects.py: you don\u0027t need this","commit_id":"4452fca701a66d3d18734c81a53b578a1ed81e9f"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"349e94fe75f8d40b003df2266ec0bd03b498a302","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from openstackclient.tests.unit.image.v2 import fakes as md_objects_fakes"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"class TestMetadefObjects(md_objects_fakes.TestMetadefNamespaces):"},{"line_number":20,"context_line":"    def setUp(self):"},{"line_number":21,"context_line":"        super().setUp()"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"        # Get shortcuts to mocked image client"},{"line_number":24,"context_line":"        self.client \u003d self.app.client_manager.image"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"        # Get shortcut to the Mocks in identity client"},{"line_number":27,"context_line":"        self.project_mock \u003d self.app.client_manager.identity.projects"},{"line_number":28,"context_line":"        self.project_mock.reset_mock()"},{"line_number":29,"context_line":"        self.domain_mock \u003d self.app.client_manager.identity.domains"},{"line_number":30,"context_line":"        self.domain_mock.reset_mock()"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"class TestMetadefObjectsCreate(TestMetadefObjects):"}],"source_content_type":"text/x-python","patch_set":6,"id":"d1f544b8_f45f8ad0","line":30,"range":{"start_line":19,"start_character":0,"end_line":30,"end_character":37},"in_reply_to":"1e31e6f2_4b056c3e","updated":"2023-10-27 13:35:14.000000000","message":"Done","commit_id":"4452fca701a66d3d18734c81a53b578a1ed81e9f"}],"setup.cfg":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1fcc0d5b5766baadfca488c42ea0625e6b77219d","unresolved":true,"context_lines":[{"line_number":396,"context_line":"    image_metadef_namespace_list \u003d openstackclient.image.v2.metadef_namespaces:ListMetadefNameSpaces"},{"line_number":397,"context_line":"    image_metadef_namespace_set \u003d openstackclient.image.v2.metadef_namespaces:SetMetadefNameSpace"},{"line_number":398,"context_line":"    image_metadef_namespace_show \u003d openstackclient.image.v2.metadef_namespaces:ShowMetadefNameSpace"},{"line_number":399,"context_line":"    image_metadef_object_create \u003d openstackclient.image.v2.metadef_objects:CreateMetadefObjects"},{"line_number":400,"context_line":""},{"line_number":401,"context_line":"    image_metadef_resource_type_list \u003d openstackclient.image.v2.metadef_resource_types:ListMetadefResourceTypes"},{"line_number":402,"context_line":""}],"source_content_type":"text/x-ttcn-cfg","patch_set":6,"id":"44333600_d41b8d50","line":399,"updated":"2023-10-06 11:05:44.000000000","message":"Can you add a newline above this to separate the group?","commit_id":"4452fca701a66d3d18734c81a53b578a1ed81e9f"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"349e94fe75f8d40b003df2266ec0bd03b498a302","unresolved":false,"context_lines":[{"line_number":396,"context_line":"    image_metadef_namespace_list \u003d openstackclient.image.v2.metadef_namespaces:ListMetadefNameSpaces"},{"line_number":397,"context_line":"    image_metadef_namespace_set \u003d openstackclient.image.v2.metadef_namespaces:SetMetadefNameSpace"},{"line_number":398,"context_line":"    image_metadef_namespace_show \u003d openstackclient.image.v2.metadef_namespaces:ShowMetadefNameSpace"},{"line_number":399,"context_line":"    image_metadef_object_create \u003d openstackclient.image.v2.metadef_objects:CreateMetadefObjects"},{"line_number":400,"context_line":""},{"line_number":401,"context_line":"    image_metadef_resource_type_list \u003d openstackclient.image.v2.metadef_resource_types:ListMetadefResourceTypes"},{"line_number":402,"context_line":""}],"source_content_type":"text/x-ttcn-cfg","patch_set":6,"id":"2432f8f6_4d9167df","line":399,"in_reply_to":"44333600_d41b8d50","updated":"2023-10-27 13:35:14.000000000","message":"Done","commit_id":"4452fca701a66d3d18734c81a53b578a1ed81e9f"}]}
