Appendix C. Red Hat Enterprise Virtualization User Interface Plugins

C.1. Red Hat Enterprise Virtualization User Interface Plugins

Red Hat Enterprise Virtualization supports plugins that expose non-standard features. This makes it easier to use the Red Hat Enterprise Virtualization Administration Portal to integrate with other systems. Each interface plugin represents a set of user interface extensions that can be packaged and distributed for use with Red Hat Enterprise Virtualization.
Red Hat Enterprise Virtualization's User Interface plugins integrate with the Administration Portal directly on the client using the JavaScript programming language. Plugins are invoked by the Administration Portal and executed in the web browser's JavaScript runtime. User Interface plugins can use the JavaScript language and its libraries.
At key events during runtime, the Administration Portal invokes individual plugins via event handler functions representing Administration-Portal-to-plugin communication. Although the Administration Portal supports multiple event-handler functions, a plugin declares functions which are of interest only to its implementation. Each plugin must register relevant event handler functions as part of the plugin bootstrap sequence before the plugin is put to use by the administration portal.
To facilitate the plugin-to-Administration-Portal communication that drives the User Interface extension, the Administration Portal exposes the plugin API as a global (top-level) pluginApi JavaScript object that individual plugins can consume. Each plugin obtains a separate pluginApi instance, allowing the Administration Portal to control plugin API-function invocation for each plugin with respect to the plugin's lifecycle.