Hi all, this might be a little lengthy as I have quite a few questions. Any help is going to be really appreciated so thank you in advance.
I've been doing a lot of research and forum reading over the last few days and I think I have a good idea of what I need to do, and I want to confirm I'm heading down the right path. I am brand new to vSphere plugins but our vmware developer just left so it's been handed over to me
We have an older 5.0/5.5 Client plugin that was registered with vCenter with an XML file. All it did was make HTTP requests to our external web server, and our external web server communicated with our CIM provider. The tab/view in the client would simply just display the HTML returned. I don't think the plugin even used any of the SDK, I think we just got the tab to appear via the XML registration and gave it the URL of the external server.
I'm tasked with getting this older plugin working with WebClient if possible, without rewriting it as web client plugin. Here are my questions and what I think are possible solutions:
How are Web Client plugins actually registered? It looks like registration is strictly through the plugin.xml manifest file, is that correct? Is the registration process different than the older client plugins?
Does that mean that a war file is required, even if we want to host the web app from an external host?
Possible solutions I’ve gathered from forum posts around here:
- Create a new Web Client plugin that acts as a proxy for the external web server. For example have a REST endpoint for each endpoint we want to support on the external server, and do our HTTP requests from inside these proxy methods and relay the response to the Web Client plugin.
- Create a new Web Client which just implements an IFrame which loads the external site. We’d have to use HTTPS in this case and use a certificate so it’s secure and doesn’t prompt the user with cross-domain warnings.
Are either of those options viable? Is there a better way? I’ve come across a few posts mentioning things like setting scriptplugin.enabled to true in webclient.properties, or setting allowHttp to true. But the context of those posts seemed different to what I’m trying to accomplish.
Edit: a few more questions about registration and such. It seems like the registration of web client plugins is kind of tied into the idea that a plugin is supposed to run in Virgo, which would explain why a war file is required and why using an external web server other than Virgo isn't straight forward. It would also explain why registration is strictly done through the plugin.xml (if I'm right). Is any of that correct?