Bug 1726312

Summary: [OSP 15] novnc RPM is not packaged with all the required files
Product: Red Hat OpenStack Reporter: Vadim Khitrin <vkhitrin>
Component: novncAssignee: Lee Yarwood <lyarwood>
Status: CLOSED ERRATA QA Contact: nlevinki <nlevinki>
Severity: high Docs Contact:
Priority: urgent    
Version: 15.0 (Stein)CC: amodi, egallen, lyarwood, mbooth, mwitt
Target Milestone: rcKeywords: Triaged
Target Release: 15.0 (Stein)   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: novnc-1.1.0-1.el8ost Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of:
: 1730213 (view as bug list) Environment:
Last Closed: 2019-09-21 11:23:52 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1730213, 1765625, 1765626, 1772114    
Attachments:
Description Flags
novnc webpage screenshot
none
Updated spec file with comments
none
novnc-console-instance-verification none

Description Vadim Khitrin 2019-07-02 15:15:17 UTC
Created attachment 1586744 [details]
novnc webpage screenshot

Description of problem:
When spawning instances, novnc console is not usable.
When accessing a novnc web page, the page appears all white and is lacking the VNC console (attaching screenshot of webpage).

Following messages appear in the browser's console:
GET http://10.35.141.150:6080/app/styles/lite.css net::ERR_ABORTED 404 (File not found)
vnc_auto.html?token=e8f86f86-bc8a-4db6-92fb-d60084f2f234:64 GET http://10.35.141.150:6080/vendor/promise.js net::ERR_ABORTED 404 (File not found)
vnc_auto.html?token=e8f86f86-bc8a-4db6-92fb-d60084f2f234:81 GET http://10.35.141.150:6080/app/webutil.js net::ERR_ABORTED 404 (File not found)
vnc_auto.html?token=e8f86f86-bc8a-4db6-92fb-d60084f2f234:82 GET http://10.35.141.150:6080/core/rfb.js net::ERR_ABORTED 404 (File not found)

After viewing the installed novnc app in container, the files mentioned above are not present:
1) Connect to controller as root
2) Discover nova_vnc_proxy overlay filesystem
podman mount nova_vnc_proxy
/var/lib/containers/storage/overlay/3e664bf42034b4c3f99ddb238f1e227260a176a314853901b734521298c9efe8/merged
3) view '/usr/share/novnc' directory that is present in container:
ls -l /var/lib/containers/storage/overlay/3e664bf42034b4c3f99ddb238f1e227260a176a314853901b734521298c9efe8/merged/usr/share/novnc/
total 44
-r--r--r--. 1 root root 15850 Jan 28 23:51 index.html
-r--r--r--. 1 root root 15850 Jan 28 23:51 vnc.html
lrwxrwxrwx. 1 root root    30 Jun 21 20:44 vnc_auto.html -> /usr/share/novnc/vnc_lite.html
-r--r--r--. 1 root root 10847 Jan 28 23:51 vnc_lite.html

To view all the files supplied by the novnc RPM:
1) Connect to controller as root
2) Run bash inside container:
podman exec --user root -it nova_vnc_proxy bas
3) Discover novnc RPM inside container:
rpm -qa | grep novnc-
novnc-1.0.0-2.el8ost.noarch
4) View all files installed by RPM inside container:
rpm -q novnc-1.0.0-2.el8ost.noarch --filesbypkg
novnc                     /usr/bin/novnc_server
novnc                     /usr/share/doc/novnc
novnc                     /usr/share/doc/novnc/LICENSE.txt
novnc                     /usr/share/doc/novnc/README.md
novnc                     /usr/share/novnc
novnc                     /usr/share/novnc/index.html
novnc                     /usr/share/novnc/vnc.html
novnc                     /usr/share/novnc/vnc_lite.html

Version-Release number of selected component (if applicable):
Compose: RHOS_TRUNK-15.0-RHEL-8-20190621.n.1
novnc RPM: novnc-1.0.0-2.el8ost.noarch

How reproducible:
always

Steps to Reproduce:
1. Deploy OSP15 deployment
2. Spawn instances
3. Attempt to access instances' VNC console

Actual results:
VNC console is unusable.

Expected results:
VNC console exposes instance's console

Additional info:

Comment 1 Stephen Finucane 2019-07-05 13:54:51 UTC
This looks valid as I can see the files in the v1.0.0 sources:

- https://github.com/novnc/noVNC/blob/v1.0.0/app/styles/lite.css
- https://github.com/novnc/noVNC/blob/v1.0.0/vendor/promise.js
- https://github.com/novnc/noVNC/blob/v1.0.0/app/webutil.js
- https://github.com/novnc/noVNC/blob/v1.0.0/core/rfb.js

It's worth noting that these were all merged into one file in [1], we if we fix this for the v1.0.0 package we'll have to remove it for the v1.1.0 package. Perhaps we should just bump to v1.1.0 altogether?

[1] https://github.com/novnc/noVNC/commit/e0d4e5a1c0fec254933f850c2a50fc2808b97d3d

Comment 2 Stephen Finucane 2019-07-05 15:00:41 UTC
(In reply to Stephen Finucane from comment #1)

[snip]

> It's worth noting that these were all merged into one file in [1], we if we
> fix this for the v1.0.0 package we'll have to remove it for the v1.1.0
> package. Perhaps we should just bump to v1.1.0 altogether?
> 
> [1] https://github.com/novnc/noVNC/commit/e0d4e5a1c0fec254933f850c2a50fc2808b97d3d

Actually, only the 'lite.css' file was inlined so bumping to v1.1.0 won't be enough.

Comment 7 Lon Hohberger 2019-07-08 22:01:45 UTC
Created attachment 1588558 [details]
Updated spec file with comments

Comment 17 Archit Modi 2019-08-06 15:25:43 UTC
Created attachment 1601123 [details]
novnc-console-instance-verification

Comment 21 errata-xmlrpc 2019-09-21 11:23:52 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHEA-2019:2811