Remote Plug-in Multi-Version Support
Unlike local plug-ins, the remote plug-in architecture allows for co-existence of remote plug-ins with the same ID but different versions.
Consider an ELM environment with three vCenter Server instances and the following plug-in registrations:
./extension-registration.sh -action registerPlugin -url https://vcenter-ip-or-fqdn-of-vc1/sdk
-u "[email protected]" -p 'Admin!23' -c 'Example, Inc.' -n
'ExampleCo' -s 'A test plugin demonstrating plugin instances' -k
com.example.exampleco -pu "https://my-remote-plugin-server-version-1/path-to/plugin.json" -v
"1.0.0"
-st
plugin_server_1_thumbprint
-remote
./extension-registration.sh -action registerPlugin -url https://vcenter-ip-or-fqdn-of-vc2/sdk
-u "[email protected]" -p 'Admin!23' -c 'Example, Inc.' -n
'ExampleCo' -s 'A test plugin demonstrating plugin instances' -k
com.example.exampleco -pu "https://my-remote-plugin-server-version-2/path-to/plugin.json" -v
"2.0.1"
-st
plugin_server_2_thumbprint
-remote
./extension-registration.sh -action registerPlugin -url https://vcenter-ip-or-fqdn-of-vc3/sdk
-u "[email protected]" -p 'Admin!23' -c 'Example, Inc.' -n
'ExampleCo' -s 'A test plugin demonstrating plugin instances' -k
com.example.exampleco -pu "https://my-remote-plugin-server-version-3/path-to/plugin.json" -v
"3.2.0"
-st
plugin_server_3_thumbprint
-remote
These commands register three
extensions (one in each of the three vCenter Servers) with the same ID
(com.example.exampleco
) but different versions - version
1.0.0
on VC1, version
2.0.1
on VC2 and version
3.2.0
on VC3. These are three different versions of the
remote plug-in with ID
com.example.exampleco
. When you log in to the UI you
will see the following:
-
Object views declared by plug-in
com.example.exampleco
version1.0.0
will be shown on applicable objects from VC1. Calls to the plug-in back-end server will be routed to the plug-in server dedicated to version1.0.0
of the plugin. -
Object views declared by plug-in
com.example.exampleco
version2.0.1
will be shown on applicable objects from VC2. Calls to the plug-in back-end server will be routed to the plug-in server dedicated to version2.0.1
of the plug-in. -
Object views declared by plug-in
com.example.exampleco
version3.2.0
will be shown on applicable objects from VC3. Calls to the plug-in back-end server will be routed to the plug-in server dedicated to version3.2.0
of the plug-in. -
There will be a single entry point in the object navigator that will take the user to a plug-in instance/version selector view where the user will be able to switch between the global views of the different versions and instances of the remote plug-in.