project/volumes/volumes/tables.py has DeleteVolume class. The "allowed" method checks if the volume has an attached snapshot. In this case, Horizon detects the volume has an attached snapshot, and fails the allowed check for the action, triggering a generic table action error toast message.
The message comes from horizon/tables/actions.py 'You are not allowed to %(action)s: %(objs)s'
The current structure of the "generic" table action does not allow the individual action to return a reason for why the action is not allowed.
The same generic error will be returned if the volume is not in a "deletable state".
In this case, it may be better to simply attempt the API call, then display the more detailed Cinder error message.
project/ volumes/ volumes/ tables. py has DeleteVolume class. The "allowed" method checks if the volume has an attached snapshot. In this case, Horizon detects the volume has an attached snapshot, and fails the allowed check for the action, triggering a generic table action error toast message.
The message comes from horizon/ tables/ actions. py 'You are not allowed to %(action)s: %(objs)s'
The current structure of the "generic" table action does not allow the individual action to return a reason for why the action is not allowed.
The same generic error will be returned if the volume is not in a "deletable state".
In this case, it may be better to simply attempt the API call, then display the more detailed Cinder error message.