67 Commits

Author SHA1 Message Date
Monty Taylor
383c023b15 Add support for initial project creation.
If replicate_local is set, this will ensure that /var/lib/git is created,
and that projects listed in the projects.config have repos there.

Additionally, it creates a new config file, projects.config which is a
yaml file listing all of the projects and various operational semantics about
them, such as whether or not they should have pull requests closed and whether
or not they track any remotes. This replaces remotes.config and github.config.

Moving forward, there is no reason to not have this script be able to
do github api calls to create the github repo if it's not there, set the
github project description, gerrit api calls to create the project in gerrit,
and initial project permissions templates.

Change-Id: I1ad803b0aa5f7386206d0c3f4cd858017242fe64
2012-08-02 15:49:02 +00:00
Monty Taylor
0b921968d1 Added an option to toggle replication choices.
New options for github replication and local replication.

Change-Id: I06a6ca5347232ec80e26f6116742ab0007435ffe
2012-07-29 13:04:17 -05:00
Monty Taylor
d20c4523bf Broke launchpad user sync into its own class.
Additionally, the file installation of the scripts wasn't working,
so the sync script wasn't actually getting installed. This moves
the underlying scripts to be installed by the gerrit module,
because it owns /usr/local/gerrit/scripts, and then manages the
gerrit hooks which call those scripts in the openstack_project
class, since that's where the config choice to enable those
functions really should live.

Change-Id: I54fb9edd9fb0c634d8d9de4e57f9ddad6af63a99
2012-07-29 13:04:17 -05:00
Monty Taylor
c510a30e1e Modified gerrit to use MySQL and Apache modules.
Change-Id: I82ff3c46438f8db126fa6a881efa09c90b1906e4
2012-07-27 17:37:37 +00:00
James E. Blair
67a085ba7d Set replication authGroup to Anonymous.
Set the replication authGroup for github to Anonymous Users.

Enable the "mirror" option which "will remove remote branches that absent
locally or invisible to the replication (i.e. read access denied via
authGroup option)."

Disable replicatePermissions which will cause permissions-only projects and
the refs/meta/config branch not to be replicated.  I'm ambivalent about
refs/meta/config, but disabling permissions-only projects will remove
the periodic errors we get when trying to replicate All-Projects to github.

Change-Id: I9c302b68e0a213d35683d7105341788923c5770a
2012-07-25 09:26:03 -07:00
Monty Taylor
5609c50cd5 Move OpenStack branding and launchpad integration.
Launchpad integration and the OpenStack branding files are really
more about the OpenStack specific install of Gerrit than they are
about any installation of gerrit. Both of these are moved to the
openstack_project module.

Change-Id: I8b281aa5cb751a8023c2101c45146a3aca5f90f3
2012-07-23 14:46:55 -05:00
Monty Taylor
8f1adc171f Split github into its own module.
TODO: Add another script that sets the project description. Add the project
description to the config hash.

Change-Id: If4584b2a1e55e6eb912e1f557e31de216d49a516
2012-07-23 11:42:12 -05:00
Monty Taylor
e3e9aaba10 Split gerritbot into its own module.
Change-Id: Ia9034d87321624006ccf447b058ee828a97fcc7a
2012-07-23 10:33:59 -05:00
Clark Boylan
0d50460f02 Update DocImpact notifier with new dest addr.
The openstack documentation team has a new mailing list in part to
accomodate the DocImpact notifier. Update the destination address in
the notify_doc_impact script to send mail to
openstack-docs@lists.openstack.org.

Change-Id: I041194298a18e5f710c6e3bd7221dee2099733e8
2012-07-11 16:16:58 -07:00
Monty Taylor
ae37e2affd Restrict replication to github.
We should only replicate to github things that people can see anyway.

Change-Id: I3a1aa93cc805d64a1c04ea963df54223c06f5837
2012-07-07 09:44:57 -05:00
Jenkins
95fef53864 Merge "Use apache to serve out http git repos." 2012-07-07 14:41:16 +00:00
James E. Blair
5efb744f30 Add gerrit-verification-status-plugin project.
Change-Id: Idc43f0716d152f623459369cab84d6166e140a88
2012-07-06 13:11:57 -07:00
Monty Taylor
0fbbe34dfc Use apache to serve out http git repos.
Assumes that every project in gerrit has a corresponding repo in
/var/lib/git that can be replicated to. That's probably a one-time offline
creation, followed by an additional step in the adding a project docs.

Change-Id: If9b987717550d5b251366c1408d949c55e64828a
2012-07-06 14:06:21 -05:00
Jenkins
7bbb1f38f3 Merge "Fix gerritbot init script" 2012-07-06 15:35:27 +00:00
Andrew Hutchings
39f1fe8abf Fix gerritbot init script
Path to the executable was incorrect

Change-Id: I990a7029f0ce84b308dc60ddbae8003f00106a81
2012-07-06 16:24:59 +01:00
Andrew Hutchings
7b96c527d9 Fix gerritbot projects
heat is in heat-api/heat

Verify trigger is for -2 in the code, not -1

Heat's repo is in heat-api instead of stackforge, so Gerritbot needs
to monitor that

Change-Id: I0526a32489c9af67198fcebeebdf3271c5751c49
2012-07-06 16:10:59 +01:00
Clark Boylan
bc2448199a Allow GerritBot to talk on multiple channels.
Fixes bug #1020987

Update GerritBot with the ability to talk on multiple channels. This
way a single GerritBot instance can operate in multiple channels for
multiple projects. To make this work this change introduces a new
channel configuration file (yaml) for GerritBot that specifies each
channel that GerritBot should join and the changes that channel is
interested in.

The config should look something like:
channel-foo:
    events:
      - patchset-created
      - change-merged
    projects:
      - test/bar
      - test/foo
    branches:
      - master

Change-Id: I8e278f9be5182611981a3d912cc323bd3d386fc5
2012-07-05 15:02:25 -07:00
Thierry Carrez
b56c5f3f75 No longer mark bug fixes in parent project
Stop marking python-PROJECT client bug fixes as fixed in PROJECT, by
removing the exception mapping. This is due to client projects now
having their own Launchpad project.

Change-Id: I56471c9efff143f79421729880626c5e78c6200b
2012-07-04 12:43:27 +02:00
Clark Boylan
d395a98dbc Add doc impact notifier to Gerrit.
Add a doc impact notifier to Gerrit that will email the documentation
team whenever changes with "DocImpact" in their commit messages are
pushed to Gerrit.

Change-Id: Ibbb4ac740efa60ef44fd4753ad8459437d98e592
2012-06-27 14:19:21 -07:00
Clark Boylan
50628cdbf6 Try again to fix the close request script.
Fixes bug #1012310

Seems github won't let you request an issue if issues are disabled
on a repo. So attempt to get around this by creating an Issue object
derived from a pull requests URL. Then comment on this issue object.

Change-Id: If64640ebc1d86d86360e5657f4245541620fcebb
2012-06-13 17:15:25 -07:00
Clark Boylan
e8b306ee59 Fix the close pull requests script.
Fixes bug #1012310

Need to use the .login property on orgs instead of the .name property.

Change-Id: I603f9172966fc99c8f49d592ce7a9009084840cd
2012-06-13 14:48:28 -07:00
Clark Boylan
7bd6b502a0 Fix the close pull requests script.
Fixes bug #1012310

Old version of script didn't appear able to find repos as part of
organizations. Update script to search for the repos under orgs.

Change-Id: I04696152bc3b7ecb63a5704768c27ff796d3ffc9
2012-06-13 13:20:42 -07:00
Clark Boylan
b9ebb81800 Update Github request closer script to v3 of API.
Fixes bug #1012310

Github disabled v1 and v2 of their API permanently, forcing us to
update the script that closes Github pull requests to v3 of the API.
Update the script using the PyGithub lib.

Change-Id: I90c9faacdb7a72a470b8ad6aaea674edd9b8329e
2012-06-13 10:14:36 -07:00
Monty Taylor
6e0d87bffc Add gerrit to the openstack-ci bug projects.
Change-Id: I71649621123d0dfa4de3e4445d3eb5cdb7ceac84
2012-06-10 15:33:33 -04:00
Jenkins
c3f7ed4f0b Merge "Revert "Decode key returned from db into unicode."" 2012-05-27 16:17:34 +00:00
Monty Taylor
352b80f923 Revert "Decode key returned from db into unicode."
This reverts commit 9e63f0b303951da12dd4d96e9842b6c191763522
2012-05-27 16:16:55 +00:00
Jenkins
29e849f3b6 Merge "Decode key returned from db into unicode." 2012-05-27 15:41:36 +00:00
Monty Taylor
9e63f0b303 Decode key returned from db into unicode.
We get this error in cron:

/usr/local/gerrit/scripts/update_gerrit_users.py:339: UnicodeWarning:
Unicode equal comparison failed to convert both arguments to Unicode -
interpreting them as being unequal
  if key.strip() not in db_keys:

The stuff from Launchpad comes back as unicode, but the stuff from MySQL
comes back as string, which makes the in comparison wonky.

Perhaps we should upgrade the database to unicode properly as well...

Change-Id: I5ef66763429ca490d799ebb5b030abdc4d5de67e
2012-05-26 12:01:51 -04:00
Monty Taylor
4793ef2afc Fix two typos in the remote fetch script.
The default values for locations were wrong.
The config file name is remotes.config.
The git repos are in /home/gerrit2/review_site/git.

Change-Id: Ie887b2424e3ee50f802573e147cd4751e390d3e8
2012-05-26 10:16:28 -04:00
Jenkins
7b127cb360 Merge changes I76ad015e,Iabe17164
* changes:
  Add pyflakes to Jekins slaves
  Make all Python pass pyflakes
2012-05-25 16:51:23 +00:00
Andrew Hutchings
aae2f80fdd Make all Python pass pyflakes
This found one bug, but will also help us with Jenkins testing of these scripts

Change-Id: Iabe171645c06f769957db7cf0def1d10a0e47988
2012-05-25 14:26:41 +01:00
Thierry Carrez
c7ceb721f6 Update series bugtasks status on stable/* changes
Makes update_bug.py Gerrit/LP hook support setting series-specific
bug tasks to FixCommitted status on change-merged to stable/*
branches. Fixes bug 921588.

Also sets "In Progress" on patchset-created to stable/*.

Change-Id: I5e3b7c8d249755a71f3425dd33151764be2a1485
2012-05-23 16:51:59 +02:00
Thierry Carrez
735715899c Fix typo causing update_bug hook failure
A typo in update_bug.py recent changes was causing hook
failure. Fixes bug 1003377.

Change-Id: Ie86a8431b19cbf1777ec3ca6abaf0df51f7d51f7
2012-05-23 14:18:43 +02:00
Jenkins
4e2eb0f081 Merge "Skip fix committed for some projects." 2012-05-22 15:51:44 +00:00
Andrew Hutchings
32b780b9b3 Switch to RBR for Gerrit's MySQL binlogs
MySQL binlogs are filling up quick due to lots of delete statements during user
sync that don't delete any rows.  We could test to see if the rows exist first
but this would be a performance hit on a script that takes forever to run as it
is (plus the new sync script will work differently and not have this problem).

Switching to RBR which will only log row changes so will ignore these deletes.

Fixes bug #1002550

Change-Id: Ief2097de63bd0a5bde129b72cec87ff3745a6ea1
2012-05-22 12:04:51 +01:00
Jenkins
88e08a5164 Merge "Add SSH key syncing to user sync" 2012-05-21 16:47:12 +00:00
Monty Taylor
456cbd6f4b Import pkg_resources before launchpadlib.
Fixes bug 1001664. It's a hack, but it's not an evil hack.

Change-Id: I6d09cdecc5cae64a21cefad81c75ed1c02c4801c
2012-05-19 11:15:31 -04:00
Monty Taylor
38693e0a39 Skip fix committed for some projects.
There are a set of projects which release directly from git,
so we can just set them directly to fix released.

Fixes bug 943413.

Change-Id: I0186b67efaa5eee7130ae9d5a677dfb2951a98e8
2012-05-19 10:04:01 -04:00
Andrew Hutchings
a12bab8988 Add SSH key syncing to user sync
Previously the user update script only synced the SSH keys upon adding a user.
This will make it add new keys to gerrit on every run.

Fixes bug #1001180

Also added a lock file since it is sometimes taking longer than 15 minutes to
execute (especially now we are pulling SSH keys) and has jammed up StackForge.

Change-Id: I28fd0f557568c20a07e724bcd3d9c789a62fff42
2012-05-18 14:33:37 +01:00
Jenkins
66dff2a2db Merge "Add parameters for scripts that talk to Gerrit" 2012-05-17 21:02:17 +00:00
Andrew Hutchings
ab8c2a7ba7 Add parameters for scripts that talk to Gerrit
Not all gerrit installations are configured the same.  This adds parameters
to the gerrit sync script and expire script so that it can work from the
command line and cron on all servers.

Fixes bug #994201

Change-Id: Iac37e18aaf7a10fb5594be233e33b000eabed336
2012-05-17 15:16:29 +01:00
Monty Taylor
4b7476294e Update gerritbot to respond to VRFY +2/-2.
Change-Id: Iece4652e00b665137061709b4d3545b2f37eb248
2012-05-16 22:36:30 -04:00
Andrew Hutchings
06d4241646 Change expire messages
From Jim: "I think the confusion may be coming from people who only see this
message via email. In that case, indicating that the button is available in the
web UI when visiting the change may be helpful."

Done!

Change-Id: I1125cfc5040b6351ef956527b90e71f4d33f30a0
2012-05-14 17:27:50 +01:00
Andrew Hutchings
68e3619c1f Add restore messages to gerrit auto-expire script
Fixes bug #950497

Change-Id: Ib7c1eb134d21883c6d02987cceb3823c59f90abe
2012-05-14 16:12:18 +01:00
Monty Taylor
6fdebcf5af Adds support for tracking an upstream repos.
Change-Id: I3c92c19cf2c2fd6a911fbdbf4aeeb66e53cf07e0
2012-05-10 13:12:31 -04:00
Monty Taylor
fb93135e46 Add python-cinderclient support.
Add python-cinderclient to pull-requests closing.,
Add python-cinderclient jenkins jobs.
Re-add cinder and python-openstackclient and python-glanceclient to jenkins.

Change-Id: I415a0f6586f6c22036715513c38b5105ff319809
2012-05-03 14:25:11 -07:00
Monty Taylor
993563afe5 Install gerritbot files from puppet.
Change-Id: Ife98fa24e731bcbbe719f583b1788870433b7f10
2012-05-03 08:25:56 -07:00
David Shrewsbury
2b7496c0ee Compress database backups.
Fixes bug 951600.

The update_gerrit_users.py script creates a database backup
everytime it runs. This change compresses the backups as they
are being made and adds a cron job that will remove backups that
are 30 days or older. Current backups will need to be manually
compressed.

Change-Id: Idb90d4af629892f1bc2e3e98f35f7de2ad58d4be
2012-05-03 09:35:45 -04:00
Monty Taylor
af48c6d986 Move gerrit scripts to puppet.
Take the things from openstack-ci/gerrit and move them directly
in to the puppet module. Install them using the model we're using
for the jenkins slave scripts.

Change-Id: I420b2b895bd57d40232b2cdda437617373a82890
2012-05-01 17:31:05 -04:00
James E. Blair
c4eaff3957 Install and manage more of Gerrit.
Upgrade gerrit to 2.3.0.

Add management of the apache virtualhost.

Remove gerrit body styling (including the javascript hack) in favor
of using the gerrit theme config options for body styling.  Keep header
and top menu changes.  This should make it easier to keep up with new
gerrit versions without chasing weird GWT changes.

Add management of the gerrit init script.

Add management of MySQL.

Add installation and upgrading of Gerrit.

Change-Id: Idf9e551552d335a2ae82cd27a63edcf6daf94115
2012-04-11 22:38:15 +00:00