Bug 1295898

Summary: vnc_proxy configuration settings not IPv6 compatible
Product: Red Hat OpenStack Reporter: Dan Sneddon <dsneddon>
Component: openstack-puppet-modulesAssignee: Sofer Athlan-Guyot <sathlang>
Status: CLOSED ERRATA QA Contact: Marius Cornea <mcornea>
Severity: medium Docs Contact:
Priority: high    
Version: 8.0 (Liberty)CC: achernet, jguiditt, sathlang, yeylon
Target Milestone: gaKeywords: TestOnly, ZStream
Target Release: 8.0 (Liberty)   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: openstack-puppet-modules-7.0.11-1.el7ost Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-04-15 13:46:34 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:

Description Dan Sneddon 2016-01-05 17:53:20 UTC
Description of problem:
The current processing of the nova.conf file results in invalid URLs when IPv6 IPs are used. For IPv6 URLs that contain port numbers, it is required that the IP addresses be inside of square brackets to properly differentiate IP addresses from port numbers. This is required because IPv6 addresses can be shortened if there are repeated zeroes, so it can be impossible to differentiate an IP address from an IP/Port combination.

Version-Release number of selected component (if applicable):
8.0 beta

How reproducible:
100%

Steps to Reproduce:
1. Deploy with IPv6 TripleO Heat templates
2.
3.

Actual results:
/etc/nova.conf novnc URL is in improper format when using IPv6:

novncproxy_base_url=http://fd00:fd00:fd00:2000:f816:3eff:feae:4747:6080/vnc_auto.html


Expected results:
The IP in the URL should appear in brackets:
novncproxy_base_url=http://[fd00:fd00:fd00:2000:f816:3eff:feae:4747]:6080/vnc_auto.html

Additional info:
vncproxy.pp will need to be modified. Today it uses the same hiera value for the values that require a raw IP as the ones that require a bracketed IP.

Proposed fix #1:
Today everything is based on the hieradata value of nova::vncproxy::host. We could modify the TripleO Heat templates to provide a new value in the hieradata, which is the host IP with brackets in the case of IPv6, or without brackets in the case of IPv4. This value might be called nova::vncproxy::host_uri.

This new value should be optional, and should override the value of the host if it exists, but only in the places where the URLs are written.

Proposed fix #2:
The puppet modules themselves can determine if the host IP is an IPv6 address, and write the URLs with brackets in the configuration file if so.

Comment 3 Sofer Athlan-Guyot 2016-01-07 21:01:51 UTC
This above patches solves the problem in the puppet module.

Comment 4 Jason Guiditta 2016-02-29 17:56:09 UTC
Merged upstream

Comment 9 Marius Cornea 2016-04-10 10:26:23 UTC
openstack-puppet-modules-7.0.17-1.el7ost.noarch

[root@overcloud-controller-0 heat-admin]# grep novncproxy_base_url /etc/nova/nova.conf 
novncproxy_base_url=http://[fd00:fd00:fd00:2000::14]:6080/vnc_auto.html

Comment 11 errata-xmlrpc 2016-04-15 13:46:34 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://rhn.redhat.com/errata/RHBA-2016-0636.html