Excerpts from Kekane, Abhishek's message of 2017-04-26 07:00:22 +0000: > Hi All, > > As per suggested by @jay_pipes's > if val.count('-') not in (0, 4): > raise TypeError > > It is not sufficient solution because "is_uuid_like" returns only True or > False. > For example, > > If user passes uuid like "urn:11111111-2222-4444-5555-666666666666" or > "urn:uuid:11111111-2222-4444-5555-666666666666" then "is_uuid_like" method > returns True as it is valid uuid format, but when this uuid tries to insert > into database table then it gives DBDataError because the reason is in > database "block_device_mapping" table has "volume_id" field of 36 characters > only so while inserting data to the table through 'BlockDeviceMapping' object > it raises DBDataError. > > Doug's solution of adding another method format_canonical_uuid() which would > format it with the proper number of hyphens and return actual UUID will break > backward compatibility IMO. Because of adding this new method in oslo_utils > then we have to make changes in all projects which are using this > is_uuid_like().
I don't understand why adding a new function breaks backwards compatibility. Can you elaborate on why you think so? Doug > > Please let me know if you have any suggestions on the same, IMO restricting > this uuid size at schema level is one solution but not all projects supports > schema validation. > > Thank you, > > Abhishek > > > From: Lance Bragstad [mailto:lbrags...@gmail.com] > Sent: Monday, April 24, 2017 11:50 PM > To: OpenStack Development Mailing List (not for usage questions) > Subject: Re: [openstack-dev] [nova][oslo.utils] Bug-1680130 Check validation > of UUID length > > We had to do similar things in keystone in order to validate uuid-ish types > (just not as fancy) [0] [1]. If we didn't have to worry about being backwards > compatible with non-uuid formats, it would be awesome to have one > implementation for checking that. > > [0] > https://github.com/openstack/keystone/blob/6c6589d2b0f308cb788b37b29ebde515304ee41e/keystone/identity/schema.py#L69 > [1] > https://github.com/openstack/keystone/blob/6c6589d2b0f308cb788b37b29ebde515304ee41e/keystone/common/validation/parameter_types.py#L38-L45 > > On Mon, Apr 24, 2017 at 1:05 PM, Matt Riedemann > <mriede...@gmail.com<mailto:mriede...@gmail.com>> wrote: > On 4/24/2017 12:58 PM, Sean Dague wrote: > > Which uses is_uuid_like to do the validation - > https://github.com/openstack/nova/blob/1106477b78c80743e6443abc30911b24a9ab7b15/nova/api/validation/validators.py#L85-L87 > > We assumed (as did many others) that is_uuid_like was strict enough for > param validation. It is apparently not. > > Either it needs to be fixed to be so, or some other function needs to be > created that is, that people can cut over to. > > -Sean > > Well kiss my grits. I had always assumed that was built into jsonschema. > > -- > > Thanks, > > Matt > __________________________________________________________________________ OpenStack Development Mailing List (not for usage questions) Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev