Respect extra arguments supplied for novncproxy_base_url

Registered by Dmitriy Rabotyagov

At the moment Nova will replace any extra parameters supplied as GET request for the `novncproxy_base_url` setting. This makes quite challenging to implement VNC console under subpath, as NoVNC does use `path` to come up with WebSocket URI for connection to the proxy.

So, in case you set `novncproxy_base_url = https://domain.com/console/vnc_lite.html`, nova will generate token and append to this base url, which will result in smth like that:
https://domain.com/console/vnc_lite.html?path=%3Ftoken%3Dd7bf7a47-f081-4500-a961-05ddb7994e13`

As there is no subpath defined in `path` - NoVNC will create a WebSocket connection towards
`wss://domain.com/?token=d7bf7a47-f081-4500-a961-05ddb7994e13` which will be broken.

For NoVNC to create a proper WSS connection, we need to supply a subpath in `path` parameter, ie:
https://domain.com/console/vnc_lite.html?path=console%3Ftoken%3Dd7bf7a47-f081-4500-a961-05ddb7994e13

This blueprint suggests to respect supplied query parameter for novncproxy_base_url by parsing the URL and appending the token to the path if it is already exist.

This will allow users to set novncproxy_base_url like this: https://domain.com/console/vnc_lite.html?path=console` which should result in intended URL with token appended to it.

Blueprint information

Status:
Complete
Approver:
Sylvain Bauza
Priority:
Undefined
Drafter:
Dmitriy Rabotyagov
Direction:
Approved
Assignee:
Dmitriy Rabotyagov
Definition:
Approved
Series goal:
Accepted for 2025.1
Implementation:
Implemented
Milestone target:
None
Started by
Sylvain Bauza
Completed by
Sylvain Bauza

Related branches

Sprints

Whiteboard

Addressed by: https://review.opendev.org/c/openstack/nova/+/928839
    Respect supplied arguments in novncproxy_base_url

[20240917 bauzas] Approved as specless blueprint during today's meeting

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.