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 "Administrator@vsphere.local" -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 "Administrator@vsphere.local" -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 "Administrator@vsphere.local" -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
    version
    1.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 version
    1.0.0
    of the plugin.
  • Object views declared by plug-in
    com.example.exampleco
    version
    2.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 version
    2.0.1
    of the plug-in.
  • Object views declared by plug-in
    com.example.exampleco
    version
    3.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 version
    3.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.