)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"c3f5adccd30844ce7f9033746cc74afc560f79f6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"bc4fc839_0e10e7c3","updated":"2023-07-05 09:47:41.000000000","message":"Just fixed the pep8 issues. Have yet to review this","commit_id":"b597ad6c1c10c0c1134afd34bd706881df13d458"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0eae4d5ca5e95a82f05475059be5e3f1402540b4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"ef33357e_4dbe645d","updated":"2023-07-05 10:01:12.000000000","message":"This is looking pretty complete but I do have a few comments outstanding","commit_id":"b597ad6c1c10c0c1134afd34bd706881df13d458"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"255491424104738ac3d5784a5f26d6105fde7a20","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"78ae547d_1790e617","updated":"2023-07-06 16:05:03.000000000","message":"Looking better","commit_id":"ba5c35eba2cafcf251bcd15757fef876a5cdcab9"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"3ac02599a6a7390f622ee9bddd1975f18f57d864","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"6b8c482b_35b8ae41","updated":"2023-08-01 15:17:52.000000000","message":"Nits inline","commit_id":"75b829cf54e6118bfc60c4cd3e618fcf3d882288"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"1f538725f8ac169e6e0464721be207aabc9a4477","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"9312cee7_0d538b57","updated":"2023-08-08 15:33:09.000000000","message":"Nitpicking a bit :)","commit_id":"bc02ef252a7560510a33be8d8ab9dffe9b760285"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"f74ca83ca522860ac04caba5abb0c01e025241df","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"5bf897a4_f2e0d25b","updated":"2023-08-08 16:49:48.000000000","message":"Thanks for the review","commit_id":"bc02ef252a7560510a33be8d8ab9dffe9b760285"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"dcfc557595cc38af8e32a916a3cdae2189f76610","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"eba182b3_2b9d7cc2","updated":"2023-08-10 14:49:20.000000000","message":"Looks good, thank you!","commit_id":"705d1b636bd15b30b2ecc4ae3ac542c33fc856fb"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"18176359cd05c8195a9caff2851eab0c34e3253a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"4ada644b_dd7bfd02","updated":"2023-09-12 08:24:39.000000000","message":"recheck","commit_id":"705d1b636bd15b30b2ecc4ae3ac542c33fc856fb"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"633e84bd609761cd84c9866ab54a15155e2c8020","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"38b8cabd_db7c4777","updated":"2023-09-25 08:25:08.000000000","message":"Thanks for the review","commit_id":"7d004d95848d9958f6e0307c0903b49b779a6724"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"ba9ca79a3f36c8dfdc4ab76d0dae1098e2b58dac","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"945aec46_1aff92ef","updated":"2023-09-22 08:30:04.000000000","message":"few comments inline","commit_id":"7d004d95848d9958f6e0307c0903b49b779a6724"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5b61642dc0fa67dec786f1751cc68318b6f317f9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"c3bcdd91_14003461","updated":"2023-09-25 12:54:12.000000000","message":"Thanks for addressing my comments, LGTM.","commit_id":"8786370c713dcd27843620391ace90b10f6e6721"}],"openstackclient/image/v2/cache.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0eae4d5ca5e95a82f05475059be5e3f1402540b4","unresolved":true,"context_lines":[{"line_number":105,"context_line":"            \"images\","},{"line_number":106,"context_line":"            metavar\u003d\"\u003cimage\u003e\","},{"line_number":107,"context_line":"            nargs\u003d\"+\","},{"line_number":108,"context_line":"            help\u003d_(\"ID of image(s) to queue for caching.\"),"},{"line_number":109,"context_line":"        )"},{"line_number":110,"context_line":"        return parser"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"22825a99_2154e0c6","line":108,"updated":"2023-07-05 10:01:12.000000000","message":"Can we support name or ID here? You can look at `ShowImage` in `openstackclient/image/v2/image.py` for an example of how to do this\n\nAlso, nit: drop trailing period","commit_id":"b597ad6c1c10c0c1134afd34bd706881df13d458"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"d300446684515226e68a3eb145a1154d1187bbbc","unresolved":false,"context_lines":[{"line_number":105,"context_line":"            \"images\","},{"line_number":106,"context_line":"            metavar\u003d\"\u003cimage\u003e\","},{"line_number":107,"context_line":"            nargs\u003d\"+\","},{"line_number":108,"context_line":"            help\u003d_(\"ID of image(s) to queue for caching.\"),"},{"line_number":109,"context_line":"        )"},{"line_number":110,"context_line":"        return parser"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"aa785330_2fe4cdfb","line":108,"in_reply_to":"22825a99_2154e0c6","updated":"2023-07-06 14:05:08.000000000","message":"Ack","commit_id":"b597ad6c1c10c0c1134afd34bd706881df13d458"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0eae4d5ca5e95a82f05475059be5e3f1402540b4","unresolved":true,"context_lines":[{"line_number":112,"context_line":"    def take_action(self, parsed_args):"},{"line_number":113,"context_line":"        image_client \u003d self.app.client_manager.image"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        result \u003d 0"},{"line_number":116,"context_line":"        for image in parsed_args.images:"},{"line_number":117,"context_line":"            try:"},{"line_number":118,"context_line":"                image_client.queue_image(image)"}],"source_content_type":"text/x-python","patch_set":3,"id":"a015a559_02952d9a","line":115,"updated":"2023-07-05 10:01:12.000000000","message":"Can we call this `failures`? This isn\u0027t a stored \"result\" of the call so the current name doesn\u0027t make much sense","commit_id":"b597ad6c1c10c0c1134afd34bd706881df13d458"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"d300446684515226e68a3eb145a1154d1187bbbc","unresolved":false,"context_lines":[{"line_number":112,"context_line":"    def take_action(self, parsed_args):"},{"line_number":113,"context_line":"        image_client \u003d self.app.client_manager.image"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        result \u003d 0"},{"line_number":116,"context_line":"        for image in parsed_args.images:"},{"line_number":117,"context_line":"            try:"},{"line_number":118,"context_line":"                image_client.queue_image(image)"}],"source_content_type":"text/x-python","patch_set":3,"id":"d42d0c77_516612ea","line":115,"in_reply_to":"a015a559_02952d9a","updated":"2023-07-06 14:05:08.000000000","message":"Ack","commit_id":"b597ad6c1c10c0c1134afd34bd706881df13d458"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0eae4d5ca5e95a82f05475059be5e3f1402540b4","unresolved":true,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        total \u003d len(parsed_args.images)"},{"line_number":128,"context_line":"        if result \u003e 0:"},{"line_number":129,"context_line":"            msg \u003d _(\"Failed to queue %(result)s of %(total)s images.\") % {"},{"line_number":130,"context_line":"                \u0027result\u0027: result,"},{"line_number":131,"context_line":"                \u0027total\u0027: total,"},{"line_number":132,"context_line":"            }"}],"source_content_type":"text/x-python","patch_set":3,"id":"59a9d80e_44523adf","line":129,"range":{"start_line":129,"start_character":67,"end_line":129,"end_character":68},"updated":"2023-07-05 10:01:12.000000000","message":"nit: drop trailing period","commit_id":"b597ad6c1c10c0c1134afd34bd706881df13d458"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"d300446684515226e68a3eb145a1154d1187bbbc","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        total \u003d len(parsed_args.images)"},{"line_number":128,"context_line":"        if result \u003e 0:"},{"line_number":129,"context_line":"            msg \u003d _(\"Failed to queue %(result)s of %(total)s images.\") % {"},{"line_number":130,"context_line":"                \u0027result\u0027: result,"},{"line_number":131,"context_line":"                \u0027total\u0027: total,"},{"line_number":132,"context_line":"            }"}],"source_content_type":"text/x-python","patch_set":3,"id":"e7265096_eaca43d5","line":129,"range":{"start_line":129,"start_character":67,"end_line":129,"end_character":68},"in_reply_to":"59a9d80e_44523adf","updated":"2023-07-06 14:05:08.000000000","message":"Ack","commit_id":"b597ad6c1c10c0c1134afd34bd706881df13d458"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0eae4d5ca5e95a82f05475059be5e3f1402540b4","unresolved":true,"context_lines":[{"line_number":142,"context_line":"            \"images\","},{"line_number":143,"context_line":"            metavar\u003d\"\u003cimage\u003e\","},{"line_number":144,"context_line":"            nargs\u003d\"+\","},{"line_number":145,"context_line":"            help\u003d_(\"Image(s) to delete (name or ID)\"),"},{"line_number":146,"context_line":"        )"},{"line_number":147,"context_line":"        return parser"},{"line_number":148,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9d1dc51b_0021e4ce","line":145,"updated":"2023-07-05 10:01:12.000000000","message":"You\u0027re not doing a look-up of the image so this doesn\u0027t support name or ID. You need to add a call to `image_client.find_image` if you want to support this.","commit_id":"b597ad6c1c10c0c1134afd34bd706881df13d458"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"d300446684515226e68a3eb145a1154d1187bbbc","unresolved":false,"context_lines":[{"line_number":142,"context_line":"            \"images\","},{"line_number":143,"context_line":"            metavar\u003d\"\u003cimage\u003e\","},{"line_number":144,"context_line":"            nargs\u003d\"+\","},{"line_number":145,"context_line":"            help\u003d_(\"Image(s) to delete (name or ID)\"),"},{"line_number":146,"context_line":"        )"},{"line_number":147,"context_line":"        return parser"},{"line_number":148,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"2876b003_ccc5ce83","line":145,"in_reply_to":"9d1dc51b_0021e4ce","updated":"2023-07-06 14:05:08.000000000","message":"Ack","commit_id":"b597ad6c1c10c0c1134afd34bd706881df13d458"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0eae4d5ca5e95a82f05475059be5e3f1402540b4","unresolved":true,"context_lines":[{"line_number":153,"context_line":"            try:"},{"line_number":154,"context_line":"                image_client.cache_delete_image(image)"},{"line_number":155,"context_line":"            except Exception as e:"},{"line_number":156,"context_line":"                del_result +\u003d 1"},{"line_number":157,"context_line":"                msg \u003d _("},{"line_number":158,"context_line":"                    \"Failed to delete image with name or \""},{"line_number":159,"context_line":"                    \"ID \u0027%(image)s\u0027: %(e)s\""}],"source_content_type":"text/x-python","patch_set":3,"id":"d80ec3e4_1538b08c","line":156,"range":{"start_line":156,"start_character":16,"end_line":156,"end_character":26},"updated":"2023-07-05 10:01:12.000000000","message":"As above, can we call this `failures`?","commit_id":"b597ad6c1c10c0c1134afd34bd706881df13d458"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"d300446684515226e68a3eb145a1154d1187bbbc","unresolved":false,"context_lines":[{"line_number":153,"context_line":"            try:"},{"line_number":154,"context_line":"                image_client.cache_delete_image(image)"},{"line_number":155,"context_line":"            except Exception as e:"},{"line_number":156,"context_line":"                del_result +\u003d 1"},{"line_number":157,"context_line":"                msg \u003d _("},{"line_number":158,"context_line":"                    \"Failed to delete image with name or \""},{"line_number":159,"context_line":"                    \"ID \u0027%(image)s\u0027: %(e)s\""}],"source_content_type":"text/x-python","patch_set":3,"id":"ae5311be_e316499a","line":156,"range":{"start_line":156,"start_character":16,"end_line":156,"end_character":26},"in_reply_to":"d80ec3e4_1538b08c","updated":"2023-07-06 14:05:08.000000000","message":"Ack","commit_id":"b597ad6c1c10c0c1134afd34bd706881df13d458"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0eae4d5ca5e95a82f05475059be5e3f1402540b4","unresolved":true,"context_lines":[{"line_number":179,"context_line":"            metavar\u003d\"\u003ctarget\u003e\","},{"line_number":180,"context_line":"            default\u003d\u0027both\u0027,"},{"line_number":181,"context_line":"            choices\u003d[\u0027cache\u0027, \u0027queue\u0027, \u0027both\u0027],"},{"line_number":182,"context_line":"            help\u003d_(\"Image to share (name or ID)\"),"},{"line_number":183,"context_line":"        )"},{"line_number":184,"context_line":"        return parser"},{"line_number":185,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"581a6c05_ef97c735","line":182,"updated":"2023-07-05 10:01:12.000000000","message":"This help string looks wrong.\n\nRather than adding a `both` target, can we simply make this optional?\n\n- `image cache clear` - clear both image cache and image cache queue\n- `image cache clear --cache` - clear image cache only\n- `image cache clear --queue` - clear image cache queue only","commit_id":"b597ad6c1c10c0c1134afd34bd706881df13d458"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"99aafaa30422e1cc2cf2cd1e61239722f7d37d47","unresolved":true,"context_lines":[{"line_number":179,"context_line":"            metavar\u003d\"\u003ctarget\u003e\","},{"line_number":180,"context_line":"            default\u003d\u0027both\u0027,"},{"line_number":181,"context_line":"            choices\u003d[\u0027cache\u0027, \u0027queue\u0027, \u0027both\u0027],"},{"line_number":182,"context_line":"            help\u003d_(\"Image to share (name or ID)\"),"},{"line_number":183,"context_line":"        )"},{"line_number":184,"context_line":"        return parser"},{"line_number":185,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"d1fba9a5_0afddd24","line":182,"in_reply_to":"241417e3_ea66a604","updated":"2023-07-10 10:09:22.000000000","message":"We can have that but I think its better we should keep it similar to glance client.","commit_id":"b597ad6c1c10c0c1134afd34bd706881df13d458"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"d300446684515226e68a3eb145a1154d1187bbbc","unresolved":true,"context_lines":[{"line_number":179,"context_line":"            metavar\u003d\"\u003ctarget\u003e\","},{"line_number":180,"context_line":"            default\u003d\u0027both\u0027,"},{"line_number":181,"context_line":"            choices\u003d[\u0027cache\u0027, \u0027queue\u0027, \u0027both\u0027],"},{"line_number":182,"context_line":"            help\u003d_(\"Image to share (name or ID)\"),"},{"line_number":183,"context_line":"        )"},{"line_number":184,"context_line":"        return parser"},{"line_number":185,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"752562b6_813c4950","line":182,"in_reply_to":"581a6c05_ef97c735","updated":"2023-07-06 14:05:08.000000000","message":"The target parameter is already optional parameter, it is to specify the target from which the user wants to clear the data and by default we clear from both cache and queue, so if the user doesn\u0027t pass anything it will take both as a target.\n -\u003e image cache clear - clear both image cache and image cache queue\n\nAnd if the user wants to specify the target it can be done as:\n -\u003e image cache clear --target both- clear both image cache and image cache queue\n -\u003e image cache clear --target cache - clear image cache only\n -\u003e image cache clear --target queue - clear image cache queue only","commit_id":"b597ad6c1c10c0c1134afd34bd706881df13d458"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"255491424104738ac3d5784a5f26d6105fde7a20","unresolved":true,"context_lines":[{"line_number":179,"context_line":"            metavar\u003d\"\u003ctarget\u003e\","},{"line_number":180,"context_line":"            default\u003d\u0027both\u0027,"},{"line_number":181,"context_line":"            choices\u003d[\u0027cache\u0027, \u0027queue\u0027, \u0027both\u0027],"},{"line_number":182,"context_line":"            help\u003d_(\"Image to share (name or ID)\"),"},{"line_number":183,"context_line":"        )"},{"line_number":184,"context_line":"        return parser"},{"line_number":185,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"241417e3_ea66a604","line":182,"in_reply_to":"752562b6_813c4950","updated":"2023-07-06 16:05:03.000000000","message":"I understand how it works at the moment, but I\u0027m saying that it seems like there\u0027s the potential to simplify our options somewhat. Simple flags, `--cache` and `--queue`, seem nicer than key-value options here. Is there any reason we wouldn\u0027t want to use simply flags?\n\nBtw, the way you\u0027d implement this is with `action\u003d\u0027store_const\u0027` and a shared `dest` (`dest\u003d\u0027target\u0027`). There should be a few examples of `store_const` around OSC.","commit_id":"b597ad6c1c10c0c1134afd34bd706881df13d458"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"180f4cb7824cedc14e2070c57376922359905e0c","unresolved":true,"context_lines":[{"line_number":179,"context_line":"            metavar\u003d\"\u003ctarget\u003e\","},{"line_number":180,"context_line":"            default\u003d\u0027both\u0027,"},{"line_number":181,"context_line":"            choices\u003d[\u0027cache\u0027, \u0027queue\u0027, \u0027both\u0027],"},{"line_number":182,"context_line":"            help\u003d_(\"Image to share (name or ID)\"),"},{"line_number":183,"context_line":"        )"},{"line_number":184,"context_line":"        return parser"},{"line_number":185,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"b22bf4f3_5eaedf6a","line":182,"in_reply_to":"a3a72cfa_6e9fb5fe","updated":"2023-07-11 09:26:55.000000000","message":"Ack, So I have one question if we don\u0027t pass any flag then will it clear from both cache and queued state?","commit_id":"b597ad6c1c10c0c1134afd34bd706881df13d458"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"2a9c65cfbd8865433d2af005a6037a001337554a","unresolved":false,"context_lines":[{"line_number":179,"context_line":"            metavar\u003d\"\u003ctarget\u003e\","},{"line_number":180,"context_line":"            default\u003d\u0027both\u0027,"},{"line_number":181,"context_line":"            choices\u003d[\u0027cache\u0027, \u0027queue\u0027, \u0027both\u0027],"},{"line_number":182,"context_line":"            help\u003d_(\"Image to share (name or ID)\"),"},{"line_number":183,"context_line":"        )"},{"line_number":184,"context_line":"        return parser"},{"line_number":185,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"0bf9f611_64cb1cf6","line":182,"in_reply_to":"b22bf4f3_5eaedf6a","updated":"2023-07-17 08:16:46.000000000","message":"Done","commit_id":"b597ad6c1c10c0c1134afd34bd706881df13d458"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"adaad4527fa7ef8727665beb76969d67c64909da","unresolved":true,"context_lines":[{"line_number":179,"context_line":"            metavar\u003d\"\u003ctarget\u003e\","},{"line_number":180,"context_line":"            default\u003d\u0027both\u0027,"},{"line_number":181,"context_line":"            choices\u003d[\u0027cache\u0027, \u0027queue\u0027, \u0027both\u0027],"},{"line_number":182,"context_line":"            help\u003d_(\"Image to share (name or ID)\"),"},{"line_number":183,"context_line":"        )"},{"line_number":184,"context_line":"        return parser"},{"line_number":185,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"a3a72cfa_6e9fb5fe","line":182,"in_reply_to":"d1fba9a5_0afddd24","updated":"2023-07-10 14:37:55.000000000","message":"I disagree. We should be consistent with OSC first and foremost. That doesn\u0027t mean we *must* be different from the legacy clients, however, in this case flag make more sense than a key-value pair and are more common in OSC. For example, look at the `--numa-policy-required` / `--numa-policy-preferred` / `--numa-policy-legacy` options in the e.g. `port create` network command.","commit_id":"b597ad6c1c10c0c1134afd34bd706881df13d458"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0eae4d5ca5e95a82f05475059be5e3f1402540b4","unresolved":true,"context_lines":[{"line_number":190,"context_line":"        try:"},{"line_number":191,"context_line":"            image_client.clear_cache(target)"},{"line_number":192,"context_line":"        except Exception:"},{"line_number":193,"context_line":"            msg \u003d _(\"Failed to delete images from Cache\")"},{"line_number":194,"context_line":"            LOG.error(msg)"},{"line_number":195,"context_line":"            raise exceptions.CommandError(msg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5df97060_1d1d42ae","line":193,"range":{"start_line":193,"start_character":50,"end_line":193,"end_character":55},"updated":"2023-07-05 10:01:12.000000000","message":"nit:\n\n    Failed to clear image cache\n\n?","commit_id":"b597ad6c1c10c0c1134afd34bd706881df13d458"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"d300446684515226e68a3eb145a1154d1187bbbc","unresolved":false,"context_lines":[{"line_number":190,"context_line":"        try:"},{"line_number":191,"context_line":"            image_client.clear_cache(target)"},{"line_number":192,"context_line":"        except Exception:"},{"line_number":193,"context_line":"            msg \u003d _(\"Failed to delete images from Cache\")"},{"line_number":194,"context_line":"            LOG.error(msg)"},{"line_number":195,"context_line":"            raise exceptions.CommandError(msg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"f159d078_3f7ceaef","line":193,"range":{"start_line":193,"start_character":50,"end_line":193,"end_character":55},"in_reply_to":"5df97060_1d1d42ae","updated":"2023-07-06 14:05:08.000000000","message":"Ack","commit_id":"b597ad6c1c10c0c1134afd34bd706881df13d458"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"255491424104738ac3d5784a5f26d6105fde7a20","unresolved":true,"context_lines":[{"line_number":154,"context_line":"                image_obj \u003d image_client.find_image("},{"line_number":155,"context_line":"                    image,"},{"line_number":156,"context_line":"                    ignore_missing\u003dFalse,"},{"line_number":157,"context_line":"                )"},{"line_number":158,"context_line":"                image_client.cache_delete_image(image_obj.id)"},{"line_number":159,"context_line":"            except Exception as e:"},{"line_number":160,"context_line":"                failures +\u003d 1"}],"source_content_type":"text/x-python","patch_set":4,"id":"597cdbb5_b787fb98","line":157,"updated":"2023-07-06 16:05:03.000000000","message":"You need to add this to `QueueCache.take_action` also","commit_id":"ba5c35eba2cafcf251bcd15757fef876a5cdcab9"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"99aafaa30422e1cc2cf2cd1e61239722f7d37d47","unresolved":false,"context_lines":[{"line_number":154,"context_line":"                image_obj \u003d image_client.find_image("},{"line_number":155,"context_line":"                    image,"},{"line_number":156,"context_line":"                    ignore_missing\u003dFalse,"},{"line_number":157,"context_line":"                )"},{"line_number":158,"context_line":"                image_client.cache_delete_image(image_obj.id)"},{"line_number":159,"context_line":"            except Exception as e:"},{"line_number":160,"context_line":"                failures +\u003d 1"}],"source_content_type":"text/x-python","patch_set":4,"id":"2d760c32_f4e9ddbc","line":157,"in_reply_to":"597cdbb5_b787fb98","updated":"2023-07-10 10:09:22.000000000","message":"Done","commit_id":"ba5c35eba2cafcf251bcd15757fef876a5cdcab9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"255491424104738ac3d5784a5f26d6105fde7a20","unresolved":true,"context_lines":[{"line_number":167,"context_line":"        total \u003d len(parsed_args.images)"},{"line_number":168,"context_line":"        if failures \u003e 0:"},{"line_number":169,"context_line":"            msg \u003d _(\"Failed to delete %(dresult)s of %(total)s images.\") % {"},{"line_number":170,"context_line":"                \u0027dresult\u0027: failures,"},{"line_number":171,"context_line":"                \u0027total\u0027: total,"},{"line_number":172,"context_line":"            }"},{"line_number":173,"context_line":"            raise exceptions.CommandError(msg)"}],"source_content_type":"text/x-python","patch_set":4,"id":"08cf63cc_210a7bd5","line":170,"range":{"start_line":170,"start_character":17,"end_line":170,"end_character":24},"updated":"2023-07-06 16:05:03.000000000","message":"Can you call this `failures` also?","commit_id":"ba5c35eba2cafcf251bcd15757fef876a5cdcab9"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"99aafaa30422e1cc2cf2cd1e61239722f7d37d47","unresolved":false,"context_lines":[{"line_number":167,"context_line":"        total \u003d len(parsed_args.images)"},{"line_number":168,"context_line":"        if failures \u003e 0:"},{"line_number":169,"context_line":"            msg \u003d _(\"Failed to delete %(dresult)s of %(total)s images.\") % {"},{"line_number":170,"context_line":"                \u0027dresult\u0027: failures,"},{"line_number":171,"context_line":"                \u0027total\u0027: total,"},{"line_number":172,"context_line":"            }"},{"line_number":173,"context_line":"            raise exceptions.CommandError(msg)"}],"source_content_type":"text/x-python","patch_set":4,"id":"4c7c3309_a6067c2b","line":170,"range":{"start_line":170,"start_character":17,"end_line":170,"end_character":24},"in_reply_to":"08cf63cc_210a7bd5","updated":"2023-07-10 10:09:22.000000000","message":"Done","commit_id":"ba5c35eba2cafcf251bcd15757fef876a5cdcab9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"adaad4527fa7ef8727665beb76969d67c64909da","unresolved":true,"context_lines":[{"line_number":171,"context_line":"        total \u003d len(parsed_args.images)"},{"line_number":172,"context_line":"        if failures \u003e 0:"},{"line_number":173,"context_line":"            msg \u003d _(\"Failed to delete %(dresult)s of %(total)s images.\") % {"},{"line_number":174,"context_line":"                \u0027dresult\u0027: failures,"},{"line_number":175,"context_line":"                \u0027total\u0027: total,"},{"line_number":176,"context_line":"            }"},{"line_number":177,"context_line":"            raise exceptions.CommandError(msg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"fb20bb7b_ccd1ac02","line":174,"range":{"start_line":174,"start_character":17,"end_line":174,"end_character":24},"updated":"2023-07-10 14:37:55.000000000","message":"You missed this. Can you rename this `failures` also?","commit_id":"dfc136804d06d0a7776f1aaf55aaee0bcf1723db"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"2a9c65cfbd8865433d2af005a6037a001337554a","unresolved":false,"context_lines":[{"line_number":171,"context_line":"        total \u003d len(parsed_args.images)"},{"line_number":172,"context_line":"        if failures \u003e 0:"},{"line_number":173,"context_line":"            msg \u003d _(\"Failed to delete %(dresult)s of %(total)s images.\") % {"},{"line_number":174,"context_line":"                \u0027dresult\u0027: failures,"},{"line_number":175,"context_line":"                \u0027total\u0027: total,"},{"line_number":176,"context_line":"            }"},{"line_number":177,"context_line":"            raise exceptions.CommandError(msg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"a94a6c52_1dbe8abb","line":174,"range":{"start_line":174,"start_character":17,"end_line":174,"end_character":24},"in_reply_to":"fb20bb7b_ccd1ac02","updated":"2023-07-17 08:16:46.000000000","message":"Done","commit_id":"dfc136804d06d0a7776f1aaf55aaee0bcf1723db"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"3ac02599a6a7390f622ee9bddd1975f18f57d864","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":6,"id":"d7cb497b_675813a2","line":1,"updated":"2023-08-01 15:17:52.000000000","message":"missing copy-right statement","commit_id":"75b829cf54e6118bfc60c4cd3e618fcf3d882288"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"5608881121ca8358f20e90274b994e3b97078f48","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":6,"id":"47e4902f_ada7d0fa","line":1,"in_reply_to":"3e32db42_f9568a9c","updated":"2023-08-02 16:12:45.000000000","message":"Not important, just wanted to follow the practice usually following for long.\nIf not required then Ok.","commit_id":"75b829cf54e6118bfc60c4cd3e618fcf3d882288"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9847cba001883d37ff383426fed1cb10a10b75d9","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":6,"id":"3e32db42_f9568a9c","line":1,"in_reply_to":"9b85185a_407c0565","updated":"2023-08-02 16:05:10.000000000","message":"with that said, if you want to add them then by all means do","commit_id":"75b829cf54e6118bfc60c4cd3e618fcf3d882288"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"55b2714d1b61632ad9ae0da14e144078d35c6f5d","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":6,"id":"9b85185a_407c0565","line":1,"in_reply_to":"d7cb497b_675813a2","updated":"2023-08-02 16:04:34.000000000","message":"I\u0027m okay without that. It\u0027s not necessary and I haven\u0027t added them for years now 😄\n\n\u003e You **may** add Your own copyright statement to Your modifications\n\n(emphasis mine, [source](https://httpd.apache.org/docs/trunk/license.html))","commit_id":"75b829cf54e6118bfc60c4cd3e618fcf3d882288"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"1f538725f8ac169e6e0464721be207aabc9a4477","unresolved":true,"context_lines":[{"line_number":94,"context_line":"                    columns,"},{"line_number":95,"context_line":"                    formatters\u003d{},"},{"line_number":96,"context_line":"                )"},{"line_number":97,"context_line":"                for s in data"},{"line_number":98,"context_line":"            ),"},{"line_number":99,"context_line":"        )"},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"0b6ff88d_d56e897b","line":97,"range":{"start_line":97,"start_character":25,"end_line":97,"end_character":29},"updated":"2023-08-08 15:33:09.000000000","message":"Why not \"for image in data\"? This would be a better variable name than \"s\".","commit_id":"bc02ef252a7560510a33be8d8ab9dffe9b760285"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"f74ca83ca522860ac04caba5abb0c01e025241df","unresolved":true,"context_lines":[{"line_number":94,"context_line":"                    columns,"},{"line_number":95,"context_line":"                    formatters\u003d{},"},{"line_number":96,"context_line":"                )"},{"line_number":97,"context_line":"                for s in data"},{"line_number":98,"context_line":"            ),"},{"line_number":99,"context_line":"        )"},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"aa0ba247_9401f9f3","line":97,"range":{"start_line":97,"start_character":25,"end_line":97,"end_character":29},"in_reply_to":"0b6ff88d_d56e897b","updated":"2023-08-08 16:49:48.000000000","message":"Agreed ,\n(Was following the same pattern they have for other methods in OSC)","commit_id":"bc02ef252a7560510a33be8d8ab9dffe9b760285"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"bf1ebd282ef6101be2d041cae671fbb5f65bbb69","unresolved":false,"context_lines":[{"line_number":94,"context_line":"                    columns,"},{"line_number":95,"context_line":"                    formatters\u003d{},"},{"line_number":96,"context_line":"                )"},{"line_number":97,"context_line":"                for s in data"},{"line_number":98,"context_line":"            ),"},{"line_number":99,"context_line":"        )"},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"96bb0d59_9cfc856a","line":97,"range":{"start_line":97,"start_character":25,"end_line":97,"end_character":29},"in_reply_to":"aa0ba247_9401f9f3","updated":"2023-08-09 17:36:34.000000000","message":"Done","commit_id":"bc02ef252a7560510a33be8d8ab9dffe9b760285"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"1f538725f8ac169e6e0464721be207aabc9a4477","unresolved":true,"context_lines":[{"line_number":131,"context_line":"                )"},{"line_number":132,"context_line":"                LOG.error(msg, {\u0027image\u0027: image, \u0027e\u0027: e})"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"        total \u003d len(parsed_args.images)"},{"line_number":135,"context_line":"        if failures \u003e 0:"},{"line_number":136,"context_line":"            msg \u003d _(\"Failed to queue %(failures)s of %(total)s images\") % {"},{"line_number":137,"context_line":"                \u0027failures\u0027: failures,"}],"source_content_type":"text/x-python","patch_set":7,"id":"a8509804_3681de3c","line":134,"range":{"start_line":134,"start_character":20,"end_line":134,"end_character":38},"updated":"2023-08-08 15:33:09.000000000","message":"There is no need to compute this (even though it\u0027s not a very long operation :p) if there were no failures; you should move this line after \"if failures \u003e 0:\".","commit_id":"bc02ef252a7560510a33be8d8ab9dffe9b760285"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"f74ca83ca522860ac04caba5abb0c01e025241df","unresolved":false,"context_lines":[{"line_number":131,"context_line":"                )"},{"line_number":132,"context_line":"                LOG.error(msg, {\u0027image\u0027: image, \u0027e\u0027: e})"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"        total \u003d len(parsed_args.images)"},{"line_number":135,"context_line":"        if failures \u003e 0:"},{"line_number":136,"context_line":"            msg \u003d _(\"Failed to queue %(failures)s of %(total)s images\") % {"},{"line_number":137,"context_line":"                \u0027failures\u0027: failures,"}],"source_content_type":"text/x-python","patch_set":7,"id":"d209499c_44123c06","line":134,"range":{"start_line":134,"start_character":20,"end_line":134,"end_character":38},"in_reply_to":"a8509804_3681de3c","updated":"2023-08-08 16:49:48.000000000","message":"Ack","commit_id":"bc02ef252a7560510a33be8d8ab9dffe9b760285"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"1f538725f8ac169e6e0464721be207aabc9a4477","unresolved":true,"context_lines":[{"line_number":171,"context_line":"                )"},{"line_number":172,"context_line":"                LOG.error(msg, {\u0027image\u0027: image, \u0027e\u0027: e})"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        total \u003d len(parsed_args.images)"},{"line_number":175,"context_line":"        if failures \u003e 0:"},{"line_number":176,"context_line":"            msg \u003d _(\"Failed to delete %(dresult)s of %(total)s images.\") % {"},{"line_number":177,"context_line":"                \u0027failures\u0027: failures,"}],"source_content_type":"text/x-python","patch_set":7,"id":"9d4802da_8d5af631","line":174,"range":{"start_line":174,"start_character":20,"end_line":174,"end_character":38},"updated":"2023-08-08 15:33:09.000000000","message":"Ditto","commit_id":"bc02ef252a7560510a33be8d8ab9dffe9b760285"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"f74ca83ca522860ac04caba5abb0c01e025241df","unresolved":false,"context_lines":[{"line_number":171,"context_line":"                )"},{"line_number":172,"context_line":"                LOG.error(msg, {\u0027image\u0027: image, \u0027e\u0027: e})"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        total \u003d len(parsed_args.images)"},{"line_number":175,"context_line":"        if failures \u003e 0:"},{"line_number":176,"context_line":"            msg \u003d _(\"Failed to delete %(dresult)s of %(total)s images.\") % {"},{"line_number":177,"context_line":"                \u0027failures\u0027: failures,"}],"source_content_type":"text/x-python","patch_set":7,"id":"25792136_4af9c20f","line":174,"range":{"start_line":174,"start_character":20,"end_line":174,"end_character":38},"in_reply_to":"9d4802da_8d5af631","updated":"2023-08-08 16:49:48.000000000","message":"Ack","commit_id":"bc02ef252a7560510a33be8d8ab9dffe9b760285"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"ba9ca79a3f36c8dfdc4ab76d0dae1098e2b58dac","unresolved":true,"context_lines":[{"line_number":33,"context_line":"    for item in cached_images:"},{"line_number":34,"context_line":"        if item \u003d\u003d \"cached_images\":"},{"line_number":35,"context_line":"            for image in cached_images[item]:"},{"line_number":36,"context_line":"                image[\u0027state\u0027] \u003d \u0027cached\u0027"},{"line_number":37,"context_line":"                image[\u0027last_accessed\u0027] \u003d datetime.datetime.utcfromtimestamp("},{"line_number":38,"context_line":"                    image[\u0027last_accessed\u0027]"},{"line_number":39,"context_line":"                ).isoformat()"}],"source_content_type":"text/x-python","patch_set":11,"id":"0e6b76a6_1da8b020","line":36,"range":{"start_line":36,"start_character":16,"end_line":36,"end_character":21},"updated":"2023-09-22 08:30:04.000000000","message":"we should create/use a new dict here and should not modify the the items that are being traversed in the loop since modifying it could alter the order how the loop returns items.\nsomething like,\n\nimport copy\n\nimage_obj \u003d copy.deepcopy(image)\nimage_obj[\u0027state\u0027] \u003d \u0027cached\u0027\n...","commit_id":"7d004d95848d9958f6e0307c0903b49b779a6724"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"633e84bd609761cd84c9866ab54a15155e2c8020","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    for item in cached_images:"},{"line_number":34,"context_line":"        if item \u003d\u003d \"cached_images\":"},{"line_number":35,"context_line":"            for image in cached_images[item]:"},{"line_number":36,"context_line":"                image[\u0027state\u0027] \u003d \u0027cached\u0027"},{"line_number":37,"context_line":"                image[\u0027last_accessed\u0027] \u003d datetime.datetime.utcfromtimestamp("},{"line_number":38,"context_line":"                    image[\u0027last_accessed\u0027]"},{"line_number":39,"context_line":"                ).isoformat()"}],"source_content_type":"text/x-python","patch_set":11,"id":"586a5a2c_672532e5","line":36,"range":{"start_line":36,"start_character":16,"end_line":36,"end_character":21},"in_reply_to":"0e6b76a6_1da8b020","updated":"2023-09-25 08:25:08.000000000","message":"Ack","commit_id":"7d004d95848d9958f6e0307c0903b49b779a6724"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"ba9ca79a3f36c8dfdc4ab76d0dae1098e2b58dac","unresolved":true,"context_lines":[{"line_number":92,"context_line":"                utils.get_dict_properties("},{"line_number":93,"context_line":"                    image,"},{"line_number":94,"context_line":"                    columns,"},{"line_number":95,"context_line":"                    formatters\u003d{},"},{"line_number":96,"context_line":"                )"},{"line_number":97,"context_line":"                for image in data"},{"line_number":98,"context_line":"            ),"}],"source_content_type":"text/x-python","patch_set":11,"id":"92791ef5_a22a4c06","line":95,"range":{"start_line":95,"start_character":0,"end_line":95,"end_character":34},"updated":"2023-09-22 08:30:04.000000000","message":"nit: not needed","commit_id":"7d004d95848d9958f6e0307c0903b49b779a6724"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"633e84bd609761cd84c9866ab54a15155e2c8020","unresolved":false,"context_lines":[{"line_number":92,"context_line":"                utils.get_dict_properties("},{"line_number":93,"context_line":"                    image,"},{"line_number":94,"context_line":"                    columns,"},{"line_number":95,"context_line":"                    formatters\u003d{},"},{"line_number":96,"context_line":"                )"},{"line_number":97,"context_line":"                for image in data"},{"line_number":98,"context_line":"            ),"}],"source_content_type":"text/x-python","patch_set":11,"id":"2adbb2e5_36d40593","line":95,"range":{"start_line":95,"start_character":0,"end_line":95,"end_character":34},"in_reply_to":"92791ef5_a22a4c06","updated":"2023-09-25 08:25:08.000000000","message":"Ack","commit_id":"7d004d95848d9958f6e0307c0903b49b779a6724"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"ba9ca79a3f36c8dfdc4ab76d0dae1098e2b58dac","unresolved":true,"context_lines":[{"line_number":190,"context_line":"            action\u003d\"store_const\","},{"line_number":191,"context_line":"            const\u003d\"cache\","},{"line_number":192,"context_line":"            dest\u003d\"target\","},{"line_number":193,"context_line":"            help\u003d_(\"Clears all the cache images\"),"},{"line_number":194,"context_line":"        )"},{"line_number":195,"context_line":"        parser.add_argument("},{"line_number":196,"context_line":"            \"--queue\","}],"source_content_type":"text/x-python","patch_set":11,"id":"399e149e_3da4d68d","line":193,"range":{"start_line":193,"start_character":35,"end_line":193,"end_character":40},"updated":"2023-09-22 08:30:04.000000000","message":"nit: cached?","commit_id":"7d004d95848d9958f6e0307c0903b49b779a6724"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"633e84bd609761cd84c9866ab54a15155e2c8020","unresolved":false,"context_lines":[{"line_number":190,"context_line":"            action\u003d\"store_const\","},{"line_number":191,"context_line":"            const\u003d\"cache\","},{"line_number":192,"context_line":"            dest\u003d\"target\","},{"line_number":193,"context_line":"            help\u003d_(\"Clears all the cache images\"),"},{"line_number":194,"context_line":"        )"},{"line_number":195,"context_line":"        parser.add_argument("},{"line_number":196,"context_line":"            \"--queue\","}],"source_content_type":"text/x-python","patch_set":11,"id":"60bcfb20_721d63ad","line":193,"range":{"start_line":193,"start_character":35,"end_line":193,"end_character":40},"in_reply_to":"399e149e_3da4d68d","updated":"2023-09-25 08:25:08.000000000","message":"Ack","commit_id":"7d004d95848d9958f6e0307c0903b49b779a6724"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"ba9ca79a3f36c8dfdc4ab76d0dae1098e2b58dac","unresolved":true,"context_lines":[{"line_number":197,"context_line":"            action\u003d\"store_const\","},{"line_number":198,"context_line":"            const\u003d\"queue\","},{"line_number":199,"context_line":"            dest\u003d\"target\","},{"line_number":200,"context_line":"            help\u003d_(\"Clears all the queue images\"),"},{"line_number":201,"context_line":"        )"},{"line_number":202,"context_line":"        return parser"},{"line_number":203,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"f84d05b5_61d98192","line":200,"range":{"start_line":200,"start_character":35,"end_line":200,"end_character":40},"updated":"2023-09-22 08:30:04.000000000","message":"nit: queued?","commit_id":"7d004d95848d9958f6e0307c0903b49b779a6724"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"633e84bd609761cd84c9866ab54a15155e2c8020","unresolved":false,"context_lines":[{"line_number":197,"context_line":"            action\u003d\"store_const\","},{"line_number":198,"context_line":"            const\u003d\"queue\","},{"line_number":199,"context_line":"            dest\u003d\"target\","},{"line_number":200,"context_line":"            help\u003d_(\"Clears all the queue images\"),"},{"line_number":201,"context_line":"        )"},{"line_number":202,"context_line":"        return parser"},{"line_number":203,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"557326c4_cf334241","line":200,"range":{"start_line":200,"start_character":35,"end_line":200,"end_character":40},"in_reply_to":"f84d05b5_61d98192","updated":"2023-09-25 08:25:08.000000000","message":"Ack","commit_id":"7d004d95848d9958f6e0307c0903b49b779a6724"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5b61642dc0fa67dec786f1751cc68318b6f317f9","unresolved":false,"context_lines":[{"line_number":36,"context_line":"            for image in cached_images[item]:"},{"line_number":37,"context_line":"                image_obj \u003d copy.deepcopy(image)"},{"line_number":38,"context_line":"                image_obj[\u0027state\u0027] \u003d \u0027cached\u0027"},{"line_number":39,"context_line":"                image_obj["},{"line_number":40,"context_line":"                    \u0027last_accessed\u0027"},{"line_number":41,"context_line":"                ] \u003d datetime.datetime.utcfromtimestamp("},{"line_number":42,"context_line":"                    image[\u0027last_accessed\u0027]"},{"line_number":43,"context_line":"                ).isoformat()"},{"line_number":44,"context_line":"                image_obj["},{"line_number":45,"context_line":"                    \u0027last_modified\u0027"},{"line_number":46,"context_line":"                ] \u003d datetime.datetime.utcfromtimestamp("}],"source_content_type":"text/x-python","patch_set":12,"id":"1b05101c_10ebba68","line":43,"range":{"start_line":39,"start_character":16,"end_line":43,"end_character":29},"updated":"2023-09-25 12:54:12.000000000","message":"I\u0027m assuming black formatted this, would\u0027ve been more readable with parenthesis\n\n    image_obj[\u0027last_accessed\u0027] \u003d (\n        datetime.datetime...)","commit_id":"8786370c713dcd27843620391ace90b10f6e6721"}],"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":"9486cee500a01c11ba56cddf08c4e2782b972b86","unresolved":true,"context_lines":[{"line_number":16,"context_line":"from unittest import mock"},{"line_number":17,"context_line":"import uuid"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from openstack.image.v2 import _proxy"},{"line_number":21,"context_line":"from openstack.image.v2 import cache"},{"line_number":22,"context_line":"from openstack.image.v2 import image"}],"source_content_type":"text/x-python","patch_set":12,"id":"969423ba_91c38e25","line":19,"updated":"2023-10-06 10:28:53.000000000","message":"nit: unnecessary","commit_id":"8786370c713dcd27843620391ace90b10f6e6721"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"6f4961b72254c94b2ee33c04217723a482be447b","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from unittest import mock"},{"line_number":17,"context_line":"import uuid"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from openstack.image.v2 import _proxy"},{"line_number":21,"context_line":"from openstack.image.v2 import cache"},{"line_number":22,"context_line":"from openstack.image.v2 import image"}],"source_content_type":"text/x-python","patch_set":12,"id":"91b020b6_4ad20e8b","line":19,"in_reply_to":"969423ba_91c38e25","updated":"2023-10-10 09:56:58.000000000","message":"Done","commit_id":"8786370c713dcd27843620391ace90b10f6e6721"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9486cee500a01c11ba56cddf08c4e2782b972b86","unresolved":false,"context_lines":[{"line_number":259,"context_line":"    }"},{"line_number":260,"context_line":"    cache_info.update(attrs)"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"    return cache.Cache(**cache_info)"},{"line_number":263,"context_line":""},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"class FakeMetadefNamespaceClient:"}],"source_content_type":"text/x-python","patch_set":12,"id":"97ce836c_41ef88c5","line":262,"updated":"2023-10-06 10:28:53.000000000","message":"nit: Rather than defining this method, you can now use the helpers from the `openstack.test.fakes` module to generate a fake for you in your tests.\n\n```\nfrom openstack.test import fakes\n\ncache \u003d fakes.generate_fake_resource(_cache.Cache)\n```\n\nHowever, in this case it\u0027s probably not _all_ that helpful since our typing likely isn\u0027t complete enough. Also, there\u0027s [a bug](https://review.opendev.org/c/openstack/openstacksdk/+/897536). Still, worth noting in case you wanted to rework this and start using that utility.","commit_id":"8786370c713dcd27843620391ace90b10f6e6721"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9486cee500a01c11ba56cddf08c4e2782b972b86","unresolved":true,"context_lines":[{"line_number":272,"context_line":""},{"line_number":273,"context_line":"        self.auth_token \u003d kwargs[\u0027token\u0027]"},{"line_number":274,"context_line":"        self.management_url \u003d kwargs[\u0027endpoint\u0027]"},{"line_number":275,"context_line":"        self.version \u003d 2.0"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"class TestMetadefNamespaces(utils.TestCommand):"}],"source_content_type":"text/x-python","patch_set":12,"id":"f9574d8a_dcec4756","line":275,"updated":"2023-10-06 10:28:53.000000000","message":"You don\u0027t need to do this. `FakeClientMixin` creates a specced mock of the `openstack.image.v2._proxy.Proxy` class, which will have the above metadef namespace-related methods defined on it already. You simply need to set the `return_value`/`side_effect` attributes of these accordingly in your tests.\n\nLater: I just realized you\u0027re not even using these. This looks like a rebase snafu. Can you drop it please?","commit_id":"8786370c713dcd27843620391ace90b10f6e6721"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"6f4961b72254c94b2ee33c04217723a482be447b","unresolved":false,"context_lines":[{"line_number":272,"context_line":""},{"line_number":273,"context_line":"        self.auth_token \u003d kwargs[\u0027token\u0027]"},{"line_number":274,"context_line":"        self.management_url \u003d kwargs[\u0027endpoint\u0027]"},{"line_number":275,"context_line":"        self.version \u003d 2.0"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"class TestMetadefNamespaces(utils.TestCommand):"}],"source_content_type":"text/x-python","patch_set":12,"id":"f4752059_3b3f3fe8","line":275,"in_reply_to":"f9574d8a_dcec4756","updated":"2023-10-10 09:56:58.000000000","message":"Done","commit_id":"8786370c713dcd27843620391ace90b10f6e6721"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9486cee500a01c11ba56cddf08c4e2782b972b86","unresolved":true,"context_lines":[{"line_number":275,"context_line":"        self.version \u003d 2.0"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"class TestMetadefNamespaces(utils.TestCommand):"},{"line_number":279,"context_line":"    def setUp(self):"},{"line_number":280,"context_line":"        super().setUp()"},{"line_number":281,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"10b9c9ba_9186f958","line":278,"updated":"2023-10-06 10:28:53.000000000","message":"Ditto. Rather than defining a new base class, you can simply use `TestImagev2` which has already configured fake client for the Image and Identity services (the former is done via `FakeClientMixin`).\n\nLater: As above, you don\u0027t want this.","commit_id":"8786370c713dcd27843620391ace90b10f6e6721"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"6f4961b72254c94b2ee33c04217723a482be447b","unresolved":false,"context_lines":[{"line_number":275,"context_line":"        self.version \u003d 2.0"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"class TestMetadefNamespaces(utils.TestCommand):"},{"line_number":279,"context_line":"    def setUp(self):"},{"line_number":280,"context_line":"        super().setUp()"},{"line_number":281,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"a6e56bd1_eab24112","line":278,"in_reply_to":"10b9c9ba_9186f958","updated":"2023-10-10 09:56:58.000000000","message":"Done","commit_id":"8786370c713dcd27843620391ace90b10f6e6721"}],"openstackclient/tests/unit/image/v2/test_cache.py":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"3ac02599a6a7390f622ee9bddd1975f18f57d864","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":6,"id":"4c883efd_7356b82f","line":1,"updated":"2023-08-01 15:17:52.000000000","message":"Missing copy-right statement","commit_id":"75b829cf54e6118bfc60c4cd3e618fcf3d882288"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"55b2714d1b61632ad9ae0da14e144078d35c6f5d","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":6,"id":"7a00cbec_ae77f720","line":1,"in_reply_to":"4c883efd_7356b82f","updated":"2023-08-02 16:04:34.000000000","message":"ditto","commit_id":"75b829cf54e6118bfc60c4cd3e618fcf3d882288"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"ba9ca79a3f36c8dfdc4ab76d0dae1098e2b58dac","unresolved":true,"context_lines":[{"line_number":24,"context_line":"        super().setUp()"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"        # Get shortcuts to mocked image client"},{"line_number":27,"context_line":"        self.client \u003d self.app.client_manager.image"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class TestImageList(TestCache):"}],"source_content_type":"text/x-python","patch_set":11,"id":"0fae4522_819d2acb","line":27,"range":{"start_line":27,"start_character":22,"end_line":27,"end_character":51},"updated":"2023-09-22 08:30:04.000000000","message":"we should be mocking the client so we can also assert the method it calls\n\nyou can reference from my patch here how to mock the sdk client and assert the methods to check if they are called with the right parameter\n\n(ignore the sdk_connection part, that is not required in glance since the image_client is already initialized with sdk)\n\nhttps://review.opendev.org/c/openstack/python-openstackclient/+/895971/1/openstackclient/tests/unit/volume/v2/test_volume_backend.py","commit_id":"7d004d95848d9958f6e0307c0903b49b779a6724"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"633e84bd609761cd84c9866ab54a15155e2c8020","unresolved":false,"context_lines":[{"line_number":24,"context_line":"        super().setUp()"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"        # Get shortcuts to mocked image client"},{"line_number":27,"context_line":"        self.client \u003d self.app.client_manager.image"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class TestImageList(TestCache):"}],"source_content_type":"text/x-python","patch_set":11,"id":"1f493d10_70e00644","line":27,"range":{"start_line":27,"start_character":22,"end_line":27,"end_character":51},"in_reply_to":"0fae4522_819d2acb","updated":"2023-09-25 08:25:08.000000000","message":"Ack","commit_id":"7d004d95848d9958f6e0307c0903b49b779a6724"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"ba9ca79a3f36c8dfdc4ab76d0dae1098e2b58dac","unresolved":true,"context_lines":[{"line_number":55,"context_line":"        super().setUp()"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        # Get the command object to test"},{"line_number":58,"context_line":"        self.client.get_image_cache.return_value \u003d self._cache"},{"line_number":59,"context_line":"        self.cmd \u003d cache.ListCachedImage(self.app, None)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def test_image_cache_list(self):"}],"source_content_type":"text/x-python","patch_set":11,"id":"ac889d16_84bf1263","line":58,"range":{"start_line":58,"start_character":8,"end_line":58,"end_character":19},"updated":"2023-09-22 08:30:04.000000000","message":"again this should be created as a mock (as described above) before assigning any return value to it\u0027s methods","commit_id":"7d004d95848d9958f6e0307c0903b49b779a6724"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"633e84bd609761cd84c9866ab54a15155e2c8020","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        super().setUp()"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        # Get the command object to test"},{"line_number":58,"context_line":"        self.client.get_image_cache.return_value \u003d self._cache"},{"line_number":59,"context_line":"        self.cmd \u003d cache.ListCachedImage(self.app, None)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def test_image_cache_list(self):"}],"source_content_type":"text/x-python","patch_set":11,"id":"b04ec7ba_b0eecf73","line":58,"range":{"start_line":58,"start_character":8,"end_line":58,"end_character":19},"in_reply_to":"ac889d16_84bf1263","updated":"2023-09-25 08:25:08.000000000","message":"Ack","commit_id":"7d004d95848d9958f6e0307c0903b49b779a6724"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"ba9ca79a3f36c8dfdc4ab76d0dae1098e2b58dac","unresolved":true,"context_lines":[{"line_number":62,"context_line":"        arglist \u003d []"},{"line_number":63,"context_line":"        parsed_args \u003d self.check_parser(self.cmd, arglist, [])"},{"line_number":64,"context_line":"        columns, data \u003d self.cmd.take_action(parsed_args)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        self.assertEqual(self.columns, columns)"},{"line_number":67,"context_line":"        self.assertEqual(tuple(self.datalist), tuple(data))"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"fd4797e0_2b906ce5","line":65,"updated":"2023-09-22 08:30:04.000000000","message":"we should assert that get_image_cache was called and with the right parameters","commit_id":"7d004d95848d9958f6e0307c0903b49b779a6724"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"633e84bd609761cd84c9866ab54a15155e2c8020","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        arglist \u003d []"},{"line_number":63,"context_line":"        parsed_args \u003d self.check_parser(self.cmd, arglist, [])"},{"line_number":64,"context_line":"        columns, data \u003d self.cmd.take_action(parsed_args)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        self.assertEqual(self.columns, columns)"},{"line_number":67,"context_line":"        self.assertEqual(tuple(self.datalist), tuple(data))"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"04f2f882_a7c0ac8c","line":65,"in_reply_to":"fd4797e0_2b906ce5","updated":"2023-09-25 08:25:08.000000000","message":"Ack","commit_id":"7d004d95848d9958f6e0307c0903b49b779a6724"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"ba9ca79a3f36c8dfdc4ab76d0dae1098e2b58dac","unresolved":true,"context_lines":[{"line_number":166,"context_line":"        parsed_args \u003d self.check_parser(self.cmd, arglist, verifylist)"},{"line_number":167,"context_line":"        self.cmd.take_action(parsed_args)"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        self.client.clear_cache.assert_called_with(None)"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    def test_cache_clear_queue_option(self):"},{"line_number":172,"context_line":"        arglist \u003d [\u0027--queue\u0027]"}],"source_content_type":"text/x-python","patch_set":11,"id":"9cad1493_de6d3861","line":169,"range":{"start_line":169,"start_character":8,"end_line":169,"end_character":56},"updated":"2023-09-22 08:30:04.000000000","message":"nit: not needed but we can add an additional validation that the return value is None\n\nself.assertIsNone(self.client.clear_cache.assert_called_with(None))","commit_id":"7d004d95848d9958f6e0307c0903b49b779a6724"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"633e84bd609761cd84c9866ab54a15155e2c8020","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        parsed_args \u003d self.check_parser(self.cmd, arglist, verifylist)"},{"line_number":167,"context_line":"        self.cmd.take_action(parsed_args)"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        self.client.clear_cache.assert_called_with(None)"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    def test_cache_clear_queue_option(self):"},{"line_number":172,"context_line":"        arglist \u003d [\u0027--queue\u0027]"}],"source_content_type":"text/x-python","patch_set":11,"id":"245e444b_4d3d6e95","line":169,"range":{"start_line":169,"start_character":8,"end_line":169,"end_character":56},"in_reply_to":"9cad1493_de6d3861","updated":"2023-09-25 08:25:08.000000000","message":"Ack","commit_id":"7d004d95848d9958f6e0307c0903b49b779a6724"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9486cee500a01c11ba56cddf08c4e2782b972b86","unresolved":true,"context_lines":[{"line_number":17,"context_line":"from unittest.mock import call"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from openstackclient.image.v2 import cache"},{"line_number":20,"context_line":"from openstackclient.tests.unit.image.v2 import fakes as cache_fakes"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"class TestCache(cache_fakes.TestImagev2):"}],"source_content_type":"text/x-python","patch_set":12,"id":"07a30cbb_9208bd88","line":20,"updated":"2023-10-06 10:28:53.000000000","message":"nit: do you really need the alias (the `as cache_fakes` bit)? `fakes` is shorter and there\u0027s nothing cache-specific about the module...","commit_id":"8786370c713dcd27843620391ace90b10f6e6721"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"6f4961b72254c94b2ee33c04217723a482be447b","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from unittest.mock import call"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from openstackclient.image.v2 import cache"},{"line_number":20,"context_line":"from openstackclient.tests.unit.image.v2 import fakes as cache_fakes"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"class TestCache(cache_fakes.TestImagev2):"}],"source_content_type":"text/x-python","patch_set":12,"id":"811efa4d_e3828f24","line":20,"in_reply_to":"07a30cbb_9208bd88","updated":"2023-10-10 09:56:58.000000000","message":"Done","commit_id":"8786370c713dcd27843620391ace90b10f6e6721"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9486cee500a01c11ba56cddf08c4e2782b972b86","unresolved":true,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"        # Get shortcuts to mocked image client"},{"line_number":28,"context_line":"        self.app.client_manager.image \u003d mock.Mock()"},{"line_number":29,"context_line":"        self.client \u003d self.app.client_manager.image"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"class TestImageList(TestCache):"}],"source_content_type":"text/x-python","patch_set":12,"id":"67c25ee0_190ba159","line":29,"updated":"2023-10-06 10:28:53.000000000","message":"This is configured by the `FakeClientMixin` now in the previous file. You can remove this base class and use `TestImagev2` everywhere instead. Note that the client is stored as `image_client` though, not `client`, so you need to do `s/\\\u003cself.client\\\u003e/\\\u003cself.image_client\\\u003e/` in this file.","commit_id":"8786370c713dcd27843620391ace90b10f6e6721"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"6f4961b72254c94b2ee33c04217723a482be447b","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"        # Get shortcuts to mocked image client"},{"line_number":28,"context_line":"        self.app.client_manager.image \u003d mock.Mock()"},{"line_number":29,"context_line":"        self.client \u003d self.app.client_manager.image"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"class TestImageList(TestCache):"}],"source_content_type":"text/x-python","patch_set":12,"id":"5ccebec1_0d676165","line":29,"in_reply_to":"67c25ee0_190ba159","updated":"2023-10-10 09:56:58.000000000","message":"Done","commit_id":"8786370c713dcd27843620391ace90b10f6e6721"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9486cee500a01c11ba56cddf08c4e2782b972b86","unresolved":true,"context_lines":[{"line_number":40,"context_line":"        \"Hits\","},{"line_number":41,"context_line":"    ]"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    cache_list \u003d cache._format_image_cache(dict(cache_fakes.create_cache()))"},{"line_number":44,"context_line":"    datalist \u003d ("},{"line_number":45,"context_line":"        ("},{"line_number":46,"context_line":"            image[\u0027image_id\u0027],"}],"source_content_type":"text/x-python","patch_set":12,"id":"f521d592_a0fd406d","line":43,"updated":"2023-10-06 10:28:53.000000000","message":"Why the `dict` wrapper? `Resource` allows dictionary-style access already?","commit_id":"8786370c713dcd27843620391ace90b10f6e6721"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"6f4961b72254c94b2ee33c04217723a482be447b","unresolved":true,"context_lines":[{"line_number":40,"context_line":"        \"Hits\","},{"line_number":41,"context_line":"    ]"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    cache_list \u003d cache._format_image_cache(dict(cache_fakes.create_cache()))"},{"line_number":44,"context_line":"    datalist \u003d ("},{"line_number":45,"context_line":"        ("},{"line_number":46,"context_line":"            image[\u0027image_id\u0027],"}],"source_content_type":"text/x-python","patch_set":12,"id":"1600accb_87ad948b","line":43,"in_reply_to":"f521d592_a0fd406d","updated":"2023-10-10 09:56:58.000000000","message":"This method takes Resource as an dictionary to format the data","commit_id":"8786370c713dcd27843620391ace90b10f6e6721"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5b61642dc0fa67dec786f1751cc68318b6f317f9","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        parsed_args \u003d self.check_parser(self.cmd, arglist, [])"},{"line_number":66,"context_line":"        columns, data \u003d self.cmd.take_action(parsed_args)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        self.client.get_image_cache.assert_called()"},{"line_number":69,"context_line":"        self.assertEqual(self.columns, columns)"},{"line_number":70,"context_line":"        self.assertEqual(tuple(self.datalist), tuple(data))"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"2c5e17ee_fd7a3495","line":68,"range":{"start_line":68,"start_character":36,"end_line":68,"end_character":49},"updated":"2023-09-25 12:54:12.000000000","message":"nit: assert_called_once_with is a better option. It checks 2 things:\n\n1. it is only called once\n2. it is called with desired or exactly 0 parameters (which is the case here)","commit_id":"8786370c713dcd27843620391ace90b10f6e6721"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9486cee500a01c11ba56cddf08c4e2782b972b86","unresolved":true,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        self.cmd.take_action(parsed_args)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        self.client.queue_image.assert_called_with(images[0].id)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    def test_cache_queue_multiple_images(self):"},{"line_number":99,"context_line":"        images \u003d cache_fakes.create_images(count\u003d3)"}],"source_content_type":"text/x-python","patch_set":12,"id":"2b26a835_29e9a1ef","line":96,"range":{"start_line":96,"start_character":32,"end_line":96,"end_character":50},"updated":"2023-10-06 10:28:53.000000000","message":"nit: `assert_called_once_with` would be better to ensure we only get called once (which is what we expect). Ditto for other uses below.","commit_id":"8786370c713dcd27843620391ace90b10f6e6721"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"6f4961b72254c94b2ee33c04217723a482be447b","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        self.cmd.take_action(parsed_args)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        self.client.queue_image.assert_called_with(images[0].id)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    def test_cache_queue_multiple_images(self):"},{"line_number":99,"context_line":"        images \u003d cache_fakes.create_images(count\u003d3)"}],"source_content_type":"text/x-python","patch_set":12,"id":"409d9001_4b7dda79","line":96,"range":{"start_line":96,"start_character":32,"end_line":96,"end_character":50},"in_reply_to":"2b26a835_29e9a1ef","updated":"2023-10-10 09:56:58.000000000","message":"Done","commit_id":"8786370c713dcd27843620391ace90b10f6e6721"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9486cee500a01c11ba56cddf08c4e2782b972b86","unresolved":true,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"        self.cmd.take_action(parsed_args)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        self.client.cache_delete_image.assert_called_with(images[0].id)"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    def test_cache_delete_multiple_images(self):"},{"line_number":141,"context_line":"        images \u003d cache_fakes.create_images(count\u003d3)"}],"source_content_type":"text/x-python","patch_set":12,"id":"f68c39c9_91143128","line":138,"updated":"2023-10-06 10:28:53.000000000","message":"Can you add an assertion that `find_image` was called also? Ditto for the below.","commit_id":"8786370c713dcd27843620391ace90b10f6e6721"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"6f4961b72254c94b2ee33c04217723a482be447b","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"        self.cmd.take_action(parsed_args)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        self.client.cache_delete_image.assert_called_with(images[0].id)"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    def test_cache_delete_multiple_images(self):"},{"line_number":141,"context_line":"        images \u003d cache_fakes.create_images(count\u003d3)"}],"source_content_type":"text/x-python","patch_set":12,"id":"9eecd2cb_a456c4f7","line":138,"in_reply_to":"f68c39c9_91143128","updated":"2023-10-10 09:56:58.000000000","message":"Done","commit_id":"8786370c713dcd27843620391ace90b10f6e6721"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9486cee500a01c11ba56cddf08c4e2782b972b86","unresolved":true,"context_lines":[{"line_number":151,"context_line":""},{"line_number":152,"context_line":"        self.cmd.take_action(parsed_args)"},{"line_number":153,"context_line":"        calls \u003d [call(i.id) for i in images]"},{"line_number":154,"context_line":"        self.client.cache_delete_image.assert_has_calls(calls)"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"class TestCacheClear(TestCache):"}],"source_content_type":"text/x-python","patch_set":12,"id":"153da547_fbeff4d9","line":154,"updated":"2023-10-06 10:28:53.000000000","message":"You\u0027re missing a test case for the error case, where one of the images is missing. Could you add this? (hint: `Resource.find` returns `openstack.exceptions.ResourceNotFound` if `ignore_missing\u003dFalse`)","commit_id":"8786370c713dcd27843620391ace90b10f6e6721"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"6f4961b72254c94b2ee33c04217723a482be447b","unresolved":false,"context_lines":[{"line_number":151,"context_line":""},{"line_number":152,"context_line":"        self.cmd.take_action(parsed_args)"},{"line_number":153,"context_line":"        calls \u003d [call(i.id) for i in images]"},{"line_number":154,"context_line":"        self.client.cache_delete_image.assert_has_calls(calls)"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"class TestCacheClear(TestCache):"}],"source_content_type":"text/x-python","patch_set":12,"id":"ec16b358_8e294319","line":154,"in_reply_to":"153da547_fbeff4d9","updated":"2023-10-10 09:56:58.000000000","message":"Done","commit_id":"8786370c713dcd27843620391ace90b10f6e6721"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9486cee500a01c11ba56cddf08c4e2782b972b86","unresolved":true,"context_lines":[{"line_number":169,"context_line":"        parsed_args \u003d self.check_parser(self.cmd, arglist, verifylist)"},{"line_number":170,"context_line":"        self.cmd.take_action(parsed_args)"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"        self.assertIsNone(self.client.clear_cache.assert_called_with(None))"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"    def test_cache_clear_queue_option(self):"},{"line_number":175,"context_line":"        arglist \u003d [\u0027--queue\u0027]"}],"source_content_type":"text/x-python","patch_set":12,"id":"75bfbabf_7bb4fe64","line":172,"updated":"2023-10-06 10:28:53.000000000","message":"Can you assert that the method was called? Ditto for the below.","commit_id":"8786370c713dcd27843620391ace90b10f6e6721"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"6f4961b72254c94b2ee33c04217723a482be447b","unresolved":false,"context_lines":[{"line_number":169,"context_line":"        parsed_args \u003d self.check_parser(self.cmd, arglist, verifylist)"},{"line_number":170,"context_line":"        self.cmd.take_action(parsed_args)"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"        self.assertIsNone(self.client.clear_cache.assert_called_with(None))"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"    def test_cache_clear_queue_option(self):"},{"line_number":175,"context_line":"        arglist \u003d [\u0027--queue\u0027]"}],"source_content_type":"text/x-python","patch_set":12,"id":"c2365190_f6b288ae","line":172,"in_reply_to":"75bfbabf_7bb4fe64","updated":"2023-10-10 09:56:58.000000000","message":"Done","commit_id":"8786370c713dcd27843620391ace90b10f6e6721"}],"releasenotes/notes/add-cache-commands-a6f046348a3a0b1f.yaml":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0eae4d5ca5e95a82f05475059be5e3f1402540b4","unresolved":true,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add commands for the image Cache API, to list, queue,"},{"line_number":5,"context_line":"    delete and clear images in the cache."},{"line_number":6,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":3,"id":"260226bd_acf89629","line":6,"updated":"2023-07-05 10:01:12.000000000","message":"nit: extra newline","commit_id":"b597ad6c1c10c0c1134afd34bd706881df13d458"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"d300446684515226e68a3eb145a1154d1187bbbc","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add commands for the image Cache API, to list, queue,"},{"line_number":5,"context_line":"    delete and clear images in the cache."},{"line_number":6,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":3,"id":"e95d426c_dc725fb9","line":6,"in_reply_to":"260226bd_acf89629","updated":"2023-07-06 14:05:08.000000000","message":"Ack","commit_id":"b597ad6c1c10c0c1134afd34bd706881df13d458"}],"setup.cfg":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0eae4d5ca5e95a82f05475059be5e3f1402540b4","unresolved":true,"context_lines":[{"line_number":398,"context_line":"    image_cache_list \u003d openstackclient.image.v2.cache:ListCache"},{"line_number":399,"context_line":"    image_cache_queue \u003d openstackclient.image.v2.cache:QueueCache"},{"line_number":400,"context_line":"    image_cache_delete \u003d openstackclient.image.v2.cache:DeleteCache"},{"line_number":401,"context_line":"    image_cache_clear \u003d openstackclient.image.v2.cache:ClearCache"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"openstack.network.v2 \u003d"},{"line_number":404,"context_line":"    address_group_create \u003d openstackclient.network.v2.address_group:CreateAddressGroup"}],"source_content_type":"text/x-ttcn-cfg","patch_set":3,"id":"083a621e_3d12ff25","line":401,"updated":"2023-07-05 10:01:12.000000000","message":"A suggestion for alternative naming that would better align with OSC naming conventions:\n\n- `cached image list`\n- `cached image create`\n- `cached image delete`\n- `cached image delete --all`\n\nThoughts?","commit_id":"b597ad6c1c10c0c1134afd34bd706881df13d458"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"d300446684515226e68a3eb145a1154d1187bbbc","unresolved":true,"context_lines":[{"line_number":398,"context_line":"    image_cache_list \u003d openstackclient.image.v2.cache:ListCache"},{"line_number":399,"context_line":"    image_cache_queue \u003d openstackclient.image.v2.cache:QueueCache"},{"line_number":400,"context_line":"    image_cache_delete \u003d openstackclient.image.v2.cache:DeleteCache"},{"line_number":401,"context_line":"    image_cache_clear \u003d openstackclient.image.v2.cache:ClearCache"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"openstack.network.v2 \u003d"},{"line_number":404,"context_line":"    address_group_create \u003d openstackclient.network.v2.address_group:CreateAddressGroup"}],"source_content_type":"text/x-ttcn-cfg","patch_set":3,"id":"9d2474ed_7b9216fe","line":401,"in_reply_to":"083a621e_3d12ff25","updated":"2023-07-06 14:05:08.000000000","message":"I think cached image clear will be more appropriate as delete --all implies that on everycall we are deleting all the data from both the cached and queued.","commit_id":"b597ad6c1c10c0c1134afd34bd706881df13d458"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"255491424104738ac3d5784a5f26d6105fde7a20","unresolved":false,"context_lines":[{"line_number":398,"context_line":"    image_cache_list \u003d openstackclient.image.v2.cache:ListCache"},{"line_number":399,"context_line":"    image_cache_queue \u003d openstackclient.image.v2.cache:QueueCache"},{"line_number":400,"context_line":"    image_cache_delete \u003d openstackclient.image.v2.cache:DeleteCache"},{"line_number":401,"context_line":"    image_cache_clear \u003d openstackclient.image.v2.cache:ClearCache"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"openstack.network.v2 \u003d"},{"line_number":404,"context_line":"    address_group_create \u003d openstackclient.network.v2.address_group:CreateAddressGroup"}],"source_content_type":"text/x-ttcn-cfg","patch_set":3,"id":"1871ca29_892a2700","line":401,"in_reply_to":"9d2474ed_7b9216fe","updated":"2023-07-06 16:05:03.000000000","message":"Okay thanks, that\u0027s a fair point.","commit_id":"b597ad6c1c10c0c1134afd34bd706881df13d458"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"255491424104738ac3d5784a5f26d6105fde7a20","unresolved":true,"context_lines":[{"line_number":395,"context_line":"    image_metadef_namespace_set \u003d openstackclient.image.v2.metadef_namespaces:SetMetadefNameSpace"},{"line_number":396,"context_line":"    image_metadef_namespace_show \u003d openstackclient.image.v2.metadef_namespaces:ShowMetadefNameSpace"},{"line_number":397,"context_line":""},{"line_number":398,"context_line":"    cached_image_list \u003d openstackclient.image.v2.cache:ListCache"},{"line_number":399,"context_line":"    cached_image_queue \u003d openstackclient.image.v2.cache:QueueCache"},{"line_number":400,"context_line":"    cached_image_delete \u003d openstackclient.image.v2.cache:DeleteCache"},{"line_number":401,"context_line":"    cached_image_clear \u003d openstackclient.image.v2.cache:ClearCache"}],"source_content_type":"text/x-ttcn-cfg","patch_set":4,"id":"8a3014ec_517a06d0","line":398,"range":{"start_line":398,"start_character":55,"end_line":398,"end_character":64},"updated":"2023-07-06 16:05:03.000000000","message":"Can you rename this now to match the commands? This should be `ListCachedImage`. Ditto for the rest of them","commit_id":"ba5c35eba2cafcf251bcd15757fef876a5cdcab9"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"99aafaa30422e1cc2cf2cd1e61239722f7d37d47","unresolved":false,"context_lines":[{"line_number":395,"context_line":"    image_metadef_namespace_set \u003d openstackclient.image.v2.metadef_namespaces:SetMetadefNameSpace"},{"line_number":396,"context_line":"    image_metadef_namespace_show \u003d openstackclient.image.v2.metadef_namespaces:ShowMetadefNameSpace"},{"line_number":397,"context_line":""},{"line_number":398,"context_line":"    cached_image_list \u003d openstackclient.image.v2.cache:ListCache"},{"line_number":399,"context_line":"    cached_image_queue \u003d openstackclient.image.v2.cache:QueueCache"},{"line_number":400,"context_line":"    cached_image_delete \u003d openstackclient.image.v2.cache:DeleteCache"},{"line_number":401,"context_line":"    cached_image_clear \u003d openstackclient.image.v2.cache:ClearCache"}],"source_content_type":"text/x-ttcn-cfg","patch_set":4,"id":"09e3c553_ece92676","line":398,"range":{"start_line":398,"start_character":55,"end_line":398,"end_character":64},"in_reply_to":"8a3014ec_517a06d0","updated":"2023-07-10 10:09:22.000000000","message":"Done","commit_id":"ba5c35eba2cafcf251bcd15757fef876a5cdcab9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9486cee500a01c11ba56cddf08c4e2782b972b86","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":""},{"line_number":400,"context_line":"    image_metadef_resource_type_list \u003d openstackclient.image.v2.metadef_resource_types:ListMetadefResourceTypes"},{"line_number":401,"context_line":""},{"line_number":402,"context_line":"openstack.network.v2 \u003d"}],"source_content_type":"text/x-ttcn-cfg","patch_set":12,"id":"727ac2f8_c1632dc5","side":"PARENT","line":399,"updated":"2023-10-06 10:28:53.000000000","message":"You don\u0027t want to delete this line: metadef namespaces !\u003d metadef resource types","commit_id":"08faf81d0d81153d0b11d155a2162f00c039cb3f"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"6f4961b72254c94b2ee33c04217723a482be447b","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":""},{"line_number":400,"context_line":"    image_metadef_resource_type_list \u003d openstackclient.image.v2.metadef_resource_types:ListMetadefResourceTypes"},{"line_number":401,"context_line":""},{"line_number":402,"context_line":"openstack.network.v2 \u003d"}],"source_content_type":"text/x-ttcn-cfg","patch_set":12,"id":"be5726b3_e75a1a45","side":"PARENT","line":399,"in_reply_to":"727ac2f8_c1632dc5","updated":"2023-10-10 09:56:58.000000000","message":"Done","commit_id":"08faf81d0d81153d0b11d155a2162f00c039cb3f"}]}
