XenCenter Plug-in Development
XenCenter is the management console used with XenServer. From XenCenter you can natively perform common operations such as starting, stopping and migrating a VM and administering the XenServer resource pool which hosts those VMs. While these common operations are seemlessly handled, there are times when external operations are needed. To address those scenarios, XenCenter implements a plugin architecture.
The XenCenter plugin capabilities allow you to add custom menu items or even whole tabs to the XenCenter window. You might do this as an ISV to integrate your own product with XenCenter, or as an end-user to integrate with your company's existing inventory management. Plugins can be added which extend menu items, or which present entire user interfaces within the XenCenter tab structure. When extending a menu, Microsoft PowerShell or a Windows executable are typically used. Adding new tabs is typically accomplished with a web page, or other network service.
XenCenter Plugin Specification
The XenCenter plugin specification is available on GitHub at: https://github.com/xenserver/xencenter-samples/tree/master/docs
Tutorials and Examples
The following samples demonstrate various ways in which a XenCenter plugin can be implemented. All source is located on GitHub at: https://github.com/xenserver/xencenter-samples
XenCenter provides parameter sets to your plugin which describe the current selection in the XenCenter resource list. Working with parameters can be somewhat challenging. For more information, please consult the plugin specification, or see some examples on parameter handling.
Martin Zugec has authored a series of blogs which contain plugins to perform common tasks.