wodge's Posts

Hi, Just to follow up on this - if you could provide the information from the missing link of the solutions for this, that would be great. However, in the mean-time, I put in place a short term sol... See more...
Hi, Just to follow up on this - if you could provide the information from the missing link of the solutions for this, that would be great. However, in the mean-time, I put in place a short term solution for the problem which works in my development environment (for the remote plugin architecture).  It appears this error usually occurs when your Java program tries to establish an SSL connection with a remote server, but the server's SSL certificate is not trusted by the JVM's default truststore. I am using MacOS for my development environment, for anyone else in a similar situation, this should work to get the sample to run without needing a fully-fledged certification on their VCSA: The short-term solution I used: Import the server's SSL certificate into the JVM's default truststore, using these steps: 1. Locate the JVM's default truststore file. For Java 8, this was in: /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/security/cacerts 2. Take a backup of the default truststore file to make sure you can restore it if something goes wrong. 3. Obtain the SSL certificate of the VCSA server. This can be done by connecting to the server using a web browser and exporting the certificate. Alternatively, you can use command-line tools like OpenSSL to retrieve the certificate. I used Chrome to get the .cer file. 4. Use the `keytool` command-line tool, which is provided with the Java Development Kit (JDK), to import the certificate into the truststore. Open a command prompt or terminal and navigate to the directory where `keytool` is located. 5. Run the following command to import the certificate into the truststore: keytool -import -alias <alias_name> -file <path_to_certificate_file> -keystore <path_to_truststore_file> Replace `<alias_name>` with a name you want to assign to the certificate in the truststore. Replace `<path_to_certificate_file>` with the path to the certificate file you obtained earlier. Replace `<path_to_truststore_file>` with the path to the truststore file you located in step 1. 6. When prompted, enter the password for the truststore. The default password for the JVM's default truststore is usually `changeit`. If you have changed it previously, use the updated password. 7. Verify that the certificate has been imported successfully by listing the content of the truststore: keytool -list -keystore <path_to_truststore_file> This will display the aliases of all the certificates in the truststore, including the one you just imported. By importing the server's SSL certificate into the JVM's default truststore, you make it trusted by default when your Java applications establish SSL/TLS connections to that server. You can now run the remote plugin sample code and it should work as expected to show the Chassis objects and UI elements properly.. Hope that helps for now!
HI, I'm having the same error when running the remote sample code for 8.0 U1: at java.lang.Thread.run(Thread.java:745) [na:1.8.0_121] Caused by: org.springframework.web.client.ResourceAccessExcepti... See more...
HI, I'm having the same error when running the remote sample code for 8.0 U1: at java.lang.Thread.run(Thread.java:745) [na:1.8.0_121] Caused by: org.springframework.web.client.ResourceAccessException: I/O error on POST request for "https://<my vcenter fqdn>:443/api/ui/vcenter/session/clone-ticket": sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target; nested exception is javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target   I've tried the links in the thread here, but unfortunately they are broken and don't exist, or don't lead anywhere with a solution any more. Could you please provide the updated link to where the solution is, or provide the solution for this please? Warren
Hi all, We have a local plugin in production, built using plugin seed 0.9.8. We have a problem where sometimes content is not being shown, but only in the Flash client. We are using the htmlbrid... See more...
Hi all, We have a local plugin in production, built using plugin seed 0.9.8. We have a problem where sometimes content is not being shown, but only in the Flash client. We are using the htmlbridge component for our views within the monitor tab. Everything works as expected in the H5 client. We have mulitple views in the monitor tab, these are listed within our own category. (from the plugin.xml): <!-- Monitor Category --> <extension id="biz.runecast.rc2plugin.host.monitor.category"> <extendedPoint>vsphere.core.host.monitorCategories</extendedPoint>     <object>        <label>Runecast Analyzer</label>     </object> </extension>   <!-- monitor tab view --> <extension id="biz.runecast.rc2plugin.host.monitorBestPracticesView"> <extendedPoint>vsphere.core.host.monitorViews</extendedPoint> <object> <name>Best Practices</name> <categoryUid>biz.runecast.rc2plugin.host.monitor.category</categoryUid> <componentClass className="com.vmware.vsphere.client.htmlbridge.HtmlView"> <object> <root> <url>/vsphere-client/rc2plugin/index.html?view=monitorBestPractices</url> </root> </object> </componentClass> </object> </extension>   <extension id="biz.runecast.rc2plugin.host.monitorSecurityHardeningView"> <extendedPoint>vsphere.core.host.monitorViews</extendedPoint> <object> <name>Security Hardening</name> <categoryUid>biz.runecast.rc2plugin.host.monitor.category</categoryUid> <componentClass className="com.vmware.vsphere.client.htmlbridge.HtmlView"> <object> <root> <url>/vsphere-client/rc2plugin/index.html?view=monitorSecurityHardening</url> </root> </object> </componentClass> </object> </extension>   <extension id="biz.runecast.rc2plugin.host.monitorKnowledgeBaseView"> <extendedPoint>vsphere.core.host.monitorViews</extendedPoint> <object> <name>Knowledge Base</name> <categoryUid>biz.runecast.rc2plugin.host.monitor.category</categoryUid> <componentClass className="com.vmware.vsphere.client.htmlbridge.HtmlView"> <object> <root> <url>/vsphere-client/rc2plugin/index.html?view=monitorKnowledgeBase</url> </root> </object> </componentClass> </object> </extension>   We find that when going into a view from the H5 client hierarchy, the specific extension point loads and the datagrid within the extension point loads successfully every time, populated with the expected data. However, when we use the flex client: We find that sometimes (not always) ALL THREE extension points are loaded when the monitor tab is opened for an object. When this happens, we find that the datagrid loads, we believe the data is loaded, because the datagrid displays the correct number of records as a number... BUT the actual data in the view is not displayed, and so it is shown as empty. We really need some help to understand why this is happening, and how it can be resolved - we have been debugging it for days now with little success.  Many thanks, Warren
Hi all, We are using a component to be shown in the Summary view for objects. It is an htmlbridge component className = com.vmware.vsphere.client.htmlbridge.htmlView We use the extension point... See more...
Hi all, We are using a component to be shown in the Summary view for objects. It is an htmlbridge component className = com.vmware.vsphere.client.htmlbridge.htmlView We use the extension point: vsphere.core.{objectType, e.g. host}.summarySectionViews The summary view contains some useful data, and also links to the corresponding monitor view so the user can view the summary data in detail. The summary view appears as expected for both HTML 5 and Flex clients.  If the link is clicked in the HTML 5 client, then the user is taken to the monitor view, as expected. However, (this is the issue): In the Flex client, a link is provided in the summary view saying "Click to View content" (as expected). The user clicks this link and a modal opens with the summary portlet content. The webclient object summary view is greyed behind the modal. PROBLEM: When the user clicks to go to the monitor view, The greyed view in the background changes to the monitor view. HOWEVER, the modal remains on the screen, and the monitor view data does not load. REQUESTED SOLUTION: Is there any way that the modal can be closed from within the code, when the link is clicked please? N.B. It is possible for the user to manually close the modal, but this is not desiarable. Many thanks, Warren
Hi Denis, Yes - I do need some more help please. I need to know how to use the JS APIs within the plugin seed 0.98? I don't know how to start with this. Many thanks, Warren
Hi, We have a plugin running in our product, but on the plugin seed 0.98. We are using it with recent versions of Clarity (1.2.0) / Angular (7.2.12)  We would like to be able to change the them... See more...
Hi, We have a plugin running in our product, but on the plugin seed 0.98. We are using it with recent versions of Clarity (1.2.0) / Angular (7.2.12)  We would like to be able to change the theme in the plugin to dark mode when it is changed in the H5 client. Can you let us know if this is possible please? And if so, what would be required to do it? Wodge 
Hi, We have developed a plugin from the 0.9.8. seed code. We have noticed a bug when using IE and attempting to use plugin screens when specifically using VC Version 6.0.0 Build 4514981. When at... See more...
Hi, We have developed a plugin from the 0.9.8. seed code. We have noticed a bug when using IE and attempting to use plugin screens when specifically using VC Version 6.0.0 Build 4514981. When attempting to view a plugin screen the frame shows "Loading..." And remains there indefinitely. Both Chrome and Firefox work as expected. In the Developer tools console, the following error is reported: SCRIPT5011: Can't execute code from a freed script However, when running against VC Version 6.0.0. Build 5318172 IE works as expected with the same plugin code. We have also tested against builds of 6.5 and 6.7 which work as expected for H5 and Flex, for IE / Chrome / Firefox. I strongly suspect that this issue is related to: https://communities.vmware.com/thread/548749, however, I don't know how to apply the fixes suggested here against our plugin seed code, as they refer to the web-platform.js code, which isn't included within the seed codebase (to my knowledge). Could you please advise if this is related, and how we could carry out a fix to remedy this please?
Hi, Many thanks for your quick reply and also in the advice re. updates against 0.9.8 - it is much appreciated. So we will continue using 0.9.8 for the foreseeable future.  To be completely sur... See more...
Hi, Many thanks for your quick reply and also in the advice re. updates against 0.9.8 - it is much appreciated. So we will continue using 0.9.8 for the foreseeable future.  To be completely sure; can you confirm there is no intention for the 1.0.0 seed code, or next iterations, to continue supporting all versions of vSphere 6.x, and no plans to continue support for the Flex client past 0.9.8? We need to work out our strategy going forward; if this is true then we are likely to stay within 0.9.8 and not upgrade to 1.0.0. - at least until 6.x goes end of support in March 2020 / end of technical guidance in March 2022.   Some of our Customers still prefer using Flex in 6.5, so we need to continue supporting Flex deployments and avoid any major regressions for them. Many thanks, Warren
Hi, We currently publish a plugin from the 0.9.8 seed, which has been great to work with. We have been able to develop the plugin so that it can be used by the vast majority of our Customer base... See more...
Hi, We currently publish a plugin from the 0.9.8 seed, which has been great to work with. We have been able to develop the plugin so that it can be used by the vast majority of our Customer base. We would like to start using 1.0.0, but there is a major problem for us, as it only supports plugins running in 6.5u2 and 6.7... Furthermore, it is only supporting the H5 client and not Flex. Many of our Customers are running vSphere v6.0 and therefore need support for this version, together with the Flex implementation because this is the only client they can use. It would be very costly for us to start maintaining two distinct codebases, one from seed 0.9.8 and the other from seed 1.0.0., with little benefit. As our current plugin (built from 0.9.8) already supports all versions of vSphere from 6.0 to 6.7 and includes support for the Flex client, we will just continue developing from this seed. Could you please let us know if there are any plans to make the seed code in 1.0.0 backward compatible to all versions of vSphere 6.x, and also so that it provides continued support for the Flex client? Otherwise, could you please give advice about how we should continue to support our existing Customers within a single codebase going forward? Many thanks, Warren 
Hi Vaibhav87, The changes I carried out are as follows: 1. In the service code, change the MANIFEST.MF file so that in the "Import-Package" sections all versions are removed, except for tho... See more...
Hi Vaibhav87, The changes I carried out are as follows: 1. In the service code, change the MANIFEST.MF file so that in the "Import-Package" sections all versions are removed, except for those libraries I have explicitly added.  Here's my section, below: Import-Package: com.vmware.vise.data, com.vmware.vise.data.query, com.vmware.vise.data.uri, com.vmware.vise.usersession, com.vmware.vise.security, com.vmware.vise.vim.data, com.google.gson;version="2.3.1", javax.servlet.http, javax.net.ssl, org.springframework.beans.factory.annotation, org.springframework.beans.factory, org.springframework.stereotype, org.springframework.web.client, org.springframework.http, org.springframework.web.bind.annotation, org.springframework.util, org.springframework.http.client, org.apache.http.conn.ssl;version="4.3.3", org.apache.http.client;version="4.3.3", org.apache.http.impl.client;version="4.3.3", org.springframework.beans, org.springframework.beans.factory.config, org.springframework.web.accept;resolution:=optional (I introduced com.google.gson and org.apache.http.* so these have their own versions). 2. Followed the instructions in the FAQs: https://vdc-download.vmware.com/vmwb-repository/dcr-public/5e6f0e2e-1e80-4128-b1b7-fbe3a4f58108/4a820b06-0503-4c23-b2c3-8a7177714977/upgrade_to_6.7_compatibility.pdf Section "Upgrade to use content negotiation based on the "Accept" header of the HTTP request in a backward compatible way" 3. In order to be able to build, I also downloaded the two jar files: Maven Repository: org.springframework » spring-beans » 4.3.9.RELEASE Maven Repository: org.springframework » spring-web » 4.3.9.RELEASE I added these to the libs directory, at: ${VSPHERE_SDK_HOME}/libs/ I updated the build-java.xml file so that within the <classpath> entity, I added two more path elements: <classpath>      <pathelement path="${VSPHERE_SDK_HOME}/libs/spring-beans-4.3.9.RELEASE.jar"/>      <pathelement path="${VSPHERE_SDK_HOME}/libs/spring-web-4.3.9.RELEASE.jar"/> </classpath>     ... These are the changes that were made and I now it builds from the build-plugin-package.sh script in the tools directory (of the ui code). I don't have the Jackson issue reported. The plugin works for both 6.5 and 6.7 H5 (as well at 6+ Flex). Hope that helps you to progress. Wodge
Great stuff - good work by the team there. Looking forward to using this
Hi Denis, Thank you for your reply. I'd actually been editing the bundle-context.xml in the server-side of the plugin, rather than the ui code... I solved the problem by following the FAQ guide... See more...
Hi Denis, Thank you for your reply. I'd actually been editing the bundle-context.xml in the server-side of the plugin, rather than the ui code... I solved the problem by following the FAQ guidelines in the section: "Upgrade to use content negotiation based on the "Accept" header of the HTTP request in a backward compatible way". I was then able to upgrade the plugin successfully. I didn't realize it was to be applied in the server-side code before then. Many thanks, Warren
Hi, I've read the FAQs after trying to run my plugin against the 6.7 server (running in my local development environment). I have a problem that I believe is identified in the FAQs, but don't kn... See more...
Hi, I've read the FAQs after trying to run my plugin against the 6.7 server (running in my local development environment). I have a problem that I believe is identified in the FAQs, but don't know how to solve it. There is some advice how to solve it, but I really need it to be spelt out so I can apply the fix. The problem is as follows (from the FAQs): Issue: MappingJacksonJsonView removed from Spring Framework Symptom: java.lang.ClassNotFoundException: org.springframework.web.servlet.view.json.MappingJacksonJsonView Explanation: MappingJacksonJsonView has been replaced with a newer class. Solution: Use org.springframework.web.servlet.view.json.MappingJackson2JsonView in bundle-context.xml file. Note: MappingJackson2JsonView imposes dependencies on additional Spring packages. I need to know exactly what to add to the bundle-context.xml file please? I've tried this: <bean class="org.springframework.web.servlet.view.json.MappingJackson2JsonView"> <property name="contentType" value="application/json"/> </bean>   but I still get the same error... Could you please state exactly what code needs to be added? Many thanks, Warren
Hi Denis, Many thanks for providing this response. If this is possible then I will try a proof of concept to extend the endpoints for the NSX plugin. Kind regards, Warren
Hi, This is an initial question to understand the current possibilities for presenting views in the webclient plugin (H5 / Flex) agains NSX objects. We currently use the Plugin seed (v.0.9.8) f... See more...
Hi, This is an initial question to understand the current possibilities for presenting views in the webclient plugin (H5 / Flex) agains NSX objects. We currently use the Plugin seed (v.0.9.8) for our hybrid webclient ui-side implementation... And it's doing a fine job! We use the object views (Summary and Monitor) for all vCenter inventory managed entity types (e.g. hosts / VMs / Datacenters etc.).  We would like to use extension points for the NSX objects, where the NSX plugin is installed with H5 or Flex, so that we can creat an equivalent object view in Summary and Monitor tabs. Could you please let me know if this is possible currently? Or if not currently supported out of the box, if there is a simple path to making it possible please? N.B. I've given an example screenshot of an NSX object selected in the Flex client. The monitor tab is open, and we would like to add another button alongside "System Events" and "Tasks". Many thanks in advance for your time. Warren
Just to confirm - we've upgraded to high Sierra, made the change, and tested. All works as expected. Thank you kindly.
Hi, Would it be possible to provide an update on this? We really need to update the dev clients here to High Sierra, and this is the only thing blocking that currently. Could you provide an ETA... See more...
Hi, Would it be possible to provide an update on this? We really need to update the dev clients here to High Sierra, and this is the only thing blocking that currently. Could you provide an ETA for when it is likely to be addressed/fixed please? Thank you
Hi, has there been any progress re, solving the High Sierra issue please? Many thanks
Hi, I'm holding off from upgrading to High Sierra on my Mac because it is used for plugin development. Could you confirm if it better to wait for a fix to this issue before doing so please? Man... See more...
Hi, I'm holding off from upgrading to High Sierra on my Mac because it is used for plugin development. Could you confirm if it better to wait for a fix to this issue before doing so please? Many thanks
Many thanks Laurentsd - much appreciated it looks like this is the cause of the issue I think it would be best to change the default plugin-seed project so that the section:       <!-- Gen... See more...
Many thanks Laurentsd - much appreciated it looks like this is the cause of the issue I think it would be best to change the default plugin-seed project so that the section:       <!-- Generate resource bundles for the other required locales            with a copy of the US version -->   is uncommented and the .swf files are generated for the locales supported from vCenter. As this is a best practice, this would prevent this issue occurring from the default?