Update spec helper for zuul-cloner

Use zuul-cloner or a raw modules install to populate puppet module
dependencies during acceptance testing. Most of the scripting is placed
in system-config so that we don't repeat ourselves.
Spec_helper_acceptance.rb is responsible for making sure system-config
is up to date.

Cribbed from I0f63df75fd1a206af7452b239840fd466e6ec080

Change-Id: I81d669513a4f15dbf8879e05401605f94b2dc523
Depends-On: I517954d26409f2fbe96588f40f6f07316d85843d
Co-Authored-By: Monty Taylor <mordred@inaugust.com>
Co-Authored-By: Spencer Krum <nibz@spencerkrum.com>
Co-Authored-By: Colleen Murphy <colleen@gazlene.net>
This commit is contained in:
James E. Blair 2015-05-21 16:16:42 -07:00 committed by Spencer Krum
parent cdc03e1cc8
commit 314c714e34
1 changed files with 25 additions and 8 deletions

View File

@ -10,6 +10,7 @@ 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
@ -19,21 +20,37 @@ RSpec.configure do |c|
# 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'
# clean out any module cruft
shell('rm -fr /etc/puppet/modules/*')
zuul_ref = ENV['ZUUL_REF']
zuul_branch = ENV['ZUUL_BRANCH']
zuul_url = ENV['ZUUL_URL']
# install library modules from the forge
on host, puppet('module','install','puppetlabs-apache', '--version', '0.0.4'), { :acceptable_exit_codes => 0 }
# 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}"
end
# install puppet modules from git, use master, TODO: zuul-cloner this
shell('git clone https://git.openstack.org/openstack-infra/puppet-jenkins /etc/puppet/modules/jenkins')
shell('git clone https://git.openstack.org/openstack-infra/puppet-vcsrepo /etc/puppet/modules/vcsrepo')
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 => 'openstackci')
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