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

View File

@ -656,8 +656,6 @@ jobs:
voting: false voting: false
- name: gate-puppet-vswitch-puppet-syntax - name: gate-puppet-vswitch-puppet-syntax
voting: false voting: false
- name: gate-config-puppet-apply-precise
voting: false
- name: gate-config-puppet-apply-centos6 - name: gate-config-puppet-apply-centos6
voting: false voting: false
- name: gate-tomograph-python33 - name: gate-tomograph-python33
@ -2601,6 +2599,7 @@ projects:
- gate-config-puppet-lint - gate-config-puppet-lint
- gate-config-puppet-syntax - gate-config-puppet-syntax
- gate-config-puppet-apply-precise - gate-config-puppet-apply-precise
- gate-config-puppet-apply-centos6
- gate-config-irc-access - gate-config-irc-access
- gate-ci-docs - gate-ci-docs
- check-projects-yaml-alphabetized - check-projects-yaml-alphabetized
@ -2611,13 +2610,13 @@ projects:
- gate-config-puppet-lint - gate-config-puppet-lint
- gate-config-puppet-syntax - gate-config-puppet-syntax
- gate-config-puppet-apply-precise - gate-config-puppet-apply-precise
- gate-config-puppet-apply-centos6
- gate-config-irc-access - gate-config-irc-access
- check-projects-yaml-alphabetized - check-projects-yaml-alphabetized
- check-projects-yaml-upstream - check-projects-yaml-upstream
post: post:
- ci-docs - ci-docs
experimental: experimental:
- gate-config-puppet-apply-centos6
- experimental-swift-logs-config-pep8 - experimental-swift-logs-config-pep8
- name: openstack-infra/devstack-gate - 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* sed -i -e 's@hiera(.\([^.]*\).,\([^)]*\))@\2@' applytest/puppetapplytest*
mv applytest/*00 applytest/head # These are the top-level variables defined in site.pp 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 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 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 | \ find applytest -name 'puppetapplytest*.final' -print0 | \
xargs -0 -P $(nproc) -n 1 -I filearg \ xargs -0 -P $(nproc) -n 1 -I filearg \
sudo puppet apply --modulepath=${MODULE_PATH} --noop --verbose --debug filearg > /dev/null sudo puppet apply --modulepath=${MODULE_PATH} --noop --verbose --debug filearg > /dev/null