Skip to content
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

Unify the HTML5 canvas-based remote consoles under a single endpoint #5761

Merged
merged 4 commits into from
Jul 17, 2019

Conversation

skateman
Copy link
Member

@skateman skateman commented Jul 1, 2019

The remote console support is a little messed up, we have separate buttons for:

  • VNC/SPICE
  • WebMKS
  • VMRC

The visibility and enablement of these buttons is even more complicated, especially for VMs running on VMware. The availability depends on versions and also on an individual setting on each VM which can now be determined by the backend only.

As there's no practical difference between VNC, SPICE and WebMKS consoles (except of the availability of assets), I am joining the three console types into a single HTML5 meta type while following the same analogy on the backend. The user asks for a HTML5-based console and the backend determines which console is the best suitable and provides it. The intention behind this is to have better console support both here and in the SUI.

If the WebMKS support is turned on for a VMware VM, it doesn't mean that the remote console will actually work. If the WebMKS assets aren't available on the appliance, the console won't work. Due to the costly operation of determining what console type is supported, we can't know the console protocol type before requesting it. Therefore, the only way to warn the user is AFTER the console window is opened. I created a hack inspired by this idea that displays a warning message in the console if the assets aren't available.

https://bugzilla.redhat.com/show_bug.cgi?id=1532720

@skateman
Copy link
Member Author

skateman commented Jul 1, 2019

@miq-bot add_reviewer @martinpovolny
@miq-bot add_reviewer @himdel
@miq-bot add_label hammer/no, consoles, enhancement, changelog/yes

@skateman skateman force-pushed the html5-console branch 2 times, most recently from 6767fe4 to 48e12d3 Compare July 2, 2019 06:33
@skateman skateman changed the title [WIP] Unify the HTML5 canvas-based remote consoles under a single endpoint Unify the HTML5 canvas-based remote consoles under a single endpoint Jul 2, 2019
@skateman
Copy link
Member Author

skateman commented Jul 2, 2019

@miq-bot add_label pending core
Depends on: ManageIQ/manageiq#18927 and ManageIQ/manageiq-providers-vmware#409

@martinpovolny
Copy link
Member

spec/helpers/application_helper/buttons/vm_html5_console_spec.rb

  exclamation - Line 9, Col 31 - Style/MutableConstant - Freeze mutable objects assigned to constants.

this is cheap to fix

@martinpovolny
Copy link
Member

Looks good.

@miq-bot
Copy link
Member

miq-bot commented Jul 15, 2019

Checked commits skateman/manageiq-ui-classic@e43e9c9~...de80659 with ruby 2.4.6, rubocop 0.69.0, haml-lint 0.20.0, and yamllint 1.10.0
11 files checked, 2 offenses detected

app/helpers/application_helper/toolbar/cloud/instance_operations_button_group_mixin.rb

app/helpers/application_helper/toolbar/x_vm_center.rb

@himdel himdel self-assigned this Jul 17, 2019
@himdel himdel added this to the Sprint 116 Ending Jul 22, 2019 milestone Jul 17, 2019
@himdel himdel merged commit bee3589 into ManageIQ:master Jul 17, 2019
@skateman skateman deleted the html5-console branch July 17, 2019 14:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants