diff --git a/manila/db/sqlalchemy/api.py b/manila/db/sqlalchemy/api.py index 05da6d30b7..ee5d46b002 100644 --- a/manila/db/sqlalchemy/api.py +++ b/manila/db/sqlalchemy/api.py @@ -6140,9 +6140,7 @@ def share_type_extra_specs_update_or_create(context, share_type_id, specs): @context_manager.writer -def ensure_availability_zone_exists( - context, values, *, strict=True, -): +def ensure_availability_zone_exists(context, values, *, strict=True): az_name = values.pop('availability_zone', None) if not az_name: @@ -6165,11 +6163,9 @@ def 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 -def _availability_zone_get(context, id_or_name, session=None): - query = model_query(context, models.AvailabilityZone, session=session) +def _availability_zone_get(context, id_or_name): + query = model_query(context, models.AvailabilityZone) if uuidutils.is_uuid_like(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 -# TODO(stephenfin): Remove the 'session' argument once all callers have been -# converted @require_context @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: - return _availability_zone_get(context, name, session=session) + return _availability_zone_get(context, name) except exception.AvailabilityZoneNotFound: az = models.AvailabilityZone() az.update({'id': uuidutils.generate_uuid(), 'name': name}) - # TODO(stephenfin): Remove this branch once all callers have been - # updated not to pass 'session' - if session is not None: - with session.begin(): - az.save(session) - else: - az.save(context.session) + az.save(context.session) return az diff --git a/manila/tests/db/sqlalchemy/test_api.py b/manila/tests/db/sqlalchemy/test_api.py index c71435876b..4c7dd342d6 100644 --- a/manila/tests/db/sqlalchemy/test_api.py +++ b/manila/tests/db/sqlalchemy/test_api.py @@ -3927,14 +3927,11 @@ class ServiceDatabaseAPITestCase(test.TestCase): def test_create__az_exists(self): """Ensure we use an AZ is it already exists.""" - # there's no public AZ create method so we have to define one ourselves - @db_api.context_manager.writer - def availability_zone_create(context, name): - return db_api._availability_zone_create_if_not_exist( - context, name, + with db_api.context_manager.writer.using(self.ctxt): + az = db_api._availability_zone_create_if_not_exist( + self.ctxt, 'fake_zone', ) - az = availability_zone_create(self.ctxt, 'fake_zone') service = db_api.service_create(self.ctxt, self.service_data) self.assertEqual(az.id, service.availability_zone_id)