puppet-openstackci/spec/spec_helper_acceptance.rb
Colleen Murphy 4fcbc8bf7c Fix beaker-rspec tests
The puppet-openstackci beaker tests have been failing for all the puppet
modules since they began running on Ubuntu Xenial nodes. This was
because there was no Xenial-specific nodeset file for beaker to run and
it was simply failing upon being unable to find the file.

This patch adds the ubuntu-xenial nodeset. Further, it forgoes the
install_puppet function because it attempts to install puppet 3 from the
puppetlabs apt repo, which does not support Xenial. Because we're
no longer using the install_puppet function, we also need to set default
values for the host object so that we can access things like
host['distmoduledir']. Finally, we add the libffi-dev package since the
keyring pip package requires it to build and it does not seem to be in
our Xenial images.

Change-Id: I8cc44e78116d6a7c8406e6c03756acb63c70834f
2017-03-19 16:17:22 +01:00

62 lines
2.1 KiB
Ruby

require 'beaker-rspec'
hosts.each do |host|
# puppet 3 isn't available from apt.puppetlabs.com so install it from the Xenial repos
on host, "which apt-get && apt-get install puppet -y", { :acceptable_exit_codes => [0,1] }
on host, "which yum && yum install puppet -y", { :acceptable_exit_codes => [0,1] }
add_platform_foss_defaults(host, 'unix')
on host, "mkdir -p #{host['distmoduledir']}"
end
RSpec.configure do |c|
# Project root
proj_root = File.expand_path(File.join(File.dirname(__FILE__), '..'))
modname = JSON.parse(open('metadata.json').read)['name'].split('-')[1]
# Readable test descriptions
c.formatter = :documentation
# Configure all nodes in nodeset
c.before :suite do
# Install module and dependencies
hosts.each do |host|
# Clean out any module cruft
shell('rm -fr /etc/puppet/modules/*')
# install git
install_package host, 'git'
zuul_ref = ENV['ZUUL_REF']
zuul_branch = ENV['ZUUL_BRANCH']
zuul_url = ENV['ZUUL_URL']
# Install dependent modules via git or zuul
r = on host, "test -e /usr/zuul-env/bin/zuul-cloner", { :acceptable_exit_codes => [0,1] }
repo = 'openstack-infra/system-config'
if r.exit_code == 0
zuul_clone_cmd = '/usr/zuul-env/bin/zuul-cloner '
zuul_clone_cmd += '--cache-dir /opt/git '
zuul_clone_cmd += "--zuul-ref #{zuul_ref} "
zuul_clone_cmd += "--zuul-branch #{zuul_branch} "
zuul_clone_cmd += "--zuul-url #{zuul_url} "
zuul_clone_cmd += "git://git.openstack.org #{repo}"
on host, zuul_clone_cmd
else
on host, "git clone https://git.openstack.org/#{repo} #{repo}"
end
on host, "ZUUL_REF=#{zuul_ref} ZUUL_BRANCH=#{zuul_branch} ZUUL_URL=#{zuul_url} bash #{repo}/tools/install_modules_acceptance.sh"
on host, "rm -fr /etc/puppet/modules/#{modname}"
# Install the module being tested
puppet_module_install(:source => proj_root, :module_name => modname)
on host, "rm -fr #{repo}"
# List modules installed to help with debugging
on hosts[0], puppet('module','list'), { :acceptable_exit_codes => 0 }
end
end
end