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:[email protected]]
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
<[email protected]<mailto:[email protected]>> 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:
[email protected]?subject:unsubscribe<http://[email protected]?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: [email protected]?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev