Use NULL as creator in ResourceUUID conversion
In older versions of Gnocchi, the creator could be null. It's unlikely now as all auth helper returns a string as creator, but it's still possible in theory. This patch uses the NULL string as the creator is it's None (so NULL in SQL). Change-Id: Id1faa16512b995fa2cd24ca4bed7912934cb5aad Closes-Bug: #1684246
This commit is contained in:
parent
b8958ae352
commit
75e4206731
|
@ -13,6 +13,7 @@
|
||||||
# under the License.
|
# under the License.
|
||||||
import datetime
|
import datetime
|
||||||
import os
|
import os
|
||||||
|
import uuid
|
||||||
|
|
||||||
import iso8601
|
import iso8601
|
||||||
import mock
|
import mock
|
||||||
|
@ -57,3 +58,21 @@ class TestUtils(tests_base.TestCase):
|
||||||
utils.to_datetime(utils.to_timestamp(1425652440.4)),
|
utils.to_datetime(utils.to_timestamp(1425652440.4)),
|
||||||
datetime.datetime(2015, 3, 6, 14, 34, 0, 400000,
|
datetime.datetime(2015, 3, 6, 14, 34, 0, 400000,
|
||||||
tzinfo=iso8601.iso8601.UTC))
|
tzinfo=iso8601.iso8601.UTC))
|
||||||
|
|
||||||
|
|
||||||
|
class TestResourceUUID(tests_base.TestCase):
|
||||||
|
def test_conversion(self):
|
||||||
|
self.assertEqual(
|
||||||
|
uuid.UUID('ba571521-1de6-5aff-b183-1535fd6eb5d0'),
|
||||||
|
utils.ResourceUUID(
|
||||||
|
uuid.UUID('ba571521-1de6-5aff-b183-1535fd6eb5d0'),
|
||||||
|
"bar"))
|
||||||
|
self.assertEqual(
|
||||||
|
uuid.UUID('ba571521-1de6-5aff-b183-1535fd6eb5d0'),
|
||||||
|
utils.ResourceUUID("foo", "bar"))
|
||||||
|
self.assertEqual(
|
||||||
|
uuid.UUID('4efb21f6-3d19-5fe3-910b-be8f0f727846'),
|
||||||
|
utils.ResourceUUID("foo", None))
|
||||||
|
self.assertEqual(
|
||||||
|
uuid.UUID('853e5c64-f45e-58b2-999c-96df856fbe3d'),
|
||||||
|
utils.ResourceUUID("foo", ""))
|
||||||
|
|
|
@ -48,6 +48,8 @@ def ResourceUUID(value, creator):
|
||||||
return uuid.UUID(value)
|
return uuid.UUID(value)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
if len(value) <= 255:
|
if len(value) <= 255:
|
||||||
|
if creator is None:
|
||||||
|
creator = "\x00"
|
||||||
# value/creator must be str (unicode) in Python 3 and str (bytes)
|
# value/creator must be str (unicode) in Python 3 and str (bytes)
|
||||||
# in Python 2. It's not logical, I know.
|
# in Python 2. It's not logical, I know.
|
||||||
if six.PY2:
|
if six.PY2:
|
||||||
|
|
Loading…
Reference in New Issue