)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"83b3be044bf9083417f2dee0caafa470e41ea8f1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"61807f59_555d77ea","updated":"2026-05-20 13:36:12.000000000","message":"recheck sdk 4.13.0 released and requirements bumped","commit_id":"85cc246751dd28dd82632a5fa9d279730f71b197"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"4efec6449238356ebe19d8bd0a1d94a580b97441","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"3df4cf9b_9c8357dc","updated":"2026-05-21 11:41:18.000000000","message":"One question, but this looks good. I assume we should hold off until the neutron patch has actually merged though?","commit_id":"8cc24c80cc5e5b6fad5ef1e12bd7f54d470caa81"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"503f71215616ccab5939fabd1a5c7e2331c63321","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"563dd5ac_f9c35ffc","updated":"2026-06-19 11:52:28.000000000","message":"A few things have changed in the last few week 😅","commit_id":"9c983014522bf5be6eaff097d3ebd8cd09478f1e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"68c6ea264578601bf440eb5a90888dc8b427c81d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"a5981274_d597d675","updated":"2026-06-19 06:21:30.000000000","message":"ping fellow reviewers, all Neutron/n-lib patches are merged now: https://review.opendev.org/q/topic:%22bug/2146803%22","commit_id":"9c983014522bf5be6eaff097d3ebd8cd09478f1e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"e3135fec980769415d85867743ec6cfd796ba6bc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"a5235c3c_6c6dfc03","in_reply_to":"563dd5ac_f9c35ffc","updated":"2026-06-22 10:09:50.000000000","message":"hehehehe I see!\n\nI think everything is now updated","commit_id":"9c983014522bf5be6eaff097d3ebd8cd09478f1e"}],"openstackclient/network/v2/security_groups_default_statefulness.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"4efec6449238356ebe19d8bd0a1d94a580b97441","unresolved":true,"context_lines":[{"line_number":144,"context_line":"        parser.add_argument("},{"line_number":145,"context_line":"            \u0027--project\u0027,"},{"line_number":146,"context_line":"            metavar\u003d\u0027\u003cproject\u003e\u0027,"},{"line_number":147,"context_line":"            help\u003d_(\"List only settings for this project (name or ID)\"),"},{"line_number":148,"context_line":"        )"},{"line_number":149,"context_line":"        identity_common.add_project_domain_option_to_parser(parser)"},{"line_number":150,"context_line":"        return parser"}],"source_content_type":"text/x-python","patch_set":6,"id":"b2d06c24_f2b88e96","line":147,"updated":"2026-05-21 11:41:18.000000000","message":"I assume this will default to all projects, as opposed to the user\u0027s current project (like the create command above?)","commit_id":"8cc24c80cc5e5b6fad5ef1e12bd7f54d470caa81"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"8c9dfa895579bf54c5545a9acf995e6bf27da367","unresolved":false,"context_lines":[{"line_number":144,"context_line":"        parser.add_argument("},{"line_number":145,"context_line":"            \u0027--project\u0027,"},{"line_number":146,"context_line":"            metavar\u003d\u0027\u003cproject\u003e\u0027,"},{"line_number":147,"context_line":"            help\u003d_(\"List only settings for this project (name or ID)\"),"},{"line_number":148,"context_line":"        )"},{"line_number":149,"context_line":"        identity_common.add_project_domain_option_to_parser(parser)"},{"line_number":150,"context_line":"        return parser"}],"source_content_type":"text/x-python","patch_set":6,"id":"55ce4dab_d2ced359","line":147,"in_reply_to":"b2d06c24_f2b88e96","updated":"2026-05-21 14:57:36.000000000","message":"Yes: by default, if we don\u0027t provide a project_id, we\u0027ll retrieve all the SG statefulness registers. In [1], if `project_id` is not provided (**NOTE** I need confirm that in the code and make it works as this), no filters will be passed and this query will return everything.\n\n[1]https://review.opendev.org/c/openstack/neutron/+/984356/7/neutron/db/security_groups_default_statefulness.py#84","commit_id":"8cc24c80cc5e5b6fad5ef1e12bd7f54d470caa81"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7aaa54ab0ee15f170a56f8bbca89a945baf65615","unresolved":true,"context_lines":[{"line_number":44,"context_line":"        parser \u003d super().get_parser(prog_name)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        stateful_group \u003d parser.add_mutually_exclusive_group(required\u003dTrue)"},{"line_number":47,"context_line":"        stateful_group.add_argument("},{"line_number":48,"context_line":"            \"--stateful\","},{"line_number":49,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":50,"context_line":"            default\u003dNone,"},{"line_number":51,"context_line":"            help\u003d_(\"Set default statefulness to stateful\"),"},{"line_number":52,"context_line":"        )"},{"line_number":53,"context_line":"        stateful_group.add_argument("},{"line_number":54,"context_line":"            \"--stateless\","},{"line_number":55,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":56,"context_line":"            default\u003dNone,"},{"line_number":57,"context_line":"            help\u003d_(\"Set default statefulness to stateless\"),"},{"line_number":58,"context_line":"        )"},{"line_number":59,"context_line":"        parser.add_argument("},{"line_number":60,"context_line":"            \u0027--project\u0027,"},{"line_number":61,"context_line":"            metavar\u003d\u0027\u003cproject\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"8c6e4899_be5f37b7","line":58,"range":{"start_line":47,"start_character":0,"end_line":58,"end_character":9},"updated":"2026-06-19 11:52:08.000000000","message":"You can share a common `dest` here:\n\n```suggestion\n        stateful_group.add_argument(\n            \"--stateful\",\n            action\u003d\u0027store_true\u0027,\n            default\u003dNone,\n            dest\u003d\u0027stateful\u0027,\n            help\u003d_(\"Set default statefulness to stateful\"),\n        )\n        stateful_group.add_argument(\n            \"--stateless\",\n            action\u003d\u0027store_false\u0027,\n            default\u003dNone,\n            dest\u003d\u0027stateful\u0027,\n            help\u003d_(\"Set default statefulness to stateless\"),\n        )\n```","commit_id":"9c983014522bf5be6eaff097d3ebd8cd09478f1e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"e3135fec980769415d85867743ec6cfd796ba6bc","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        parser \u003d super().get_parser(prog_name)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        stateful_group \u003d parser.add_mutually_exclusive_group(required\u003dTrue)"},{"line_number":47,"context_line":"        stateful_group.add_argument("},{"line_number":48,"context_line":"            \"--stateful\","},{"line_number":49,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":50,"context_line":"            default\u003dNone,"},{"line_number":51,"context_line":"            help\u003d_(\"Set default statefulness to stateful\"),"},{"line_number":52,"context_line":"        )"},{"line_number":53,"context_line":"        stateful_group.add_argument("},{"line_number":54,"context_line":"            \"--stateless\","},{"line_number":55,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":56,"context_line":"            default\u003dNone,"},{"line_number":57,"context_line":"            help\u003d_(\"Set default statefulness to stateless\"),"},{"line_number":58,"context_line":"        )"},{"line_number":59,"context_line":"        parser.add_argument("},{"line_number":60,"context_line":"            \u0027--project\u0027,"},{"line_number":61,"context_line":"            metavar\u003d\u0027\u003cproject\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"bd6f6527_d9640a3f","line":58,"range":{"start_line":47,"start_character":0,"end_line":58,"end_character":9},"in_reply_to":"8c6e4899_be5f37b7","updated":"2026-06-22 10:09:50.000000000","message":"Done","commit_id":"9c983014522bf5be6eaff097d3ebd8cd09478f1e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7aaa54ab0ee15f170a56f8bbca89a945baf65615","unresolved":true,"context_lines":[{"line_number":72,"context_line":"    ) -\u003e tuple[Sequence[str], Iterable[Any]]:"},{"line_number":73,"context_line":"        client \u003d self.app.client_manager.network"},{"line_number":74,"context_line":"        attrs: dict[str, Any] \u003d {}"},{"line_number":75,"context_line":"        if parsed_args.stateful:"},{"line_number":76,"context_line":"            attrs[\u0027stateful\u0027] \u003d True"},{"line_number":77,"context_line":"        if parsed_args.stateless:"},{"line_number":78,"context_line":"            attrs[\u0027stateful\u0027] \u003d False"},{"line_number":79,"context_line":"        if parsed_args.project is not None:"},{"line_number":80,"context_line":"            identity_client \u003d self.app.client_manager.identity"},{"line_number":81,"context_line":"            project_id \u003d identity_common.find_project("}],"source_content_type":"text/x-python","patch_set":7,"id":"5582d79f_9a7d7451","line":78,"range":{"start_line":75,"start_character":0,"end_line":78,"end_character":37},"updated":"2026-06-19 11:52:08.000000000","message":"then this becomes\n\n```suggestion\n        if parsed_args.stateful is not None:\n            attrs[\u0027stateful\u0027] \u003d parsed_args.stateful\n```","commit_id":"9c983014522bf5be6eaff097d3ebd8cd09478f1e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"e3135fec980769415d85867743ec6cfd796ba6bc","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    ) -\u003e tuple[Sequence[str], Iterable[Any]]:"},{"line_number":73,"context_line":"        client \u003d self.app.client_manager.network"},{"line_number":74,"context_line":"        attrs: dict[str, Any] \u003d {}"},{"line_number":75,"context_line":"        if parsed_args.stateful:"},{"line_number":76,"context_line":"            attrs[\u0027stateful\u0027] \u003d True"},{"line_number":77,"context_line":"        if parsed_args.stateless:"},{"line_number":78,"context_line":"            attrs[\u0027stateful\u0027] \u003d False"},{"line_number":79,"context_line":"        if parsed_args.project is not None:"},{"line_number":80,"context_line":"            identity_client \u003d self.app.client_manager.identity"},{"line_number":81,"context_line":"            project_id \u003d identity_common.find_project("}],"source_content_type":"text/x-python","patch_set":7,"id":"4c56784b_d6ea7582","line":78,"range":{"start_line":75,"start_character":0,"end_line":78,"end_character":37},"in_reply_to":"5582d79f_9a7d7451","updated":"2026-06-22 10:09:50.000000000","message":"Done","commit_id":"9c983014522bf5be6eaff097d3ebd8cd09478f1e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7aaa54ab0ee15f170a56f8bbca89a945baf65615","unresolved":true,"context_lines":[{"line_number":76,"context_line":"            attrs[\u0027stateful\u0027] \u003d True"},{"line_number":77,"context_line":"        if parsed_args.stateless:"},{"line_number":78,"context_line":"            attrs[\u0027stateful\u0027] \u003d False"},{"line_number":79,"context_line":"        if parsed_args.project is not None:"},{"line_number":80,"context_line":"            identity_client \u003d self.app.client_manager.identity"},{"line_number":81,"context_line":"            project_id \u003d identity_common.find_project("},{"line_number":82,"context_line":"                identity_client,"},{"line_number":83,"context_line":"                parsed_args.project,"},{"line_number":84,"context_line":"                parsed_args.project_domain,"},{"line_number":85,"context_line":"            ).id"},{"line_number":86,"context_line":"            attrs[\u0027project_id\u0027] \u003d project_id"},{"line_number":87,"context_line":"        else:"},{"line_number":88,"context_line":"            # Explicitly set it to `None`. Otherwise, the Neutron API will"},{"line_number":89,"context_line":"            # fulfill this value with the user project ID instead."}],"source_content_type":"text/x-python","patch_set":7,"id":"aa64c281_80d5961e","line":86,"range":{"start_line":79,"start_character":43,"end_line":86,"end_character":44},"updated":"2026-06-19 11:52:08.000000000","message":"Can you use SDK instead? I\u0027m trying to get rid of our use of keystoneclient now that @oweng@osuosl.org has most of the keystone commands migrated. Look at [my migration patch](https://review.opendev.org/c/openstack/python-openstackclient/+/994097) for how to do this (it\u0027s pretty easy)","commit_id":"9c983014522bf5be6eaff097d3ebd8cd09478f1e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"e3135fec980769415d85867743ec6cfd796ba6bc","unresolved":false,"context_lines":[{"line_number":76,"context_line":"            attrs[\u0027stateful\u0027] \u003d True"},{"line_number":77,"context_line":"        if parsed_args.stateless:"},{"line_number":78,"context_line":"            attrs[\u0027stateful\u0027] \u003d False"},{"line_number":79,"context_line":"        if parsed_args.project is not None:"},{"line_number":80,"context_line":"            identity_client \u003d self.app.client_manager.identity"},{"line_number":81,"context_line":"            project_id \u003d identity_common.find_project("},{"line_number":82,"context_line":"                identity_client,"},{"line_number":83,"context_line":"                parsed_args.project,"},{"line_number":84,"context_line":"                parsed_args.project_domain,"},{"line_number":85,"context_line":"            ).id"},{"line_number":86,"context_line":"            attrs[\u0027project_id\u0027] \u003d project_id"},{"line_number":87,"context_line":"        else:"},{"line_number":88,"context_line":"            # Explicitly set it to `None`. Otherwise, the Neutron API will"},{"line_number":89,"context_line":"            # fulfill this value with the user project ID instead."}],"source_content_type":"text/x-python","patch_set":7,"id":"5402a0d6_d024f4a1","line":86,"range":{"start_line":79,"start_character":43,"end_line":86,"end_character":44},"in_reply_to":"aa64c281_80d5961e","updated":"2026-06-22 10:09:50.000000000","message":"Done","commit_id":"9c983014522bf5be6eaff097d3ebd8cd09478f1e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7aaa54ab0ee15f170a56f8bbca89a945baf65615","unresolved":true,"context_lines":[{"line_number":76,"context_line":"            attrs[\u0027stateful\u0027] \u003d True"},{"line_number":77,"context_line":"        if parsed_args.stateless:"},{"line_number":78,"context_line":"            attrs[\u0027stateful\u0027] \u003d False"},{"line_number":79,"context_line":"        if parsed_args.project is not None:"},{"line_number":80,"context_line":"            identity_client \u003d self.app.client_manager.identity"},{"line_number":81,"context_line":"            project_id \u003d identity_common.find_project("},{"line_number":82,"context_line":"                identity_client,"},{"line_number":83,"context_line":"                parsed_args.project,"},{"line_number":84,"context_line":"                parsed_args.project_domain,"},{"line_number":85,"context_line":"            ).id"},{"line_number":86,"context_line":"            attrs[\u0027project_id\u0027] \u003d project_id"},{"line_number":87,"context_line":"        else:"},{"line_number":88,"context_line":"            # Explicitly set it to `None`. Otherwise, the Neutron API will"},{"line_number":89,"context_line":"            # fulfill this value with the user project ID instead."},{"line_number":90,"context_line":"            attrs[\u0027project_id\u0027] \u003d None"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        obj \u003d client.create_security_groups_default_statefulness(**attrs)"},{"line_number":93,"context_line":"        display_columns, columns \u003d _get_columns(obj)"}],"source_content_type":"text/x-python","patch_set":7,"id":"b16f997a_7a8321fa","line":90,"range":{"start_line":79,"start_character":0,"end_line":90,"end_character":38},"updated":"2026-06-19 11:52:08.000000000","message":"Ignoring the change to SDK, can this be simplified as:\n\n```suggestion\n        project_id \u003d None\n        if parsed_args.project is not None:\n            identity_client \u003d self.app.client_manager.identity\n            project_id \u003d identity_common.find_project(\n                identity_client,\n                parsed_args.project,\n                parsed_args.project_domain,\n            ).id\n        # Always set this, even if `None`, otherwise the Neutron API will\n        # fulfill this value with the user project ID instead.\n        attrs[\u0027project_id\u0027] \u003d None\n```\n\n?","commit_id":"9c983014522bf5be6eaff097d3ebd8cd09478f1e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"e3135fec980769415d85867743ec6cfd796ba6bc","unresolved":false,"context_lines":[{"line_number":76,"context_line":"            attrs[\u0027stateful\u0027] \u003d True"},{"line_number":77,"context_line":"        if parsed_args.stateless:"},{"line_number":78,"context_line":"            attrs[\u0027stateful\u0027] \u003d False"},{"line_number":79,"context_line":"        if parsed_args.project is not None:"},{"line_number":80,"context_line":"            identity_client \u003d self.app.client_manager.identity"},{"line_number":81,"context_line":"            project_id \u003d identity_common.find_project("},{"line_number":82,"context_line":"                identity_client,"},{"line_number":83,"context_line":"                parsed_args.project,"},{"line_number":84,"context_line":"                parsed_args.project_domain,"},{"line_number":85,"context_line":"            ).id"},{"line_number":86,"context_line":"            attrs[\u0027project_id\u0027] \u003d project_id"},{"line_number":87,"context_line":"        else:"},{"line_number":88,"context_line":"            # Explicitly set it to `None`. Otherwise, the Neutron API will"},{"line_number":89,"context_line":"            # fulfill this value with the user project ID instead."},{"line_number":90,"context_line":"            attrs[\u0027project_id\u0027] \u003d None"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        obj \u003d client.create_security_groups_default_statefulness(**attrs)"},{"line_number":93,"context_line":"        display_columns, columns \u003d _get_columns(obj)"}],"source_content_type":"text/x-python","patch_set":7,"id":"bdbe435d_ea77b6ff","line":90,"range":{"start_line":79,"start_character":0,"end_line":90,"end_character":38},"in_reply_to":"b16f997a_7a8321fa","updated":"2026-06-22 10:09:50.000000000","message":"Done","commit_id":"9c983014522bf5be6eaff097d3ebd8cd09478f1e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7aaa54ab0ee15f170a56f8bbca89a945baf65615","unresolved":true,"context_lines":[{"line_number":165,"context_line":"        )"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"        query: dict[str, Any] \u003d {}"},{"line_number":168,"context_line":"        if parsed_args.project is not None:"},{"line_number":169,"context_line":"            identity_client \u003d self.app.client_manager.identity"},{"line_number":170,"context_line":"            project_id \u003d identity_common.find_project("},{"line_number":171,"context_line":"                identity_client,"},{"line_number":172,"context_line":"                parsed_args.project,"},{"line_number":173,"context_line":"                parsed_args.project_domain,"},{"line_number":174,"context_line":"            ).id"},{"line_number":175,"context_line":"            query[\u0027project_id\u0027] \u003d project_id"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"        data \u003d client.security_groups_default_statefulness(**query)"}],"source_content_type":"text/x-python","patch_set":7,"id":"2239f653_2a7cdcfe","line":174,"range":{"start_line":168,"start_character":43,"end_line":174,"end_character":16},"updated":"2026-06-19 11:52:08.000000000","message":"Same comment as above RE: use of SDK","commit_id":"9c983014522bf5be6eaff097d3ebd8cd09478f1e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"e3135fec980769415d85867743ec6cfd796ba6bc","unresolved":false,"context_lines":[{"line_number":165,"context_line":"        )"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"        query: dict[str, Any] \u003d {}"},{"line_number":168,"context_line":"        if parsed_args.project is not None:"},{"line_number":169,"context_line":"            identity_client \u003d self.app.client_manager.identity"},{"line_number":170,"context_line":"            project_id \u003d identity_common.find_project("},{"line_number":171,"context_line":"                identity_client,"},{"line_number":172,"context_line":"                parsed_args.project,"},{"line_number":173,"context_line":"                parsed_args.project_domain,"},{"line_number":174,"context_line":"            ).id"},{"line_number":175,"context_line":"            query[\u0027project_id\u0027] \u003d project_id"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"        data \u003d client.security_groups_default_statefulness(**query)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba275bf0_81bc7fc1","line":174,"range":{"start_line":168,"start_character":43,"end_line":174,"end_character":16},"in_reply_to":"2239f653_2a7cdcfe","updated":"2026-06-22 10:09:50.000000000","message":"Done","commit_id":"9c983014522bf5be6eaff097d3ebd8cd09478f1e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7aaa54ab0ee15f170a56f8bbca89a945baf65615","unresolved":true,"context_lines":[{"line_number":192,"context_line":"            metavar\u003d\u0027\u003csetting\u003e\u0027,"},{"line_number":193,"context_line":"            help\u003d_(\"Default statefulness setting to modify (ID only)\"),"},{"line_number":194,"context_line":"        )"},{"line_number":195,"context_line":"        stateful_group \u003d parser.add_mutually_exclusive_group(required\u003dTrue)"},{"line_number":196,"context_line":"        stateful_group.add_argument("},{"line_number":197,"context_line":"            \"--stateful\","},{"line_number":198,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":199,"context_line":"            default\u003dNone,"},{"line_number":200,"context_line":"            help\u003d_(\"Set default statefulness to stateful\"),"},{"line_number":201,"context_line":"        )"},{"line_number":202,"context_line":"        stateful_group.add_argument("},{"line_number":203,"context_line":"            \"--stateless\","},{"line_number":204,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":205,"context_line":"            default\u003dNone,"},{"line_number":206,"context_line":"            help\u003d_(\"Set default statefulness to stateless\"),"},{"line_number":207,"context_line":"        )"},{"line_number":208,"context_line":"        return parser"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"    def take_action(self, parsed_args: argparse.Namespace) -\u003e None:"}],"source_content_type":"text/x-python","patch_set":7,"id":"4a316cc2_e5f5908f","line":207,"range":{"start_line":195,"start_character":75,"end_line":207,"end_character":9},"updated":"2026-06-19 11:52:08.000000000","message":"Same comment as above RE: common `dest`","commit_id":"9c983014522bf5be6eaff097d3ebd8cd09478f1e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"e3135fec980769415d85867743ec6cfd796ba6bc","unresolved":false,"context_lines":[{"line_number":192,"context_line":"            metavar\u003d\u0027\u003csetting\u003e\u0027,"},{"line_number":193,"context_line":"            help\u003d_(\"Default statefulness setting to modify (ID only)\"),"},{"line_number":194,"context_line":"        )"},{"line_number":195,"context_line":"        stateful_group \u003d parser.add_mutually_exclusive_group(required\u003dTrue)"},{"line_number":196,"context_line":"        stateful_group.add_argument("},{"line_number":197,"context_line":"            \"--stateful\","},{"line_number":198,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":199,"context_line":"            default\u003dNone,"},{"line_number":200,"context_line":"            help\u003d_(\"Set default statefulness to stateful\"),"},{"line_number":201,"context_line":"        )"},{"line_number":202,"context_line":"        stateful_group.add_argument("},{"line_number":203,"context_line":"            \"--stateless\","},{"line_number":204,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":205,"context_line":"            default\u003dNone,"},{"line_number":206,"context_line":"            help\u003d_(\"Set default statefulness to stateless\"),"},{"line_number":207,"context_line":"        )"},{"line_number":208,"context_line":"        return parser"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"    def take_action(self, parsed_args: argparse.Namespace) -\u003e None:"}],"source_content_type":"text/x-python","patch_set":7,"id":"b9c4f85e_906b56c9","line":207,"range":{"start_line":195,"start_character":75,"end_line":207,"end_character":9},"in_reply_to":"4a316cc2_e5f5908f","updated":"2026-06-22 10:09:50.000000000","message":"Done","commit_id":"9c983014522bf5be6eaff097d3ebd8cd09478f1e"}],"openstackclient/tests/unit/network/v2/test_security_groups_default_statefulness.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7aaa54ab0ee15f170a56f8bbca89a945baf65615","unresolved":true,"context_lines":[{"line_number":20,"context_line":"from osc_lib import exceptions"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from openstackclient.network.v2 import security_groups_default_statefulness"},{"line_number":23,"context_line":"from openstackclient.tests.unit.identity.v3 import fakes as identity_fakes"},{"line_number":24,"context_line":"from openstackclient.tests.unit.network.v2 import fakes as network_fakes"},{"line_number":25,"context_line":"from openstackclient.tests.unit import utils as tests_utils"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"e24418a9_97f21eae","line":23,"updated":"2026-06-19 11:52:08.000000000","message":"This shouldn\u0027t be necessary when you move to SDK: use `openstack.test.fakes.generate_fake_resource` instead","commit_id":"9c983014522bf5be6eaff097d3ebd8cd09478f1e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"e3135fec980769415d85867743ec6cfd796ba6bc","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from osc_lib import exceptions"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from openstackclient.network.v2 import security_groups_default_statefulness"},{"line_number":23,"context_line":"from openstackclient.tests.unit.identity.v3 import fakes as identity_fakes"},{"line_number":24,"context_line":"from openstackclient.tests.unit.network.v2 import fakes as network_fakes"},{"line_number":25,"context_line":"from openstackclient.tests.unit import utils as tests_utils"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"e3acbf45_f6624ab0","line":23,"in_reply_to":"e24418a9_97f21eae","updated":"2026-06-22 10:09:50.000000000","message":"Done","commit_id":"9c983014522bf5be6eaff097d3ebd8cd09478f1e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7aaa54ab0ee15f170a56f8bbca89a945baf65615","unresolved":true,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"class TestDeleteSecurityGroupDefaultStatefulness("},{"line_number":126,"context_line":"    network_fakes.TestNetworkV2,"},{"line_number":127,"context_line":"):"},{"line_number":128,"context_line":"    _settings \u003d list("},{"line_number":129,"context_line":"        sdk_fakes.generate_fake_resources("},{"line_number":130,"context_line":"            _sg_default_statefulness.SecurityGroupsDefaultStatefulness,"},{"line_number":131,"context_line":"            count\u003d2,"},{"line_number":132,"context_line":"            attrs\u003d{\u0027stateful\u0027: False, \u0027location\u0027: \u0027MUNCHMUNCHMUNCH\u0027},"},{"line_number":133,"context_line":"        )"},{"line_number":134,"context_line":"    )"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"    def setUp(self):"},{"line_number":137,"context_line":"        super().setUp()"},{"line_number":138,"context_line":"        self.network_client.delete_security_groups_default_statefulness.return_value \u003d None"}],"source_content_type":"text/x-python","patch_set":7,"id":"41b72aad_94c1c12b","line":135,"range":{"start_line":127,"start_character":2,"end_line":135,"end_character":1},"updated":"2026-06-19 11:52:08.000000000","message":"Could you create this inside `setUp`, given this is mutable? Ditto for the below","commit_id":"9c983014522bf5be6eaff097d3ebd8cd09478f1e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"e3135fec980769415d85867743ec6cfd796ba6bc","unresolved":false,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"class TestDeleteSecurityGroupDefaultStatefulness("},{"line_number":126,"context_line":"    network_fakes.TestNetworkV2,"},{"line_number":127,"context_line":"):"},{"line_number":128,"context_line":"    _settings \u003d list("},{"line_number":129,"context_line":"        sdk_fakes.generate_fake_resources("},{"line_number":130,"context_line":"            _sg_default_statefulness.SecurityGroupsDefaultStatefulness,"},{"line_number":131,"context_line":"            count\u003d2,"},{"line_number":132,"context_line":"            attrs\u003d{\u0027stateful\u0027: False, \u0027location\u0027: \u0027MUNCHMUNCHMUNCH\u0027},"},{"line_number":133,"context_line":"        )"},{"line_number":134,"context_line":"    )"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"    def setUp(self):"},{"line_number":137,"context_line":"        super().setUp()"},{"line_number":138,"context_line":"        self.network_client.delete_security_groups_default_statefulness.return_value \u003d None"}],"source_content_type":"text/x-python","patch_set":7,"id":"420612fe_03985062","line":135,"range":{"start_line":127,"start_character":2,"end_line":135,"end_character":1},"in_reply_to":"41b72aad_94c1c12b","updated":"2026-06-22 10:09:50.000000000","message":"Done","commit_id":"9c983014522bf5be6eaff097d3ebd8cd09478f1e"}]}
