Make gerrit work on xenial

First, add a params class so that we can distinguish between java packages
on different Ubuntu releases.

Set sql-mode for mysql to remove NO_ZERO_DATE mode so gerrit can
initialize. If not removed, gerrit tries to create the
account_group_by_id_aud table with column added_on with a default value
of 0 and fails. This is only important for CI and downstream since
Infra's gerrit instance uses trove instead of a local database.

Depends-On: If25da754ec107b8dba2d9343f16b54b99cc88e01
Change-Id: Ifd2244ae9dd212b2475f9cd6adb994bc058a4769
This commit is contained in:
Colleen Murphy 2017-05-02 16:23:45 +02:00 committed by Colleen Murphy
parent 76454dd134
commit 0fdd0671c0
4 changed files with 26 additions and 6 deletions

View File

@ -272,8 +272,8 @@ class gerrit(
$cache_diff_intraline_timeout = '',
$download = {},
$commitmessage_params = {},
$java_home = '/usr/lib/jvm/java-7-openjdk-amd64/jre',
) {
$java_home = $::gerrit::params::java_home,
) inherits ::gerrit::params {
include ::httpd
if $manage_jeepyb {
@ -304,13 +304,13 @@ class gerrit(
ensure => present,
}
package { 'openjdk-7-jre-headless':
package { $::gerrit::params::jre_package:
ensure => present,
}
package { 'openjdk-6-jre-headless':
ensure => purged,
require => Package['openjdk-7-jre-headless'],
require => Package[$::gerrit::params::jre_package],
}
file { '/var/log/gerrit':
@ -726,7 +726,7 @@ class gerrit(
command => "/usr/bin/java -jar ${gerrit_war} init -d ${gerrit_site} --batch --no-auto-start",
subscribe => File['/home/gerrit2/review_site/bin/gerrit.war'],
refreshonly => true,
require => [Package['openjdk-7-jre-headless'],
require => [Package[$::gerrit::params::jre_package],
User['gerrit2'],
File['/home/gerrit2/review_site/etc/gerrit.config'],
File['/home/gerrit2/review_site/etc/secure.config']],
@ -770,7 +770,7 @@ class gerrit(
command => "/etc/init.d/gerrit stop; /usr/bin/java -jar ${gerrit_war} init -d ${gerrit_site} --batch --no-auto-start",
subscribe => File['/home/gerrit2/review_site/bin/gerrit.war'],
refreshonly => true,
require => [Package['openjdk-7-jre-headless'],
require => [Package[$::gerrit::params::jre_package],
User['gerrit2'],
File['/home/gerrit2/review_site/etc/gerrit.config'],
File['/home/gerrit2/review_site/etc/secure.config']],

View File

@ -25,6 +25,8 @@ the mysql module.")
override_options => {
'mysqld' => {
'default-storage-engine' => 'InnoDB',
# Remove NO_ZERO_DATE mode so gerrit can initialize
'sql-mode' => 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION',
}
},
}

17
manifests/params.pp Normal file
View File

@ -0,0 +1,17 @@
# gerrit::params
class gerrit::params (
){
case $::lsbdistcodename {
'trusty': {
$jre_package = 'openjdk-7-jre-headless'
$java_home = '/usr/lib/jvm/java-7-openjdk-amd64/jre'
}
'xenial': {
$jre_package = 'openjdk-8-jre-headless'
$java_home = '/usr/lib/jvm/java-8-openjdk-amd64/jre'
}
default: {
fail("Operating system release ${::lsbdistcodename} not supported.")
}
}
}

View File

@ -4,6 +4,7 @@ hosts.each do |host|
install_puppet
on host, "mkdir -p #{host['distmoduledir']}"
end