)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"aecd06bfc2480b07e31d2b4e35d7c5a1e8ec446e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"c497a4c6_b99d0608","updated":"2023-05-03 03:49:23.000000000","message":"Missing entry in \u0027doc/source/cli/data/glance.csv\u0027 file and releasenotes.\nI think its also missing sdk support patch.","commit_id":"9a26485867f290e363892f6e1ce9777ec451982a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d19c4d370acd7fa7daaf83b7dc9fcc3477135151","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"23563349_2ee1023f","updated":"2023-05-08 09:44:30.000000000","message":"-1 is to catch your attention","commit_id":"62e3891d5bb8ad4434176bd3fba0301e840f7ae7"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"5e41d96217e6a7607ce9813edab64ae4471cb0f5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"ac75c1c1_69328957","updated":"2023-05-16 16:53:44.000000000","message":"A suggestion inline.","commit_id":"62e3891d5bb8ad4434176bd3fba0301e840f7ae7"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"8da32583daf60f7747e31796e5d4f0004b600975","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"15b7d976_227f810d","updated":"2023-05-08 09:28:24.000000000","message":"Looks good to me, thank you!","commit_id":"62e3891d5bb8ad4434176bd3fba0301e840f7ae7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"67c8803b274ab61ecf00e0a0c374c81af0960146","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"1a7751e4_d9bb1f89","updated":"2023-06-06 11:43:51.000000000","message":"Sorry, I have one further suggestion here. Feel free to split the import info stuff into a separate file if that would help?","commit_id":"91da36b6176a48b5478de2fa0749a7a2e5e59de9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d22cd8bfb7d86b0336bb667691676934d433ae99","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"b42a30a3_290c60dd","updated":"2023-07-17 15:31:34.000000000","message":"You forgot to delete the old command when you moved it.\n\nCan you add a functional test that ensure this returns a non-empty list? We will always have at least one import method, yes?","commit_id":"dd6b696a3c7639769afdd869d5567896f01ff28c"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"71e62aee0512a63ea6429e988472009be39744c5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"57695546_655379b5","in_reply_to":"b42a30a3_290c60dd","updated":"2023-07-20 10:48:10.000000000","message":"Ack, yes by default we have glance-direct,web-download and copy-image methods available","commit_id":"dd6b696a3c7639769afdd869d5567896f01ff28c"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"cd6b817f8bec1eb737ffd8996704229f8e66cd5f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"aa7a70d5_18cc9388","updated":"2023-08-01 15:07:19.000000000","message":"Few suggestions inline","commit_id":"e34dd9165f6e13b24ed920b65964af761a06689e"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"dab5b9d66c284307099ae9bc22a733ac98e1a53b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"266b60cb_65d3395b","updated":"2023-08-08 17:52:00.000000000","message":"My concerns have been addressed.","commit_id":"b347347986ebc8677c1d656299020fe58b1dc2a3"}],"doc/source/cli/data/glance.csv":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3b3846920607b8b8d63ba032f14cdbc3a4eba274","unresolved":true,"context_lines":[{"line_number":57,"context_line":"member-get,,Show details of an image member"},{"line_number":58,"context_line":"member-list,image member list,Describe sharing permissions by image."},{"line_number":59,"context_line":"member-update,image set --accept --reject --status,Update the status of a member for a given image."},{"line_number":60,"context_line":"stores-delete,image stores delete,Delete image from specific store."},{"line_number":61,"context_line":"stores-info,,Print available backends from Glance."},{"line_number":62,"context_line":"task-create,WONTFIX,Create a new task."},{"line_number":63,"context_line":"task-list,image task list,List tasks you can access."}],"source_content_type":"application/octet-stream","patch_set":4,"id":"5fd6745b_46d9aa81","line":60,"range":{"start_line":60,"start_character":14,"end_line":60,"end_character":33},"updated":"2023-06-02 16:44:35.000000000","message":"This isn\u0027t correct now. Should read\n\n```\nimage delete --store\n```","commit_id":"9f9d0ee61e81cd6ee66d8ef84515bb5c6a2d47d4"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"67c8803b274ab61ecf00e0a0c374c81af0960146","unresolved":false,"context_lines":[{"line_number":57,"context_line":"member-get,,Show details of an image member"},{"line_number":58,"context_line":"member-list,image member list,Describe sharing permissions by image."},{"line_number":59,"context_line":"member-update,image set --accept --reject --status,Update the status of a member for a given image."},{"line_number":60,"context_line":"stores-delete,image stores delete,Delete image from specific store."},{"line_number":61,"context_line":"stores-info,,Print available backends from Glance."},{"line_number":62,"context_line":"task-create,WONTFIX,Create a new task."},{"line_number":63,"context_line":"task-list,image task list,List tasks you can access."}],"source_content_type":"application/octet-stream","patch_set":4,"id":"316e2a58_a32f33d4","line":60,"range":{"start_line":60,"start_character":14,"end_line":60,"end_character":33},"in_reply_to":"5fd6745b_46d9aa81","updated":"2023-06-06 11:43:51.000000000","message":"Done","commit_id":"9f9d0ee61e81cd6ee66d8ef84515bb5c6a2d47d4"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"cd6b817f8bec1eb737ffd8996704229f8e66cd5f","unresolved":true,"context_lines":[{"line_number":18,"context_line":"image-tasks,,Get tasks associated with image."},{"line_number":19,"context_line":"image-update,image set,Update an existing image."},{"line_number":20,"context_line":"image-upload,,Upload data for a specific image."},{"line_number":21,"context_line":"import-info,image import info,Print import methods available from Glance."},{"line_number":22,"context_line":"location-add,,Add a location (and related metadata) to an image."},{"line_number":23,"context_line":"location-delete,,Remove locations (and related metadata) from an image."},{"line_number":24,"context_line":"location-update,,Update metadata of an image\u0027s location."}],"source_content_type":"application/octet-stream","patch_set":8,"id":"fd03ebf0_707b3b41","line":21,"range":{"start_line":21,"start_character":30,"end_line":21,"end_character":73},"updated":"2023-08-01 15:07:19.000000000","message":"nit: Show available import methods from Glance.","commit_id":"e34dd9165f6e13b24ed920b65964af761a06689e"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"43b9a0a5bdbb3bb89cb36c401a5fa9e3ce624fe7","unresolved":false,"context_lines":[{"line_number":18,"context_line":"image-tasks,,Get tasks associated with image."},{"line_number":19,"context_line":"image-update,image set,Update an existing image."},{"line_number":20,"context_line":"image-upload,,Upload data for a specific image."},{"line_number":21,"context_line":"import-info,image import info,Print import methods available from Glance."},{"line_number":22,"context_line":"location-add,,Add a location (and related metadata) to an image."},{"line_number":23,"context_line":"location-delete,,Remove locations (and related metadata) from an image."},{"line_number":24,"context_line":"location-update,,Update metadata of an image\u0027s location."}],"source_content_type":"application/octet-stream","patch_set":8,"id":"42a4d3ae_037ec75e","line":21,"range":{"start_line":21,"start_character":30,"end_line":21,"end_character":73},"in_reply_to":"fd03ebf0_707b3b41","updated":"2023-08-07 17:38:54.000000000","message":"Done","commit_id":"e34dd9165f6e13b24ed920b65964af761a06689e"}],"openstackclient/image/v2/image.py":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"be6a735159be946562a3c4c4995eb5ed2d989e49","unresolved":true,"context_lines":[{"line_number":1877,"context_line":"                ignore_missing\u003dFalse,"},{"line_number":1878,"context_line":"            )"},{"line_number":1879,"context_line":"            image_client.delete_image(image_obj.id, store\u003dparsed_args.store)"},{"line_number":1880,"context_line":"        except sdk_exceptions.ResourceNotFound:"},{"line_number":1881,"context_line":"            msg \u003d _("},{"line_number":1882,"context_line":"                \u0027Multi Backend support is not enabled\u0027"},{"line_number":1883,"context_line":"            )"},{"line_number":1884,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":1885,"context_line":"        except Exception as e:"},{"line_number":1886,"context_line":"            msg \u003d _("},{"line_number":1887,"context_line":"                \"Unable to delete image with name or \""},{"line_number":1888,"context_line":"                \"ID \u0027%(image)s\u0027 from store \u0027%(store)s\u0027: %(e)s\""},{"line_number":1889,"context_line":"            ) % {"},{"line_number":1890,"context_line":"                \u0027image\u0027: parsed_args.image,"},{"line_number":1891,"context_line":"                \u0027store\u0027: parsed_args.store,"},{"line_number":1892,"context_line":"                \u0027e\u0027: e,"},{"line_number":1893,"context_line":"            }"},{"line_number":1894,"context_line":"            raise exceptions.CommandError(msg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3d17ba1d_45e72a8e","line":1894,"range":{"start_line":1880,"start_character":7,"end_line":1894,"end_character":46},"updated":"2023-05-03 03:57:55.000000000","message":"I think this order is causing problem in unit test to verify the error message.\n\nThen first error message should be shown if enabled_backends is not defined in glance-api.conf and 2nd should be shown if image failed to delete from store.","commit_id":"9a26485867f290e363892f6e1ce9777ec451982a"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"0e80dba40e09c2fd1db47d4cc5313b5d6e21b07f","unresolved":false,"context_lines":[{"line_number":1877,"context_line":"                ignore_missing\u003dFalse,"},{"line_number":1878,"context_line":"            )"},{"line_number":1879,"context_line":"            image_client.delete_image(image_obj.id, store\u003dparsed_args.store)"},{"line_number":1880,"context_line":"        except sdk_exceptions.ResourceNotFound:"},{"line_number":1881,"context_line":"            msg \u003d _("},{"line_number":1882,"context_line":"                \u0027Multi Backend support is not enabled\u0027"},{"line_number":1883,"context_line":"            )"},{"line_number":1884,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":1885,"context_line":"        except Exception as e:"},{"line_number":1886,"context_line":"            msg \u003d _("},{"line_number":1887,"context_line":"                \"Unable to delete image with name or \""},{"line_number":1888,"context_line":"                \"ID \u0027%(image)s\u0027 from store \u0027%(store)s\u0027: %(e)s\""},{"line_number":1889,"context_line":"            ) % {"},{"line_number":1890,"context_line":"                \u0027image\u0027: parsed_args.image,"},{"line_number":1891,"context_line":"                \u0027store\u0027: parsed_args.store,"},{"line_number":1892,"context_line":"                \u0027e\u0027: e,"},{"line_number":1893,"context_line":"            }"},{"line_number":1894,"context_line":"            raise exceptions.CommandError(msg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"b9bc7093_9f9619ca","line":1894,"range":{"start_line":1880,"start_character":7,"end_line":1894,"end_character":46},"in_reply_to":"3d17ba1d_45e72a8e","updated":"2023-05-04 08:42:25.000000000","message":"Ack","commit_id":"9a26485867f290e363892f6e1ce9777ec451982a"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"847a410f6a35373e32aa8b168421d24b4972da2a","unresolved":true,"context_lines":[{"line_number":1874,"context_line":"                                      store\u003dparsed_args.store,"},{"line_number":1875,"context_line":"                                      ignore_missing\u003dFalse)"},{"line_number":1876,"context_line":"        except sdk_exceptions.ResourceNotFound:"},{"line_number":1877,"context_line":"            msg \u003d _("},{"line_number":1878,"context_line":"                \u0027Multi Backend support is not enabled or \u0027"},{"line_number":1879,"context_line":"                \u0027Image/store not found.\u0027"},{"line_number":1880,"context_line":"            )"},{"line_number":1881,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":1882,"context_line":"        except Exception as e:"},{"line_number":1883,"context_line":"            msg \u003d _("},{"line_number":1884,"context_line":"                \"Unable to delete image with name or \""}],"source_content_type":"text/x-python","patch_set":2,"id":"fc956bb0_fce90dcd","line":1881,"range":{"start_line":1877,"start_character":12,"end_line":1881,"end_character":46},"updated":"2023-05-04 09:32:23.000000000","message":"This message is very confusing and does not point out exact failure.\nDon\u0027t we get error message (similar to line 1882 from which we can check and display exact failure reason?\n\nsomething like;\n\nexcept sdk_exceptions.ResourceNotFound as e:\n    msg \u003d _(\"Unable to process request: %(e)s\") % {\n            \u0027e\u0027: e,\n    }\n    raise exceptions.CommandError(msg)","commit_id":"9f7d9617ee0501916b642017afb31b2392265812"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"0f889629014346de00506ff1edbaf11327b7f17b","unresolved":false,"context_lines":[{"line_number":1874,"context_line":"                                      store\u003dparsed_args.store,"},{"line_number":1875,"context_line":"                                      ignore_missing\u003dFalse)"},{"line_number":1876,"context_line":"        except sdk_exceptions.ResourceNotFound:"},{"line_number":1877,"context_line":"            msg \u003d _("},{"line_number":1878,"context_line":"                \u0027Multi Backend support is not enabled or \u0027"},{"line_number":1879,"context_line":"                \u0027Image/store not found.\u0027"},{"line_number":1880,"context_line":"            )"},{"line_number":1881,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":1882,"context_line":"        except Exception as e:"},{"line_number":1883,"context_line":"            msg \u003d _("},{"line_number":1884,"context_line":"                \"Unable to delete image with name or \""}],"source_content_type":"text/x-python","patch_set":2,"id":"fe766c77_68e44bf0","line":1881,"range":{"start_line":1877,"start_character":12,"end_line":1881,"end_character":46},"in_reply_to":"fc956bb0_fce90dcd","updated":"2023-05-08 07:24:47.000000000","message":"Done","commit_id":"9f7d9617ee0501916b642017afb31b2392265812"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d19c4d370acd7fa7daaf83b7dc9fcc3477135151","unresolved":true,"context_lines":[{"line_number":1842,"context_line":"        return zip(*sorted(info.items()))"},{"line_number":1843,"context_line":""},{"line_number":1844,"context_line":""},{"line_number":1845,"context_line":"class DeleteImageFromStore(command.Command):"},{"line_number":1846,"context_line":"    _description \u003d _(\"Delete image from specific store.\")"},{"line_number":1847,"context_line":""},{"line_number":1848,"context_line":"    def get_parser(self, prog_name):"}],"source_content_type":"text/x-python","patch_set":3,"id":"bb330cfd_23fda160","line":1845,"updated":"2023-05-08 09:44:30.000000000","message":"Rather than doing this, couldn\u0027t we simply add a \u0027--store\u0027 parameter to the \u0027DeleteImage\u0027 command above? It\u0027s a variant of the same thing, right?","commit_id":"62e3891d5bb8ad4434176bd3fba0301e840f7ae7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3b3846920607b8b8d63ba032f14cdbc3a4eba274","unresolved":false,"context_lines":[{"line_number":1842,"context_line":"        return zip(*sorted(info.items()))"},{"line_number":1843,"context_line":""},{"line_number":1844,"context_line":""},{"line_number":1845,"context_line":"class DeleteImageFromStore(command.Command):"},{"line_number":1846,"context_line":"    _description \u003d _(\"Delete image from specific store.\")"},{"line_number":1847,"context_line":""},{"line_number":1848,"context_line":"    def get_parser(self, prog_name):"}],"source_content_type":"text/x-python","patch_set":3,"id":"df228b58_2900e32e","line":1845,"in_reply_to":"125e9ebf_e9ad7679","updated":"2023-06-02 16:44:35.000000000","message":"Ack","commit_id":"62e3891d5bb8ad4434176bd3fba0301e840f7ae7"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"d7117b33dbe8ccc8af67a4037a34b61a76bbcc82","unresolved":true,"context_lines":[{"line_number":1842,"context_line":"        return zip(*sorted(info.items()))"},{"line_number":1843,"context_line":""},{"line_number":1844,"context_line":""},{"line_number":1845,"context_line":"class DeleteImageFromStore(command.Command):"},{"line_number":1846,"context_line":"    _description \u003d _(\"Delete image from specific store.\")"},{"line_number":1847,"context_line":""},{"line_number":1848,"context_line":"    def get_parser(self, prog_name):"}],"source_content_type":"text/x-python","patch_set":3,"id":"125e9ebf_e9ad7679","line":1845,"in_reply_to":"453fddf5_a2794e24","updated":"2023-06-01 10:05:40.000000000","message":"As discusssed in the glance meeting we will be working on deletion from multiple stores in the later patches.","commit_id":"62e3891d5bb8ad4434176bd3fba0301e840f7ae7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3376f35611f8feecde7e382aabb61e4e07e15918","unresolved":true,"context_lines":[{"line_number":1842,"context_line":"        return zip(*sorted(info.items()))"},{"line_number":1843,"context_line":""},{"line_number":1844,"context_line":""},{"line_number":1845,"context_line":"class DeleteImageFromStore(command.Command):"},{"line_number":1846,"context_line":"    _description \u003d _(\"Delete image from specific store.\")"},{"line_number":1847,"context_line":""},{"line_number":1848,"context_line":"    def get_parser(self, prog_name):"}],"source_content_type":"text/x-python","patch_set":3,"id":"453fddf5_a2794e24","line":1845,"in_reply_to":"77ec0652_1bcfafe6","updated":"2023-05-17 09:02:11.000000000","message":"For sure, though we\u0027d normally do this via repeated options rather than CSV option values, e.g.\n\n  --store store1 --store store2\n\nYou simply need to use the \u0027append\u0027 action for this to work","commit_id":"62e3891d5bb8ad4434176bd3fba0301e840f7ae7"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"98ef184d9981c23d7e76b64a8fa3960566d71f31","unresolved":true,"context_lines":[{"line_number":1842,"context_line":"        return zip(*sorted(info.items()))"},{"line_number":1843,"context_line":""},{"line_number":1844,"context_line":""},{"line_number":1845,"context_line":"class DeleteImageFromStore(command.Command):"},{"line_number":1846,"context_line":"    _description \u003d _(\"Delete image from specific store.\")"},{"line_number":1847,"context_line":""},{"line_number":1848,"context_line":"    def get_parser(self, prog_name):"}],"source_content_type":"text/x-python","patch_set":3,"id":"c73b1b41_60d6445e","line":1845,"in_reply_to":"bb330cfd_23fda160","updated":"2023-05-08 09:50:42.000000000","message":"+1 good option\n\nWe opted to keep it different to not cause any regression to existing commands.","commit_id":"62e3891d5bb8ad4434176bd3fba0301e840f7ae7"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"5e41d96217e6a7607ce9813edab64ae4471cb0f5","unresolved":true,"context_lines":[{"line_number":1842,"context_line":"        return zip(*sorted(info.items()))"},{"line_number":1843,"context_line":""},{"line_number":1844,"context_line":""},{"line_number":1845,"context_line":"class DeleteImageFromStore(command.Command):"},{"line_number":1846,"context_line":"    _description \u003d _(\"Delete image from specific store.\")"},{"line_number":1847,"context_line":""},{"line_number":1848,"context_line":"    def get_parser(self, prog_name):"}],"source_content_type":"text/x-python","patch_set":3,"id":"77ec0652_1bcfafe6","line":1845,"in_reply_to":"c73b1b41_60d6445e","updated":"2023-05-16 16:53:44.000000000","message":"Could we do \"--stores store1\" and \"--stores store1,store2\" to delete a given image from 1 or more stores? And not passing the option would delete the image from every store?","commit_id":"62e3891d5bb8ad4434176bd3fba0301e840f7ae7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"47346062f613fb106fcb0752050a6f117945ec58","unresolved":true,"context_lines":[{"line_number":1851,"context_line":"            \"image\","},{"line_number":1852,"context_line":"            metavar\u003d\"\u003cimage\u003e\","},{"line_number":1853,"context_line":"            help\u003d_(\"Image to delete (name or ID)\"),"},{"line_number":1854,"context_line":"        )"},{"line_number":1855,"context_line":"        stores_group \u003d parser.add_mutually_exclusive_group()"},{"line_number":1856,"context_line":"        stores_group.add_argument("},{"line_number":1857,"context_line":"            \u0027--store\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"a446e5cf_09007064","line":1854,"updated":"2023-05-08 09:52:01.000000000","message":"I wonder if we want to allow deleting multiple images from the same store? Seems like something folks would use? We\u0027d get that for free with the DeleteImage command, of course, though we should decide if it makes sense there","commit_id":"62e3891d5bb8ad4434176bd3fba0301e840f7ae7"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"46f7e49038adf0bc99afd4ef7cee7d0e9ff2044e","unresolved":false,"context_lines":[{"line_number":1851,"context_line":"            \"image\","},{"line_number":1852,"context_line":"            metavar\u003d\"\u003cimage\u003e\","},{"line_number":1853,"context_line":"            help\u003d_(\"Image to delete (name or ID)\"),"},{"line_number":1854,"context_line":"        )"},{"line_number":1855,"context_line":"        stores_group \u003d parser.add_mutually_exclusive_group()"},{"line_number":1856,"context_line":"        stores_group.add_argument("},{"line_number":1857,"context_line":"            \u0027--store\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"92255d40_025482fe","line":1854,"in_reply_to":"0518f8ba_0e79ee10","updated":"2023-05-09 09:41:55.000000000","message":"Ack","commit_id":"62e3891d5bb8ad4434176bd3fba0301e840f7ae7"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"223f582491f932572fb061ea60dd7e5c96ba08ff","unresolved":true,"context_lines":[{"line_number":1851,"context_line":"            \"image\","},{"line_number":1852,"context_line":"            metavar\u003d\"\u003cimage\u003e\","},{"line_number":1853,"context_line":"            help\u003d_(\"Image to delete (name or ID)\"),"},{"line_number":1854,"context_line":"        )"},{"line_number":1855,"context_line":"        stores_group \u003d parser.add_mutually_exclusive_group()"},{"line_number":1856,"context_line":"        stores_group.add_argument("},{"line_number":1857,"context_line":"            \u0027--store\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"0518f8ba_0e79ee10","line":1854,"in_reply_to":"a446e5cf_09007064","updated":"2023-05-08 13:45:08.000000000","message":"We will discuss this internal in glance meeting and if sounds reasonable then will work on that in different patch.\nThank you for suggesting it.\n\nMridula, please raise this topic in upcoming glance weekly meeting.","commit_id":"62e3891d5bb8ad4434176bd3fba0301e840f7ae7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3b3846920607b8b8d63ba032f14cdbc3a4eba274","unresolved":true,"context_lines":[{"line_number":658,"context_line":"            metavar\u003d\u0027\u003cSTORE\u003e\u0027,"},{"line_number":659,"context_line":"            default\u003dNone,"},{"line_number":660,"context_line":"            dest\u003d\u0027store\u0027,"},{"line_number":661,"context_line":"            help\u003d_(\u0027Store to delete image from.\u0027),"},{"line_number":662,"context_line":"        )"},{"line_number":663,"context_line":"        return parser"},{"line_number":664,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"8347afd0_b75ebed7","line":661,"range":{"start_line":661,"start_character":36,"end_line":661,"end_character":41},"updated":"2023-06-02 16:44:35.000000000","message":"image(s)","commit_id":"9f9d0ee61e81cd6ee66d8ef84515bb5c6a2d47d4"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"67c8803b274ab61ecf00e0a0c374c81af0960146","unresolved":false,"context_lines":[{"line_number":658,"context_line":"            metavar\u003d\u0027\u003cSTORE\u003e\u0027,"},{"line_number":659,"context_line":"            default\u003dNone,"},{"line_number":660,"context_line":"            dest\u003d\u0027store\u0027,"},{"line_number":661,"context_line":"            help\u003d_(\u0027Store to delete image from.\u0027),"},{"line_number":662,"context_line":"        )"},{"line_number":663,"context_line":"        return parser"},{"line_number":664,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"0cd9dd44_c45e188a","line":661,"range":{"start_line":661,"start_character":36,"end_line":661,"end_character":41},"in_reply_to":"8347afd0_b75ebed7","updated":"2023-06-06 11:43:51.000000000","message":"Done","commit_id":"9f9d0ee61e81cd6ee66d8ef84515bb5c6a2d47d4"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"67c8803b274ab61ecf00e0a0c374c81af0960146","unresolved":true,"context_lines":[{"line_number":1835,"context_line":"        return zip(*sorted(info.items()))"},{"line_number":1836,"context_line":""},{"line_number":1837,"context_line":""},{"line_number":1838,"context_line":"class ImportInfo(command.ShowOne):"},{"line_number":1839,"context_line":"    _description \u003d _(\"Get import methods available\")"},{"line_number":1840,"context_line":""},{"line_number":1841,"context_line":"    def get_parser(self, prog_name):"}],"source_content_type":"text/x-python","patch_set":5,"id":"84a86b32_b4b8b170","line":1838,"updated":"2023-06-06 11:43:51.000000000","message":"I wonder if this belongs in a separate file? `import_info.py`, perhaps?","commit_id":"91da36b6176a48b5478de2fa0749a7a2e5e59de9"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"71e62aee0512a63ea6429e988472009be39744c5","unresolved":false,"context_lines":[{"line_number":1835,"context_line":"        return zip(*sorted(info.items()))"},{"line_number":1836,"context_line":""},{"line_number":1837,"context_line":""},{"line_number":1838,"context_line":"class ImportInfo(command.ShowOne):"},{"line_number":1839,"context_line":"    _description \u003d _(\"Get import methods available\")"},{"line_number":1840,"context_line":""},{"line_number":1841,"context_line":"    def get_parser(self, prog_name):"}],"source_content_type":"text/x-python","patch_set":5,"id":"b7878063_9cea6f3c","line":1838,"in_reply_to":"5c2012a6_fd33c0e6","updated":"2023-07-20 10:48:10.000000000","message":"Done","commit_id":"91da36b6176a48b5478de2fa0749a7a2e5e59de9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d22cd8bfb7d86b0336bb667691676934d433ae99","unresolved":true,"context_lines":[{"line_number":1835,"context_line":"        return zip(*sorted(info.items()))"},{"line_number":1836,"context_line":""},{"line_number":1837,"context_line":""},{"line_number":1838,"context_line":"class ImportInfo(command.ShowOne):"},{"line_number":1839,"context_line":"    _description \u003d _(\"Get import methods available\")"},{"line_number":1840,"context_line":""},{"line_number":1841,"context_line":"    def get_parser(self, prog_name):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5c2012a6_fd33c0e6","line":1838,"in_reply_to":"7158baa3_0b8c0616","updated":"2023-07-17 15:31:34.000000000","message":"I think you forgot to delete this?","commit_id":"91da36b6176a48b5478de2fa0749a7a2e5e59de9"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"ada45c87928ea91bdb679558a89f04dd4f30d109","unresolved":true,"context_lines":[{"line_number":1835,"context_line":"        return zip(*sorted(info.items()))"},{"line_number":1836,"context_line":""},{"line_number":1837,"context_line":""},{"line_number":1838,"context_line":"class ImportInfo(command.ShowOne):"},{"line_number":1839,"context_line":"    _description \u003d _(\"Get import methods available\")"},{"line_number":1840,"context_line":""},{"line_number":1841,"context_line":"    def get_parser(self, prog_name):"}],"source_content_type":"text/x-python","patch_set":5,"id":"7158baa3_0b8c0616","line":1838,"in_reply_to":"84a86b32_b4b8b170","updated":"2023-07-13 08:12:38.000000000","message":"Ack, we can have a separate file as info.py","commit_id":"91da36b6176a48b5478de2fa0749a7a2e5e59de9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"67c8803b274ab61ecf00e0a0c374c81af0960146","unresolved":true,"context_lines":[{"line_number":1850,"context_line":"        info \u003d {}"},{"line_number":1851,"context_line":"        import_methods \u003d import_info.get(\u0027import_methods\u0027)"},{"line_number":1852,"context_line":"        info[\u0027import_methods\u0027] \u003d format_columns.DictColumn(import_methods)"},{"line_number":1853,"context_line":"        return zip(*sorted(info.items()))"}],"source_content_type":"text/x-python","patch_set":5,"id":"4d21c578_6d65b32a","line":1853,"updated":"2023-06-06 11:43:51.000000000","message":"I played around with this today. This returns:\n\n```\n❯ openstack image import info\n+----------------+----------------------------------------------------------------------------------------------------------------+\n| Field          | Value                                                                                                          |\n+----------------+----------------------------------------------------------------------------------------------------------------+\n| import_methods | description\u003d\u0027Import methods available.\u0027, type\u003d\u0027array\u0027, value\u003d\u0027[\u0027glance-direct\u0027, \u0027web-download\u0027, \u0027copy-image\u0027]\u0027 |\n+----------------+----------------------------------------------------------------------------------------------------------------+\n```\n\nIs there any reason to return all of that information? Couldn\u0027t we just return the `value`? Something like this:\n\n```\nimport_info \u003d image_client.get_import_info()\nimport_methods \u003d import_info.import_methods or {}\nreturn (\n    (\u0027import-methods\u0027,),\n    (format_columns.ListColumn(import_methods.get(\u0027value\u0027, [])),),\n)\n```\n\nThis would return:\n\n```\n❯ openstack image import info\n+----------------+-----------------------------------------+\n| Field          | Value                                   |\n+----------------+-----------------------------------------+\n| import-methods | copy-image, glance-direct, web-download |\n+----------------+-----------------------------------------+\n```\n\nwhich seems far more sensible?\n\nPS: Arguably the fact we return everything is a flaw in openstacksdk but changing things there will be difficult now, so we best do it here instead.","commit_id":"91da36b6176a48b5478de2fa0749a7a2e5e59de9"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"ada45c87928ea91bdb679558a89f04dd4f30d109","unresolved":false,"context_lines":[{"line_number":1850,"context_line":"        info \u003d {}"},{"line_number":1851,"context_line":"        import_methods \u003d import_info.get(\u0027import_methods\u0027)"},{"line_number":1852,"context_line":"        info[\u0027import_methods\u0027] \u003d format_columns.DictColumn(import_methods)"},{"line_number":1853,"context_line":"        return zip(*sorted(info.items()))"}],"source_content_type":"text/x-python","patch_set":5,"id":"a1124da2_16f0a4c5","line":1853,"in_reply_to":"4d21c578_6d65b32a","updated":"2023-07-13 08:12:38.000000000","message":"Ack","commit_id":"91da36b6176a48b5478de2fa0749a7a2e5e59de9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d22cd8bfb7d86b0336bb667691676934d433ae99","unresolved":true,"context_lines":[{"line_number":672,"context_line":"                    ignore_missing\u003dFalse,"},{"line_number":673,"context_line":"                )"},{"line_number":674,"context_line":"                image_client.delete_image("},{"line_number":675,"context_line":"                    image_obj.id, store\u003dparsed_args.store, ignore_missing\u003dFalse"},{"line_number":676,"context_line":"                )"},{"line_number":677,"context_line":"            except sdk_exceptions.ResourceNotFound as e:"},{"line_number":678,"context_line":"                if \u0027No Image found\u0027 in str(e):"}],"source_content_type":"text/x-python","patch_set":7,"id":"d61a59da_11deaed2","line":675,"updated":"2023-07-17 15:31:34.000000000","message":"nit: trailing comma","commit_id":"dd6b696a3c7639769afdd869d5567896f01ff28c"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"71e62aee0512a63ea6429e988472009be39744c5","unresolved":false,"context_lines":[{"line_number":672,"context_line":"                    ignore_missing\u003dFalse,"},{"line_number":673,"context_line":"                )"},{"line_number":674,"context_line":"                image_client.delete_image("},{"line_number":675,"context_line":"                    image_obj.id, store\u003dparsed_args.store, ignore_missing\u003dFalse"},{"line_number":676,"context_line":"                )"},{"line_number":677,"context_line":"            except sdk_exceptions.ResourceNotFound as e:"},{"line_number":678,"context_line":"                if \u0027No Image found\u0027 in str(e):"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf4e3b1f_f61da9c6","line":675,"in_reply_to":"d61a59da_11deaed2","updated":"2023-07-20 10:48:10.000000000","message":"Done","commit_id":"dd6b696a3c7639769afdd869d5567896f01ff28c"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"1082b43073af6e84ee4ef147c0c3f8fde631a436","unresolved":true,"context_lines":[{"line_number":679,"context_line":"                    msg \u003d _(\"Unable to process request: %(e)s\") % {\u0027e\u0027: e}"},{"line_number":680,"context_line":"                else:"},{"line_number":681,"context_line":"                    msg \u003d _(\"Multi Backend support not enabled.\")"},{"line_number":682,"context_line":"                raise exceptions.CommandError(msg)"},{"line_number":683,"context_line":"            except Exception as e:"},{"line_number":684,"context_line":"                del_result +\u003d 1"},{"line_number":685,"context_line":"                msg \u003d _("}],"source_content_type":"text/x-python","patch_set":7,"id":"134ad7be_e0dbdb04","line":682,"range":{"start_line":682,"start_character":22,"end_line":682,"end_character":45},"updated":"2023-07-18 15:13:00.000000000","message":"Do we have no other way of doing this? This does not look very robust.","commit_id":"dd6b696a3c7639769afdd869d5567896f01ff28c"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"b090f1ce9db959551e04d76b278ee2fce84f29d4","unresolved":true,"context_lines":[{"line_number":679,"context_line":"                    msg \u003d _(\"Unable to process request: %(e)s\") % {\u0027e\u0027: e}"},{"line_number":680,"context_line":"                else:"},{"line_number":681,"context_line":"                    msg \u003d _(\"Multi Backend support not enabled.\")"},{"line_number":682,"context_line":"                raise exceptions.CommandError(msg)"},{"line_number":683,"context_line":"            except Exception as e:"},{"line_number":684,"context_line":"                del_result +\u003d 1"},{"line_number":685,"context_line":"                msg \u003d _("}],"source_content_type":"text/x-python","patch_set":7,"id":"cf9ba2da_808c779a","line":682,"range":{"start_line":682,"start_character":22,"end_line":682,"end_character":45},"in_reply_to":"134ad7be_e0dbdb04","updated":"2023-08-01 14:53:47.000000000","message":"As discussed, that\u0027s probably what we can do as glance returns HTML error pages rather than JSON or something else machine readable","commit_id":"dd6b696a3c7639769afdd869d5567896f01ff28c"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"cd6b817f8bec1eb737ffd8996704229f8e66cd5f","unresolved":true,"context_lines":[{"line_number":679,"context_line":"                    msg \u003d _(\"Unable to process request: %(e)s\") % {\u0027e\u0027: e}"},{"line_number":680,"context_line":"                else:"},{"line_number":681,"context_line":"                    msg \u003d _(\"Multi Backend support not enabled.\")"},{"line_number":682,"context_line":"                raise exceptions.CommandError(msg)"},{"line_number":683,"context_line":"            except Exception as e:"},{"line_number":684,"context_line":"                del_result +\u003d 1"},{"line_number":685,"context_line":"                msg \u003d _("}],"source_content_type":"text/x-python","patch_set":7,"id":"ff773613_6e2b75fe","line":682,"range":{"start_line":682,"start_character":22,"end_line":682,"end_character":45},"in_reply_to":"cf9ba2da_808c779a","updated":"2023-08-01 15:07:19.000000000","message":"I think you can have two different try blocks\n1 is for find image which will catch Not found error\nand second one should be fir actual delete?","commit_id":"dd6b696a3c7639769afdd869d5567896f01ff28c"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"43b9a0a5bdbb3bb89cb36c401a5fa9e3ce624fe7","unresolved":true,"context_lines":[{"line_number":679,"context_line":"                    msg \u003d _(\"Unable to process request: %(e)s\") % {\u0027e\u0027: e}"},{"line_number":680,"context_line":"                else:"},{"line_number":681,"context_line":"                    msg \u003d _(\"Multi Backend support not enabled.\")"},{"line_number":682,"context_line":"                raise exceptions.CommandError(msg)"},{"line_number":683,"context_line":"            except Exception as e:"},{"line_number":684,"context_line":"                del_result +\u003d 1"},{"line_number":685,"context_line":"                msg \u003d _("}],"source_content_type":"text/x-python","patch_set":7,"id":"14264dc1_eb441bf4","line":682,"range":{"start_line":682,"start_character":22,"end_line":682,"end_character":45},"in_reply_to":"ff773613_6e2b75fe","updated":"2023-08-07 17:38:54.000000000","message":"Ack","commit_id":"dd6b696a3c7639769afdd869d5567896f01ff28c"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"cd6b817f8bec1eb737ffd8996704229f8e66cd5f","unresolved":true,"context_lines":[{"line_number":656,"context_line":"        parser.add_argument("},{"line_number":657,"context_line":"            \u0027--store\u0027,"},{"line_number":658,"context_line":"            metavar\u003d\u0027\u003cSTORE\u003e\u0027,"},{"line_number":659,"context_line":"            default\u003dNone,"},{"line_number":660,"context_line":"            dest\u003d\u0027store\u0027,"},{"line_number":661,"context_line":"            help\u003d_(\u0027Store to delete image(s) from.\u0027),"},{"line_number":662,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":8,"id":"bbde9718_bf81aadd","line":659,"range":{"start_line":659,"start_character":12,"end_line":659,"end_character":25},"updated":"2023-08-01 15:07:19.000000000","message":"Question: Is it compulsory, what if not specfied?","commit_id":"e34dd9165f6e13b24ed920b65964af761a06689e"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"43b9a0a5bdbb3bb89cb36c401a5fa9e3ce624fe7","unresolved":false,"context_lines":[{"line_number":656,"context_line":"        parser.add_argument("},{"line_number":657,"context_line":"            \u0027--store\u0027,"},{"line_number":658,"context_line":"            metavar\u003d\u0027\u003cSTORE\u003e\u0027,"},{"line_number":659,"context_line":"            default\u003dNone,"},{"line_number":660,"context_line":"            dest\u003d\u0027store\u0027,"},{"line_number":661,"context_line":"            help\u003d_(\u0027Store to delete image(s) from.\u0027),"},{"line_number":662,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":8,"id":"e21be7df_86825b24","line":659,"range":{"start_line":659,"start_character":12,"end_line":659,"end_character":25},"in_reply_to":"bbde9718_bf81aadd","updated":"2023-08-07 17:38:54.000000000","message":"No, not compulsory, can be omitted","commit_id":"e34dd9165f6e13b24ed920b65964af761a06689e"}],"openstackclient/image/v2/info.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d22cd8bfb7d86b0336bb667691676934d433ae99","unresolved":true,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class ImportInfo(command.ShowOne):"},{"line_number":21,"context_line":"    _description \u003d _(\"Get import methods available\")"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def get_parser(self, prog_name):"},{"line_number":24,"context_line":"        parser \u003d super().get_parser(prog_name)"}],"source_content_type":"text/x-python","patch_set":7,"id":"6b03912b_db932651","line":21,"range":{"start_line":21,"start_character":22,"end_line":21,"end_character":50},"updated":"2023-07-17 15:31:34.000000000","message":"How about `Show available import methods` ?","commit_id":"dd6b696a3c7639769afdd869d5567896f01ff28c"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"71e62aee0512a63ea6429e988472009be39744c5","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class ImportInfo(command.ShowOne):"},{"line_number":21,"context_line":"    _description \u003d _(\"Get import methods available\")"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def get_parser(self, prog_name):"},{"line_number":24,"context_line":"        parser \u003d super().get_parser(prog_name)"}],"source_content_type":"text/x-python","patch_set":7,"id":"38c8aa51_d524bbdb","line":21,"range":{"start_line":21,"start_character":22,"end_line":21,"end_character":50},"in_reply_to":"6b03912b_db932651","updated":"2023-07-20 10:48:10.000000000","message":"Ack","commit_id":"dd6b696a3c7639769afdd869d5567896f01ff28c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d22cd8bfb7d86b0336bb667691676934d433ae99","unresolved":true,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def get_parser(self, prog_name):"},{"line_number":24,"context_line":"        parser \u003d super().get_parser(prog_name)"},{"line_number":25,"context_line":"        return parser"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def take_action(self, parsed_args):"},{"line_number":28,"context_line":"        image_client \u003d self.app.client_manager.image"}],"source_content_type":"text/x-python","patch_set":7,"id":"305ebff3_c94420c0","line":25,"updated":"2023-07-17 15:31:34.000000000","message":"You don\u0027t need to define this if there are no arguments. We\u0027ll inherit from the superclass","commit_id":"dd6b696a3c7639769afdd869d5567896f01ff28c"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"71e62aee0512a63ea6429e988472009be39744c5","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def get_parser(self, prog_name):"},{"line_number":24,"context_line":"        parser \u003d super().get_parser(prog_name)"},{"line_number":25,"context_line":"        return parser"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def take_action(self, parsed_args):"},{"line_number":28,"context_line":"        image_client \u003d self.app.client_manager.image"}],"source_content_type":"text/x-python","patch_set":7,"id":"d40a7043_c7ba8a4b","line":25,"in_reply_to":"305ebff3_c94420c0","updated":"2023-07-20 10:48:10.000000000","message":"Ack","commit_id":"dd6b696a3c7639769afdd869d5567896f01ff28c"}],"openstackclient/tests/functional/image/v2/test_info.py":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"cd6b817f8bec1eb737ffd8996704229f8e66cd5f","unresolved":true,"context_lines":[{"line_number":1,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":3,"context_line":"#    a copy of the License at"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":8,"id":"a1e48b6b_9b861393","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":1},"updated":"2023-08-01 15:07:19.000000000","message":"missing copy-right statement","commit_id":"e34dd9165f6e13b24ed920b65964af761a06689e"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"43b9a0a5bdbb3bb89cb36c401a5fa9e3ce624fe7","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":3,"context_line":"#    a copy of the License at"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":8,"id":"74dfdbab_de8bd14f","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":1},"in_reply_to":"a1e48b6b_9b861393","updated":"2023-08-07 17:38:54.000000000","message":"Ack","commit_id":"e34dd9165f6e13b24ed920b65964af761a06689e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6ce150eb626ab6609956c5ec4a45d3b13ac7397d","unresolved":true,"context_lines":[{"line_number":19,"context_line":"class InfoTests(base.BaseImageTests):"},{"line_number":20,"context_line":"    \"\"\"Functional tests for Info commands\"\"\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    def setUp(self):"},{"line_number":23,"context_line":"        super(InfoTests, self).setUp()"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    def tearDown(self):"},{"line_number":26,"context_line":"        super().tearDown()"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def test_image_import_info(self):"},{"line_number":29,"context_line":"        output \u003d self.openstack(\u0027image import info\u0027, parse_output\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":9,"id":"ed75cf02_4749946d","line":26,"range":{"start_line":22,"start_character":0,"end_line":26,"end_character":26},"updated":"2023-08-09 17:24:43.000000000","message":"nit: these aren\u0027t necessary since you\u0027re not overriding anything","commit_id":"b347347986ebc8677c1d656299020fe58b1dc2a3"}],"openstackclient/tests/unit/image/v2/test_image.py":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"aecd06bfc2480b07e31d2b4e35d7c5a1e8ec446e","unresolved":true,"context_lines":[{"line_number":2086,"context_line":""},{"line_number":2087,"context_line":"            self.assertIsNone(test_fd)"},{"line_number":2088,"context_line":""},{"line_number":2089,"context_line":""},{"line_number":2090,"context_line":"class TestImportInfo(TestImage):"},{"line_number":2091,"context_line":""},{"line_number":2092,"context_line":"    import_info \u003d image_fakes.create_one_import_info()"}],"source_content_type":"text/x-python","patch_set":1,"id":"acdc7b33_05fbcb9a","line":2089,"updated":"2023-05-03 03:49:23.000000000","message":"It should also have below scenarios\n\n1. Image import not enabled\n2. Image not found for delete from store case.","commit_id":"9a26485867f290e363892f6e1ce9777ec451982a"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"8da32583daf60f7747e31796e5d4f0004b600975","unresolved":false,"context_lines":[{"line_number":2086,"context_line":""},{"line_number":2087,"context_line":"            self.assertIsNone(test_fd)"},{"line_number":2088,"context_line":""},{"line_number":2089,"context_line":""},{"line_number":2090,"context_line":"class TestImportInfo(TestImage):"},{"line_number":2091,"context_line":""},{"line_number":2092,"context_line":"    import_info \u003d image_fakes.create_one_import_info()"}],"source_content_type":"text/x-python","patch_set":1,"id":"6c5eecda_33915279","line":2089,"in_reply_to":"42d4a4d2_a063f2f9","updated":"2023-05-08 09:28:24.000000000","message":"Done","commit_id":"9a26485867f290e363892f6e1ce9777ec451982a"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"0e80dba40e09c2fd1db47d4cc5313b5d6e21b07f","unresolved":true,"context_lines":[{"line_number":2086,"context_line":""},{"line_number":2087,"context_line":"            self.assertIsNone(test_fd)"},{"line_number":2088,"context_line":""},{"line_number":2089,"context_line":""},{"line_number":2090,"context_line":"class TestImportInfo(TestImage):"},{"line_number":2091,"context_line":""},{"line_number":2092,"context_line":"    import_info \u003d image_fakes.create_one_import_info()"}],"source_content_type":"text/x-python","patch_set":1,"id":"42d4a4d2_a063f2f9","line":2089,"in_reply_to":"acdc7b33_05fbcb9a","updated":"2023-05-04 08:42:25.000000000","message":"1.Image import workflow is by default enabled with \u0027glance-direct\u0027,\u0027web-download\u0027and \u0027copy-image\u0027.\n2. Ack","commit_id":"9a26485867f290e363892f6e1ce9777ec451982a"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"aecd06bfc2480b07e31d2b4e35d7c5a1e8ec446e","unresolved":true,"context_lines":[{"line_number":2158,"context_line":"            self.cmd.take_action,"},{"line_number":2159,"context_line":"            parsed_args,"},{"line_number":2160,"context_line":"        )"},{"line_number":2161,"context_line":"        self.assertIn("},{"line_number":2162,"context_line":"            \"Multi Backend support is not enabled\","},{"line_number":2163,"context_line":"            str(exc),"},{"line_number":2164,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":1,"id":"3faf26ac_0eeca7d2","line":2164,"range":{"start_line":2161,"start_character":8,"end_line":2164,"end_character":9},"updated":"2023-05-03 03:49:23.000000000","message":"Also how store not found case is raising multi backend support is not enabled?","commit_id":"9a26485867f290e363892f6e1ce9777ec451982a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d19c4d370acd7fa7daaf83b7dc9fcc3477135151","unresolved":false,"context_lines":[{"line_number":2158,"context_line":"            self.cmd.take_action,"},{"line_number":2159,"context_line":"            parsed_args,"},{"line_number":2160,"context_line":"        )"},{"line_number":2161,"context_line":"        self.assertIn("},{"line_number":2162,"context_line":"            \"Multi Backend support is not enabled\","},{"line_number":2163,"context_line":"            str(exc),"},{"line_number":2164,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":1,"id":"c6e0b74e_496635dc","line":2164,"range":{"start_line":2161,"start_character":8,"end_line":2164,"end_character":9},"in_reply_to":"30c9a5c6_1bce226f","updated":"2023-05-08 09:44:30.000000000","message":"Ack","commit_id":"9a26485867f290e363892f6e1ce9777ec451982a"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"0e80dba40e09c2fd1db47d4cc5313b5d6e21b07f","unresolved":true,"context_lines":[{"line_number":2158,"context_line":"            self.cmd.take_action,"},{"line_number":2159,"context_line":"            parsed_args,"},{"line_number":2160,"context_line":"        )"},{"line_number":2161,"context_line":"        self.assertIn("},{"line_number":2162,"context_line":"            \"Multi Backend support is not enabled\","},{"line_number":2163,"context_line":"            str(exc),"},{"line_number":2164,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":1,"id":"30c9a5c6_1bce226f","line":2164,"range":{"start_line":2161,"start_character":8,"end_line":2164,"end_character":9},"in_reply_to":"3faf26ac_0eeca7d2","updated":"2023-05-04 08:42:25.000000000","message":"corrected","commit_id":"9a26485867f290e363892f6e1ce9777ec451982a"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"847a410f6a35373e32aa8b168421d24b4972da2a","unresolved":true,"context_lines":[{"line_number":2129,"context_line":"        ]"},{"line_number":2130,"context_line":"        parsed_args \u003d self.check_parser(self.cmd, arglist, verifylist)"},{"line_number":2131,"context_line":""},{"line_number":2132,"context_line":"        self.client.find_image.side_effect \u003d images"},{"line_number":2133,"context_line":""},{"line_number":2134,"context_line":"        result \u003d self.cmd.take_action(parsed_args)"},{"line_number":2135,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"688b9def_d3d0325d","line":2132,"range":{"start_line":2132,"start_character":0,"end_line":2132,"end_character":10},"updated":"2023-05-04 09:32:23.000000000","message":"it should be single image and not list of images, right?","commit_id":"9f7d9617ee0501916b642017afb31b2392265812"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"0f889629014346de00506ff1edbaf11327b7f17b","unresolved":false,"context_lines":[{"line_number":2129,"context_line":"        ]"},{"line_number":2130,"context_line":"        parsed_args \u003d self.check_parser(self.cmd, arglist, verifylist)"},{"line_number":2131,"context_line":""},{"line_number":2132,"context_line":"        self.client.find_image.side_effect \u003d images"},{"line_number":2133,"context_line":""},{"line_number":2134,"context_line":"        result \u003d self.cmd.take_action(parsed_args)"},{"line_number":2135,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5b664c0e_31dccf86","line":2132,"range":{"start_line":2132,"start_character":0,"end_line":2132,"end_character":10},"in_reply_to":"688b9def_d3d0325d","updated":"2023-05-08 07:24:47.000000000","message":"Done","commit_id":"9f7d9617ee0501916b642017afb31b2392265812"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"847a410f6a35373e32aa8b168421d24b4972da2a","unresolved":true,"context_lines":[{"line_number":2153,"context_line":"        parsed_args \u003d self.check_parser(self.cmd, arglist, verifylist)"},{"line_number":2154,"context_line":""},{"line_number":2155,"context_line":"        self.client.delete_image.side_effect \u003d sdk_exceptions.ResourceNotFound"},{"line_number":2156,"context_line":"        self.assertRaises("},{"line_number":2157,"context_line":"            exceptions.CommandError,"},{"line_number":2158,"context_line":"            self.cmd.take_action,"},{"line_number":2159,"context_line":"            parsed_args,"},{"line_number":2160,"context_line":"        )"},{"line_number":2161,"context_line":""},{"line_number":2162,"context_line":"    def test_image_delete_from_store_invalid_image(self):"},{"line_number":2163,"context_line":"        images \u003d self.setup_images_mock(count\u003d1)"}],"source_content_type":"text/x-python","patch_set":2,"id":"09b3883f_6432d63d","line":2160,"range":{"start_line":2156,"start_character":8,"end_line":2160,"end_character":9},"updated":"2023-05-04 09:32:23.000000000","message":"additionally you should assert for error message as well.","commit_id":"9f7d9617ee0501916b642017afb31b2392265812"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"0f889629014346de00506ff1edbaf11327b7f17b","unresolved":false,"context_lines":[{"line_number":2153,"context_line":"        parsed_args \u003d self.check_parser(self.cmd, arglist, verifylist)"},{"line_number":2154,"context_line":""},{"line_number":2155,"context_line":"        self.client.delete_image.side_effect \u003d sdk_exceptions.ResourceNotFound"},{"line_number":2156,"context_line":"        self.assertRaises("},{"line_number":2157,"context_line":"            exceptions.CommandError,"},{"line_number":2158,"context_line":"            self.cmd.take_action,"},{"line_number":2159,"context_line":"            parsed_args,"},{"line_number":2160,"context_line":"        )"},{"line_number":2161,"context_line":""},{"line_number":2162,"context_line":"    def test_image_delete_from_store_invalid_image(self):"},{"line_number":2163,"context_line":"        images \u003d self.setup_images_mock(count\u003d1)"}],"source_content_type":"text/x-python","patch_set":2,"id":"78f8c092_cdc4f9c0","line":2160,"range":{"start_line":2156,"start_character":8,"end_line":2160,"end_character":9},"in_reply_to":"09b3883f_6432d63d","updated":"2023-05-08 07:24:47.000000000","message":"Ack","commit_id":"9f7d9617ee0501916b642017afb31b2392265812"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"847a410f6a35373e32aa8b168421d24b4972da2a","unresolved":true,"context_lines":[{"line_number":2173,"context_line":"        parsed_args \u003d self.check_parser(self.cmd, arglist, verifylist)"},{"line_number":2174,"context_line":""},{"line_number":2175,"context_line":"        self.client.find_image.side_effect \u003d sdk_exceptions.ResourceNotFound"},{"line_number":2176,"context_line":"        self.assertRaises("},{"line_number":2177,"context_line":"            exceptions.CommandError,"},{"line_number":2178,"context_line":"            self.cmd.take_action,"},{"line_number":2179,"context_line":"            parsed_args,"},{"line_number":2180,"context_line":"        )"},{"line_number":2181,"context_line":""},{"line_number":2182,"context_line":"    def test_image_delete_from_store_invalid_store(self):"},{"line_number":2183,"context_line":"        images \u003d self.setup_images_mock(count\u003d1)"}],"source_content_type":"text/x-python","patch_set":2,"id":"cebd4b4c_fece32a6","line":2180,"range":{"start_line":2176,"start_character":9,"end_line":2180,"end_character":9},"updated":"2023-05-04 09:32:23.000000000","message":"ditto assert for error message","commit_id":"9f7d9617ee0501916b642017afb31b2392265812"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"0f889629014346de00506ff1edbaf11327b7f17b","unresolved":false,"context_lines":[{"line_number":2173,"context_line":"        parsed_args \u003d self.check_parser(self.cmd, arglist, verifylist)"},{"line_number":2174,"context_line":""},{"line_number":2175,"context_line":"        self.client.find_image.side_effect \u003d sdk_exceptions.ResourceNotFound"},{"line_number":2176,"context_line":"        self.assertRaises("},{"line_number":2177,"context_line":"            exceptions.CommandError,"},{"line_number":2178,"context_line":"            self.cmd.take_action,"},{"line_number":2179,"context_line":"            parsed_args,"},{"line_number":2180,"context_line":"        )"},{"line_number":2181,"context_line":""},{"line_number":2182,"context_line":"    def test_image_delete_from_store_invalid_store(self):"},{"line_number":2183,"context_line":"        images \u003d self.setup_images_mock(count\u003d1)"}],"source_content_type":"text/x-python","patch_set":2,"id":"f2453546_7dbd59fa","line":2180,"range":{"start_line":2176,"start_character":9,"end_line":2180,"end_character":9},"in_reply_to":"cebd4b4c_fece32a6","updated":"2023-05-08 07:24:47.000000000","message":"Ack","commit_id":"9f7d9617ee0501916b642017afb31b2392265812"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"847a410f6a35373e32aa8b168421d24b4972da2a","unresolved":true,"context_lines":[{"line_number":2193,"context_line":"        parsed_args \u003d self.check_parser(self.cmd, arglist, verifylist)"},{"line_number":2194,"context_line":"        self.client.delete_image.side_effect \u003d Exception"},{"line_number":2195,"context_line":""},{"line_number":2196,"context_line":"        self.assertRaises("},{"line_number":2197,"context_line":"            exceptions.CommandError,"},{"line_number":2198,"context_line":"            self.cmd.take_action,"},{"line_number":2199,"context_line":"            parsed_args,"},{"line_number":2200,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":2,"id":"27f5449b_313f7949","line":2199,"range":{"start_line":2196,"start_character":5,"end_line":2199,"end_character":14},"updated":"2023-05-04 09:32:23.000000000","message":"ditto, assert for error message","commit_id":"9f7d9617ee0501916b642017afb31b2392265812"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"0f889629014346de00506ff1edbaf11327b7f17b","unresolved":false,"context_lines":[{"line_number":2193,"context_line":"        parsed_args \u003d self.check_parser(self.cmd, arglist, verifylist)"},{"line_number":2194,"context_line":"        self.client.delete_image.side_effect \u003d Exception"},{"line_number":2195,"context_line":""},{"line_number":2196,"context_line":"        self.assertRaises("},{"line_number":2197,"context_line":"            exceptions.CommandError,"},{"line_number":2198,"context_line":"            self.cmd.take_action,"},{"line_number":2199,"context_line":"            parsed_args,"},{"line_number":2200,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":2,"id":"92c0819d_c09f4250","line":2199,"range":{"start_line":2196,"start_character":5,"end_line":2199,"end_character":14},"in_reply_to":"27f5449b_313f7949","updated":"2023-05-08 07:24:47.000000000","message":"Ack","commit_id":"9f7d9617ee0501916b642017afb31b2392265812"}],"openstackclient/tests/unit/image/v2/test_info.py":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"cd6b817f8bec1eb737ffd8996704229f8e66cd5f","unresolved":true,"context_lines":[{"line_number":1,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"# not use this file except in compliance with the License. You may obtain"},{"line_number":3,"context_line":"# a copy of the License at"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":8,"id":"833eadad_3ebae4fd","line":1,"updated":"2023-08-01 15:07:19.000000000","message":"missing copy-right statement","commit_id":"e34dd9165f6e13b24ed920b65964af761a06689e"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"43b9a0a5bdbb3bb89cb36c401a5fa9e3ce624fe7","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"# not use this file except in compliance with the License. You may obtain"},{"line_number":3,"context_line":"# a copy of the License at"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":8,"id":"fab59328_ec9599bd","line":1,"in_reply_to":"833eadad_3ebae4fd","updated":"2023-08-07 17:38:54.000000000","message":"Ack","commit_id":"e34dd9165f6e13b24ed920b65964af761a06689e"}],"releasenotes/notes/add-import-info-stores-delete-c50b5222c21e1077.yaml":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"847a410f6a35373e32aa8b168421d24b4972da2a","unresolved":true,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add ``image import info`` command, allowing users to know available import"},{"line_number":5,"context_line":"    methods, and ``image stores delete`` command, allowing users to delete "},{"line_number":6,"context_line":"    image from particular store."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"13ed579a_162e76ed","line":5,"range":{"start_line":5,"start_character":68,"end_line":5,"end_character":75},"updated":"2023-05-04 09:32:23.000000000","message":"remove trailing whitespace","commit_id":"9f7d9617ee0501916b642017afb31b2392265812"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"0f889629014346de00506ff1edbaf11327b7f17b","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add ``image import info`` command, allowing users to know available import"},{"line_number":5,"context_line":"    methods, and ``image stores delete`` command, allowing users to delete "},{"line_number":6,"context_line":"    image from particular store."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"de0b2edc_4a6a5004","line":5,"range":{"start_line":5,"start_character":68,"end_line":5,"end_character":75},"in_reply_to":"13ed579a_162e76ed","updated":"2023-05-08 07:24:47.000000000","message":"Done","commit_id":"9f7d9617ee0501916b642017afb31b2392265812"}],"setup.cfg":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d19c4d370acd7fa7daaf83b7dc9fcc3477135151","unresolved":true,"context_lines":[{"line_number":386,"context_line":"    image_unset \u003d openstackclient.image.v2.image:UnsetImage"},{"line_number":387,"context_line":"    image_stage \u003d openstackclient.image.v2.image:StageImage"},{"line_number":388,"context_line":"    image_import_info \u003d openstackclient.image.v2.image:ImportInfo"},{"line_number":389,"context_line":"    image_stores_delete \u003d openstackclient.image.v2.image:DeleteImageFromStore"},{"line_number":390,"context_line":"    image_task_show \u003d openstackclient.image.v2.task:ShowTask"},{"line_number":391,"context_line":"    image_task_list \u003d openstackclient.image.v2.task:ListTask"},{"line_number":392,"context_line":""}],"source_content_type":"text/x-ttcn-cfg","patch_set":3,"id":"f0b58173_13e493be","line":389,"updated":"2023-05-08 09:44:30.000000000","message":"This is a misleading name. This suggests we\u0027re deleting an image store. That\u0027s obviously not the case. I\u0027d suggest simply extending \u0027image delete\u0027","commit_id":"62e3891d5bb8ad4434176bd3fba0301e840f7ae7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3b3846920607b8b8d63ba032f14cdbc3a4eba274","unresolved":false,"context_lines":[{"line_number":386,"context_line":"    image_unset \u003d openstackclient.image.v2.image:UnsetImage"},{"line_number":387,"context_line":"    image_stage \u003d openstackclient.image.v2.image:StageImage"},{"line_number":388,"context_line":"    image_import_info \u003d openstackclient.image.v2.image:ImportInfo"},{"line_number":389,"context_line":"    image_stores_delete \u003d openstackclient.image.v2.image:DeleteImageFromStore"},{"line_number":390,"context_line":"    image_task_show \u003d openstackclient.image.v2.task:ShowTask"},{"line_number":391,"context_line":"    image_task_list \u003d openstackclient.image.v2.task:ListTask"},{"line_number":392,"context_line":""}],"source_content_type":"text/x-ttcn-cfg","patch_set":3,"id":"e07b0302_1d62bcd4","line":389,"in_reply_to":"f0b58173_13e493be","updated":"2023-06-02 16:44:35.000000000","message":"Done","commit_id":"62e3891d5bb8ad4434176bd3fba0301e840f7ae7"}]}
