Bug 1335612

Summary: CONFIG_USE_SUBNETS=y won't work correctly with VLAN
Product: [Community] RDO Reporter: Masanari Matsuoka <m>
Component: openstack-packstackAssignee: Javier Peña <jpena>
Status: CLOSED EOL QA Contact: Shai Revivo <srevivo>
Severity: medium Docs Contact:
Priority: unspecified    
Version: MitakaCC: chris.brown, derekh, m, srevivo
Target Milestone: ---Keywords: Reopened
Target Release: KiloFlags: m: needinfo-
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-07-17 12:23:16 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:

Description Masanari Matsuoka 2016-05-12 16:16:09 UTC
Description of problem:
Three bugs exist described below i)-iii).

i) Unable to generate Neutron L2 Agent manifest entries agent.
[reason] The following line in /usr/lib/python2.7/site-packages/packstack/modules/common.py does not accept interface without IP.
> ipaddr = info['ipaddress_{}'.format(interface)]
[howToSolve] check 'ipaddress_{}'.format(interface) exists in info before the line above

[symptom]

[root@qas ~]# packstack --answer-file=qas
Welcome to the Packstack setup utility

The installation log file is available at: /var/tmp/packstack/20310305-194440-RMimyM/openstack-setup.log

Installing:
Clean Up                                             [ DONE ]
Discovering ip protocol version                      [ DONE ]
Setting up ssh keys                                  [ DONE ]
...
Adding Neutron L3 manifest entries                   [ DONE ]
Adding Neutron L2 Agent manifest entries          [ ERROR ]

ERROR : 'ipaddress_enp2s0'
Please check log file /var/tmp/packstack/20310305-194440-RMimyM/openstack-setup.log for more information


---------------------------------------------------------------

ii) Unable to generate Neutron L2 Agent manifest entries agent.
[reason] the following segments in /usr/lib/python2.7/site-packages/packstack/plugins/neutron_350.py assume that all nodes have the same interface name for the same network (It DOES conflict with the idea of CONFIG_USE_SUBNETS.)
[howToSolve] add the line starting with '+'
    for host in network_hosts | compute_hosts:
        manifestfile = "%s_neutron.pp" % (host,)
        manifestdata = "$cfg_neutron_ovs_host = '%s'\n" % host
        if host in network_hosts:
            manifestdata += "$create_bridges = true\n"
        else:
            manifestdata += "$create_bridges = false\n"
        # neutron ovs port only on network hosts
+       tmp_iface_arr = iface_arr
        if (
            agent == "openvswitch" and (
                (host in network_hosts and tunnel_types)
                or 'vlan' in ovs_type)
        ):
            if config['CONFIG_USE_SUBNETS'] == 'y':
                iface_arr = [
                    common.cidr_to_ifname(i, host, config) for i in iface_arr
                ]
            config["CONFIG_NEUTRON_OVS_BRIDGE_IFACES"] = iface_arr
        manifestdata += getManifestTemplate(template_name)
        appendManifestFile(manifestfile, manifestdata + "\n")
        # Additional configurations required for compute hosts and
        # network hosts.
        manifestdata = getManifestTemplate('neutron_bridge_module')
        appendManifestFile(manifestfile, manifestdata + '\n')
+       iface_arr = tmp_iface_arr

[symptom]

[root@qas ~]# packstack --answer-file=qas
Welcome to the Packstack setup utility

The installation log file is available at: /var/tmp/packstack/20310305-195036-d9vO31/openstack-setup.log

Installing:
Clean Up                                             [ DONE ]
...
Adding Neutron L3 manifest entries                   [ DONE ]
Adding Neutron L2 Agent manifest entries          [ ERROR ]

ERROR : Cannot translate CIDR to interface, invalid parameters were given.
Please check log file /var/tmp/packstack/20310305-195036-d9vO31/openstack-setup.log for more information


---------------------------------------------------------------

iii) Unable to apply the neutron manifest file.
[reason] tiny bug in /usr/share/openstack-puppet/modules/packstack/lib/puppet/parser/functions/force_interface.rb which does not assume ifaddr would be null (so IPAddr.new ifaddr fails)
[howToSolve] add the following lines starting with '+'
              ifaddr = lookupvar("ipaddress_#{interface}")
+             ifcidr = nil
+             if !ifaddr.nil?
                ifcidr = IPAddr.new ifaddr
+             end

[symptom]

[root@qas ~]# packstack --answer-file=qas
Welcome to the Packstack setup utility

The installation log file is available at: /var/tmp/packstack/20160502-222422-qFIXpE/openstack-setup.log

Installing:
Clean Up                                             [ DONE ]
(中略)
Applying 192.168.1.1_neutron.pp
Applying 192.168.1.2_neutron.pp
192.168.1.2_neutron.pp:                           [ ERROR ]       
Applying Puppet manifests                         [ ERROR ]

ERROR : Error appeared during Puppet run: 192.168.1.2_neutron.pp
Error: address family must be specified at /var/tmp/packstack/e84b2e397d9e490183f10881e3443072/manifests/192.168.1.2_neutron.pp:67 on node myhost2
You will find full trace in log /var/tmp/packstack/20160502-222422-qFIXpE/manifests/192.168.1.2_neutron.pp.log
Please check log file /var/tmp/packstack/20160502-222422-qFIXpE/openstack-setup.log for more information

Version-Release number of selected component (if applicable):
Mitaka, default components.

How reproducible:
100% for each.

Steps to Reproduce:
I summarized details in the following article (but it is in Japanese).
http://qiita.com/PitneS/items/1b1de2725220cbd071d5

Actual results:
described above.

Expected results:
described above.

Additional info:
nothing.

Comment 1 Chandan Kumar 2016-05-19 15:43:14 UTC
This bug is against a Version which has reached End of Life.
If it's still present in supported release (http://releases.openstack.org), please update Version and reopen.

Comment 2 Masanari Matsuoka 2016-05-19 23:08:33 UTC
Hi, thanks for replying. Sorry I just choosed the version as unspecified because this bug exists in the current release, Mitaka.
It seems that 'trunk' seems to mean the current version thus I fixed it to Trunk and reopen this.

Comment 3 Ivan Chavero 2016-05-31 08:45:18 UTC
This bug is against a Version which has reached End of Life.
If it's still present in supported release (http://releases.openstack.org), please update Version and reopen.

Comment 4 Masanari Matsuoka 2016-05-31 09:07:23 UTC
As I said above this is a bug report for Mitaka; I did just set the version unspecified or trunk because there were no choice for Mitaka. However now the version Mitaka added to the pulldown list so I reopened this because it still exists.

Comment 5 Christopher Brown 2017-06-18 07:21:09 UTC
Masanari-san,

Sorry but I'm just checking if this is still a problem and perhaps make some progress on it? Maybe work together on a fix?

Cheers

Comment 6 Masanari Matsuoka 2017-06-18 14:30:49 UTC
Dear Christopher-san,

Thank you for your response, but now I don't have the environment to reproduce this bug.
Within several months I will check if this bug is still reproducible or not, so please skip this bug until I will report.

Comment 7 Martin Magr 2018-07-17 12:23:16 UTC
It has been a year since then. Closing.