While rare, it _is_ possible for changes to be in a merged state in
Gerrit while lacking a submitted datestamp. For example,
https://review.openstack.org/274113 was merged in a strange way that
left it with no record of merge submission. We had fallback error
handling in owners.py to report this condition, but neglected an
exception path in the previous implementation which would cause the
script to bail early rather than falling through to that error
handler. Now it should use the submitted date if one is present, and
report an explicit warning (including change and owner IDs) for any
where it is not.
Change-Id: I1a40959fdd14dfef720c32e3c87ff5bbde7432df
With the recent upgrade to Gerrit 2.11, changes in its database
schema require updates to our "ATC" generator tools. However, the
REST API in 2.11 is complete enough that it can provide all the
required data, so replace the old MySQL query and SSH API based
tooling which required database access with something simpler to
run.
This new implementation retains the data model of its predecessor
(in other words, it tracks "owners" of merged changes in Gerrit as a
best-effort proxy for identifying contributors who are also
foundation individual members). The new script should be extensible
enough that we can further change this model at a later time, with
consensus from the technical committee. Further, unlike or earlier
method, anyone with a Gerrit account can now generate technical
election rolls, contact lists for Summit registration discount code
mail merges, and so on.
Change-Id: I6df798fc9e7fc4ff59972aff39c2e37f8c28d776
Signed-off-by: Jeremy Stanley <fungi@yuggoth.org>
It is obviously missing "python" which makes it not possible to run on
its own. It works with tox because tox.ini explicitly invokes it with
"python {toxinidir}/tools/sorted_modules_env.py".
Change-Id: I6eab942660d69eacda95572c7d2077687087b7c7
Add a script for integration testing with
openstack-infra/logstash-filters and refactor the apply-test script to
leverage much of the prep work done there.
Also add some needed parameters to install arbitrary versions of the
logstash-filters repo.
Change-Id: Ifcc7fb13c4fb21986e33327487c739966e4bb107
While it's hopefully not useful for much longer, this is the script that
safely cleans FIPs from nodepool clouds that use neutron FIPs.
Change-Id: I6f6f2c5f119a40060f46ea1f244a65601f8b7bb9
More recent versions of Gerrit (somewhere between the 2.8 we were
running and the 2.11 to which we upgraded) switched some common
groups to be virtual routines, for example the Registered Users
group, so they no longer appear in the groups list. However we
should also not be counting members of these virtual groups as
approvers anyway (even though in the case of the sandbox repo they
are), so filter them out of the assembly loop in who-approves.py to
prevent it from breaking when it encounters them in an ACL.
Change-Id: Ibb73b68e6338cd2fe2e18c09993d6e02b03c312a
A useful step when debugging image uploads is do to it directly using
shade. This is a script to facilitate that.
Change-Id: I8ae44cb5bf1eb90180afee1dac70fbbc4be4a639
We can use textwrap to break up the ridiculously long lines in the
logging configuration (with less images, it's less ridiculous than it
used to be, but it's still easier to parse). Only trick is to put
spaces between the arguments to give it somewhere to split (and better
for readability) and stop it splitting on words/hyphens.
Change-Id: I04840e98b0564dc531b74b96e8595f9d18b284af
Running puppet remotely in an ad-hoc manner on disabled hosts is mildly
complex. To facilitate, have a wide open playbook that we always run
with --limit - and a shell script to help us type less.
Change-Id: I629072dcada38d0465d351b1b99828466405372f
This script makes management of 100+ dns names more realistic
It only outputs commands to rackdns, it does not run them
Change-Id: I48ecaca79eb1cd274f102da6eb3592a292b7a5fb
Now that the nodepool builder is running as a separate daemon it needs
its own log config file. Move the auto generated nodepool logging config
stuff over to the new builder logging config as we can manage the main
daemon's logging config by hand trivially now.
Depends-On: I013835621dfbc311a0f7bd7c957b7d4656dfa628
Change-Id: Ic1da30eab949876e5bd6c88e83979bdedc6dd50a
Gerrit is missing a feature to remove Gerrit groups. This is a
helper script to remove the group from the database.
Reference:
https://code.google.com/p/gerrit/issues/detail?id=44
Change-Id: I1cb6cf852622fa5697c64666b132ac2205120595
The mail merger for summit invites includes Date and Message-ID
headers, because Crocker said so in 1977 that's why.
Change-Id: I2105fe4cd04b7b2042c9e32888cb1f094697d7bf
This script is very specific to the current state of our
Gerrit 2.8 DB and repository. I'm not sure that it's useful
for anyone else or in any other situation.
Change-Id: Ifb8303b2a2841e2de1ee9f357db4b8341122655d
This removes centos6 support from install_puppet.sh because centos6 is
no longer supported so this code is dead.
Change-Id: If59f10a6a9c576b1299b0e49a2e82d2a1a1d7ecf
In case we need to rollback from 2.11 to 2.8, this is a stab at
fixing things. It doesn't seem like there are as many relevant
data transformations from 2.10 to 2.11.
Not including table drops, because having extra tables is not
destructive.
Change-Id: I96a638eeeb832fcc697cde7d94d981b5cbca6234
Manage nodepool configurations using the common-ci solution
in puppet-openstackci
Remove nodepool.yaml.erb from this repo as openstackci::nodepool
will pull it in from project-config/nodepool/nodepool.yaml
Remove the tox nodepool environment and test dependency as it
has been migrated to project-config
The nodepool logging template file and associated tool that generates the file
will remain in this repo. In the short term, updates to nodepool.yaml in
project-config repo may require a related change in this repo to update the logging
configuration. In the longer term, nodepool will be updated to automatically
log image creations without needing a customized logging configuration.
Depends-on: I89207d100eb4b6bbb502a6ed38831f49e4b29096
Depends-on: I473a1b78acdb035eb379394a7ed5f771434dc942
Depends-on: I6b01ab7260a41927fff34b9b81b631ea2c933f22
Change-Id: I2b45a7145805368b1598d3a3e8a94f0e4eb8cf2d
This is a partial revert of 05c16e2e that removes special casing around
the openstack-health/openstack_health repo.
Change-Id: I832f1b764a34c128d737a467fa568cc064226c5a
This used to live in puppet-phabricator but as it has nothing to
do with the puppet module, it is being moved here.
Change-Id: I17d7cbcd3f7bb0147305bcd1d2976dd7c409fec8
Implements: spec maniphest migration
This commit adds the puppet config for running an openstack-health
api instance. It'll use the subunit2sql trove db node as a data
source. The puppet-openstack-health module is incorrectly named which
is causing issues, a workaround to rename the repo is added to
install_modules.sh. This is a temporary measure until the gerrit
rename is completed. There is also a workaround in the apply test.
Change-Id: I7e6d9664d087e7bdc21d92624991d0d5f86c0c99
Currently, all hiera calls need to have default values in order for the
apply test to work. This is done by using sed to replace the hiera call
with the default value in the call, i.e. 'hiera("foo", "bar")' is
replaced with '"bar"'.
This adds another sed command that replaces a hiera call that has no
default value specified with the name of the key appended with
NoDefault, i.e. 'hiera("foo")' will become '"fooNoDefault"'.
By making the hiera default values optional, we no longer need to pass
in a default value to every hiera call, and so we can remove the
placeholder XXX that were previously needed by the apply tests but not
by puppet itself.
Change-Id: Ibdeb0c2e49245ea05116e8043936d5b012f46666
In I54db78b028017500b58693ec717c23eaf6a220b6 I added some handy values
that are intendend to go into public log files to help you establish
when an image-build has started or stopped (for example, [1] is
currently ~300MiB of looping build log data and it's really hard to
pick out where things are going wrong).
The problem is, I put them in at DEBUG level and the image loggers are
only set to INFO level. So the messages aren't making it into the
public logfiles as hoped, and thus not available to help people
diagnose issues with their builds.
I think the best idea is to turn these up to DEBUG level to capture
these, and any other low-level messages from this logger, in the
public output.
[1] http://nodepool.openstack.org/image.log
Change-Id: Ib9ac5fc81ccef73f1b1e20b8381bdd1afac4bcae
The Infra Cloud project uses a different set of puppet modules than the
standard infra ones in order to avoid possible dependency conflicts[1].
Currently the puppet-apply test hard-codes the entry-point puppet
manifest and module list. This patch makes the manifest, currently
manifests/site.pp, and the module file, currently modules.env,
configurable, so that we can add a new job to test just these nodes
with the correct modules installed.
[1] https://review.openstack.org/#/c/209617/
Change-Id: I744123befef0bf27a1eb2a79f5d814e0cefe81f5