VMware {code} Community
SikindarSyed
Contributor
Contributor

External Plugin registered using HTML bridge fails to load in HTML5 Web Client

Hi Dennis/Laurent,

This is in extension to the discussion we had on HTML5 Fling forum where we have posted our issue related to loading an external plugin (developed in Flex), registered using HTML bridge, but fails to load in the new HTML5 Web Client. To recall, you have suggested us try with HTML5 Fling v1.7 claiming to support this kind of the external plugins.

On registering my plugin, I expect it to be loaded under "Host -> Configure | more -> {MyPlugin}. But I observe that the Configure tab doesn't come up at all whereas other tabs do work. If my plugin is not registered, the Configure tab works as usual. Seems to be a problem loading my registerd plugin content.

Note that the timestamps on the setup are in sync.

As I see the logs, I see that the "zip" file registered with the WebClient is successfully downloaded and validated. And I see an error which not sure if the error is related to loading the plugin. Below are logs I see. Also attaching the complete log file.

Please search for the plugin key "com.emulex.ocm.vcwebclient.EmulexOneCommand" referring to our extension

 

===========================
[2016-08-30T14:48:10.449+05:30] [INFO ] session-init-pool-66 70000231 100006 200002 com.vmware.vise.util.concurrent.QueuingCachedThreadPool Pool name: vc-exten
sionmanager-pool workers hit new max size: 2
[2016-08-30T14:48:10.450+05:30] [INFO ] vc-extensionmanager-pool-414 70000231 100006 200002 com.vmware.vise.vim.extension.VcExtensionManager Downloading plugin package from https://10.192.203.182:9092/vipluginfiles/com.emulex.ocm.vcwebclient.EmulexOneCommand-11.2.54.0.zip (no proxy defined)
[2016-08-30T14:48:10.628+05:30] [INFO ] vc-extensionmanager-pool-414 70000231 100006 200002 com.vmware.vise.vim.extension.VcExtensionManager Done downloading plugin package from https://10.192.203.182:9092/vipluginfiles/com.emulex.ocm.vcwebclient.EmulexOneCommand-11.2.54.0.zip
[2016-08-30T14:48:10.629+05:30] [INFO ] vc-extensionmanager-pool-414 70000231 100006 200002 com.vmware.vise.vim.extension.VcExtensionManager Done expanding plugin package to /etc/vmware/vsphere-client/vsphere-client/vc-packages/vsphere-client-serenity/com.emulex.ocm.vcwebclient.EmulexOneCommand-11.2.54.0
[2016-08-30T14:48:10.631+05:30] [INFO ] plugin-deploy6 70000231 100006 200002 com.vmware.vise.extensionfw.impl.PackagesDeployer Deploying plugin package 'com.emulex.ocm.vcwebclient.EmulexOneCommand:11.2.54.0'.
[2016-08-30T14:48:10.633+05:30] [WARN ] plugin-deploy6 70000231 100006 200002 com.vmware.vise.extensionfw.impl.PluginManifestParser Plugin 'com.emulex.ocm.vcwebclient.EmulexOneCommand' is missing URL path '/vsphere-client/' in extension: com.emulex.ocm.vcwebclient.EmulexOneCommand,
this is required for Flex client compatibility.
[2016-08-30T14:48:10.633+05:30] [WARN ] plugin-deploy6 70000231 100006 200002 com.vmware.vise.extensionfw.impl.PluginManifestParser Plugin 'com.emulex.ocm.vcwebclient.EmulexOneCommand' is missing URL path '/vsphere-client/' in extension: com.emulex.ocm.vcwebclient.EmulexOneCommand,
this is required for Flex client compatibility.
[2016-08-30T14:48:10.634+05:30] [INFO ] plugin-deploy6 70000231 100006 200002 com.vmware.vise.extensionfw.impl.PackagesDeployer Deployed plugin package 'com.emulex.ocm.vcwebclient.EmulexOneCommand:11.2.54.0'.
[2016-08-30T14:48:10.634+05:30] [INFO ] vc-extensionmanager-pool-414 70000231 100006 200002 com.vmware.vise.extensionfw.impl.PackagesDeployer Processed deployment success for plugin package 'com.emulex.ocm.vcwebclient.EmulexOneCommand:11.2.54.0'.

 

===========================
[2016-08-30T14:48:10.693+05:30] [INFO ] plugin-validation1 com.vmware.vise.extensionfw.impl.OsgiUsageValidationService Started validation of OSGi bad practices.
[2016-08-30T14:48:10.694+05:30] [INFO ] plugin-validation1 com.vmware.vise.extensionfw.impl.OsgiUsageValidationService Started validating com.emulex.ocm.vcwebcl
ient.EmulexOneCommand:11.2.54.0
[2016-08-30T14:48:10.694+05:30] [INFO ] plugin-validation1 com.vmware.vise.extensionfw.impl.OsgiUsageValidationService Begin DeploymentFailureCheck on com.emule
x.ocm.vcwebclient.EmulexOneCommand:11.2.54.0
[2016-08-30T14:48:10.694+05:30] [INFO ] plugin-validation1 com.vmware.vise.extensionfw.impl.OsgiUsageValidationService End DeploymentFailureCheck on com.emulex.
ocm.vcwebclient.EmulexOneCommand:11.2.54.0
[2016-08-30T14:48:10.694+05:30] [INFO ] plugin-validation1 com.vmware.vise.extensionfw.impl.OsgiUsageValidationService Begin CompanyNameMismatchCheck on com.emu
lex.ocm.vcwebclient.EmulexOneCommand:11.2.54.0
[2016-08-30T14:48:10.694+05:30] [INFO ] plugin-validation1 com.vmware.vise.extensionfw.impl.OsgiUsageValidationService End CompanyNameMismatchCheck on com.emulex.ocm.vcwebclient.EmulexOneCommand:11.2.54.0
[2016-08-30T14:48:10.694+05:30] [INFO ] plugin-validation1 com.vmware.vise.extensionfw.impl.OsgiUsageValidationService Begin VmwareNameMisuseCheck on com.emulex.ocm.vcwebclient.EmulexOneCommand:11.2.54.0
[2016-08-30T14:48:10.694+05:30] [INFO ] plugin-validation1 com.vmware.vise.extensionfw.impl.OsgiUsageValidationService End VmwareNameMisuseCheck on com.emulex.ocm.vcwebclient.EmulexOneCommand:11.2.54.0
[2016-08-30T14:48:10.694+05:30] [INFO ] plugin-validation1 com.vmware.vise.extensionfw.impl.OsgiUsageValidationService Begin DynamicImportUsageCheck on com.emulex.ocm.vcwebclient.EmulexOneCommand:11.2.54.0
[2016-08-30T14:48:10.694+05:30] [INFO ] plugin-validation1 com.vmware.vise.extensionfw.impl.OsgiUsageValidationService End DynamicImportUsageCheck on com.emulex.ocm.vcwebclient.EmulexOneCommand:11.2.54.0
[2016-08-30T14:48:10.694+05:30] [INFO ] plugin-validation1 com.vmware.vise.extensionfw.impl.OsgiUsageValidationService Begin RequireBundleUsageCheck on com.emulex.ocm.vcwebclient.EmulexOneCommand:11.2.54.0
[2016-08-30T14:48:10.694+05:30] [INFO ] plugin-validation1 com.vmware.vise.extensionfw.impl.OsgiUsageValidationService End RequireBundleUsageCheck on com.emulex.ocm.vcwebclient.EmulexOneCommand:11.2.54.0
[2016-08-30T14:48:10.694+05:30] [INFO ] plugin-validation1 com.vmware.vise.extensionfw.impl.OsgiUsageValidationService Begin UnversionedPackageExportCheck on com.emulex.ocm.vcwebclient.EmulexOneCommand:11.2.54.0
[2016-08-30T14:48:10.694+05:30] [INFO ] plugin-validation1 com.vmware.vise.extensionfw.impl.OsgiUsageValidationService End UnversionedPackageExportCheck on com.emulex.ocm.vcwebclient.EmulexOneCommand:11.2.54.0
[2016-08-30T14:48:10.694+05:30] [INFO ] plugin-validation1 com.vmware.vise.extensionfw.impl.OsgiUsageValidationService Begin UnversionedPackageImportCheck on com.emulex.ocm.vcwebclient.EmulexOneCommand:11.2.54.0
[2016-08-30T14:48:10.694+05:30] [INFO ] plugin-validation1 com.vmware.vise.extensionfw.impl.OsgiUsageValidationService End UnversionedPackageImportCheck on com.emulex.ocm.vcwebclient.EmulexOneCommand:11.2.54.0
[2016-08-30T14:48:10.694+05:30] [INFO ] plugin-validation1 com.vmware.vise.extensionfw.impl.OsgiUsageValidationService Begin NestedLibPackageExportCheck on com.emulex.ocm.vcwebclient.EmulexOneCommand:11.2.54.0
[2016-08-30T14:48:10.694+05:30] [INFO ] plugin-validation1 com.vmware.vise.extensionfw.impl.OsgiUsageValidationService End NestedLibPackageExportCheck on com.emulex.ocm.vcwebclient.EmulexOneCommand:11.2.54.0
[2016-08-30T14:48:10.694+05:30] [INFO ] plugin-validation1 com.vmware.vise.extensionfw.impl.OsgiUsageValidationService Begin NestedLibMultiUsageCheck on com.emulex.ocm.vcwebclient.EmulexOneCommand:11.2.54.0
[2016-08-30T14:48:10.694+05:30] [INFO ] plugin-validation1 com.vmware.vise.extensionfw.impl.OsgiUsageValidationService End NestedLibMultiUsageCheck on com.emulex.ocm.vcwebclient.EmulexOneCommand:11.2.54.0
[2016-08-30T14:48:10.694+05:30] [INFO ] plugin-validation1 com.vmware.vise.extensionfw.impl.OsgiUsageValidationService Begin ClashingPluginsCheck on com.emulex.ocm.vcwebclient.EmulexOneCommand:11.2.54.0
[2016-08-30T14:48:10.694+05:30] [INFO ] plugin-validation1 com.vmware.vise.extensionfw.impl.OsgiUsageValidationService End ClashingPluginsCheck on com.emulex.ocm.vcwebclient.EmulexOneCommand:11.2.54.0
[2016-08-30T14:48:10.694+05:30] [INFO ] plugin-validation1 com.vmware.vise.extensionfw.impl.OsgiUsageValidationService Finished validating com.emulex.ocm.vcwebclient.EmulexOneCommand:11.2.54.0
[2016-08-30T14:48:10.694+05:30] [INFO ] plugin-validation1 com.vmware.vise.extensionfw.impl.OsgiUsageValidationService Finished validation of OSGi bad practices.

 

 

======================================================================
[2016-08-30T14:48:15.678+05:30] [INFO ] cm-catalog-manager-pool-410 70000231 100006 200002 com.vmware.vise.vim.cm.CmCatalogManager downloadResourceBundle: Trying https://10.192.203.182:443/catalog/com.emulex.ocm.vcwebclient.EmulexOneCommand_catalog.zip
[2016-08-30T14:48:15.678+05:30] [INFO ] cm-catalog-manager-pool-440 70000231 100006 200002 com.vmware.vise.vim.cm.CmCatalogManager Loading properties for /etc/vmware/vsphere-client/vsphere-client/cmCatalog/com.vmware.sca.cd85f482-82e3-4443-8cdd-f588ca1d6eb4_com.emulex.ocm.vcwebclient.EmulexOneCommand.zip:US
[2016-08-30T14:48:15.741+05:30] [WARN ] data-service-pool-445 70000293 100006 200002 com.vmware.vim.vmomi.client.http.impl.HttpProtocolBindingBase Asynchronous execution requested but no Executor configured. The request will be executed as synchronous one.
[2016-08-30T14:48:15.756+05:30] [INFO ] cm-catalog-manager-pool-410 70000231 100006 200002 com.vmware.vise.vim.cm.CmCatalogManager executeDownload: ResourceBundle https://10.192.203.182:443/catalog/com.emulex.ocm.vcwebclient.EmulexOneCommand_catalog.zip download succeeded with Status Code: 200
[2016-08-30T14:48:15.756+05:30] [INFO ] cm-catalog-manager-pool-410 70000231 100006 200002 com.vmware.vise.vim.cm.CmCatalogManager downloadResourceBundle: Took (ms) for the resource bundle /etc/vmware/vsphere-client/vsphere-client/cmCatalog/com.vmware.sca.cd85f482-82e3-4443-8cdd-f588ca1d6eb4_com.emulex.ocm.vcwebclient.EmulexOneCommand.zip,https://10.192.203.182:443/catalog/com.emulex.ocm.vcwebclient.EmulexOneCommand_catalog.zip: 78
[2016-08-30T14:48:15.756+05:30] [INFO ] cm-catalog-manager-pool-410 70000231 100006 200002 com.vmware.vise.vim.cm.CmCatalogManager The HttpClient is no longer used. Will Close it.
[2016-08-30T14:48:15.756+05:30] [INFO ] cm-catalog-manager-pool-440 70000231 100006 200002 com.vmware.vise.vim.cm.CmCatalogManager Time waiting for csp info (ms) for /etc/vmware/vsphere-client/vsphere-client/cmCatalog/com.vmware.sca.cd85f482-82e3-4443-8cdd-f588ca1d6eb4_com.emulex.ocm.vcwebclient.EmulexOneCommand.zip:US: 78
[2016-08-30T14:48:15.756+05:30] [INFO ] cm-catalog-manager-pool-440 70000231 100006 200002 com.vmware.vise.vim.cm.CmCatalogManager Time to load properties (ms)/etc/vmware/vsphere-client/vsphere-client/cmCatalog/com.vmware.sca.cd85f482-82e3-4443-8cdd-f588ca1d6eb4_com.emulex.ocm.vcwebclient.EmulexOneCommand.zip:US: 0
[2016-08-30T14:48:15.968+05:30] [WARN ] data-service-pool-454 70000293 100006 200002 c.v.vsphere.client.cm.util.ServiceInfoPropertyValueExtractor Unknown Service property: id
=========================================================================
[2016-08-30T14:48:10.399+05:30] [ERROR] session-init-pool-57 70000231 100006 200002 com.vmware.vise.vim.lookup.impl.LookupServiceExtensionManager Error when fetching NGC plugins from LookupService (SSO may be disabled). com.vmware.vise.vim.lookup.LookupServiceConnectionException: vSphere Web Client is missing VMware Lookup Service configuration.
at com.vmware.vise.vim.lookup.impl.LookupServiceImpl.createLookupService(LookupServiceImpl.java:336)
at com.vmware.vise.vim.lookup.impl.LookupServiceImpl.createLookupService(LookupServiceImpl.java:317)
at com.vmware.vise.vim.lookup.impl.LookupServiceImpl.getLookupServiceHolder(LookupServiceImpl.java:295)
at com.vmware.vise.vim.lookup.impl.LookupServiceImpl.find(LookupServiceImpl.java:249)
at com.vmware.vise.vim.lookup.impl.LookupServiceImpl.find(LookupServiceImpl.java:236)
at com.vmware.vise.vim.lookup.impl.LookupServiceExtensionManager.sessionStarted(LookupServiceExtensionManager.java:171)
at com.vmware.vise.security.DefaultAuthenticationProvider$2.run(DefaultAuthenticationProvider.java:772)
at com.vmware.vise.util.concurrent.QueuingCachedThreadPool$2.call(QueuingCachedThreadPool.java:564)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at com.vmware.vise.util.concurrent.QueuingCachedThreadPool$QueueProcessor.run(QueuingCachedThreadPool.java:885)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)


=============================================================================
Thanks for helping.

0 Kudos
14 Replies
laurentsd
VMware Employee
VMware Employee

hi Sikindar,

The most important think to do to make your HTML plugin work with the new HTML client is to follow the HTML SDK Fling doc: Getting_Started_with_HTML_Client_SDK_Fling.pdf

So make sure you followed all the upgrade steps from that doc.  If you still have problems after that please attach your plugin.xml source for me to understand how you extend  Host > Configure.  Thanks.

0 Kudos
laurentsd
VMware Employee
VMware Employee

Thanks for your last update. I deleted the post afterwards because it contained private information. Will get back to you.

0 Kudos
laurentsd
VMware Employee
VMware Employee

I reproduced the problem in my environment and am logging it as a bug to be fixed in an upcoming SDK Fling.

0 Kudos
SikindarSyed
Contributor
Contributor

Thanks for taking care Smiley Happy

0 Kudos
SikindarSyed
Contributor
Contributor

Can we have the bug reference to track if the issue is fixed in any particular build? Can we open a DCPN case to track this?

Thanks

Sikindar

0 Kudos
laurentsd
VMware Employee
VMware Employee

There are actually 2 issues: the first one is the fact that the VM > Configure tab could not be extended and this is fixed in Fling 4 released on Tuesday (see the other post where I announce each Fling release).  The second one is the fact that when a plugin view uses an invalid URL the whole tab becomes unusable.  This bug is in our backlog for a future Fling.  No need to contact DCPN.

0 Kudos
SikindarSyed
Contributor
Contributor

Hello Laurent,

With the new Fling (v-2.5.0.0-4380099), I tried loading the plugin, but still see few more issues.

1) The url to be loaded for the registered plugin (as in the plugin.xml) is working only at the cluster level, but not at the host level. (not sure of other levels as we dont deal at other levels)
    
    Below is the my "plugin.xml" file for reference (as in plugin package.zip).
    Here clicking on the Cluster in WebClient triggers the url "load_cluster". But clicking on the Host doesn't work and redirects to the Summary tab.
    
        <?xml version="1.0" encoding="UTF-8" standalone="no"?>
        <plugin id="myvcwebclient">
        
        <extension id="myvcwebclient">  <!-- Cluster level configurations -->
          <extendedPoint>vsphere.core.cluster.manageViews</extendedPoint>
           <object>
            <name>My Plugin</name>
            <componentClass className="com.vmware.vsphere.client.htmlbridge.HtmlView">
              <object>
               <root>
                <url>https://10.11.12.15:8443/load_cluster</url> <!-- URL to process request from plugin -->
                <legacyScriptPlugin>true</legacyScriptPlugin>
              </root>
             </object>
            </componentClass>
           </object>
          </extension>
          
        <extension id="myvcwebclient">  <!-- Host level configurations -->
          <extendedPoint>vsphere.core.host.manageViews</extendedPoint>
           <object>
            <name>My Plugin</name>
            <componentClass className="com.vmware.vsphere.client.htmlbridge.HtmlView">
              <object>
               <root>
                <url>https://10.11.12.15:8443/load_host</url> <!-- URL to process request from plugin -->
                <legacyScriptPlugin>true</legacyScriptPlugin>
              </root>
             </object>
            </componentClass>
           </object>
          </extension>  
        </plugin>
        
        
2) The "url" attribute is not getting the additional params (of legacy plugin) if the URL is not of an html.
In the case(1) above, "load_cluster" does not have ".html" extension and all the additional params (like moref,serviceGuid,sessionId,serviceUrl) are skipped.
Can we get these params as a Query String for any url format?

In addition, 'serverGuid' parameter name got changed now to 'serviceGuid'. Any specific reason for this?

I hope if these two concerns are addressed, we will be good for now to load our plugin.

Thanks in advance

Sikindar

0 Kudos
laurentsd
VMware Employee
VMware Employee

It's strange that our URL would work and not the other.  Do you see any error in the browser console?

>  The "url" attribute is not getting the additional params (of legacy plugin) if the URL is not of an html.

I'll see if we can work around that.

> In addition, 'serverGuid' parameter name got changed now to 'serviceGuid'.

This will be fixed.

0 Kudos
SikindarSyed
Contributor
Contributor

Thanks for the updates, Laurent.

>>It's strange that our URL would work and not the other.  Do you see any error in the browser console?

No errors found in the browser. On click of the plugin tab, its just triggers the plugin url and reloads back the Summary page. The plugin url also works fine as its the same url at the cluster level too which works.

Below are the logs at the browser console:

For Host level:

XHR finished loading: GET "https://10.192.206.110:9443/ui/navigation/data/com.emulex.ocm.vcwebclient.E…objectId=urn:vmomi:HostSystem:host-47:cd85f482-82e3-4443-8cdd-f588ca1d6eb4".
XHR finished loading: GET "https://10.192.206.110:9443/ui/navigation/data/vsphere.core.host.view?objectId=urn:vmomi:HostSystem:...".
XHR finished loading: GET "https://10.192.206.110:9443/ui/data/properties/urn:vmomi:HostSystem:host-47:cd85f482-82e3-4443-8cdd-...".

For Cluster level : (no error)

XHR finished loading: GET "https://10.192.206.110:9443/ui/navigation/data/com.emulex.ocm.vcwebclient.E…omi:ClusterComputeResource:domain-c35:cd85f482-82e3-4443-8cdd-f588ca1d6eb4".
XHR finished loading: GET "https://10.192.206.110:9443/ui/cluster-ui/resources/cluster/views/settings/Drs.html".
XHR finished loading: GET "https://10.192.206.110:9443/ui/cluster-ui/resources/cluster/views/settings/VSphereHa.html".
XHR finished loading: GET "https://10.192.206.110:9443/ui/cluster-ui/resources/cluster/views/settings/Evc.html".
XHR finished loading: GET "https://10.192.206.110:9443/ui/resources/ui/views/tabs/MultiExtensionView.html".
XHR finished loading: GET "https://10.192.206.110:9443/ui/cluster-ui/resources/cluster/views/settings/VmAndHostGroups.html".
XHR finished loading: GET "https://10.192.206.110:9443/ui/cluster-ui/resources/cluster/views/settings/VmAndHostRules.html".
XHR finished loading: GET "https://10.192.206.110:9443/ui/data/properties/urn:vmomi:ClusterComputeResource:domain-c35:cd85f482-...".
XHR finished loading: GET "https://10.192.203.155:8443/elxvcplugin/flex/VIPlugin_cluster.html".
XHR finished loading: GET "https://10.192.206.110:9443/ui/data/properties/urn:vmomi:ClusterComputeReso…ain-c35:cd85f482-82e3-44...".
XHR finished loading: GET "https://10.192.206.110:9443/ui/resources/ui/views/tabs/vxNaviTocHeadersTemplate.html".
XHR finished loading: GET "https://10.192.206.110:9443/ui/resources/ui/routing/SandboxTemplate.html".
XHR finished loading: GET "https://10.192.206.110:9443/ui/extensions/vsphere.core.cluster.settingsCate…omi:ClusterComputeResour...".
GET https://10.192.203.155:8443/elxvcplugin/flex/history/history.js
GET https://10.192.203.155:8443/elxvcplugin/flex/history/history.css
XHR finished loading: GET "https://10.192.206.110:9443/ui/data/properties/urn:vmomi:ClusterComputeResource:domain-c35:cd85f482-...".

0 Kudos
SikindarSyed
Contributor
Contributor

Hi Laurent,

Do you have any plans when this can be fixed?

0 Kudos
SikindarSyed
Contributor
Contributor

Hi Laurent,

Any update when we can get fix for this.

0 Kudos
laurentsd
VMware Employee
VMware Employee

Sorry for the late response.  This problem is more difficult than I expected and we have been swamped by our 6.5 release deadline so it will take more time to go to the bottom of this.

0 Kudos
SikindarSyed
Contributor
Contributor

Thanks for the update, Laurent.

Do you have any timeline when we can expect a fix for this? Without this our product support would be blocked for WebClient support. To track this case I would like to open a case under DCPN.

0 Kudos
SikindarSyed
Contributor
Contributor

Hi Laurent,

Do we have any fix now? If not, any possible date to expect the fix.

0 Kudos