Merge "DB: Support filter_by status in get_bay_list"
This commit is contained in:
commit
e1440c8e09
|
@ -134,6 +134,8 @@ class Connection(api.Connection):
|
|||
query = query.filter_by(project_id=filters['project_id'])
|
||||
if 'user_id' in filters:
|
||||
query = query.filter_by(user_id=filters['user_id'])
|
||||
if 'status' in filters:
|
||||
query = query.filter(models.Bay.status.in_(filters['status']))
|
||||
|
||||
return query
|
||||
|
||||
|
|
|
@ -135,7 +135,8 @@ class Bay(base.MagnumPersistentObject, base.MagnumObject,
|
|||
:param sort_dir: direction to sort. "asc" or "desc".
|
||||
:param filters: filter dict, can includes 'baymodel_id', 'name',
|
||||
'node_count', 'stack_id', 'api_address',
|
||||
'node_addresses', 'project_id', 'user_id'.
|
||||
'node_addresses', 'project_id', 'user_id',
|
||||
'status'(should be a status list).
|
||||
:returns: a list of :class:`Bay` object.
|
||||
|
||||
"""
|
||||
|
|
|
@ -19,6 +19,7 @@ import six
|
|||
|
||||
from magnum.common import exception
|
||||
from magnum.common import utils as magnum_utils
|
||||
from magnum.objects.bay import Status as bay_status
|
||||
from magnum.tests.unit.db import base
|
||||
from magnum.tests.unit.db import utils
|
||||
|
||||
|
@ -81,12 +82,18 @@ class DbBayTestCase(base.DbTestCase):
|
|||
bay1 = utils.create_test_bay(
|
||||
name='bay-one',
|
||||
uuid=magnum_utils.generate_uuid(),
|
||||
baymodel_id=bm1['uuid'])
|
||||
baymodel_id=bm1['uuid'],
|
||||
status=bay_status.CREATE_IN_PROGRESS)
|
||||
bay2 = utils.create_test_bay(
|
||||
name='bay-two',
|
||||
uuid=magnum_utils.generate_uuid(),
|
||||
baymodel_id=bm2['uuid'],
|
||||
node_count=1)
|
||||
node_count=1,
|
||||
status=bay_status.UPDATE_IN_PROGRESS)
|
||||
bay3 = utils.create_test_bay(
|
||||
name='bay-three',
|
||||
node_count=2,
|
||||
status=bay_status.DELETE_IN_PROGRESS)
|
||||
|
||||
res = self.dbapi.get_bay_list(self.context,
|
||||
filters={'baymodel_id': bm1['uuid']})
|
||||
|
@ -112,6 +119,12 @@ class DbBayTestCase(base.DbTestCase):
|
|||
filters={'node_count': 1})
|
||||
self.assertEqual([bay2.id], [r.id for r in res])
|
||||
|
||||
filters = {'status': [bay_status.CREATE_IN_PROGRESS,
|
||||
bay_status.DELETE_IN_PROGRESS]}
|
||||
res = self.dbapi.get_bay_list(self.context,
|
||||
filters=filters)
|
||||
self.assertEqual([bay1.id, bay3.id], [r.id for r in res])
|
||||
|
||||
def test_get_bay_list_baymodel_not_exist(self):
|
||||
utils.create_test_bay()
|
||||
self.assertEqual(1, len(self.dbapi.get_bay_list(self.context)))
|
||||
|
|
Loading…
Reference in New Issue