)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3e1c75a0ad47cc2c2cd1103a75151c3564b211d1","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"tests: Use UUIDs in TestOpenStackClient"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The user and tenant IDs often form part of a response. We need them to"},{"line_number":10,"context_line":"be valid UUIDS."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ib46227b39130631566e25407769e821eb0ed45ad"},{"line_number":13,"context_line":"Signed-off-by: Stephen Finucane \u003cstephenfin@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"5eca343c_c3f7443d","line":10,"range":{"start_line":9,"start_character":55,"end_line":10,"end_character":15},"updated":"2025-01-28 19:01:19.000000000","message":"do we?\n\nbecause looking at keystons api ref the define it as a string not a uuid\n\nhttps://docs.openstack.org/api-ref/identity/v3/#id816\n\nand the exmaple they provide is not a uuid\n```\n{\n    \"user\": {\n        \"default_project_id\": \"263fd9\",\n        \"description\": \"James Doe user\",\n        \"domain_id\": \"1789d1\",\n        \"email\": \"jdoe@example.com\",\n        \"enabled\": true,\n        \"federated\": [\n            {\n                \"idp_id\": \"efbab5a6acad4d108fec6c63d9609d83\",\n                \"protocols\": [\n                    {\n                        \"protocol_id\": \"mapped\",\n                        \"unique_id\": \"test@example.com\"\n                    }\n                ]\n            }\n        ],\n        \"id\": \"ff4e51\",\n        \"links\": {\n            \"self\": \"https://example.com/identity/v3/users/ff4e51\"\n        },\n        \"name\": \"James Doe\",\n        \"options\": {\n            \"ignore_password_expiry\": true\n        },\n        \"password_expires_at\": \"2016-11-06T15:32:17.000000\"\n    }\n}\n```\n\ni think this is not required ot be a uuid becuase if your using ldap or other backend it may not be one\n\nif i look at the api validation in keystone it looks like it does not require project_id ot be a uuid\n\nhttps://github.com/openstack/keystone/blob/master/keystone/api/validation/parameter_types.py#L67-L73\n\nhttps://github.com/openstack/keystone/blob/6965c2a24bdf8bc2f5adb7ff559148cffe5b2694/keystone/identity/schema.py#L88\n\n\na uuid storead as a strign in a db is only 36 charters\n\nhttps://github.com/openstack/nova/blob/master/nova/db/main/models.py#L152\n\nbut the id column in the keystone projects table is 64 inline wiht the validation\n\nhttps://github.com/openstack/keystone/blob/master/keystone/resource/backends/sql_model.py#L68\n\nso im pretty sure that there is no requrieemnt ot use uuids for project or user ids.","commit_id":"db715b6c180d10a469c2f3e5a1e595ee31401070"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"a745060473d5cdd95198b2b6f88355d453d34f19","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"tests: Use UUIDs in TestOpenStackClient"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The user and tenant IDs often form part of a response. We need them to"},{"line_number":10,"context_line":"be valid UUIDS."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ib46227b39130631566e25407769e821eb0ed45ad"},{"line_number":13,"context_line":"Signed-off-by: Stephen Finucane \u003cstephenfin@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"73cbfb00_7b4fca4e","line":10,"range":{"start_line":9,"start_character":55,"end_line":10,"end_character":15},"in_reply_to":"5eca343c_c3f7443d","updated":"2025-01-28 19:10:10.000000000","message":"our own api schemas that accpate user_ids are also strings not user ids\n\nhttps://github.com/search?q\u003drepo%3Aopenstack%2Fnova+path%3A%2F%5Enova%5C%2Fapi%5C%2Fopenstack%5C%2Fcompute%5C%2Fschemas%5C%2F%2F++user_id\u0026type\u003dcode\n\nas is our project id validation for the flavor access api.\n\nhttps://github.com/search?q\u003drepo%3Aopenstack%2Fnova+path%3A%2F%5Enova%5C%2Fapi%5C%2Fopenstack%5C%2Fcompute%5C%2Fschemas%5C%2F%2F++project_id\u0026type\u003dcode","commit_id":"db715b6c180d10a469c2f3e5a1e595ee31401070"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ed4acdc2b615bd90afb7ab37afc09332b3926d23","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"tests: Use UUIDs in TestOpenStackClient"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The user and tenant IDs often form part of a response. We need them to"},{"line_number":10,"context_line":"be valid UUIDS."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ib46227b39130631566e25407769e821eb0ed45ad"},{"line_number":13,"context_line":"Signed-off-by: Stephen Finucane \u003cstephenfin@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"a4432bfe_19e6ad60","line":10,"range":{"start_line":9,"start_character":55,"end_line":10,"end_character":15},"in_reply_to":"73cbfb00_7b4fca4e","updated":"2025-01-28 19:52:04.000000000","message":"so i dont know exactly where the user id of local users are geenrated\n\nbut for federated users \n\nthe user id is set as follows\n```\n        public_id \u003d PROVIDERS.id_generator_api.generate_public_ID(local_entity)\n\n        user \u003d {\u0027id\u0027: public_id, \u0027domain_id\u0027: domain_id, \u0027enabled\u0027: True}\n```\nhttps://github.com/openstack/keystone/blob/master/keystone/identity/shadow_backends/sql.py#L40-L42\n\n\nthe only intree public id generate creates the id as a sha256 over the files of the object passed to it\n\nhttps://github.com/openstack/keystone/blob/master/keystone/identity/id_generators/sha256.py#L21\n\nhttps://github.com/openstack/keystone/blob/master/keystone/identity/id_generators/sha256.py#L21\n\nhttps://docs.openstack.org/keystone/latest/configuration/config-options.html#identity_mapping.generator\n\n\n\nlooking at my devstack env my user id is also \"4f977ef346e44543a5e5c7ab753d6def\"\n\n``\necho 4f977ef346e44543a5e5c7ab753d6def | uuidparse \nUUID                                  VARIANT   TYPE       TIME\n4f977ef346e44543a5e5c7ab753d6def      invalid   invalid    invalid\n\n[19:40:54]➜ uuidgen | uuidparse \nUUID                                  VARIANT TYPE       TIME\n4b103a6e-48f6-4f31-992b-38a174e70a7e  DCE     random     \n``\n\nthere is also a backward compatiable ids config option\n\nhttps://docs.openstack.org/keystone/latest/configuration/config-options.html#identity_mapping.backward_compatible_ids\n\n\"\"\"\n\nbackward_compatible_ids\n\n    Type:\n\n        boolean\n    Default:\n\n        True\n\n    The format of user and group IDs changed in Juno for backends that do not generate UUIDs (for example, LDAP), with keystone providing a hash mapping to the underlying attribute in LDAP. By default this mapping is disabled, which ensures that existing IDs will not change. Even when the mapping is enabled by using domain-specific drivers ([identity] domain_specific_drivers_enabled), any users and groups from the default domain being handled by LDAP will still not be mapped to ensure their IDs remain backward compatible. Setting this value to false will enable the new mapping for all backends, including the default LDAP driver. It is only guaranteed to be safe to enable this option if you do not already have assignments for users and groups from the default LDAP domain, and you consider it to be acceptable for Keystone to provide the different IDs to clients than it did previously (existing IDs in the API will suddenly change). Typically this means that the only time you can set this value to false is when configuring a fresh installation, although that is the recommended value.\n\n\"\"\"\n\nso i think that pretty much confimrs this is not guarenteed to be a uuid.\n\nhttps://opendev.org/openstack/keystone-specs/src/branch/master/specs/keystone/juno/multi-backend-uuids.rst","commit_id":"db715b6c180d10a469c2f3e5a1e595ee31401070"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b8fd49b6aa58303756b26e5e5d7bda7e9d9facf1","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"tests: Use UUIDs in TestOpenStackClient"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The user and tenant IDs often form part of a response. We need them to"},{"line_number":10,"context_line":"be valid UUIDS."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ib46227b39130631566e25407769e821eb0ed45ad"},{"line_number":13,"context_line":"Signed-off-by: Stephen Finucane \u003cstephenfin@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"d1cf2788_7874cc7b","line":10,"range":{"start_line":9,"start_character":55,"end_line":10,"end_character":15},"in_reply_to":"a4432bfe_19e6ad60","updated":"2025-01-29 10:02:46.000000000","message":"Feck. I had always assumed that these were UUID (or at least UUID-like: I noticed that they rarely include the hyphens). Now I need to figure out what to do with this commit since it has tentacles everywhere 🙈","commit_id":"db715b6c180d10a469c2f3e5a1e595ee31401070"}],"nova/tests/functional/api/client.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"a745060473d5cdd95198b2b6f88355d453d34f19","unresolved":true,"context_lines":[{"line_number":136,"context_line":"        self.user_id \u003d user_id"},{"line_number":137,"context_line":"        self.base_url \u003d base_url"},{"line_number":138,"context_line":"        if project_id is None:"},{"line_number":139,"context_line":"            self.project_id \u003d \"6f70656e737461636b20342065766572\""},{"line_number":140,"context_line":"        else:"},{"line_number":141,"context_line":"            self.project_id \u003d project_id"},{"line_number":142,"context_line":"        self.microversion \u003d None"}],"source_content_type":"text/x-python","patch_set":5,"id":"ab957102_070614d9","line":139,"range":{"start_line":139,"start_character":31,"end_line":139,"end_character":63},"updated":"2025-01-28 19:10:10.000000000","message":"this is not a valid uuid for what its worht but it is a valid project id.","commit_id":"db715b6c180d10a469c2f3e5a1e595ee31401070"}]}
