Only run relevant puppet apply tests

Associate an OS with each node defined in site.pp so that the puppet
apply test will only test nodes apprapriate to the node the test
is running on.

Fix remaining errors related to this test, and make it vote.

Also, start running the centos6 version regularly
(which is still non-voting).

Change-Id: I26722dce15589c982af5de36f8ccf42666d29f2b
This commit is contained in:
James E. Blair 2014-07-03 14:27:20 -07:00
parent b2a5702f9a
commit 38d62b3030
3 changed files with 74 additions and 6 deletions

View File

@ -28,6 +28,7 @@ node default {
#
# Long lived servers:
#
# Node-OS: precise
node 'review.openstack.org' {
class { 'openstack_project::review':
github_oauth_token => hiera('gerrit_github_token', 'XXX'),
@ -63,6 +64,7 @@ node 'review.openstack.org' {
}
}
# Node-OS: precise
node 'review-dev.openstack.org' {
class { 'openstack_project::review_dev':
github_oauth_token => hiera('gerrit_dev_github_token', 'XXX'),
@ -86,6 +88,7 @@ node 'review-dev.openstack.org' {
}
}
# Node-OS: precise
node 'jenkins.openstack.org' {
class { 'openstack_project::jenkins':
jenkins_jobs_password => hiera('jenkins_jobs_password', 'XXX'),
@ -100,6 +103,7 @@ node 'jenkins.openstack.org' {
}
}
# Node-OS: precise
node /^jenkins\d+\.openstack\.org$/ {
class { 'openstack_project::jenkins':
jenkins_jobs_password => hiera('jenkins_jobs_password', 'XXX'),
@ -114,6 +118,7 @@ node /^jenkins\d+\.openstack\.org$/ {
}
}
# Node-OS: precise
node 'jenkins-dev.openstack.org' {
class { 'openstack_project::jenkins_dev':
jenkins_ssh_private_key => hiera('jenkins_dev_ssh_private_key_contents', 'XXX'),
@ -130,6 +135,7 @@ node 'jenkins-dev.openstack.org' {
}
}
# Node-OS: precise
node 'cacti.openstack.org' {
include openstack_project::ssl_cert_check
class { 'openstack_project::cacti':
@ -137,12 +143,14 @@ node 'cacti.openstack.org' {
}
}
# Node-OS: precise
node 'community.openstack.org' {
class { 'openstack_project::community':
sysadmins => hiera('sysadmins', ['admin']),
}
}
# Node-OS: precise
node 'ci-puppetmaster.openstack.org' {
class { 'openstack_project::puppetmaster':
root_rsa_key => hiera('puppetmaster_root_rsa_key', 'XXX'),
@ -158,23 +166,26 @@ node 'ci-puppetmaster.openstack.org' {
}
}
# Node-OS: precise
node 'puppetmaster.openstack.org' {
class { 'openstack_project::puppetmaster':
root_rsa_key => hiera('puppetmaster_root_rsa_key'),
root_rsa_key => hiera('puppetmaster_root_rsa_key', 'XXX'),
salt => false,
update_slave => false,
sysadmins => hiera('sysadmins'),
sysadmins => hiera('sysadmins', ['admin']),
version => '3.4.',
ca_server => 'ci-puppetmaster.openstack.org',
}
}
# Node-OS: precise
node 'puppetdb.openstack.org' {
class { 'openstack_project::puppetdb':
sysadmins => hiera('sysadmins', ['admin']),
}
}
# Node-OS: precise
node 'graphite.openstack.org' {
class { 'openstack_project::graphite':
sysadmins => hiera('sysadmins', ['admin']),
@ -187,12 +198,14 @@ node 'graphite.openstack.org' {
}
}
# Node-OS: precise
node 'groups.openstack.org' {
class { 'openstack_project::groups':
sysadmins => hiera('sysadmins', ['admin']),
}
}
# Node-OS: precise
node 'groups-dev.openstack.org' {
class { 'openstack_project::groups_dev':
sysadmins => hiera('sysadmins', ['admin']),
@ -203,6 +216,7 @@ node 'groups-dev.openstack.org' {
}
}
# Node-OS: precise
node 'lists.openstack.org' {
class { 'openstack_project::lists':
listadmins => hiera('listadmins', ['admin']),
@ -210,6 +224,7 @@ node 'lists.openstack.org' {
}
}
# Node-OS: precise
node 'paste.openstack.org' {
class { 'openstack_project::paste':
db_host => hiera('paste_db_host', 'localhost'),
@ -218,12 +233,14 @@ node 'paste.openstack.org' {
}
}
# Node-OS: precise
node 'planet.openstack.org' {
class { 'openstack_project::planet':
sysadmins => hiera('sysadmins', ['admin']),
}
}
# Node-OS: precise
node 'eavesdrop.openstack.org' {
class { 'openstack_project::eavesdrop':
nickpass => hiera('openstack_meetbot_password', 'XXX'),
@ -242,6 +259,7 @@ node 'eavesdrop.openstack.org' {
}
}
# Node-OS: precise
node 'etherpad.openstack.org' {
class { 'openstack_project::etherpad':
ssl_cert_file_contents => hiera('etherpad_ssl_cert_file_contents', 'XXX'),
@ -254,6 +272,7 @@ node 'etherpad.openstack.org' {
}
}
# Node-OS: precise
node 'etherpad-dev.openstack.org' {
class { 'openstack_project::etherpad_dev':
mysql_host => hiera('etherpad-dev_db_host', 'localhost'),
@ -263,6 +282,7 @@ node 'etherpad-dev.openstack.org' {
}
}
# Node-OS: precise
node 'wiki.openstack.org' {
class { 'openstack_project::wiki':
mysql_root_password => hiera('wiki_db_password', 'XXX'),
@ -273,6 +293,7 @@ node 'wiki.openstack.org' {
}
}
# Node-OS: precise
node 'logstash.openstack.org' {
class { 'openstack_project::logstash':
sysadmins => hiera('sysadmins', ['admin']),
@ -310,6 +331,7 @@ node 'logstash.openstack.org' {
}
}
# Node-OS: precise
node /^logstash-worker\d+\.openstack\.org$/ {
class { 'openstack_project::logstash_worker':
sysadmins => hiera('sysadmins', ['admin']),
@ -318,6 +340,7 @@ node /^logstash-worker\d+\.openstack\.org$/ {
}
}
# Node-OS: precise
node /^elasticsearch0[1-7]\.openstack\.org$/ {
class { 'openstack_project::elasticsearch_node':
sysadmins => hiera('sysadmins', ['admin']),
@ -350,6 +373,7 @@ node /^elasticsearch0[1-7]\.openstack\.org$/ {
}
# A CentOS machine to load balance git access.
# Node-OS: centos6
node 'git.openstack.org' {
class { 'openstack_project::git':
sysadmins => hiera('sysadmins', ['admin']),
@ -372,6 +396,7 @@ node 'git.openstack.org' {
# CentOS machines to run cgit and git daemon. Will be
# load balanced by git.openstack.org.
# Node-OS: centos6
node /^git\d+\.openstack\.org$/ {
include openstack_project
class { 'openstack_project::git_backend':
@ -386,6 +411,7 @@ node /^git\d+\.openstack\.org$/ {
}
# A machine to run ODSREG in preparation for summits.
# Node-OS: precise
node 'summit.openstack.org' {
class { 'openstack_project::summit':
sysadmins => hiera('sysadmins', ['admin']),
@ -393,6 +419,7 @@ node 'summit.openstack.org' {
}
# A machine to run Storyboard
# Node-OS: precise
node 'storyboard.openstack.org' {
class { 'openstack_project::storyboard':
sysadmins => hiera('sysadmins', ['admin']),
@ -406,6 +433,7 @@ node 'storyboard.openstack.org' {
}
# A machine to serve static content.
# Node-OS: precise
node 'static.openstack.org' {
class { 'openstack_project::static':
sysadmins => hiera('sysadmins', ['admin']),
@ -413,6 +441,7 @@ node 'static.openstack.org' {
}
# A machine to serve various project status updates.
# Node-OS: precise
node 'status.openstack.org' {
class { 'openstack_project::status':
sysadmins => hiera('sysadmins', ['admin']),
@ -429,6 +458,7 @@ node 'status.openstack.org' {
}
}
# Node-OS: precise
node 'nodepool.openstack.org' {
class { 'openstack_project::nodepool_prod':
mysql_password => hiera('nodepool_mysql_password', 'XXX'),
@ -451,6 +481,7 @@ node 'nodepool.openstack.org' {
}
}
# Node-OS: precise
node 'zuul.openstack.org' {
class { 'openstack_project::zuul_prod':
gerrit_server => 'review.openstack.org',
@ -485,6 +516,7 @@ node 'zuul.openstack.org' {
}
}
# Node-OS: precise
node 'zm01.openstack.org' {
class { 'openstack_project::zuul_merger':
gearman_server => 'zuul.openstack.org',
@ -496,6 +528,7 @@ node 'zm01.openstack.org' {
}
}
# Node-OS: precise
node 'zm02.openstack.org' {
class { 'openstack_project::zuul_merger':
gearman_server => 'zuul.openstack.org',
@ -507,6 +540,7 @@ node 'zm02.openstack.org' {
}
}
# Node-OS: precise
node 'zuul-dev.openstack.org' {
class { 'openstack_project::zuul_dev':
gerrit_server => 'review-dev.openstack.org',
@ -530,6 +564,7 @@ node 'zuul-dev.openstack.org' {
}
}
# Node-OS: centos6
node 'pbx.openstack.org' {
class { 'openstack_project::pbx':
sysadmins => hiera('sysadmins', ['admin']),
@ -545,6 +580,7 @@ node 'pbx.openstack.org' {
}
}
# Node-OS: precise
# A backup machine. Don't run cron or puppet agent on it.
node /^ci-backup-.*\.openstack\.org$/ {
include openstack_project::backup_server
@ -554,6 +590,7 @@ node /^ci-backup-.*\.openstack\.org$/ {
# Jenkins slaves:
#
# Node-OS: centos6
node 'mirror26.slave.openstack.org' {
include openstack_project
class { 'openstack_project::mirror26_slave':
@ -562,6 +599,7 @@ node 'mirror26.slave.openstack.org' {
}
}
# Node-OS: precise
node 'mirror27.slave.openstack.org' {
include openstack_project
class { 'openstack_project::mirror27_slave':
@ -570,6 +608,7 @@ node 'mirror27.slave.openstack.org' {
}
}
# Node-OS: precise
node 'mirror33.slave.openstack.org' {
include openstack_project
class { 'openstack_project::mirror33_slave':
@ -578,6 +617,7 @@ node 'mirror33.slave.openstack.org' {
}
}
# Node-OS: precise
node 'proposal.slave.openstack.org' {
include openstack_project
class { 'openstack_project::proposal_slave':
@ -589,6 +629,7 @@ node 'proposal.slave.openstack.org' {
}
}
# Node-OS: precise
node 'pypi.slave.openstack.org' {
include openstack_project
class { 'openstack_project::pypi_slave':
@ -602,6 +643,7 @@ node 'pypi.slave.openstack.org' {
}
}
# Node-OS: precise
node 'salt-trigger.slave.openstack.org' {
include openstack_project
class { 'openstack_project::salt_trigger_slave':
@ -609,6 +651,7 @@ node 'salt-trigger.slave.openstack.org' {
}
}
# Node-OS: precise
node /^precise-dev\d+.*\.slave\.openstack\.org$/ {
include openstack_project
include openstack_project::puppet_cron
@ -618,6 +661,7 @@ node /^precise-dev\d+.*\.slave\.openstack\.org$/ {
}
}
# Node-OS: precise
node /^precisepy3k-dev\d+.*\.slave\.openstack\.org$/ {
include openstack_project
include openstack_project::puppet_cron
@ -629,6 +673,7 @@ node /^precisepy3k-dev\d+.*\.slave\.openstack\.org$/ {
}
}
# Node-OS: centos6
node /^centos6-dev\d+\.slave\.openstack\.org$/ {
include openstack_project
include openstack_project::puppet_cron
@ -638,6 +683,7 @@ node /^centos6-dev\d+\.slave\.openstack\.org$/ {
}
}
# Node-OS: fedora18
node /^fedora18-dev\d+\.slave\.openstack\.org$/ {
include openstack_project
include openstack_project::puppet_cron
@ -648,6 +694,7 @@ node /^fedora18-dev\d+\.slave\.openstack\.org$/ {
}
}
# Node-OS: precise
node 'openstackid-dev.openstack.org' {
class { 'openstack_project::openstackid_dev':
sysadmins => hiera('sysadmins', ['admin']),

View File

@ -656,8 +656,6 @@ jobs:
voting: false
- name: gate-puppet-vswitch-puppet-syntax
voting: false
- name: gate-config-puppet-apply-precise
voting: false
- name: gate-config-puppet-apply-centos6
voting: false
- name: gate-tomograph-python33
@ -2601,6 +2599,7 @@ projects:
- gate-config-puppet-lint
- gate-config-puppet-syntax
- gate-config-puppet-apply-precise
- gate-config-puppet-apply-centos6
- gate-config-irc-access
- gate-ci-docs
- check-projects-yaml-alphabetized
@ -2611,13 +2610,13 @@ projects:
- gate-config-puppet-lint
- gate-config-puppet-syntax
- gate-config-puppet-apply-precise
- gate-config-puppet-apply-centos6
- gate-config-irc-access
- check-projects-yaml-alphabetized
- check-projects-yaml-upstream
post:
- ci-docs
experimental:
- gate-config-puppet-apply-centos6
- experimental-swift-logs-config-pep8
- name: openstack-infra/devstack-gate

24
test.sh
View File

@ -12,10 +12,32 @@ sed -i -e 's/^[^][:space:]$]/#&/g' applytest/puppetapplytest*
sed -i -e 's@hiera(.\([^.]*\).,\([^)]*\))@\2@' applytest/puppetapplytest*
mv applytest/*00 applytest/head # These are the top-level variables defined in site.pp
if [ `lsb_release -i -s` == 'CentOS' ]; then
if [ `lsb_release -r -s` =~ '6' ]; then
CODENAME='centos6'
fi
elif [ `lsb_release -i -s` == 'Ubuntu' ]; then
CODENAME=`lsb_release -c -s`
fi
FOUND=0
for f in `find applytest -name 'puppetapplytest*' -print` ; do
cat applytest/head $f > $f.final
if grep "Node-OS: $CODENAME" $f; then
cat applytest/head $f > $f.final
FOUND=1
fi
done
if [ $FOUND == "0" ]; then
echo "No hosts found for node type $CODENAME"
exit 1
fi
grep -v 127.0.1.1 /etc/hosts >/tmp/hosts
HOST=`echo $HOSTNAME |awk -F. '{ print $1 }'`
echo "127.0.1.1 $HOST.openstack.org $HOST" >> /tmp/hosts
sudo mv /tmp/hosts /etc/hosts
find applytest -name 'puppetapplytest*.final' -print0 | \
xargs -0 -P $(nproc) -n 1 -I filearg \
sudo puppet apply --modulepath=${MODULE_PATH} --noop --verbose --debug filearg > /dev/null