Merge "db: Remove session arguments from AZ methods"
This commit is contained in:
commit
a30697d3e7
manila
@ -6140,9 +6140,7 @@ def share_type_extra_specs_update_or_create(context, share_type_id, specs):
|
|||||||
|
|
||||||
|
|
||||||
@context_manager.writer
|
@context_manager.writer
|
||||||
def ensure_availability_zone_exists(
|
def ensure_availability_zone_exists(context, values, *, strict=True):
|
||||||
context, values, *, strict=True,
|
|
||||||
):
|
|
||||||
az_name = values.pop('availability_zone', None)
|
az_name = values.pop('availability_zone', None)
|
||||||
|
|
||||||
if not az_name:
|
if not az_name:
|
||||||
@ -6165,11 +6163,9 @@ def availability_zone_get(context, id_or_name):
|
|||||||
return _availability_zone_get(context, id_or_name)
|
return _availability_zone_get(context, id_or_name)
|
||||||
|
|
||||||
|
|
||||||
# TODO(stephenfin): Remove the 'session' argument once all callers have been
|
|
||||||
# converted
|
|
||||||
@require_context
|
@require_context
|
||||||
def _availability_zone_get(context, id_or_name, session=None):
|
def _availability_zone_get(context, id_or_name):
|
||||||
query = model_query(context, models.AvailabilityZone, session=session)
|
query = model_query(context, models.AvailabilityZone)
|
||||||
|
|
||||||
if uuidutils.is_uuid_like(id_or_name):
|
if uuidutils.is_uuid_like(id_or_name):
|
||||||
query = query.filter_by(id=id_or_name)
|
query = query.filter_by(id=id_or_name)
|
||||||
@ -6184,23 +6180,15 @@ def _availability_zone_get(context, id_or_name, session=None):
|
|||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
# TODO(stephenfin): Remove the 'session' argument once all callers have been
|
|
||||||
# converted
|
|
||||||
@require_context
|
@require_context
|
||||||
@oslo_db_api.wrap_db_retry(max_retries=5, retry_on_deadlock=True)
|
@oslo_db_api.wrap_db_retry(max_retries=5, retry_on_deadlock=True)
|
||||||
def _availability_zone_create_if_not_exist(context, name, session=None):
|
def _availability_zone_create_if_not_exist(context, name):
|
||||||
try:
|
try:
|
||||||
return _availability_zone_get(context, name, session=session)
|
return _availability_zone_get(context, name)
|
||||||
except exception.AvailabilityZoneNotFound:
|
except exception.AvailabilityZoneNotFound:
|
||||||
az = models.AvailabilityZone()
|
az = models.AvailabilityZone()
|
||||||
az.update({'id': uuidutils.generate_uuid(), 'name': name})
|
az.update({'id': uuidutils.generate_uuid(), 'name': name})
|
||||||
# TODO(stephenfin): Remove this branch once all callers have been
|
az.save(context.session)
|
||||||
# updated not to pass 'session'
|
|
||||||
if session is not None:
|
|
||||||
with session.begin():
|
|
||||||
az.save(session)
|
|
||||||
else:
|
|
||||||
az.save(context.session)
|
|
||||||
return az
|
return az
|
||||||
|
|
||||||
|
|
||||||
|
@ -3927,14 +3927,11 @@ class ServiceDatabaseAPITestCase(test.TestCase):
|
|||||||
|
|
||||||
def test_create__az_exists(self):
|
def test_create__az_exists(self):
|
||||||
"""Ensure we use an AZ is it already exists."""
|
"""Ensure we use an AZ is it already exists."""
|
||||||
# there's no public AZ create method so we have to define one ourselves
|
with db_api.context_manager.writer.using(self.ctxt):
|
||||||
@db_api.context_manager.writer
|
az = db_api._availability_zone_create_if_not_exist(
|
||||||
def availability_zone_create(context, name):
|
self.ctxt, 'fake_zone',
|
||||||
return db_api._availability_zone_create_if_not_exist(
|
|
||||||
context, name,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
az = availability_zone_create(self.ctxt, 'fake_zone')
|
|
||||||
service = db_api.service_create(self.ctxt, self.service_data)
|
service = db_api.service_create(self.ctxt, self.service_data)
|
||||||
|
|
||||||
self.assertEqual(az.id, service.availability_zone_id)
|
self.assertEqual(az.id, service.availability_zone_id)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user