-
Notifications
You must be signed in to change notification settings - Fork 897
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow proxying WebMKS consoles using the WebsocketWorker #16490
Conversation
0393e43
to
550db2b
Compare
550db2b
to
93003b2
Compare
I have read all the 3 parts. Looks good to me. But I have NOT TESTED this. |
@martinpovolny I did 😉, and @simaishi promised me some custom appliances so @kedark3 can run his tests. |
@martinpovolny, @skateman: Tested on the Gaprindashvili appliance: |
@simaishi, the master appliance provided cannot run appliance_console (command not found). The Gaprindashvili appliance complains about specs, but runs fine. :) |
@kbrock would you have some time to take a look at this with me? I think the issue is somewhere here just don't know how else could I do this. |
Fix for Gaprindashvili appliance spec complain - ManageIQ/manageiq-appliance-build#248 Will take a look at command not found for 'master'. |
@skateman @bmclaughlin The 'master' appliance I built failed to run
If you change the branch to |
93003b2
to
3edd55f
Compare
Checked commits skateman/manageiq@0526e5f~...3edd55f with ruby 2.3.3, rubocop 0.47.1, haml-lint 0.20.0, and yamllint 1.10.0 lib/websocket_proxy.rb
|
@bmclaughlin I think I solved performance problem, can you please retest? The set of changes is small so it's enough to do on a development setup. |
@skateman, @martinpovolny this resolves the performance issue I experienced. 👍 |
Allow proxying WebMKS consoles using the WebsocketWorker (cherry picked from commit 6421e3d) https://bugzilla.redhat.com/show_bug.cgi?id=1520964
Gaprindashvili backport details:
|
Allow proxying WebMKS consoles using the WebsocketWorker (cherry picked from commit 6421e3d) https://bugzilla.redhat.com/show_bug.cgi?id=1523404
Fine backport details:
|
Allow proxying WebMKS consoles using the WebsocketWorker (cherry picked from commit 6421e3d) https://bugzilla.redhat.com/show_bug.cgi?id=1523404
Hi Am trying the same using java code . Right now am using the following webmks which is provided by vmware but with proxy server , not able to reach the Host. Thanks in advance ! |
The
WebsocketWorker
provides us a websocket-to-socket proxying that powers our browser based VNC/SPICE remote consoles. Thanks to this it's not necessary for the client to have a route to the hypervisor nor the VMs and the (internal) SSL certificate validation is also eliminated. Since VMware removed the support for VNC consoles since 6.5 and their only browser-based remote console technology is WebMKS, it also should be proxied.As WebMKS runs on top of WebSocket, the worker needs to be rewritten to a websocket-to-* proxy. I introduced a new generic
WebsocketRight
class to ease the implementation of new protocol types on the right side of the proxy. All inherited classes should define afetch(length)
and anissue(data)
methods for reading and writing on the right side of the proxy. The naming of these methods is intentional as thewebsocket-driver
we're using reserves thewrite
method.Provider PR: ManageIQ/manageiq-providers-vmware#140
Classic UI PR: ManageIQ/manageiq-ui-classic#2768
https://bugzilla.redhat.com/show_bug.cgi?id=1504299