Bug 1316856

Summary: packstack fails to configure ovs bridge for CentOS
Product: [Community] RDO Reporter: Ihar Hrachyshka <ihrachys>
Component: openstack-packstackAssignee: Martin Magr <mmagr>
Status: CLOSED WORKSFORME QA Contact: Shai Revivo <srevivo>
Severity: urgent Docs Contact:
Priority: unspecified    
Version: trunkCC: andrew, aortega, chris.brown, derekh, ekuris, mmagr, srevivo, vimartin
Target Milestone: ---   
Target Release: Liberty   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-06-22 16:16:08 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:
Attachments:
Description Flags
neutron puppet failure log
none
openstack-setup.log none

Description Ihar Hrachyshka 2016-03-11 10:16:34 UTC
Created attachment 1135190 [details]
neutron puppet failure log

Description of problem:

Packstack fails to install neutron when instructed to configure an external bridge


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

[vagrant@centos-7 ~]$ rpm -qi openstack-packstack
Name        : openstack-packstack
Version     : 8.0.0
Release     : 0.20160303124552.0476b9b.el7.centos
...
[vagrant@centos-7 ~]$ rpm -qi openstack-puppet-modules
Name        : openstack-puppet-modules
Epoch       : 1
Version     : 8.0.0a0
Release     : 0.20160304203011.7dc7e93.el7.centos
...
[vagrant@centos-7 ~]$ cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core) 


How reproducible:
Always.

Steps to Reproduce:
packstack --allinone --provision-demo=n --os-neutron-ovs-bridge-mappings=extnet:br-ex --os-neutron-ovs-bridge-interfaces=br-ex:eth0

Actual results:
10.211.55.97_neutron.pp:                          [ ERROR ]
Applying Puppet manifests                         [ ERROR ]

ERROR : Error appeared during Puppet run: 10.211.55.97_neutron.pp
Error: /Stage[main]/Neutron::Agents::Ml2::Ovs/Neutron::Plugins::Ovs::Port[br-ex:eth0]/Vs_port[eth0]: Could not evaluate: undefined method `sub' for ["eth0"]:Array


Expected results:
Installation succeeds. ifcfg file is present. External connectivity works.

Comment 1 Ihar Hrachyshka 2016-03-11 10:17:14 UTC
Created attachment 1135191 [details]
openstack-setup.log

Comment 2 Ihar Hrachyshka 2016-03-11 10:34:22 UTC
Yeah, and unless it's not obvious, removing --os-neutron-ovs-bridge-interfaces=br-ex:eth0 argument helps to proceed.

Comment 3 Martin Magr 2016-03-11 11:31:15 UTC
This is a bug in puppet-vswitch module. Parameter "interface" should not "array_matching => all" [1] or it should be handled in [2].

[1] https://github.com/openstack/puppet-vswitch/blob/master/lib/puppet/type/vs_port.rb#L20
[2] https://github.com/openstack/puppet-vswitch/blob/master/lib/puppet/provider/vs_port/ovs_redhat.rb#L143

Comment 4 Martin Magr 2016-03-11 13:38:47 UTC
https://github.com/openstack/puppet-vswitch/blob/master/lib/puppet/provider/vs_port/ovs_redhat.rb has to be rewritten. On several places in the source code it is not expected that @resource[:interface] will be array, but using "array_matching => all" means that it will be always array.

Comment 6 Eran Kuris 2016-08-02 13:23:13 UTC
it is  relevant also on rhel 7.2 :
el7ostpuma53 yum.repos.d]# openstack-packstack-8.0.0-0.20160725225443.5ab08f3.1.e
-bash: openstack-packstack-rpm -qa |grep packstack found
openstack-packstack-puppet-8.0.0-0.20160725225443.5ab08f3.1.el7ost.noarch
openstack-packstack-8.0.0-0.20160725225443.5ab08f3.1.el7ost.noarch
[root@puma53 yum.repos.d]# rpm -qa |grep rhel
libreport-rhel-2.1.11-31.el7.x86_64
[root@puma53 yum.repos.d]# uname -a
Linux controller1 3.10.0-327.el7.x86_64 #1 SMP Thu Oct 29 17:29:29

Comment 7 Victoria Martinez de la Cruz 2016-09-24 00:25:21 UTC
Couldn't reproduce this on CentOS 7.1 with latest Neutron Mitaka packages.

Precisely, Neutron packages are the following

Name        : openstack-neutron-bgp-dragent
Arch        : noarch
Epoch       : 1
Version     : 8.1.2
Release     : 1.el7
Size        : 8.8 k
Repo        : centos-openstack-mitaka/x86_64
Summary     : Neutron BGP Dynamic Routing agent
URL         : http://launchpad.net/neutron/
License     : ASL 2.0
Description : Neutron provides an API to dynamically request and configure virtual
            : networks.
            : 
            : This package contains the Neutron BGP Dynamic Routing agent that will host
            : different BGP speaking drivers and makes the required BGP peering session/s for
            : Neutron.

Name        : openstack-neutron-fwaas
Arch        : noarch
Epoch       : 1
Version     : 8.0.0
Release     : 3.el7
Size        : 8.2 k
Repo        : centos-openstack-mitaka/x86_64
Summary     : Openstack Networking FWaaS plugin
URL         : http://launchpad.net/neutron/
License     : ASL 2.0
Description : This is a FWaaS service plugin for Openstack Neutron (Networking) service.

Name        : openstack-neutron-lbaas
Arch        : noarch
Epoch       : 1
Version     : 8.0.0
Release     : 1.el7
Size        : 15 k
Repo        : centos-openstack-mitaka/x86_64
Summary     : Openstack Networking LBaaS plugin
URL         : http://launchpad.net/neutron/
License     : ASL 2.0
Description : This is a LBaaS service plugin for Openstack Neutron (Networking) service.

Name        : openstack-neutron-linuxbridge
Arch        : noarch
Epoch       : 1
Version     : 8.1.2
Release     : 1.el7
Size        : 13 k
Repo        : centos-openstack-mitaka/x86_64
Summary     : Neutron Linuxbridge agent
URL         : http://launchpad.net/neutron/
License     : ASL 2.0
Description : Neutron provides an API to dynamically request and configure virtual
            : networks.
            : 
            : This package contains the Neutron agent that implements virtual
            : networks using VLAN or VXLAN using Linuxbridge technology.

Name        : openstack-neutron-macvtap-agent
Arch        : noarch
Epoch       : 1
Version     : 8.1.2
Release     : 1.el7
Size        : 8.8 k
Repo        : centos-openstack-mitaka/x86_64
Summary     : Neutron macvtap agent
URL         : http://launchpad.net/neutron/
License     : ASL 2.0
Description : Neutron provides an API to dynamically request and configure virtual
            : networks.
            : 
            : This package contains the Neutron agent that implements
            : macvtap attachments for libvirt qemu/kvm instances.

Name        : openstack-neutron-rpc-server
Arch        : noarch
Epoch       : 1
Version     : 8.1.2
Release     : 1.el7
Size        : 8.1 k
Repo        : centos-openstack-mitaka/x86_64
Summary     : Neutron (RPC only) Server
URL         : http://launchpad.net/neutron/
License     : ASL 2.0
Description : Neutron provides an API to dynamically request and configure virtual
            : networks.
            : 
            : This package contains an alternative Neutron server that handles AMQP RPC
            : workload only.

Name        : openstack-neutron-sriov-nic-agent
Arch        : noarch
Epoch       : 1
Version     : 8.1.2
Release     : 1.el7
Size        : 11 k
Repo        : centos-openstack-mitaka/x86_64
Summary     : Neutron SR-IOV NIC agent
URL         : http://launchpad.net/neutron/
License     : ASL 2.0
Description : Neutron allows to run virtual instances using SR-IOV NIC hardware
            : 
            : This package contains the Neutron agent to support advanced features of
            : SR-IOV network cards.

Name        : openstack-neutron-vpnaas
Arch        : noarch
Epoch       : 1
Version     : 8.0.0
Release     : 1.el7
Size        : 12 k
Repo        : centos-openstack-mitaka/x86_64
Summary     : Openstack Networking VPNaaS plugin
URL         : http://launchpad.net/neutron/
License     : ASL 2.0
Description : This is a VPNaaS service plugin for Openstack Neutron (Networking) service.

Name        : openstack-neutron-vyatta-agent
Arch        : noarch
Epoch       : 1
Version     : 8.0.0
Release     : 1.el7
Size        : 8.5 k
Repo        : centos-openstack-mitaka/x86_64
Summary     : Neutron VPNaaS Vyatta agent
URL         : http://launchpad.net/neutron/
License     : ASL 2.0
Description : This is a VPNaaS service plugin for Openstack Neutron (Networking) service.