VMware {code} Community
CathyBr
Enthusiast
Enthusiast

Developing Remote Plug-in, using local sdk web client V 6.7U2

Hi,

I have been working on a prototype for a Remote Plugin.  I have registered the plugin, started it and was able to view the plugin in the web-client.  That worked well by just following the documentation.

Working in another location, behind tunnels and firewalls, I try to view the plug-in, but the remote vCenter can't download the plugin.json from my location - I had expected this.

So I tried starting the webClient from the sdk (startup.bat)  on my local machine.  This webClient is attached to the remote sso server, so it found the registration - it was able to download the plugin.json and performed the validation checks on it (seen in the virgo.log) - After the checks are completed, the reverse proxy should be configured. But this causes an exception.

[2019-05-22T13:22:31.590+02:00] [INFO ] rpx-configurer-thread        70000028 100002 200001 c.v.v.extensionfw.impl.remote.RemotePluginReverseProxyConfigurer  Reverse proxy call took 2063ms. [2019-05-22T13:22:31.594+02:00] [ERROR] plugin-discovery4            70000028 100002 200001 com.vmware.vise.vim.extension.VcExtensionManager                  Couldn't configure reverse proxy. com.vmware.vise.extensionfw.impl.remote.RemotePluginProxyConfigurationException: An error occurred while configuring reverse proxy using EndpointConfig (com.vmware.rhttpproxy.client.model.endpoint_config) => {  

       fileContent = [EndpointConfigEntry (com.vmware.rhttpproxy.client.model.endpoint_config_entry) => {   

           comment = ,     endpoint = EndpointSpec (com.vmware.rhttpproxy.client.model.endpoint_spec) => {       

                proxyUri = /plugins/acme.remote~1.0.0/localClient.local-8991,        

               mappingType = remotessl,       

               serverUri = localClient.local:8991/,        

               httpConnectAction = reject,        

               httpsConnectAction = allow,        

               thumbprint = 55:5d:b1:0d:e0:33:3e:10:ab:1e:f4:86:62:61:f0:7f:93:fe:f6:9b   

           }

           }]

}

      at com.vmware.vise.extensionfw.impl.remote.RemotePluginReverseProxyConfigurer.configureProxy(RemotePluginReverseProxyConfigurer.java:190)

     at com.vmware.vise.extensionfw.impl.remote.RemotePluginReverseProxyConfigurer.addProxyRules(RemotePluginReverseProxyConfigurer.java:122)

     at com.vmware.vise.extensionfw.impl.remote.RemotePluginReverseProxyServiceImpl.addProxyRules(RemotePluginReverseProxyServiceImpl.java:53)

...

Caused by: java.lang.RuntimeException: http://localhost:549/rhttpproxy/config/endpoints/ui-plugins.conf invocation failed with "org.apache.http.conn.HttpHostConnectException: Connect to localhost:549 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect"

... 15 common frames omitted

It seems like the htmlClient is looking for the rhttpproxy on my local host - instead of on the vCenter Server.  I found this entry in the virgo.log

[2019-05-22T06:50:27.379+02:00] [ERROR] equinox-activator             com.vmware.vise.extensionfw.impl.remote.RemotePluginConfig        Did not manage to find reverse proxy configuration file at C:\ProgramData\VMware\vCenterServer\cfg\vmware-rhttpproxy\config.xml. Will try to make requests to the RPx REST API on port 549

And of course that is true, I don't have the file there.  I looked in the SDK, but did not find one as well.  I found the file on the remote vcenter, but do not know what values to change and how.

I reran the dev-setup.sh on the vCenter, hoping that maybe a config.xml would be generated, but that is not true.

Can some one help me here?  I want to tell the RemotePluginReferseProxy to use the rhttpproxy on the remote vcenter - not on local host. (If I understand it correctly)

thanks

Cathy

Reply
0 Kudos
1 Reply
Denis_Chorbadzh
VMware Employee
VMware Employee

Hi Cathy,

 

Your observation is right and, in fact, remote plugins should be accessed directly on the vCenter Server and not using a local vSphere Client.

We understand that this may be a problem for some developers but because of the specific architecture of the remote plugins - this scenario is not supported at the moment.

 

Best Regards,

Denis

Reply
0 Kudos