Skip to content

User Visible Errors

Plugin authors can choose to fail a plugin operation by raising an exception of type UserError with a custom message, action and output for the end user.

Fields

Field Type Description
message String Description of the failure to show the end user.
action String Optional. List of actions that the end user could take to fix the problem. If not provided, it defaults to Contact the plugin author to correct the error.
output String Optional. Output or stack trace from the failure to give the end user more information so that they can self diagnose. If not provided, it defaults to the stack trace of the failure.

Warning

There is a limit to how much data can be stored within the fields of a UserError. See Message Limits for details.

Example

from importlib import resources
from dlpx.virtualization.platform import Plugin
from generated.definitions import SourceConfigDefinition
from dlpx.virtualization.platform.exceptions import UserError

plugin = Plugin()

@plugin.virtual.start()
def start(virtual_source, repository, source_config):
  script_content = resources.read_text('resources', 'start_database.sh')

  response = libs.run_bash(virtual_source.connection, script_content)

  # Fail operation if the database could not be started
  if response.exit_code != 0:
    raise UserError(
    'Failed to start the database',
    'Make sure the user has appropriate permissions',
    '{}\n{}'.format(response.stdout, response.stderr))

Warning

If developing a plugin in Python 2.7, you will need to use pkgutil.get_data rather than importlib.resources.read_text.

See Managing Scripts For Remote Execution for more info.

The UI would show the end user if the plugin operation above fails:

Screenshot