Steve Kowalik 0ad03dc5e0 Add second requirement for the ROOT.war deployment
Deploying puppet-zanata from scratch can sometimes fail because
wildfly has yet to be unpacked when puppet goes to copy the ROOT.war
into the deployment directory, which does not yet exist. Fix this
issue by adding a requirement for tar to run as well.

Change-Id: Id0229864b64ce39c70b559e1eb5d94822f1988ec
Co-Authored-By: Colleen Murphy <colleen@gazlene.net>
2015-07-22 16:47:09 +10:00

170 lines
4.8 KiB
Puppet

# Copyright 2014 Hewlett-Packard Development Company, L.P.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# == Class: zanata
#
class zanata(
$mysql_host = 'localhost',
$mysql_port = '3306',
$zanata_db_name = 'zanata',
$zanata_db_username = 'zanata',
$zanata_db_password,
$zanata_wildfly_version = '8.1.0',
$zanata_wildfly_install_url = 'https://repo1.maven.org/maven2/org/wildfly/wildfly-dist/8.1.0.Final/wildfly-dist-8.1.0.Final.tar.gz',
$zanata_hibernate_url = 'https://sourceforge.net/projects/zanata/files/wildfly/wildfly-8.1.0.Final-module-hibernate-main-4.2.15.Final.zip',
$zanata_mojarra_url = 'https://sourceforge.net/projects/zanata/files/wildfly/wildfly-8.1.0.Final-module-mojarra-2.1.28.zip',
$zanata_url = 'https://sourceforge.net/projects/zanata/files/webapp/zanata-war-3.6.2.war',
$zanata_default_from_address,
$zanata_storage_dir = '/home/wildfly/zanata',
$zanata_openid_provider_url = '',
$zanata_admin_users = '',
$zanata_listeners = [],
$zanata_smtp_host = '',
$zanata_smtp_port = '',
$zanata_smtp_username = '',
$zanata_smtp_password = '',
$zanata_smtp_tls = '',
$zanata_smtp_ssl = '',
) {
$zanata_file = inline_template('<%= File.basename(@zanata_url) %>')
$wildfly_file = inline_template('<%= File.basename(@zanata_wildfly_install_url) %>')
$zanata_hibernate_file = inline_template('<%= File.basename(@zanata_hibernate_url) %>')
$zanata_mojarra_file = inline_template('<%= File.basename(@zanata_mojarra_url) %>')
zanata::validate_listener { $zanata_listeners:
}
class { 'zanata::wildfly':
wildfly_version => $zanata_wildfly_version,
wildfly_install_source => $zanata_wildfly_install_url,
}
package { [
'libmysql-java',
'unzip'
]:
ensure => present,
}
file { $zanata_storage_dir:
ensure => 'directory',
owner => 'wildfly',
group => 'wildfly'
}
exec { 'download_zanata':
command => "/usr/bin/wget ${zanata_url}",
cwd => '/home/wildfly',
creates => "/home/wildfly/${zanata_file}",
user => 'wildfly',
timeout => 600,
require => [
Package['wget'],
]
}
file { '/opt/wildfly/standalone/deployments/ROOT.war':
ensure => present,
source => "/home/wildfly/${zanata_file}",
owner => 'wildfly',
require => [
Exec['download_zanata'],
Exec["tar ${wildfly_file} in /var/tmp"],
]
}
exec { 'download_hibernate':
command => "/usr/bin/wget ${zanata_hibernate_url}",
cwd => '/home/wildfly',
creates => "/home/wildfly/${zanata_hibernate_file}",
user => 'wildfly',
timeout => 600,
require => [
Package['wget'],
]
}
exec { 'unzip_hibernate':
command => "/usr/bin/unzip -o ${zanata_hibernate_file} -d /opt/wildfly/",
cwd => '/home/wildfly',
user => 'wildfly',
require => [
Exec['download_hibernate'],
Package['unzip'],
]
}
exec { 'download_mojarra':
command => "/usr/bin/wget ${zanata_mojarra_url}",
cwd => '/home/wildfly',
creates => "/home/wildfly/${zanata_mojarra_file}",
user => 'wildfly',
timeout => 600,
require => [
Package['wget'],
]
}
exec { 'unzip_mojarra':
command => "/usr/bin/unzip -o ${zanata_mojarra_file} -d /opt/wildfly/",
cwd => '/home/wildfly',
user => 'wildfly',
require => [
Exec['download_mojarra'],
Package['unzip'],
]
}
file { '/opt/wildfly/standalone/deployments/mysql-connector-java.jar':
ensure => 'link',
target => '/usr/share/java/mysql-connector-java.jar',
require => [
Package['libmysql-java'],
Class['zanata::wildfly'],
],
}
file { '/opt/wildfly/standalone/configuration/standalone.xml':
ensure => present,
notify => Service['wildfly'],
owner => wildfly,
group => wildfly,
content => template('zanata/standalone.xml.erb'),
require => [
Class['zanata::wildfly'],
File['/opt/wildfly/standalone/deployments/ROOT.war'],
Exec['unzip_mojarra'],
Exec['unzip_hibernate'],
],
}
}
# == Define: zanata::validate_listener
#
define zanata::validate_listener ($listener = $name) {
$listeners = [ 'https', 'ajp' ]
if $listener and !($listener in $listeners) {
fail("${listener} is not a valid listener type")
}
}