235 Commits

Author SHA1 Message Date
Spencer Krum
284749fb4d Print the node definition before apply test
This makes it easier to tell which node definition is being evaluated
Because xargs -P doesn't do bash functions, some of the apply_test has
been moved into test_puppet_apply.sh. All the test snippets and test
output is being recorded in files in tools/opt, then catted for the
user.

Change-Id: I4fb77f93f9e9a7216b62634438a11d8d297bdefe
2015-06-12 17:11:25 -07:00
Jenkins
447e75fa84 Merge "Generate machine-readable tree of change approvers" 2015-05-31 22:02:26 +00:00
Jeremy Stanley
7d2ceb6e79 Simplify nodepool diskimage logging
There's no need to create per-provider image update logs for
providers which only use diskimages of the same.

Change-Id: I06e5413ac9357587cd4aa7afa34414b0cc01c124
2015-05-27 00:07:33 +00:00
Jeremy Stanley
a3456782d4 Generate machine-readable tree of change approvers
* tools/who-approves.py: New script which, when run using
OpenStack's Gerrit server, builds JSON and YAML representations of
repos with information on the official owning project if any,
integration status, and groups with approve rights listing the
members of each along with their Gerrit preferred E-mail addresses
and usernames when available.

It was done as a demonstration to a representative of a foundation
member company who requested a list of the "core reviewers" for
official projects, optionally broken down by integrated vs. other.
I'm attempting to show that this data is already publicly available
and can be extracted/analyzed by anyone without needing to request
it.

Change-Id: I017d98e2a45d5082fce8f4eecb5e6f8633c02ac8
2015-05-16 11:15:19 +00:00
Monty Taylor
dc611ac010 Add SQL file for emergency rollback
It's a generated SQL file - but golly let's have some eyes on it for
real.

Change-Id: I887bc9117d82917be9ab10f121cc1c2d8411f433
2015-05-11 19:37:37 -04:00
Spencer Krum
9b66718b4f Add utility for inspecting puppet module versions
This attempts to determine what versions of which modules are
in place on a system. It can handle both branch and tag checkouts.
It assumes all modules are pulled from git.

Change-Id: Id4100e3c967506e7b244534115185eeeddaac74f
2015-05-07 15:39:14 -07:00
Monty Taylor
3815c906d4 Add script to split the secret hieradata file
Although this only needs to be done once, it's ugly enough of a task
that it should have a script, and that script should be reviewed.

The script can be run locally on a machine without a hieradata and it
will create a local directory with all of the keys and none of the data.

It will also print out the total mapping and a report on which keys are
duplicated across hosts after group de-duplication is taken in to
account.

Change-Id: Id0af46abb8f4167bd91e95cd7a6cd2e35e5b0a94
2015-05-07 15:20:08 -04:00
Ian Wienand
11b08498da Split diskimage-builder built images out
This is the second part of splitting out log files for image builds;
putting diskimage-builder logs into separate files.  They are added
with a special "dib" provider to keep them grouped.

Change-Id: I6406f63df2f625beee57d7ff9707bd3b4f3fc060
2015-05-04 01:40:18 +00:00
Clark Boylan
797feda87a Allow blank lines in node{} with apply test
The apply test does some really simple string manipulation to generate
puppet manifests based on our site.pp on the fly. Unfortunately the old
code assumed there would be no blank lines within a node{} definition.
This assumption is breaking as we work to decouple the
openstack_project::server contents from within openstack_project
manifests and move that into site.pp.

This is a relatively simple fix where we csplit nodes based on the
previous /^}$/ which ends the last node{} definition instead of
splitting on blank lines. Added some comments to make what the parsing
does a bit more clear.

Change-Id: I2cc7317ed90423d6f923c4303a76e091a0bc2ebb
2015-04-23 11:34:10 -07:00
Ian Wienand
3bafd2c691 Generate nodepool logging configuration
Generate a logging configuration template for nodepool that splits
image-build logs out into separate files.

A tool to generate and maintain this file based on the nodepool
configuration is added.

The logging configuration template this tool creates is added
alongside the main configuration.  This is passed to the deployment
puppet module via a parameter.

Change-Id: I4723c68e5c83b536560e0a8bd7b73e312b46fc02
Depends-on: Iec77fb62c353d09186140b23912caf02225a643b
2015-03-19 10:32:24 +11:00
Jenkins
9b0090e431 Merge "Update email_stats.py for the big tent" 2015-02-12 18:10:41 +00:00
Jenkins
ca37048c3f Merge "Revert "Puppet apply test creates puppet directory env"" 2015-02-11 00:45:08 +00:00
Jeremy Stanley
85f6bb9db8 Update email_stats.py for the big tent
Changes to the projects.yaml (nee programs.yaml) in the
openstack/governance repo to accommodate big tent terminology have
resulted in a need to similarly adjust the script interpreting it.
While at it, update the variable names within the script for
clarity.

Change-Id: Ie001901c33749aa41181a09e43576bf9d516b4e5
2015-02-11 00:05:12 +00:00
Jenkins
cef96469f1 Merge "Making the apply test easier to read" 2015-01-25 14:13:06 +00:00
Jeremy Stanley
35f642b68a Revert "Puppet apply test creates puppet directory env"
This reverts commit 3b563fb59e7dfb233d4d0a07117499ac04f4a6ce.

Do not approve until Ief6c8e9bf7d71ddc63dba484390124546f14b93a is
applied to new nodepool images.

Change-Id: Ia7422d4f8fe316cc37c1310def0e7a9e2f232d35
2014-12-12 19:09:31 +00:00
Jeremy Stanley
3b563fb59e Puppet apply test creates puppet directory env
Make /etc/puppet/environments/production/environment.conf so that
the apply test will find a default directory environment.

Change-Id: I062949d6c23545c40690edc39302095b0dec3c84
2014-12-12 16:08:02 +00:00
Spencer Krum
ed46e9303f Source modules.env from apply-test.sh
This causes apply-test.sh to get the list of puppet modules to do
integration test with from modules.env. Modules.env has been
refactored to have three lists of modules: Package modules(MODULES),
SOURCE_MODULES, and INTEGRATION_MODULES.

When PUPPET_INTEGRATION_TEST is not set, INTEGRATION_MODULES is
folded into SOURCE_MODULES.

In apply-test.sh, INTEGRATION_MODULES is sourced from modules.env
and some string/array manipulation is performed to pass each entry
to zuul-cloner.

Change-Id: I47302c5c7e8c41b985f16a05c4e9b8078ea867a3
2014-11-18 21:23:43 +00:00
Spencer Krum
ca76e0c8dd Making the apply test easier to read
--color=false remove ansi escapes
cping /etc/hiera.yaml /etc/puppet/hiera.yaml shuts up puppet
complaining that it doesn't have  hiera.yaml to read

Change-Id: Iea7222c66f2fcc1338bc7baffb572d1a1ab2ecd6
2014-11-17 07:49:52 +00:00
Ramy Asselin
1bf253f91b Split out jenkins module
Part of an effort to split most of puppet modules out of system-config:
http://specs.openstack.org/openstack-infra/infra-specs/specs/puppet-modules.html

Depends-On: https://review.openstack.org/#/c/131302/

Change-Id: I1f6588c46a53d83249de68be6c2b36ddb3c805cb
2014-11-13 13:26:44 -08:00
Mikhail S Medvedev
f27dc5fcd1 Split out kibana module
Part of an effort to split most of puppet modules out of system-config.

https://review.openstack.org/#/c/130619/ should land before this
commit can be merged.

Change-Id: I7720ad7d2b25816c63e971112a7a733bde52b7f3
2014-10-27 14:39:32 -05:00
Jenkins
5dba0f5637 Merge "Clean up bashate failures" 2014-10-20 18:35:44 +00:00
Anita Kuno
d616e1de6c Rename config => system-config in tools/
We are renaming openstack-infra/config to
openstack-infra/system-config. This patch addresses the one file
in the tools directory that needed editing.

Change-Id: Id078dc7031f833c6d1a58cddbcecf0666244c6a1
2014-10-17 15:04:52 -04:00
Jenkins
bb941b2026 Merge "Specify ATC contribution start/end in seconds" 2014-10-16 16:38:23 +00:00
Jenkins
2783a56a16 Merge "Allow a git ref to pin the governance repo" 2014-10-16 16:33:36 +00:00
Jenkins
4fbab1cd8c Merge "Ignore extra-atcs lines which look like comments" 2014-10-16 16:32:51 +00:00
Jenkins
6152ae07c6 Merge "Remove d-i-b tools" 2014-10-16 16:04:48 +00:00
Jenkins
f26d2847a8 Merge "Remove projects_alphabetized from tox.ini" 2014-10-07 23:23:32 +00:00
Jeremy Stanley
981ba7290d Specify ATC contribution start/end in seconds
Change-Id: Ic62b00782f1ef709ce6f7b14217d36f02e230d79
2014-10-05 19:10:05 +00:00
K Jonathan Harker
948aff1f02 Clean up bashate failures
Fix all of the bashate failures.  Also, bashate will install its negative
tests in its virtualenv, so we need to generate a list of files to pass to
bashate that excludes .tox/

Change-Id: I55559bf6137f705aec9a7f277928ad8d4cadc2ca
2014-09-30 12:40:59 -07:00
Steve Martinelli
8cf6e680f4 Remove projects_alphabetized from tox.ini
Since the split to project-config, there is no longer a need to
run 'tox' for projects_alphabetized, since those resources no
longer exist. Also removing the shell scripts that were running
the tests.

Change-Id: Ib7a762d872da9c5d945206807c405e7452b49638
2014-09-30 15:15:10 -04:00
Jeremy Stanley
58829de5bc Allow a git ref to pin the governance repo
Change-Id: I230c22fb83447b336eda14a7f10cf33e52e3d321
2014-09-26 16:28:53 +00:00
Jeremy Stanley
dfb806c896 Ignore extra-atcs lines which look like comments
Change-Id: I8054f4582ad93a5dd31a2d5de288250780ebbf3f
2014-09-26 16:27:53 +00:00
Ian Wienand
a88fed3c9e Remove d-i-b tools
These are ported into the new repo with change
I087a2396581bf4415c9676f70b4c739a62c84b23

Change-Id: I9378cef3555f29857a6869a273b3904c636bb7b0
2014-09-26 13:37:27 +10:00
Jenkins
e30f37376d Merge "Removes content split into project-config" 2014-09-26 00:45:16 +00:00
Monty Taylor
8387e739fe Add project-config to zuul cloner
Make sure that the puppet apply test gets the project-config repo.

Change-Id: I3a772e84a1bc6028caeabcc8e09a0942f44b8612
2014-09-25 15:58:51 -07:00
Anita Kuno
80a80a6a6b Removes content split into project-config
Content from the config repo was split into a new repo,
project-config. This patch deletes the moved content from the
config repo.

Change-Id: Ifa1ae2cb7c23ae48f388b7d57a4c0d0799ef1dc2
Story: 167
2014-09-25 14:12:51 -04:00
Jenkins
95080d8703 Merge "Add support for disk-image-builder in nodepool" 2014-09-19 21:35:55 +00:00
Monty Taylor
19e278dfb7 Add support for disk-image-builder in nodepool
In order to use disk-image-builder to build nodepool images, we need
a few things. First, we need additional debs to be installed for
disk-image-builder to work. Then we need the image elements themselves
to describe the images we want to create. Also, a few helper scripts
for locally working with the disk images have been included.

Tested with build-image.sh script; devstack-gate-trusty.qcow2 created
correctly

Change-Id: I539743147341dc5b387d103fecd3e9ff0f01fdfc
2014-09-17 12:25:01 -07:00
James E. Blair
a963d32efe Move puppetmaster_boostrap to tools dir
We don't really need both tools and utils directories.

Change-Id: I25509b436b721590225736b54cd0fbebbe2a6b14
2014-09-15 16:50:07 -07:00
James E. Blair
542e170b81 Keep environment for cloner in apply test sudo
The zuul cloner needs the ZUUL_* env vars when setting up projects
for the new apply integration test.

Also, add some more debugging to both versions of the test.

Change-Id: I486b19cecd034250068e4a59604e1e0ca90ed83d
2014-09-15 13:19:37 -07:00
James E. Blair
9d23185ac5 Add integration apply test
Make module installation conditional in install_modules.sh so that
we can specify that we _do not_ want it to install the modules
that will be participating in the integration test.

Add a variant of the apply test script (currently test.sh) that
uses zuul-cloner to check out the appropriate versions of modules
that are participating in the integration test.

Add jobs that run this to the experimental pipeline.

Change-Id: I16055cdd45f6e05aa8ebceb500c5709f265268df
2014-09-03 15:03:09 -07:00
Monty Taylor
764ee8c74f Delete select-mirror and all the args
It turns out that we pass a lot of args around simply for the
purpose of doing mirror selection. This goes away if everything
gets a mirror.

This change should only be merged after the parent change has
propagated to all puppeted slaves and updated nodepool images.

Co-Authored-By: Jeremy Stanley <fungi@yuggoth.org>
Change-Id: I4a721f6559d7160c8213268a8c1e35c667a67a4f
2014-08-06 02:04:43 +00:00
Jenkins
dcde93b7f1 Merge "Modernize ATCs script to Gerrit 2.8, programs.yaml" 2014-07-01 14:38:23 +00:00
Jenkins
db39a17c49 Merge "Make ATC lists sort E-mails with preferred first" 2014-07-01 14:36:24 +00:00
Jeremy Stanley
9b83466230 Combine infra/ci core/admin gerrit groups
This is the result of running:

    find modules/openstack_project/files/gerrit/acls/ -type f \
        -name "*.config" -exec ./tools/normalize_acl.py {} 6 \;

Change-Id: I7aa27b859529b2bc8a990d6272334222996cbbc4
2014-06-30 17:30:45 +00:00
Jeremy Stanley
3b70e55683 Add a script to normalize Gerrit ACLs
* tools/normalize_acl.py: Script which can perform one or more of a
list of normalizing transformations to an ACL file.

Change-Id: I063ab91b6e786eccaee61c669f0e840c7af6be14
2014-06-30 17:22:40 +00:00
Jeremy Stanley
19c0ee2d3c Modernize ATCs script to Gerrit 2.8, programs.yaml
* tools/atc/README: Simplify instructions to use mysqlclient
tab-separated-values stdout, and remove obsolete manual steps which
have been automated.

* tools/atc/email-stats.sh: The functionality this shell script
previously provided has now been translated to Python and folded
into the inner script.

* tools/atc/email_stats.py: Implement the old email-stats.sh outer
loop, make it possible to run in a virtualenv, and make previously
hard-coded constants into command-line parameters with sane and
dynamically-determined defaults. Update field order and contents to
cope with differences in Gerrit 2.8, use a proper YAML parser on the
programs.yaml which has also changed format since the previous run,
and adjust for the improved extra-atcs file format as well.

Change-Id: I2deef2e6766ff998190e66737e7cec9cdcd5459c
2014-06-26 02:35:29 +00:00
Jeremy Stanley
69e247d873 Make ATC lists sort E-mails with preferred first
* tools/atc/email-stats.py: Adjust the order in which Gerrit E-mail
addresses are returned so that the one listed as the preferred
address is sorted to the beginning of the set.

Change-Id: I95b5817ada58f4059df4f5c0b406183f1c1e5b74
2014-06-24 20:37:40 +00:00
Jeremy Stanley
876ba7a23b ATC listing script is importable
* tools/atc/email_stats.py: Move procedural code out of the global
scope to make this file safely importable, and clean up a couple of
unused variables flake8 noticed in the newly importable main
codeblock.

Change-Id: I1a29c84e067eea875ba57a16196723f65f60ff01
2014-06-24 19:38:10 +00:00
Jeremy Stanley
1c608c8143 Rename ATC listing script
Rename tools/atc/email-stats.py to tools/atc/email_stats.py in
preparation for making it an importable module. This is being
separated from the subsequent change to make it more reviewable.

Change-Id: I1907de0715c96f54edb44910746fbb24a5ab8665
2014-06-24 19:38:03 +00:00