Merge "Return BadRequest for invalid Unicode names"
This commit is contained in:
commit
82d1d81124
@ -240,6 +240,18 @@ def _retry_on_deadlock(f):
|
|||||||
return wrapped
|
return wrapped
|
||||||
|
|
||||||
|
|
||||||
|
def handle_db_data_error(f):
|
||||||
|
def wrapper(*args, **kwargs):
|
||||||
|
try:
|
||||||
|
return f(*args, **kwargs)
|
||||||
|
except db_exc.DBDataError:
|
||||||
|
msg = _('Error writing field to database')
|
||||||
|
LOG.exception(msg)
|
||||||
|
raise exception.Invalid(msg)
|
||||||
|
|
||||||
|
return wrapper
|
||||||
|
|
||||||
|
|
||||||
def model_query(context, *args, **kwargs):
|
def model_query(context, *args, **kwargs):
|
||||||
"""Query helper that accounts for context's `read_deleted` field.
|
"""Query helper that accounts for context's `read_deleted` field.
|
||||||
|
|
||||||
@ -1180,6 +1192,7 @@ def volume_attached(context, attachment_id, instance_uuid, host_name,
|
|||||||
return volume_ref
|
return volume_ref
|
||||||
|
|
||||||
|
|
||||||
|
@handle_db_data_error
|
||||||
@require_context
|
@require_context
|
||||||
def volume_create(context, values):
|
def volume_create(context, values):
|
||||||
values['volume_metadata'] = _metadata_refs(values.get('metadata'),
|
values['volume_metadata'] = _metadata_refs(values.get('metadata'),
|
||||||
@ -1197,11 +1210,8 @@ def volume_create(context, values):
|
|||||||
volume_ref.update(values)
|
volume_ref.update(values)
|
||||||
|
|
||||||
session = get_session()
|
session = get_session()
|
||||||
try:
|
|
||||||
with session.begin():
|
with session.begin():
|
||||||
session.add(volume_ref)
|
session.add(volume_ref)
|
||||||
except db_exc.DBDataError:
|
|
||||||
raise exception.Invalid()
|
|
||||||
|
|
||||||
return _volume_get(context, values['id'], session=session)
|
return _volume_get(context, values['id'], session=session)
|
||||||
|
|
||||||
@ -1796,6 +1806,7 @@ def process_sort_params(sort_keys, sort_dirs, default_keys=None,
|
|||||||
return result_keys, result_dirs
|
return result_keys, result_dirs
|
||||||
|
|
||||||
|
|
||||||
|
@handle_db_data_error
|
||||||
@require_context
|
@require_context
|
||||||
def volume_update(context, volume_id, values):
|
def volume_update(context, volume_id, values):
|
||||||
session = get_session()
|
session = get_session()
|
||||||
@ -2115,6 +2126,7 @@ def volume_admin_metadata_update(context, volume_id, metadata, delete,
|
|||||||
###################
|
###################
|
||||||
|
|
||||||
|
|
||||||
|
@handle_db_data_error
|
||||||
@require_context
|
@require_context
|
||||||
def snapshot_create(context, values):
|
def snapshot_create(context, values):
|
||||||
values['snapshot_metadata'] = _metadata_refs(values.get('metadata'),
|
values['snapshot_metadata'] = _metadata_refs(values.get('metadata'),
|
||||||
@ -2354,6 +2366,7 @@ def snapshot_get_active_by_window(context, begin, end=None, project_id=None):
|
|||||||
return query.all()
|
return query.all()
|
||||||
|
|
||||||
|
|
||||||
|
@handle_db_data_error
|
||||||
@require_context
|
@require_context
|
||||||
def snapshot_update(context, snapshot_id, values):
|
def snapshot_update(context, snapshot_id, values):
|
||||||
session = get_session()
|
session = get_session()
|
||||||
@ -2454,6 +2467,7 @@ def snapshot_metadata_update(context, snapshot_id, metadata, delete):
|
|||||||
###################
|
###################
|
||||||
|
|
||||||
|
|
||||||
|
@handle_db_data_error
|
||||||
@require_admin_context
|
@require_admin_context
|
||||||
def volume_type_create(context, values, projects=None):
|
def volume_type_create(context, values, projects=None):
|
||||||
"""Create a new volume type.
|
"""Create a new volume type.
|
||||||
@ -2553,6 +2567,7 @@ def _process_volume_types_filters(query, filters):
|
|||||||
return query
|
return query
|
||||||
|
|
||||||
|
|
||||||
|
@handle_db_data_error
|
||||||
@require_admin_context
|
@require_admin_context
|
||||||
def volume_type_update(context, volume_type_id, values):
|
def volume_type_update(context, volume_type_id, values):
|
||||||
session = get_session()
|
session = get_session()
|
||||||
@ -3288,6 +3303,7 @@ def _qos_specs_get_item(context, qos_specs_id, key, session=None):
|
|||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
@handle_db_data_error
|
||||||
@require_admin_context
|
@require_admin_context
|
||||||
def qos_specs_update(context, qos_specs_id, specs):
|
def qos_specs_update(context, qos_specs_id, specs):
|
||||||
"""Make updates to an existing qos specs.
|
"""Make updates to an existing qos specs.
|
||||||
@ -3345,6 +3361,7 @@ def volume_type_encryption_delete(context, volume_type_id):
|
|||||||
'updated_at': literal_column('updated_at')})
|
'updated_at': literal_column('updated_at')})
|
||||||
|
|
||||||
|
|
||||||
|
@handle_db_data_error
|
||||||
@require_admin_context
|
@require_admin_context
|
||||||
def volume_type_encryption_create(context, volume_type_id, values):
|
def volume_type_encryption_create(context, volume_type_id, values):
|
||||||
session = get_session()
|
session = get_session()
|
||||||
@ -3363,6 +3380,7 @@ def volume_type_encryption_create(context, volume_type_id, values):
|
|||||||
return encryption
|
return encryption
|
||||||
|
|
||||||
|
|
||||||
|
@handle_db_data_error
|
||||||
@require_admin_context
|
@require_admin_context
|
||||||
def volume_type_encryption_update(context, volume_type_id, values):
|
def volume_type_encryption_update(context, volume_type_id, values):
|
||||||
session = get_session()
|
session = get_session()
|
||||||
@ -3728,6 +3746,7 @@ def backup_get_all_by_volume(context, volume_id, filters=None):
|
|||||||
return _backup_get_all(context, filters)
|
return _backup_get_all(context, filters)
|
||||||
|
|
||||||
|
|
||||||
|
@handle_db_data_error
|
||||||
@require_context
|
@require_context
|
||||||
def backup_create(context, values):
|
def backup_create(context, values):
|
||||||
backup = models.Backup()
|
backup = models.Backup()
|
||||||
@ -3741,6 +3760,7 @@ def backup_create(context, values):
|
|||||||
return backup
|
return backup
|
||||||
|
|
||||||
|
|
||||||
|
@handle_db_data_error
|
||||||
@require_context
|
@require_context
|
||||||
def backup_update(context, backup_id, values):
|
def backup_update(context, backup_id, values):
|
||||||
session = get_session()
|
session = get_session()
|
||||||
@ -4034,6 +4054,7 @@ def consistencygroup_get_all_by_project(context, project_id, filters=None,
|
|||||||
sort_keys, sort_dirs)
|
sort_keys, sort_dirs)
|
||||||
|
|
||||||
|
|
||||||
|
@handle_db_data_error
|
||||||
@require_context
|
@require_context
|
||||||
def consistencygroup_create(context, values):
|
def consistencygroup_create(context, values):
|
||||||
consistencygroup = models.ConsistencyGroup()
|
consistencygroup = models.ConsistencyGroup()
|
||||||
@ -4048,6 +4069,7 @@ def consistencygroup_create(context, values):
|
|||||||
return _consistencygroup_get(context, values['id'], session=session)
|
return _consistencygroup_get(context, values['id'], session=session)
|
||||||
|
|
||||||
|
|
||||||
|
@handle_db_data_error
|
||||||
@require_context
|
@require_context
|
||||||
def consistencygroup_update(context, consistencygroup_id, values):
|
def consistencygroup_update(context, consistencygroup_id, values):
|
||||||
session = get_session()
|
session = get_session()
|
||||||
@ -4147,6 +4169,7 @@ def cgsnapshot_get_all_by_project(context, project_id, filters=None):
|
|||||||
return _cgsnapshot_get_all(context, project_id=project_id, filters=filters)
|
return _cgsnapshot_get_all(context, project_id=project_id, filters=filters)
|
||||||
|
|
||||||
|
|
||||||
|
@handle_db_data_error
|
||||||
@require_context
|
@require_context
|
||||||
def cgsnapshot_create(context, values):
|
def cgsnapshot_create(context, values):
|
||||||
cgsnapshot = models.Cgsnapshot()
|
cgsnapshot = models.Cgsnapshot()
|
||||||
@ -4161,6 +4184,7 @@ def cgsnapshot_create(context, values):
|
|||||||
return _cgsnapshot_get(context, values['id'], session=session)
|
return _cgsnapshot_get(context, values['id'], session=session)
|
||||||
|
|
||||||
|
|
||||||
|
@handle_db_data_error
|
||||||
@require_context
|
@require_context
|
||||||
def cgsnapshot_update(context, cgsnapshot_id, values):
|
def cgsnapshot_update(context, cgsnapshot_id, values):
|
||||||
session = get_session()
|
session = get_session()
|
||||||
|
Loading…
Reference in New Issue
Block a user