)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"51c1b34a6719283d2d72b15f3c1a993a0d443ed6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"b9bea475_ee79596e","updated":"2026-01-19 13:00:56.000000000","message":"LGTM","commit_id":"c03722ebbaa1a01173ca405706da064b65b47d06"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"02049bb7a20136e8b96957e61cba3ce48501e238","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"70a0d959_d8942919","updated":"2026-01-19 13:01:02.000000000","message":"recheck","commit_id":"c03722ebbaa1a01173ca405706da064b65b47d06"},{"author":{"_account_id":28271,"name":"Josephine Seifert","email":"josephine.seifert@cloudandheat.com","username":"josei"},"change_message_id":"282f01413f483fa0ee2f2af15066238442fda122","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"39516186_2256d383","updated":"2026-01-19 09:51:07.000000000","message":"recheck because of time-out","commit_id":"c03722ebbaa1a01173ca405706da064b65b47d06"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"c8f2d83ea85cc5e7b8489eba5d1e69480a5067e9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"ab8f3773_0ccb9b5b","updated":"2026-01-20 18:33:15.000000000","message":"It makes sense to set a default here as well then:\nhttps://opendev.org/openstack/freezer/src/commit/a6378ee78b86409957954574318afa2bd0d11db2/freezer/common/config.py#L108","commit_id":"9c5f90622f285a6c0374c230ef94a81079c066d6"}],"doc/source/cli/freezer-agent.rst":[{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"1ad3c83fa3922d5fc181fbe1beb0d9580b58803d","unresolved":true,"context_lines":[{"line_number":513,"context_line":"  :Default: ``\u003cNone\u003e``"},{"line_number":514,"context_line":"  :Valid Values: 3"},{"line_number":515,"context_line":""},{"line_number":516,"context_line":"  Openstack identity api version, must be 3"},{"line_number":517,"context_line":""},{"line_number":518,"context_line":"  .. list-table:: Deprecated Variations"},{"line_number":519,"context_line":"     :header-rows: 1"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3baca8bd_7359c718","line":516,"updated":"2026-02-06 14:28:08.000000000","message":"```suggestion\n  OpenStack identity API version, must be 3\n```","commit_id":"92158d8efa65ab279c40abcd5516fdef3b1c4a5a"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"cb389919dc5d06b3858c86d81f742c595c140339","unresolved":false,"context_lines":[{"line_number":513,"context_line":"  :Default: ``\u003cNone\u003e``"},{"line_number":514,"context_line":"  :Valid Values: 3"},{"line_number":515,"context_line":""},{"line_number":516,"context_line":"  Openstack identity api version, must be 3"},{"line_number":517,"context_line":""},{"line_number":518,"context_line":"  .. list-table:: Deprecated Variations"},{"line_number":519,"context_line":"     :header-rows: 1"}],"source_content_type":"text/x-rst","patch_set":5,"id":"b04bd8ef_4c0c29ca","line":516,"in_reply_to":"3baca8bd_7359c718","updated":"2026-03-16 15:32:33.000000000","message":"Done","commit_id":"92158d8efa65ab279c40abcd5516fdef3b1c4a5a"}],"freezer/common/config.py":[{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"c58181a343f3f43e48b98b0afea24cc147e4ff4b","unresolved":true,"context_lines":[{"line_number":400,"context_line":"               default\u003dDEFAULT_PARAMS[\u0027os_identity_api_version\u0027],"},{"line_number":401,"context_line":"               dest\u003d\u0027os_identity_api_version\u0027,"},{"line_number":402,"context_line":"               choices\u003d[\u00273\u0027],"},{"line_number":403,"context_line":"               help\u003d\"Openstack identity api version, must be 3\""},{"line_number":404,"context_line":"               ),"},{"line_number":405,"context_line":"    cfg.StrOpt(\u0027proxy\u0027,"},{"line_number":406,"context_line":"               dest\u003d\u0027proxy\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"c74cce01_9d59a86b","line":403,"updated":"2026-02-06 14:27:45.000000000","message":"```suggestion\n               help\u003d\"OpenStack identity API version, must be 3\"\n```","commit_id":"92158d8efa65ab279c40abcd5516fdef3b1c4a5a"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"dc227379c0a6120dba8535bcf6d126b0947ab630","unresolved":false,"context_lines":[{"line_number":400,"context_line":"               default\u003dDEFAULT_PARAMS[\u0027os_identity_api_version\u0027],"},{"line_number":401,"context_line":"               dest\u003d\u0027os_identity_api_version\u0027,"},{"line_number":402,"context_line":"               choices\u003d[\u00273\u0027],"},{"line_number":403,"context_line":"               help\u003d\"Openstack identity api version, must be 3\""},{"line_number":404,"context_line":"               ),"},{"line_number":405,"context_line":"    cfg.StrOpt(\u0027proxy\u0027,"},{"line_number":406,"context_line":"               dest\u003d\u0027proxy\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a6633a1_b3d3dbf7","line":403,"in_reply_to":"c74cce01_9d59a86b","updated":"2026-03-13 10:54:09.000000000","message":"Done","commit_id":"92158d8efa65ab279c40abcd5516fdef3b1c4a5a"}],"freezer/openstack/osclients.py":[{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"56525055d52e5e05874122a5584ba0e2c11d5f7b","unresolved":true,"context_lines":[{"line_number":419,"context_line":"                self.auth_version \u003d self.identity_api_version \u003d str(\u00273\u0027)"},{"line_number":420,"context_line":"            elif version \u003d\u003d \u0027v3\u0027:"},{"line_number":421,"context_line":"                self.auth_version \u003d self.identity_api_version \u003d str(\u00273\u0027)"},{"line_number":422,"context_line":"            elif version \u003d\u003d \u0027v2.0\u0027:"},{"line_number":423,"context_line":"                self.auth_version \u003d self.identity_api_version \u003d str(\u00272.0\u0027)"},{"line_number":424,"context_line":"            else:"},{"line_number":425,"context_line":"                raise Exception(\u0027Keystone Auth version {0} is not supported!. \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"cf762181_87a2a89d","line":422,"updated":"2026-01-18 19:57:59.000000000","message":"Hello, we can remove v2 - this just no effect and just harcode v3.","commit_id":"b31edcc692d9321b9d8720c7151af9cdde1e41f7"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"f2499e105f1776218a967b81b7b409e9cd18d62e","unresolved":false,"context_lines":[{"line_number":419,"context_line":"                self.auth_version \u003d self.identity_api_version \u003d str(\u00273\u0027)"},{"line_number":420,"context_line":"            elif version \u003d\u003d \u0027v3\u0027:"},{"line_number":421,"context_line":"                self.auth_version \u003d self.identity_api_version \u003d str(\u00273\u0027)"},{"line_number":422,"context_line":"            elif version \u003d\u003d \u0027v2.0\u0027:"},{"line_number":423,"context_line":"                self.auth_version \u003d self.identity_api_version \u003d str(\u00272.0\u0027)"},{"line_number":424,"context_line":"            else:"},{"line_number":425,"context_line":"                raise Exception(\u0027Keystone Auth version {0} is not supported!. \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"3b31de75_e286f05a","line":422,"in_reply_to":"cf762181_87a2a89d","updated":"2026-01-19 09:39:59.000000000","message":"Done","commit_id":"b31edcc692d9321b9d8720c7151af9cdde1e41f7"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"1d0f02a395583a19e0480a4f153933473e494d8e","unresolved":true,"context_lines":[{"line_number":412,"context_line":"        if auth_version is None and identity_api_version is None:"},{"line_number":413,"context_line":"            version \u003d auth_url.rstrip(\u0027/\u0027).rsplit(\u0027/\u0027)[-1]"},{"line_number":414,"context_line":"            if version \u003d\u003d \u0027identity\u0027 or version.isdigit():"},{"line_number":415,"context_line":"                # no Version is given in the url. The url ends either with a"},{"line_number":416,"context_line":"                # port number or `identity`. In this case we default to"},{"line_number":417,"context_line":"                # identity version 3."},{"line_number":418,"context_line":"                self.auth_url \u003d auth_url + \"/v3\""},{"line_number":419,"context_line":"                self.auth_version \u003d self.identity_api_version \u003d str(\u00273\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"0143c68b_14d2e201","line":416,"range":{"start_line":415,"start_character":16,"end_line":416,"end_character":43},"updated":"2026-01-19 15:10:29.000000000","message":"I don\u0027t think it\u0027s true actually. I\u0027m not sure in which case `isdigit` will be the case, as you\u0027re not splitting on `:`.\n\n```\n\u003e\u003e\u003e url \u003d \"https://example.cloud.com:5000\"\n\u003e\u003e\u003e url.rstrip(\u0027/\u0027).rsplit(\u0027/\u0027)[-1]\n\u0027example.cloud.com:5000\u0027\n\u003e\u003e\u003e url \u003d \"https://example.cloud.com:5000/\"\n\u003e\u003e\u003e url.rstrip(\u0027/\u0027).rsplit(\u0027/\u0027)[-1]\n\u0027example.cloud.com:5000\u0027\n\u003e\u003e\u003e \n```","commit_id":"c03722ebbaa1a01173ca405706da064b65b47d06"},{"author":{"_account_id":28271,"name":"Josephine Seifert","email":"josephine.seifert@cloudandheat.com","username":"josei"},"change_message_id":"7dcc82e68fcc24e10ea5da1d29ba79761294c2e4","unresolved":true,"context_lines":[{"line_number":412,"context_line":"        if auth_version is None and identity_api_version is None:"},{"line_number":413,"context_line":"            version \u003d auth_url.rstrip(\u0027/\u0027).rsplit(\u0027/\u0027)[-1]"},{"line_number":414,"context_line":"            if version \u003d\u003d \u0027identity\u0027 or version.isdigit():"},{"line_number":415,"context_line":"                # no Version is given in the url. The url ends either with a"},{"line_number":416,"context_line":"                # port number or `identity`. In this case we default to"},{"line_number":417,"context_line":"                # identity version 3."},{"line_number":418,"context_line":"                self.auth_url \u003d auth_url + \"/v3\""},{"line_number":419,"context_line":"                self.auth_version \u003d self.identity_api_version \u003d str(\u00273\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"c83111da_dca41bd2","line":416,"range":{"start_line":415,"start_character":16,"end_line":416,"end_character":43},"in_reply_to":"0143c68b_14d2e201","updated":"2026-01-20 13:48:26.000000000","message":"I found a better way to set the default. I just hope, this will not break any case, when the url is not ending with /v3.","commit_id":"c03722ebbaa1a01173ca405706da064b65b47d06"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"c8f2d83ea85cc5e7b8489eba5d1e69480a5067e9","unresolved":true,"context_lines":[{"line_number":409,"context_line":"        if auth_url is None:"},{"line_number":410,"context_line":"            raise Exception(\u0027auth_url required to authenticate. Make sure to \u0027"},{"line_number":411,"context_line":"                            \u0027export OS_AUTH_URL\u003dhttp://keystone_url:5000\u0027)"},{"line_number":412,"context_line":"        if str(identity_api_version) !\u003d \"3\":"},{"line_number":413,"context_line":"            raise Exception(\u0027Keystone Auth version {0} is not supported!.\u0027"},{"line_number":414,"context_line":"                            .format(identity_api_version))"},{"line_number":415,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"d0c9dce1_5bde92f5","line":412,"range":{"start_line":412,"start_character":11,"end_line":412,"end_character":15},"updated":"2026-01-20 18:33:15.000000000","message":"I\u0027d say we should be raising an exception in case it\u0027s not an integer","commit_id":"9c5f90622f285a6c0374c230ef94a81079c066d6"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"fc570e2b6a800cebeae6b2ed1b19bdb416599042","unresolved":true,"context_lines":[{"line_number":409,"context_line":"        if auth_url is None:"},{"line_number":410,"context_line":"            raise Exception(\u0027auth_url required to authenticate. Make sure to \u0027"},{"line_number":411,"context_line":"                            \u0027export OS_AUTH_URL\u003dhttp://keystone_url:5000\u0027)"},{"line_number":412,"context_line":"        if str(identity_api_version) !\u003d \"3\":"},{"line_number":413,"context_line":"            raise Exception(\u0027Keystone Auth version {0} is not supported!.\u0027"},{"line_number":414,"context_line":"                            .format(identity_api_version))"},{"line_number":415,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"f0eaaebf_3f94557e","line":412,"range":{"start_line":412,"start_character":11,"end_line":412,"end_character":15},"in_reply_to":"d0c9dce1_5bde92f5","updated":"2026-01-20 18:33:47.000000000","message":"pretty much because of this: https://opendev.org/openstack/freezer/src/commit/a6378ee78b86409957954574318afa2bd0d11db2/freezer/common/config.py#L390-L396","commit_id":"9c5f90622f285a6c0374c230ef94a81079c066d6"}]}
