Bug 1045283 - packstack fails with puppet 3.4
Summary: packstack fails with puppet 3.4
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: RDO
Classification: Community
Component: openstack-puppet-modules
Version: unspecified
Hardware: Unspecified
OS: Unspecified
urgent
urgent
Target Milestone: ---
: ---
Assignee: Pádraig Brady
QA Contact: Nir Magnezi
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-12-20 04:34 UTC by Sunil Thaha
Modified: 2016-01-04 14:45 UTC (History)
8 users (show)

Fixed In Version: openstack-packstack-2013.2.1-0.25.dev936
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2013-12-20 16:37:19 UTC


Attachments (Terms of Use)
fix neutron dnsmasq install code (1.30 KB, patch)
2013-12-20 10:59 UTC, Pádraig Brady
no flags Details | Diff
fix clients install code (959 bytes, patch)
2013-12-20 11:53 UTC, Pádraig Brady
no flags Details | Diff

Description Sunil Thaha 2013-12-20 04:34:59 UTC
Running packstack --allinone results in the following error

~~~
ERROR : Error appeared during Puppet run: 192.168.129.92_neutron.pp
Error: Parameter name failed on Package[dnsmasq]: Name must be a String not Array at /var/tmp/packstack/f8898b9f91694fd9b66893e3bcaeaf61/modules/neutron/manifests/agents/dhcp.pp:64
You will find full trace in log /var/tmp/packstack/20131219-204306-9Z1oAx/manifests/192.168.129.92_neutron.pp.log
Please check log file /var/tmp/packstack/20131219-204306-9Z1oAx/openstack-setup.log for more information
~~~

Comment 1 Sunil Thaha 2013-12-20 05:49:52 UTC
It seems to me that this error is due to a recent change[1] in Puppet which enforces package name to be a String. 

[1] https://github.com/puppetlabs/puppet/commit/4b8214d57d2dbc9e1f0e39626fa8d9917244e775

Comment 2 Sunil Thaha 2013-12-20 06:24:10 UTC
To verify that it is the latest puppet that is due the latest puppet, I reverted back from puppet 3.4.0 on F19 to puppet-3.3.2-1.fc19.noarch and packstack runs fine.

Comment 3 Pádraig Brady 2013-12-20 10:05:20 UTC
Hi Sunil,

I confirmed that nothing changed in the RDO repos
in the last while to break this:

Working...

$ grep -E "(packstack|neutron|dnsmasq)" logs/rhel6/log/yum.log 
Dec 19 02:49:06 Installed: openstack-packstack-2013.2.1-0.17.dev876.el6.noarch
Dec 19 02:56:33 Installed: python-neutronclient-2.3.1-2.el6.noarch
Dec 19 02:58:40 Installed: dnsmasq-2.48-13.el6.x86_64
Dec 19 02:59:43 Installed: python-neutron-2013.2.1-1.el6.noarch
Dec 19 02:59:43 Installed: dnsmasq-utils-2.48-13.el6.x86_64
Dec 19 02:59:43 Installed: openstack-neutron-2013.2.1-1.el6.noarch
Dec 19 02:59:58 Installed: openstack-neutron-openvswitch-2013.2.1-1.el6.noarch

Broken...

$ grep -E "(packstack|neutron|dnsmasq)" logs/rhel6/log/yum.log 
Dec 19 20:55:54 Installed: openstack-packstack-2013.2.1-0.17.dev876.el6.noarch
Dec 19 21:03:39 Installed: python-neutronclient-2.3.1-2.el6.noarch
Dec 19 21:05:43 Installed: dnsmasq-2.48-13.el6.x86_64

Hence it must be something external, and yes puppet 3.4 was released yesterday:
http://yum.puppetlabs.com/fedora/f19/products/x86_64/

Comment 4 Alan Pevec 2013-12-20 10:48:33 UTC
I propose to remove puppetlabs repo from rdo-release and instead rely on "native" Puppet from distro.
Main motivation to use puppetlabs repo was when EPEL6 had obsolete Puppet 2.6 but now it has 2.7 which should be good enough.
F19 has Puppet 3.1 in stable and 3.3 in testing.

https://admin.fedoraproject.org/updates/puppet

But separate RDO CI against latest puppetlabs should be kept, it is useful as a pre-warning!

Comment 5 Pádraig Brady 2013-12-20 10:59:00 UTC
Created attachment 839521 [details]
fix neutron dnsmasq install code

Alan I agree mostly. But that would be a bigger change as it would change from puppet 3.3 back to 2.7. For now at least we'll fix the immediate issue.
How about this? I'll test it out internally.

Comment 6 Alan Pevec 2013-12-20 11:39:53 UTC
> ERROR : Error appeared during Puppet run: 192.168.129.92_neutron.pp
> Error: Parameter name failed on Package[dnsmasq]: Name must be a String not
> Array at
> /var/tmp/packstack/f8898b9f91694fd9b66893e3bcaeaf61/modules/neutron/
> manifests/agents/dhcp.pp:64

This is https://github.com/stackforge/puppet-neutron/blob/3c3d3d52ae0d1a655c7f1b09158ad7c924f80279/manifests/agents/dhcp.pp#L64
in the current version of packstack.

> Component: openstack-packstack → openstack-puppet-modules
Note that current packstack is not using standalone puppet modules rpm yet (should be fixed RSN that both openstack-foreman-installer and packstack use it).

Comment 7 Pádraig Brady 2013-12-20 11:53:47 UTC
Created attachment 839533 [details]
fix clients install code

We need this fix also in the clients install path

Comment 8 Euler 2013-12-20 16:09:18 UTC
After the patch fix clients install, I meet problem to install horizon. Could you please also fix it?

I make below change in file /usr/lib/python2.6/site-packages/packstack/puppet/templates/horizon.pp:

$horizonpackages = ["python-memcached", "python-netaddr"]
package { $horizonpackages:
    notify => Class["horizon"],
}

Thanks!

Comment 9 Pádraig Brady 2013-12-20 16:37:19 UTC
@Euler Thanks for pointing that out. Luckily that fix was also included in the version that has now passed CI testing.


Note You need to log in before you can comment on or make changes to this bug.