Merge "indexer: teach SQL query compiler numeric and string types"
This commit is contained in:
commit
2e693b33ab
@ -27,6 +27,7 @@ from oslo_db.sqlalchemy import utils as oslo_db_utils
|
||||
from oslo_log import log
|
||||
import six
|
||||
import sqlalchemy
|
||||
from sqlalchemy import types
|
||||
import sqlalchemy_utils
|
||||
|
||||
from gnocchi import exceptions
|
||||
@ -809,6 +810,12 @@ class QueryTransformer(object):
|
||||
elif (isinstance(attr.type, sqlalchemy_utils.UUIDType)
|
||||
and not isinstance(value, uuid.UUID)):
|
||||
converter = utils.ResourceUUID
|
||||
elif isinstance(attr.type, types.String):
|
||||
converter = six.text_type
|
||||
elif isinstance(attr.type, types.Integer):
|
||||
converter = int
|
||||
elif isinstance(attr.type, types.Numeric):
|
||||
converter = float
|
||||
|
||||
if converter:
|
||||
try:
|
||||
|
@ -713,6 +713,11 @@ class TestIndexerDriver(tests_base.TestCase):
|
||||
'generic',
|
||||
attribute_filter={"=": {"id": "f00bar" * 50}})
|
||||
|
||||
def test_list_resource_instance_flavor_id_numeric(self):
|
||||
r = self.index.list_resources(
|
||||
'instance', attribute_filter={"=": {"flavor_id": 1.0}})
|
||||
self.assertEqual(0, len(r))
|
||||
|
||||
def test_list_resource_weird_date(self):
|
||||
self.assertRaises(
|
||||
indexer.QueryValueError,
|
||||
|
Loading…
Reference in New Issue
Block a user