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
(cherry picked from commit be149c4c6b
)
This commit is contained in:
parent
4cbfb04502
commit
badb396732
|
@ -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