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(). 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://openstack-dev-requ...@lists.openstack.org?subject:unsubscribe> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev ______________________________________________________________________ Disclaimer: This email and any attachments are sent in strictest confidence for the sole use of the addressee and may contain legally privileged, confidential, and proprietary data. If you are not the intended recipient, please advise the sender by replying promptly to this email and then delete and destroy this email and any attachments without any further use, copying or forwarding.
__________________________________________________________________________ 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