)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":33634,"name":"Jan Hartkopf","email":"j@hartkopf.io","username":"jhartkopf"},"change_message_id":"cb6f19331f37bbadda6236b298430e200a604733","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"bedf2c80_d8fcc174","updated":"2023-05-03 15:57:10.000000000","message":"Hey there, it would be great to get some feedback in order to get this feature merged.\n\nAlso, I am not sure if/how to add documentation for this feature. We have only talked about the resource name\u0027s structure to be documented, but this seems to be more general information not strictly tied to this patch (I guess there are other places where those names are used as well?). Maybe another patch to document resource registry names in general would be good.","commit_id":"00bc7d805ad0d3a42a1bd74b8b12f8133a9406cd"},{"author":{"_account_id":33634,"name":"Jan Hartkopf","email":"j@hartkopf.io","username":"jhartkopf"},"change_message_id":"42ace513b3186223d0add84644ef0b4b469ec818","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"1db557b8_09613ea1","updated":"2023-05-16 18:18:32.000000000","message":"recheck","commit_id":"9ea92a85141bd97214d0a77273d3940879f30837"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"4ab55f59ba0d7a8a26d17c66faa58e121e363815","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"9a333762_13e0d4cd","updated":"2023-07-14 16:42:57.000000000","message":"this will only work with the newest SDK version (once released). So we should either raise the requirements or implement different mechanism of passing down the parameter once SDK version supports it. I personally don\u0027t think that raising version in requirements because of this feature is worth it, so I would prefer checking the SDK version and throwing exception/warning once it doesn\u0027t match","commit_id":"801b4e60f15e65da62e543096eb898fab15caac9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a2cc982e175725ef46cc3c239e8df5f182f362d4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"4e31bdca_4f06d40d","in_reply_to":"9a333762_13e0d4cd","updated":"2023-08-02 17:30:24.000000000","message":"\u003e I personally don\u0027t think that raising version in requirements because of this feature is worth it, so I would prefer checking the SDK version and throwing exception/warning once it doesn\u0027t match\n\nI disagree. There\u0027s almost no cost to bumping the SDK version and it avoids additional logic needed to negotiate package versions (on top of existing API version negotiation). As things stand, we no longer have any lower-constraint testing so we have no effective way to test the package logic aside from mocking our package version checks in unit tests.\n\nCan we just bump `requirements.txt` for stuff like this?","commit_id":"801b4e60f15e65da62e543096eb898fab15caac9"},{"author":{"_account_id":32755,"name":"Christian Rohmann","email":"christian.rohmann@inovex.de","username":"frittentheke"},"change_message_id":"48c39e3a2d9f2748746a59b22cd7ceebdba01804","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":9,"id":"36218ae9_1849ff19","updated":"2023-08-02 14:04:45.000000000","message":"Artem, Stephen with the version added (in Patchset 9), could you kindly take another look?\n\nSupport for this was merged to SDK already, would be cool to be able to use this via the client.","commit_id":"6ae13c970f524ece0a4501ea58718bf9a854a276"},{"author":{"_account_id":32755,"name":"Christian Rohmann","email":"christian.rohmann@inovex.de","username":"frittentheke"},"change_message_id":"45d803609fc3e1058d49362f80233424aa714e3b","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":9,"id":"f79563a6_9d2683d5","updated":"2023-08-17 11:56:39.000000000","message":"Artem, could you kindly give your opinion on bumping the SDK version for this so a new revision can be crafted.","commit_id":"6ae13c970f524ece0a4501ea58718bf9a854a276"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a2cc982e175725ef46cc3c239e8df5f182f362d4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"1de360d5_03fc31bb","updated":"2023-08-02 17:30:24.000000000","message":"Sorry Jan, just want to avoid setting a precedent for having package version checks in OSC. I still have no issues with the change itself and will be happy to +2 again once we switch to a bump with `requirements.txt`, assuming Artem agrees","commit_id":"6ae13c970f524ece0a4501ea58718bf9a854a276"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"454d9c1c92d63c63edc21b368eabaaec8d88f494","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"ab839d54_7c6a03e7","in_reply_to":"1de360d5_03fc31bb","updated":"2023-08-21 04:54:08.000000000","message":"agreed","commit_id":"6ae13c970f524ece0a4501ea58718bf9a854a276"},{"author":{"_account_id":33634,"name":"Jan Hartkopf","email":"j@hartkopf.io","username":"jhartkopf"},"change_message_id":"e3cc8edda3e38ff929e33c3caba646fd488b1a0f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"ef9c751e_734611ef","in_reply_to":"ab839d54_7c6a03e7","updated":"2023-08-21 14:55:16.000000000","message":"Thanks Stephen, thanks Artem. I have reverted the previous change and now simply bumped requirements to openstacksdk\u003e\u003d1.4.0.\n\nI guess this now depends on the upper constraints update (https://review.opendev.org/c/openstack/requirements/+/890415) being merged.","commit_id":"6ae13c970f524ece0a4501ea58718bf9a854a276"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"75b6f0764b2385c42f75a6867843b2b655a99a73","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"87c34a54_40fc1a98","updated":"2023-08-21 14:58:58.000000000","message":"Thanks, and apologies for the back-and-forth on this","commit_id":"f29e3ccc37a510c40ea61216ac3a7e3ef944e1bf"},{"author":{"_account_id":33634,"name":"Jan Hartkopf","email":"j@hartkopf.io","username":"jhartkopf"},"change_message_id":"4dd82edae0754558bbfadcbc471ce1661b4315bf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"8af47648_8d92c291","updated":"2023-08-26 10:14:45.000000000","message":"recheck (constraints patch merged)","commit_id":"f29e3ccc37a510c40ea61216ac3a7e3ef944e1bf"}],"openstackclient/common/project_cleanup.py":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"4def1640686088dedb9946a63e12ba8182fbbf84","unresolved":true,"context_lines":[{"line_number":81,"context_line":"            help\u003d_(\u0027Only delete resources updated before the given time\u0027)"},{"line_number":82,"context_line":"        )"},{"line_number":83,"context_line":"        parser.add_argument("},{"line_number":84,"context_line":"            \u0027--exclude\u0027,"},{"line_number":85,"context_line":"            metavar\u003d\u0027\u003cresources\u003e\u0027,"},{"line_number":86,"context_line":"            help\u003d\u0027Skip cleanup of specific resources\u0027"},{"line_number":87,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":1,"id":"cf835e3e_17d26d39","line":84,"updated":"2023-03-29 05:47:48.000000000","message":"If you use \"skip\" in the SDK, I would use that here, too. Also being more specific about what to skip, you would end up at \"--skip-resource\" again.","commit_id":"370566f3de6f4287739e3a8edfe54c8b3baec171"},{"author":{"_account_id":33634,"name":"Jan Hartkopf","email":"j@hartkopf.io","username":"jhartkopf"},"change_message_id":"a6da0d9c5df62b4ace45e33a23c174fd4cbbafda","unresolved":false,"context_lines":[{"line_number":81,"context_line":"            help\u003d_(\u0027Only delete resources updated before the given time\u0027)"},{"line_number":82,"context_line":"        )"},{"line_number":83,"context_line":"        parser.add_argument("},{"line_number":84,"context_line":"            \u0027--exclude\u0027,"},{"line_number":85,"context_line":"            metavar\u003d\u0027\u003cresources\u003e\u0027,"},{"line_number":86,"context_line":"            help\u003d\u0027Skip cleanup of specific resources\u0027"},{"line_number":87,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":1,"id":"33c75879_82c2e0dc","line":84,"in_reply_to":"cf835e3e_17d26d39","updated":"2023-03-30 13:07:55.000000000","message":"Ack","commit_id":"370566f3de6f4287739e3a8edfe54c8b3baec171"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"2adb7a6d7b72e1198d5c449cae3dc983841c4f22","unresolved":true,"context_lines":[{"line_number":83,"context_line":"        parser.add_argument("},{"line_number":84,"context_line":"            \u0027--exclude\u0027,"},{"line_number":85,"context_line":"            metavar\u003d\u0027\u003cresources\u003e\u0027,"},{"line_number":86,"context_line":"            help\u003d\u0027Skip cleanup of specific resources\u0027"},{"line_number":87,"context_line":"        )"},{"line_number":88,"context_line":"        identity_common.add_project_domain_option_to_parser(parser)"},{"line_number":89,"context_line":"        return parser"}],"source_content_type":"text/x-python","patch_set":1,"id":"3b9bac77_d4ac8843","line":86,"updated":"2023-03-28 15:58:30.000000000","message":"Could you give some guidance about what a resource looks like? Also, are you expecting users to provide a single value or multiple excludes? If the latter, you need nargs here at a minimum.","commit_id":"370566f3de6f4287739e3a8edfe54c8b3baec171"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"4def1640686088dedb9946a63e12ba8182fbbf84","unresolved":true,"context_lines":[{"line_number":83,"context_line":"        parser.add_argument("},{"line_number":84,"context_line":"            \u0027--exclude\u0027,"},{"line_number":85,"context_line":"            metavar\u003d\u0027\u003cresources\u003e\u0027,"},{"line_number":86,"context_line":"            help\u003d\u0027Skip cleanup of specific resources\u0027"},{"line_number":87,"context_line":"        )"},{"line_number":88,"context_line":"        identity_common.add_project_domain_option_to_parser(parser)"},{"line_number":89,"context_line":"        return parser"}],"source_content_type":"text/x-python","patch_set":1,"id":"f6f060e8_ea845c58","line":86,"in_reply_to":"3b9bac77_d4ac8843","updated":"2023-03-29 05:47:48.000000000","message":"From the test and reno, this is a list of resources. In designate, we deprected using nargs, instead I would suggest instead to repeat the option for multiple resources using action\u003dappend cf. https://opendev.org/openstack/python-designateclient/src/branch/master/designateclient/v2/cli/recordsets.py#L155-L158\n\nAlso I agree that this needs a doc on how the resources look like. \"block_storage.volume\" seems overly complicated, why not just \"volume\"?","commit_id":"370566f3de6f4287739e3a8edfe54c8b3baec171"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3c98d2f62da590581812317543f81242d25e29bb","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        parser.add_argument("},{"line_number":84,"context_line":"            \u0027--exclude\u0027,"},{"line_number":85,"context_line":"            metavar\u003d\u0027\u003cresources\u003e\u0027,"},{"line_number":86,"context_line":"            help\u003d\u0027Skip cleanup of specific resources\u0027"},{"line_number":87,"context_line":"        )"},{"line_number":88,"context_line":"        identity_common.add_project_domain_option_to_parser(parser)"},{"line_number":89,"context_line":"        return parser"}],"source_content_type":"text/x-python","patch_set":1,"id":"fb559b67_e9a41e55","line":86,"in_reply_to":"5dfac213_a3b6aa8d","updated":"2023-07-14 16:15:33.000000000","message":"Done","commit_id":"370566f3de6f4287739e3a8edfe54c8b3baec171"},{"author":{"_account_id":33634,"name":"Jan Hartkopf","email":"j@hartkopf.io","username":"jhartkopf"},"change_message_id":"a6da0d9c5df62b4ace45e33a23c174fd4cbbafda","unresolved":true,"context_lines":[{"line_number":83,"context_line":"        parser.add_argument("},{"line_number":84,"context_line":"            \u0027--exclude\u0027,"},{"line_number":85,"context_line":"            metavar\u003d\u0027\u003cresources\u003e\u0027,"},{"line_number":86,"context_line":"            help\u003d\u0027Skip cleanup of specific resources\u0027"},{"line_number":87,"context_line":"        )"},{"line_number":88,"context_line":"        identity_common.add_project_domain_option_to_parser(parser)"},{"line_number":89,"context_line":"        return parser"}],"source_content_type":"text/x-python","patch_set":1,"id":"5dfac213_a3b6aa8d","line":86,"in_reply_to":"f6f060e8_ea845c58","updated":"2023-03-30 13:07:55.000000000","message":"Exactly, this should be a list of values. I think adding the option (--skip-resource) multiple times would be a good solution. Will add this, additionally to docs.\n\nAs for the naming, I briefly talked about this feature with Artem on IRC and he suggested to use the resource registry names (https://meetings.opendev.org/irclogs/%23openstack-sdks/%23openstack-sdks.2023-03-20.log.html#t2023-03-20T13:29:24). This seems to be the \"new\" convention to address resources from outside the SDK.","commit_id":"370566f3de6f4287739e3a8edfe54c8b3baec171"}],"releasenotes/notes/project-cleanup-exclude-option-4f80db0d8cf36fdb.yaml":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d8c0fc0ad51af498cada6fbebcc171a8ec5afdba","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"  A new option ``--exclude`` has been added to the"},{"line_number":5,"context_line":"  ``project cleanup`` command. This allows to exclude"},{"line_number":6,"context_line":"  certain resources from project cleanups, e. g."},{"line_number":7,"context_line":"  ``--exclude \"[\u0027block_storage.backup\u0027]\"`` to keep"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"d18ae6bb_ea1de809","line":4,"updated":"2023-03-28 15:56:45.000000000","message":"This needs to be indented by two further spaces to be valid YAML","commit_id":"370566f3de6f4287739e3a8edfe54c8b3baec171"},{"author":{"_account_id":33634,"name":"Jan Hartkopf","email":"j@hartkopf.io","username":"jhartkopf"},"change_message_id":"725108eedf78e2fd2c33ffd2019a2368dcd8695d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"  A new option ``--exclude`` has been added to the"},{"line_number":5,"context_line":"  ``project cleanup`` command. This allows to exclude"},{"line_number":6,"context_line":"  certain resources from project cleanups, e. g."},{"line_number":7,"context_line":"  ``--exclude \"[\u0027block_storage.backup\u0027]\"`` to keep"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"05e110ec_f23969ae","line":4,"in_reply_to":"d18ae6bb_ea1de809","updated":"2023-03-30 13:36:52.000000000","message":"Done","commit_id":"370566f3de6f4287739e3a8edfe54c8b3baec171"}]}
