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

Reply via email to