Merge "db api: add service_get_by_uuid"
This commit is contained in:
commit
8c5b27a534
@ -112,6 +112,13 @@ def service_get(context, service_id):
|
||||
return IMPL.service_get(context, service_id)
|
||||
|
||||
|
||||
def service_get_by_uuid(context, service_uuid):
|
||||
"""Get a service by it's uuid or raise ServiceNotFound if it does not
|
||||
exist.
|
||||
"""
|
||||
return IMPL.service_get_by_uuid(context, service_uuid)
|
||||
|
||||
|
||||
def service_get_minimum_version(context, binary):
|
||||
"""Get the minimum service version in the database."""
|
||||
return IMPL.service_get_minimum_version(context, binary)
|
||||
|
@ -475,6 +475,17 @@ def service_get(context, service_id):
|
||||
return result
|
||||
|
||||
|
||||
@pick_context_manager_reader
|
||||
def service_get_by_uuid(context, service_uuid):
|
||||
query = model_query(context, models.Service).filter_by(uuid=service_uuid)
|
||||
|
||||
result = query.first()
|
||||
if not result:
|
||||
raise exception.ServiceNotFound(service_id=service_uuid)
|
||||
|
||||
return result
|
||||
|
||||
|
||||
@pick_context_manager_reader_allow_async
|
||||
def service_get_minimum_version(context, binaries):
|
||||
min_versions = context.session.query(
|
||||
|
@ -3572,6 +3572,22 @@ class ServiceTestCase(test.TestCase, ModelsObjectComparatorMixin):
|
||||
self._assertEqualObjects(service1, real_service1,
|
||||
ignored_keys=['compute_node'])
|
||||
|
||||
def test_service_get_by_uuid(self):
|
||||
service1 = self._create_service({'uuid': uuidsentinel.service1_uuid})
|
||||
self._create_service({'host': 'some_other_fake_host',
|
||||
'uuid': uuidsentinel.other_uuid})
|
||||
real_service1 = db.service_get_by_uuid(
|
||||
self.ctxt, uuidsentinel.service1_uuid)
|
||||
self._assertEqualObjects(service1, real_service1,
|
||||
ignored_keys=['compute_node'])
|
||||
|
||||
def test_service_get_by_uuid_not_found(self):
|
||||
"""Asserts that ServiceNotFound is raised if a service is not found by
|
||||
a given uuid.
|
||||
"""
|
||||
self.assertRaises(exception.ServiceNotFound, db.service_get_by_uuid,
|
||||
self.ctxt, uuidsentinel.service_not_found)
|
||||
|
||||
def test_service_get_minimum_version(self):
|
||||
self._create_service({'version': 1,
|
||||
'host': 'host3',
|
||||
|
Loading…
Reference in New Issue
Block a user