Add asynchronous error info into messages when share extend error
The database table messages is used to record various asynchronous error messages, extend share is an asynchronously invoked procedure, when the driver layer fails to execute extend share, we should record this asynchronous error into database. This commit modify this behavior, and now this asynchronows error is recorded in the database. Closes-Bug:#1850264 Change-Id: I06a9bf24ab3d4aa5f4f5446d344bf55d71803e47
This commit is contained in:
parent
02b2903fc7
commit
be149c4c6b
@ -31,13 +31,15 @@ class Action(object):
|
||||
UPDATE = ('005', _('update'))
|
||||
REVERT_TO_SNAPSHOT = ('006', _('revert to snapshot'))
|
||||
DELETE = ('007', _('delete'))
|
||||
EXTEND = ('008', _('extend'))
|
||||
ALL = (ALLOCATE_HOST,
|
||||
CREATE,
|
||||
DELETE_ACCESS_RULES,
|
||||
PROMOTE,
|
||||
UPDATE,
|
||||
REVERT_TO_SNAPSHOT,
|
||||
DELETE)
|
||||
DELETE,
|
||||
EXTEND)
|
||||
|
||||
|
||||
class Detail(object):
|
||||
@ -72,6 +74,12 @@ class Detail(object):
|
||||
FILTER_JSON = ('012', FILTER_MSG % 'Json')
|
||||
FILTER_RETRY = ('013', FILTER_MSG % 'Retry')
|
||||
FILTER_REPLICATION = ('014', FILTER_MSG % 'ShareReplication')
|
||||
DRIVER_FAILED_EXTEND = (
|
||||
'015',
|
||||
_("Share Driver failed to extend share, The share status has been "
|
||||
"set to extending_error. This action cannot be re-attempted until "
|
||||
"the status has been rectified. Contact your administrator to "
|
||||
"determine the cause of this failure."))
|
||||
|
||||
ALL = (UNKNOWN_ERROR,
|
||||
NO_VALID_HOST,
|
||||
@ -86,7 +94,8 @@ class Detail(object):
|
||||
FILTER_IGNORE,
|
||||
FILTER_JSON,
|
||||
FILTER_RETRY,
|
||||
FILTER_REPLICATION)
|
||||
FILTER_REPLICATION,
|
||||
DRIVER_FAILED_EXTEND)
|
||||
|
||||
# Exception and detail mappings
|
||||
EXCEPTION_DETAIL_MAPPINGS = {
|
||||
|
@ -3823,7 +3823,13 @@ class ShareManager(manager.SchedulerDependentManager):
|
||||
share_instance, new_size, share_server=share_server)
|
||||
except Exception as e:
|
||||
LOG.exception("Extend share failed.", resource=share)
|
||||
|
||||
self.message_api.create(
|
||||
context,
|
||||
message_field.Action.EXTEND,
|
||||
project_id,
|
||||
resource_type=message_field.Resource.SHARE,
|
||||
resource_id=share_id,
|
||||
detail=message_field.Detail.DRIVER_FAILED_EXTEND)
|
||||
try:
|
||||
self.db.share_update(
|
||||
context, share['id'],
|
||||
|
@ -0,0 +1,5 @@
|
||||
---
|
||||
fixes:
|
||||
- |
|
||||
A new user message has been added in case of share extensions failing
|
||||
asynchronously.
|
Loading…
Reference in New Issue
Block a user