Merge "Resolve SAWarning SQLAlchemy warning"

This commit is contained in:
Zuul 2021-03-24 20:20:19 +00:00 committed by Gerrit Code Review
commit 4fcc583813

View File

@ -46,7 +46,6 @@ from sqlalchemy.orm import RelationshipProperty
from sqlalchemy import sql from sqlalchemy import sql
from sqlalchemy.sql.expression import bindparam from sqlalchemy.sql.expression import bindparam
from sqlalchemy.sql.expression import desc from sqlalchemy.sql.expression import desc
from sqlalchemy.sql.expression import literal_column
from sqlalchemy.sql.expression import true from sqlalchemy.sql.expression import true
from sqlalchemy.sql import func from sqlalchemy.sql import func
from sqlalchemy.sql import sqltypes from sqlalchemy.sql import sqltypes
@ -573,12 +572,15 @@ def service_create(context, values):
@require_admin_context @require_admin_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 service_update(context, service_id, values): def service_update(context, service_id, values):
query = _service_query(context, id=service_id)
if 'disabled' in values: if 'disabled' in values:
entity = query.column_descriptions[0]['entity']
values = values.copy() values = values.copy()
values['modified_at'] = values.get('modified_at', timeutils.utcnow()) values['modified_at'] = values.get('modified_at', timeutils.utcnow())
values['updated_at'] = values.get('updated_at', values['updated_at'] = values.get('updated_at', entity.updated_at)
literal_column('updated_at'))
query = _service_query(context, id=service_id)
result = query.update(values) result = query.update(values)
if not result: if not result:
raise exception.ServiceNotFound(service_id=service_id) raise exception.ServiceNotFound(service_id=service_id)
@ -1507,7 +1509,7 @@ def volume_attached(context, attachment_id, instance_uuid, host_name,
'attached_host': host_name, 'attached_host': host_name,
'attach_time': timeutils.utcnow(), 'attach_time': timeutils.utcnow(),
'attach_mode': attach_mode, 'attach_mode': attach_mode,
'updated_at': literal_column('updated_at')} 'updated_at': volume_attachment_ref.updated_at}
volume_attachment_ref.update(updated_values) volume_attachment_ref.update(updated_values)
volume_attachment_ref.save(session=session) volume_attachment_ref.save(session=session)
del updated_values['updated_at'] del updated_values['updated_at']
@ -1648,19 +1650,23 @@ def volume_destroy(context, volume_id):
updated_values = {'status': 'deleted', updated_values = {'status': 'deleted',
'deleted': True, 'deleted': True,
'deleted_at': now, 'deleted_at': now,
'updated_at': literal_column('updated_at'),
'migration_status': None} 'migration_status': None}
with session.begin(): with session.begin():
model_query(context, models.Volume, session=session).\ query = model_query(context, models.Volume, session=session).\
filter_by(id=volume_id).\ filter_by(id=volume_id)
update(updated_values) entity = query.column_descriptions[0]['entity']
updated_values['updated_at'] = entity.updated_at
query.update(updated_values)
for model in VOLUME_DEPENDENT_MODELS: for model in VOLUME_DEPENDENT_MODELS:
model_query(context, model, session=session).\ query = model_query(context, model, session=session).\
filter_by(volume_id=volume_id).\ filter_by(volume_id=volume_id)
update({'deleted': True, entity = query.column_descriptions[0]['entity']
'deleted_at': now, query.update({'deleted': True,
'updated_at': literal_column('updated_at')}) 'deleted_at': now,
del updated_values['updated_at'] 'updated_at': entity.updated_at})
del updated_values['updated_at']
return updated_values return updated_values
@ -1743,8 +1749,7 @@ def volume_detached(context, volume_id, attachment_id):
'detach_time': now, 'detach_time': now,
'deleted': True, 'deleted': True,
'deleted_at': now, 'deleted_at': now,
'updated_at': 'updated_at': attachment.updated_at,
literal_column('updated_at'),
} }
attachment.update(attachment_updates) attachment.update(attachment_updates)
attachment.save(session=session) attachment.save(session=session)
@ -1753,7 +1758,7 @@ def volume_detached(context, volume_id, attachment_id):
attachment_list = None attachment_list = None
volume_ref = _volume_get(context, volume_id, volume_ref = _volume_get(context, volume_id,
session=session) session=session)
volume_updates = {'updated_at': literal_column('updated_at')} volume_updates = {'updated_at': volume_ref.updated_at}
if not volume_ref.volume_attachment: if not volume_ref.volume_attachment:
# NOTE(jdg): We kept the old arg style allowing session exclusively # NOTE(jdg): We kept the old arg style allowing session exclusively
# for this one call # for this one call
@ -2013,18 +2018,21 @@ def attachment_destroy(context, attachment_id):
utcnow = timeutils.utcnow() utcnow = timeutils.utcnow()
session = get_session() session = get_session()
with session.begin(): with session.begin():
query = model_query(context, models.VolumeAttachment,
session=session).filter_by(id=attachment_id)
entity = query.column_descriptions[0]['entity']
updated_values = {'attach_status': fields.VolumeAttachStatus.DELETED, updated_values = {'attach_status': fields.VolumeAttachStatus.DELETED,
'deleted': True, 'deleted': True,
'deleted_at': utcnow, 'deleted_at': utcnow,
'updated_at': literal_column('updated_at')} 'updated_at': entity.updated_at}
model_query(context, models.VolumeAttachment, session=session).\ query.update(updated_values)
filter_by(id=attachment_id).\
update(updated_values) query = model_query(context, models.AttachmentSpecs, session=session).\
model_query(context, models.AttachmentSpecs, session=session).\ filter_by(attachment_id=attachment_id)
filter_by(attachment_id=attachment_id).\ entity = query.column_descriptions[0]['entity']
update({'deleted': True, query.update({'deleted': True,
'deleted_at': utcnow, 'deleted_at': utcnow,
'updated_at': literal_column('updated_at')}) 'updated_at': entity.updated_at})
del updated_values['updated_at'] del updated_values['updated_at']
return updated_values return updated_values
@ -2059,11 +2067,12 @@ def attachment_specs_delete(context, attachment_id, key):
attachment_id, attachment_id,
key, key,
session) session)
_attachment_specs_query(context, attachment_id, session).\ query = _attachment_specs_query(context, attachment_id, session).\
filter_by(key=key).\ filter_by(key=key)
update({'deleted': True, entity = query.column_descriptions[0]['entity']
'deleted_at': timeutils.utcnow(), query.update({'deleted': True,
'updated_at': literal_column('updated_at')}) 'deleted_at': timeutils.utcnow(),
'updated_at': entity.updated_at})
@require_context @require_context
@ -2871,19 +2880,21 @@ def volume_metadata_get(context, volume_id):
@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 volume_metadata_delete(context, volume_id, key, meta_type): def volume_metadata_delete(context, volume_id, key, meta_type):
if meta_type == common.METADATA_TYPES.user: if meta_type == common.METADATA_TYPES.user:
(_volume_user_metadata_get_query(context, volume_id). query = _volume_user_metadata_get_query(context, volume_id).\
filter_by(key=key). filter_by(key=key)
update({'deleted': True, entity = query.column_descriptions[0]['entity']
'deleted_at': timeutils.utcnow(), query.update({'deleted': True,
'updated_at': literal_column('updated_at')})) 'deleted_at': timeutils.utcnow(),
'updated_at': entity.updated_at})
elif meta_type == common.METADATA_TYPES.image: elif meta_type == common.METADATA_TYPES.image:
metadata_id = _volume_glance_metadata_key_to_id(context, metadata_id = _volume_glance_metadata_key_to_id(context,
volume_id, key) volume_id, key)
(_volume_image_metadata_get_query(context, volume_id). query = _volume_image_metadata_get_query(context, volume_id).\
filter_by(id=metadata_id). filter_by(id=metadata_id)
update({'deleted': True, entity = query.column_descriptions[0]['entity']
'deleted_at': timeutils.utcnow(), query.update({'deleted': True,
'updated_at': literal_column('updated_at')})) 'deleted_at': timeutils.utcnow(),
'updated_at': entity.updated_at})
else: else:
raise exception.InvalidMetadataType(metadata_type=meta_type, raise exception.InvalidMetadataType(metadata_type=meta_type,
id=volume_id) id=volume_id)
@ -2942,11 +2953,12 @@ def volume_admin_metadata_get(context, volume_id):
@require_volume_exists @require_volume_exists
@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 volume_admin_metadata_delete(context, volume_id, key): def volume_admin_metadata_delete(context, volume_id, key):
_volume_admin_metadata_get_query(context, volume_id).\ query = _volume_admin_metadata_get_query(context, volume_id).\
filter_by(key=key).\ filter_by(key=key)
update({'deleted': True, entity = query.column_descriptions[0]['entity']
'deleted_at': timeutils.utcnow(), query.update({'deleted': True,
'updated_at': literal_column('updated_at')}) 'deleted_at': timeutils.utcnow(),
'updated_at': entity.updated_at})
@require_admin_context @require_admin_context
@ -2983,18 +2995,20 @@ def snapshot_destroy(context, snapshot_id):
utcnow = timeutils.utcnow() utcnow = timeutils.utcnow()
session = get_session() session = get_session()
with session.begin(): with session.begin():
query = model_query(context, models.Snapshot, session=session).\
filter_by(id=snapshot_id)
entity = query.column_descriptions[0]['entity']
updated_values = {'status': 'deleted', updated_values = {'status': 'deleted',
'deleted': True, 'deleted': True,
'deleted_at': utcnow, 'deleted_at': utcnow,
'updated_at': literal_column('updated_at')} 'updated_at': entity.updated_at}
model_query(context, models.Snapshot, session=session).\ query.update(updated_values)
filter_by(id=snapshot_id).\ query = model_query(context, models.SnapshotMetadata,
update(updated_values) session=session).filter_by(snapshot_id=snapshot_id)
model_query(context, models.SnapshotMetadata, session=session).\ entity = query.column_descriptions[0]['entity']
filter_by(snapshot_id=snapshot_id).\ query.update({'deleted': True,
update({'deleted': True, 'deleted_at': utcnow,
'deleted_at': utcnow, 'updated_at': entity.updated_at})
'updated_at': literal_column('updated_at')})
del updated_values['updated_at'] del updated_values['updated_at']
return updated_values return updated_values
@ -3365,11 +3379,12 @@ def snapshot_metadata_get(context, snapshot_id):
@require_snapshot_exists @require_snapshot_exists
@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 snapshot_metadata_delete(context, snapshot_id, key): def snapshot_metadata_delete(context, snapshot_id, key):
_snapshot_metadata_get_query(context, snapshot_id).\ query = _snapshot_metadata_get_query(context, snapshot_id).\
filter_by(key=key).\ filter_by(key=key)
update({'deleted': True, entity = query.column_descriptions[0]['entity']
'deleted_at': timeutils.utcnow(), query.update({'deleted': True,
'updated_at': literal_column('updated_at')}) 'deleted_at': timeutils.utcnow(),
'updated_at': entity.updated_at})
@require_context @require_context
@ -4134,22 +4149,25 @@ def volume_type_destroy(context, id):
if results or group_count or cg_count: if results or group_count or cg_count:
LOG.error('VolumeType %s deletion failed, VolumeType in use.', id) LOG.error('VolumeType %s deletion failed, VolumeType in use.', id)
raise exception.VolumeTypeInUse(volume_type_id=id) raise exception.VolumeTypeInUse(volume_type_id=id)
query = model_query(context, models.VolumeType, session=session).\
filter_by(id=id)
entity = query.column_descriptions[0]['entity']
updated_values = {'deleted': True, updated_values = {'deleted': True,
'deleted_at': utcnow, 'deleted_at': utcnow,
'updated_at': literal_column('updated_at')} 'updated_at': entity.updated_at}
model_query(context, models.VolumeType, session=session).\ query.update(updated_values)
filter_by(id=id).\ query = model_query(context, models.VolumeTypeExtraSpecs,
update(updated_values) session=session).filter_by(volume_type_id=id)
model_query(context, models.VolumeTypeExtraSpecs, session=session).\ entity = query.column_descriptions[0]['entity']
filter_by(volume_type_id=id).\ query.update({'deleted': True,
update({'deleted': True, 'deleted_at': utcnow,
'deleted_at': utcnow, 'updated_at': entity.updated_at})
'updated_at': literal_column('updated_at')}) query = model_query(context, models.Encryption, session=session).\
model_query(context, models.Encryption, session=session).\ filter_by(volume_type_id=id)
filter_by(volume_type_id=id).\ entity = query.column_descriptions[0]['entity']
update({'deleted': True, query.update({'deleted': True,
'deleted_at': utcnow, 'deleted_at': utcnow,
'updated_at': literal_column('updated_at')}) 'updated_at': entity.updated_at})
model_query(context, models.VolumeTypeProjects, session=session, model_query(context, models.VolumeTypeProjects, session=session,
read_deleted="int_no").filter_by( read_deleted="int_no").filter_by(
volume_type_id=id).soft_delete(synchronize_session=False) volume_type_id=id).soft_delete(synchronize_session=False)
@ -4169,16 +4187,18 @@ def group_type_destroy(context, id):
LOG.error('GroupType %s deletion failed, ' LOG.error('GroupType %s deletion failed, '
'GroupType in use.', id) 'GroupType in use.', id)
raise exception.GroupTypeInUse(group_type_id=id) raise exception.GroupTypeInUse(group_type_id=id)
model_query(context, models.GroupType, session=session).\ query = model_query(context, models.GroupType, session=session).\
filter_by(id=id).\ filter_by(id=id)
update({'deleted': True, entity = query.column_descriptions[0]['entity']
'deleted_at': timeutils.utcnow(), query.update({'deleted': True,
'updated_at': literal_column('updated_at')}) 'deleted_at': timeutils.utcnow(),
model_query(context, models.GroupTypeSpecs, session=session).\ 'updated_at': entity.updated_at})
filter_by(group_type_id=id).\ query = model_query(context, models.GroupTypeSpecs, session=session).\
update({'deleted': True, filter_by(group_type_id=id)
'deleted_at': timeutils.utcnow(), entity = query.column_descriptions[0]['entity']
'updated_at': literal_column('updated_at')}) query.update({'deleted': True,
'deleted_at': timeutils.utcnow(),
'updated_at': entity.updated_at})
@require_context @require_context
@ -4415,11 +4435,12 @@ def volume_type_extra_specs_delete(context, volume_type_id, key):
with session.begin(): with session.begin():
_volume_type_extra_specs_get_item(context, volume_type_id, key, _volume_type_extra_specs_get_item(context, volume_type_id, key,
session) session)
_volume_type_extra_specs_query(context, volume_type_id, session).\ query = _volume_type_extra_specs_query(context, volume_type_id,
filter_by(key=key).\ session).filter_by(key=key)
update({'deleted': True, entity = query.column_descriptions[0]['entity']
'deleted_at': timeutils.utcnow(), query.update({'deleted': True,
'updated_at': literal_column('updated_at')}) 'deleted_at': timeutils.utcnow(),
'updated_at': entity.updated_at})
@require_context @require_context
@ -4486,11 +4507,12 @@ def group_type_specs_delete(context, group_type_id, key):
with session.begin(): with session.begin():
_group_type_specs_get_item(context, group_type_id, key, _group_type_specs_get_item(context, group_type_id, key,
session) session)
_group_type_specs_query(context, group_type_id, session).\ query = _group_type_specs_query(context, group_type_id, session).\
filter_by(key=key).\ filter_by(key=key)
update({'deleted': True, entity = query.column_descriptions[0]['entity']
'deleted_at': timeutils.utcnow(), query.update({'deleted': True,
'updated_at': literal_column('updated_at')}) 'deleted_at': timeutils.utcnow(),
'updated_at': entity.updated_at})
@require_context @require_context
@ -4805,12 +4827,13 @@ def qos_specs_disassociate_all(context, qos_specs_id):
def qos_specs_item_delete(context, qos_specs_id, key): def qos_specs_item_delete(context, qos_specs_id, key):
session = get_session() session = get_session()
with session.begin(): with session.begin():
session.query(models.QualityOfServiceSpecs). \ query = session.query(models.QualityOfServiceSpecs). \
filter(models.QualityOfServiceSpecs.key == key). \ filter(models.QualityOfServiceSpecs.key == key). \
filter(models.QualityOfServiceSpecs.specs_id == qos_specs_id). \ filter(models.QualityOfServiceSpecs.specs_id == qos_specs_id)
update({'deleted': True, entity = query.column_descriptions[0]['entity']
'deleted_at': timeutils.utcnow(), query.update({'deleted': True,
'updated_at': literal_column('updated_at')}) 'deleted_at': timeutils.utcnow(),
'updated_at': entity.updated_at})
@require_admin_context @require_admin_context
@ -4818,14 +4841,15 @@ def qos_specs_delete(context, qos_specs_id):
session = get_session() session = get_session()
with session.begin(): with session.begin():
_qos_specs_get_all_ref(context, qos_specs_id, session) _qos_specs_get_all_ref(context, qos_specs_id, session)
updated_values = {'deleted': True, query = session.query(models.QualityOfServiceSpecs).\
'deleted_at': timeutils.utcnow(),
'updated_at': literal_column('updated_at')}
session.query(models.QualityOfServiceSpecs).\
filter(or_(models.QualityOfServiceSpecs.id == qos_specs_id, filter(or_(models.QualityOfServiceSpecs.id == qos_specs_id,
models.QualityOfServiceSpecs.specs_id == models.QualityOfServiceSpecs.specs_id ==
qos_specs_id)).\ qos_specs_id))
update(updated_values) entity = query.column_descriptions[0]['entity']
updated_values = {'deleted': True,
'deleted_at': timeutils.utcnow(),
'updated_at': entity.updated_at}
query.update(updated_values)
del updated_values['updated_at'] del updated_values['updated_at']
return updated_values return updated_values
@ -4910,7 +4934,7 @@ def volume_type_encryption_delete(context, volume_type_id):
type_id=volume_type_id) type_id=volume_type_id)
encryption.update({'deleted': True, encryption.update({'deleted': True,
'deleted_at': timeutils.utcnow(), 'deleted_at': timeutils.utcnow(),
'updated_at': literal_column('updated_at')}) 'updated_at': encryption.updated_at})
@handle_db_data_error @handle_db_data_error
@ -5176,20 +5200,22 @@ def volume_glance_metadata_copy_to_volume(context, volume_id, snapshot_id):
@require_context @require_context
def volume_glance_metadata_delete_by_volume(context, volume_id): def volume_glance_metadata_delete_by_volume(context, volume_id):
model_query(context, models.VolumeGlanceMetadata, read_deleted='no').\ query = model_query(context, models.VolumeGlanceMetadata,
filter_by(volume_id=volume_id).\ read_deleted='no').filter_by(volume_id=volume_id)
update({'deleted': True, entity = query.column_descriptions[0]['entity']
'deleted_at': timeutils.utcnow(), query.update({'deleted': True,
'updated_at': literal_column('updated_at')}) 'deleted_at': timeutils.utcnow(),
'updated_at': entity.updated_at})
@require_context @require_context
def volume_glance_metadata_delete_by_snapshot(context, snapshot_id): def volume_glance_metadata_delete_by_snapshot(context, snapshot_id):
model_query(context, models.VolumeGlanceMetadata, read_deleted='no').\ query = model_query(context, models.VolumeGlanceMetadata,
filter_by(snapshot_id=snapshot_id).\ read_deleted='no').filter_by(snapshot_id=snapshot_id)
update({'deleted': True, entity = query.column_descriptions[0]['entity']
'deleted_at': timeutils.utcnow(), query.update({'deleted': True,
'updated_at': literal_column('updated_at')}) 'deleted_at': timeutils.utcnow(),
'updated_at': entity.updated_at})
############################### ###############################
@ -5353,19 +5379,22 @@ def backup_destroy(context, backup_id):
utcnow = timeutils.utcnow() utcnow = timeutils.utcnow()
updated_values = {'status': fields.BackupStatus.DELETED, updated_values = {'status': fields.BackupStatus.DELETED,
'deleted': True, 'deleted': True,
'deleted_at': utcnow, 'deleted_at': utcnow}
'updated_at': literal_column('updated_at')}
session = get_session() session = get_session()
with session.begin(): with session.begin():
model_query(context, models.Backup, session=session).\ query = model_query(context, models.Backup, session=session).\
filter_by(id=backup_id).\ filter_by(id=backup_id)
update(updated_values) entity = query.column_descriptions[0]['entity']
model_query(context, models.BackupMetadata, session=session).\ updated_values['updated_at'] = entity.updated_at
filter_by(backup_id=backup_id).\ query.update(updated_values)
update({'deleted': True,
'deleted_at': utcnow, query = model_query(context, models.BackupMetadata, session=session).\
'updated_at': literal_column('updated_at')}) filter_by(backup_id=backup_id)
del updated_values['updated_at'] entity = query.column_descriptions[0]['entity']
query.update({'deleted': True,
'deleted_at': utcnow,
'updated_at': entity.updated_at})
del updated_values['updated_at']
return updated_values return updated_values
@ -5574,12 +5603,15 @@ def transfer_destroy(context, transfer_id):
% {'transfer_id': transfer_id}) % {'transfer_id': transfer_id})
LOG.error(msg) LOG.error(msg)
query = model_query(context, models.Transfer, session=session).\
filter_by(id=transfer_id)
entity = query.column_descriptions[0]['entity']
updated_values = {'deleted': True, updated_values = {'deleted': True,
'deleted_at': utcnow, 'deleted_at': utcnow,
'updated_at': literal_column('updated_at')} 'updated_at': entity.updated_at}
(model_query(context, models.Transfer, session=session)
.filter_by(id=transfer_id) query.update(updated_values)
.update(updated_values))
del updated_values['updated_at'] del updated_values['updated_at']
return updated_values return updated_values
@ -5658,13 +5690,13 @@ def transfer_accept(context, transfer_id, user_id, project_id,
raise exception.InvalidSnapshot(reason=msg) raise exception.InvalidSnapshot(reason=msg)
transferred_snapshots.append(snapshot['id']) transferred_snapshots.append(snapshot['id'])
(session.query(models.Transfer) query = session.query(models.Transfer).filter_by(id=transfer_id)
.filter_by(id=transfer_id) entity = query.column_descriptions[0]['entity']
.update({'deleted': True, query.update({'deleted': True,
'deleted_at': timeutils.utcnow(), 'deleted_at': timeutils.utcnow(),
'updated_at': literal_column('updated_at'), 'updated_at': entity.updated_at,
'destination_project_id': project_id, 'destination_project_id': project_id,
'accepted': True})) 'accepted': True})
############################### ###############################
@ -5852,16 +5884,14 @@ def consistencygroup_destroy(context, consistencygroup_id):
utcnow = timeutils.utcnow() utcnow = timeutils.utcnow()
session = get_session() session = get_session()
with session.begin(): with session.begin():
query = model_query(context, models.ConsistencyGroup,
session=session).filter_by(id=consistencygroup_id)
entity = query.column_descriptions[0]['entity']
updated_values = {'status': fields.ConsistencyGroupStatus.DELETED, updated_values = {'status': fields.ConsistencyGroupStatus.DELETED,
'deleted': True, 'deleted': True,
'deleted_at': utcnow, 'deleted_at': utcnow,
'updated_at': literal_column('updated_at')} 'updated_at': entity.updated_at}
model_query(context, models.ConsistencyGroup, session=session).\ query.update(updated_values)
filter_by(id=consistencygroup_id).\
update({'status': fields.ConsistencyGroupStatus.DELETED,
'deleted': True,
'deleted_at': utcnow,
'updated_at': literal_column('updated_at')})
del updated_values['updated_at'] del updated_values['updated_at']
return updated_values return updated_values
@ -6239,18 +6269,20 @@ def group_update(context, group_id, values):
def group_destroy(context, group_id): def group_destroy(context, group_id):
session = get_session() session = get_session()
with session.begin(): with session.begin():
(model_query(context, models.Group, session=session). query = model_query(context, models.Group, session=session).\
filter_by(id=group_id). filter_by(id=group_id)
update({'status': fields.GroupStatus.DELETED, entity = query.column_descriptions[0]['entity']
'deleted': True, query.update({'status': fields.GroupStatus.DELETED,
'deleted_at': timeutils.utcnow(), 'deleted': True,
'updated_at': literal_column('updated_at')})) 'deleted_at': timeutils.utcnow(),
'updated_at': entity.updated_at})
(session.query(models.GroupVolumeTypeMapping). query = session.query(models.GroupVolumeTypeMapping).\
filter_by(group_id=group_id). filter_by(group_id=group_id)
update({'deleted': True, entity = query.column_descriptions[0]['entity']
'deleted_at': timeutils.utcnow(), query.update({'deleted': True,
'updated_at': literal_column('updated_at')})) 'deleted_at': timeutils.utcnow(),
'updated_at': entity.updated_at})
def group_has_group_snapshot_filter(): def group_has_group_snapshot_filter():
@ -6426,13 +6458,14 @@ def cgsnapshot_update(context, cgsnapshot_id, values):
def cgsnapshot_destroy(context, cgsnapshot_id): def cgsnapshot_destroy(context, cgsnapshot_id):
session = get_session() session = get_session()
with session.begin(): with session.begin():
query = model_query(context, models.CGSnapshot, session=session).\
filter_by(id=cgsnapshot_id)
entity = query.column_descriptions[0]['entity']
updated_values = {'status': 'deleted', updated_values = {'status': 'deleted',
'deleted': True, 'deleted': True,
'deleted_at': timeutils.utcnow(), 'deleted_at': timeutils.utcnow(),
'updated_at': literal_column('updated_at')} 'updated_at': entity.updated_at}
model_query(context, models.CGSnapshot, session=session).\ query.update(updated_values)
filter_by(id=cgsnapshot_id).\
update(updated_values)
del updated_values['updated_at'] del updated_values['updated_at']
return updated_values return updated_values
@ -6582,14 +6615,15 @@ def group_snapshot_update(context, group_snapshot_id, values):
def group_snapshot_destroy(context, group_snapshot_id): def group_snapshot_destroy(context, group_snapshot_id):
session = get_session() session = get_session()
with session.begin(): with session.begin():
query = model_query(context, models.GroupSnapshot, session=session).\
filter_by(id=group_snapshot_id)
entity = query.column_descriptions[0]['entity']
updated_values = {'status': 'deleted', updated_values = {'status': 'deleted',
'deleted': True, 'deleted': True,
'deleted_at': timeutils.utcnow(), 'deleted_at': timeutils.utcnow(),
'updated_at': literal_column('updated_at')} 'updated_at': entity.updated_at}
model_query(context, models.GroupSnapshot, session=session).\ query.update(updated_values)
filter_by(id=group_snapshot_id).\ del updated_values['updated_at']
update(updated_values)
del updated_values['updated_at']
return updated_values return updated_values
@ -6798,12 +6832,13 @@ def message_destroy(context, message):
session = get_session() session = get_session()
now = timeutils.utcnow() now = timeutils.utcnow()
with session.begin(): with session.begin():
query = model_query(context, models.Message, session=session).\
filter_by(id=message.get('id'))
entity = query.column_descriptions[0]['entity']
updated_values = {'deleted': True, updated_values = {'deleted': True,
'deleted_at': now, 'deleted_at': now,
'updated_at': literal_column('updated_at')} 'updated_at': entity.updated_at}
(model_query(context, models.Message, session=session). query.update(updated_values)
filter_by(id=message.get('id')).
update(updated_values))
del updated_values['updated_at'] del updated_values['updated_at']
return updated_values return updated_values