Skip to content

[4.11.2/DO NOT MERGE] noVNC console#3283

Closed
ustcweizhou wants to merge 9 commits into
apache:4.11from
ustcweizhou:4.11-novnc-github
Closed

[4.11.2/DO NOT MERGE] noVNC console#3283
ustcweizhou wants to merge 9 commits into
apache:4.11from
ustcweizhou:4.11-novnc-github

Conversation

@ustcweizhou

Copy link
Copy Markdown
Contributor

Description

This feature provides novnc console for virtual machines.

It is developed based on
(1) noVNC 1.1.0
(2) latest websockify
Some changes in cloudstack
(1) add a new servlet /novncconsole
(2) a websocket proxy based on websockify will be launched in CPVM.
(3) add vnc password authentication in websockify
(4) generate 'path' and decrypt it in websockify to connect to server/port and check vnc password.

Types of changes

  • Breaking change (fix or feature that would cause existing functionality to change)
  • New feature (non-breaking change which adds functionality)
  • Bug fix (non-breaking change which fixes an issue)
  • Enhancement (improves an existing feature and functionality)
  • Cleanup (Code refactoring and cleanup, that may add test cases)

Screenshots (if appropriate):

How Has This Been Tested?

(1) it works with ubuntu 16.04/qemu 2.5
(2) If consoleproxy.sslEnabled is changed, please restart management server and CPVM (or cloud service in CPVM). It determines http or https will be used in novnc console
(3) If novnc.console.default is true,novnc console will be default console on UI. If it is false, we still can access novnc console via /novncconsole?cmd=access&vm=XXX
(4) global setting novnc.encryption.key is hidden, it can be changed via cloudmonkey. Restart CPVM (or cloud service in CPVM) if it is changed.

What need to do ?

(1) Test on other environment / hypervisor
(2) Add License
(3) Encrypt vm vnc information using rijndael/CBC instead of rijndael/ECB.

This is downloaded by
"""
    cd systemvm/debian/root/
    git clone https://github.com/kanaka/noVNC.git
"""
This is downloaded by
"""
    cd systemvm/debian/root/noVNC/
    git clone https://github.com/kanaka/websockify utils/websockify
"""

The last commit is
"""
    commit e4658ada2e2e179cdb8f6362dbb7c5e3ce3ff717
    Author: Pierre Ossman <ossman@cendio.se>
    Date:   Tue Apr 2 17:04:19 2019 +0200

        Re-enable Windows support

        It works well enough now with the recent fixes and a modern Python.
"""
@yadvr

yadvr commented Apr 19, 2019

Copy link
Copy Markdown
Member

Thanks for the PR @ustcweizhou I'll help review this in upcoming weeks. However, 4.11 is a LTS branch and closed for any major changes and we won't accept this in 4.11. I'll help you with reviewing/testing/merging this towards master/4.13.

@yadvr yadvr added this to the 4.13.0.0 milestone Apr 19, 2019
@yadvr

yadvr commented Apr 19, 2019

Copy link
Copy Markdown
Member

@ustcweizhou can you comment on any integration/testing against xenserver/vmware?

@ustcweizhou

Copy link
Copy Markdown
Contributor Author

@rhtyd sure.

There are not special setting for xenserver/vmware. steps are listed as below
(1) build packages, deploy it
(2) to test console proxy (http), change global setting consoleproxy.sslEnabled to false, restart management server and console proxy vm.
(3) to test console proxy (https/ssl), shange global setting consoleproxy.sslEnabled to true, restart management server and console proxy vm.

there are two ways to access the novnc console
(1) access novnc console via http://X.X.X.X/client/novncconsole?cmd=access&vm=XXX
(2) change global setting to novnc.console.default, and access vm console via UI or url http://X.X.X.X/client/console?cmd=access&vm=XXX

I added vnc authentication to websockify (it has same process with cloudstack/java and novnc/javascript) and tested ok with kvm. Since I do not have testing environment for xenserver/vmware, I am not sure if it works with xenserver/vmware.

@yadvr

yadvr commented Apr 23, 2019

Copy link
Copy Markdown
Member

Thanks @ustcweizhou I'll give it a try in coming weeks.

@ustcweizhou

Copy link
Copy Markdown
Contributor Author

@rhtyd There is a simple way to test if vnc authentication in websockify works in xenserver/vmware, which does not require cloudstack

git clone https://github.com/ustcweizhou/noVNC
execute command

./utils/launch.sh --vnc <target IP>:<target port> --vnc-password <vnc password>

and access vm via http://<server ip>:6080/vnc_lite.html

@ustcweizhou ustcweizhou changed the title [DO NOT MERGE] noVNC console [4.11.2/DO NOT MERGE] noVNC console Apr 26, 2019
@yadvr yadvr removed this from the 4.13.0.0 milestone May 27, 2019

@yadvr yadvr left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

-1 we cannot accept new features in 4.11, I'll let @ustcweizhou decide if he wants to close this PR. Further effort can follow on #3296

@yadvr

yadvr commented Jun 20, 2019

Copy link
Copy Markdown
Member

Closing this in favour of #3296 which is the same feature/PR against master branch. Let's continue testing/reviewing against the master based PR.

@yadvr yadvr closed this Jun 20, 2019
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.

2 participants