Manually merge abusesa::search and solr from parameterize

This commit is contained in:
Ossi Salmi 2014-03-10 09:57:39 +02:00
parent a5a7b8f15c
commit 695f353f3b
3 changed files with 99 additions and 73 deletions

View file

@ -93,22 +93,35 @@ class abusesa {
# Install AbuseSA Search.
#
class abusesa::search {
include solr
# === Parameters
#
# $solrurl:
# URL to sorl.
#
# $logourl:
# Path to logo image.
#
# $cssfile:
# Path to css file.
#
# $webhosts:
# List of search virtual hosts.
#
class abusesa::search(
$solrurl="https://${::homename}/solr/generic/",
$logourl="img/Codenomicon_logo_small.png",
$cssfile="css/code.css",
$webhosts=undef
) {
if ! $abusesa_search_package {
if $abusesa_search_package_latest {
$abusesa_search_package = $abusesa_search_package_latest
if $::abusesa_search_package_latest {
$abusesa_search_package = $::abusesa_search_package_latest
} else {
fail("Must define \$abusesa_search_package or \$abusesa_search_package_latest")
}
}
if !$abusesa_search_solrurl {
$abusesa_search_solrurl = "https://${::homename}/solr/generic/"
}
file { "/usr/local/src/abusesa-search.tar.gz":
ensure => present,
mode => "0644",
@ -136,10 +149,6 @@ class abusesa::search {
}
}
package { "python-lxml":
ensure => installed,
}
file { "/srv/solr/cores/generic":
ensure => directory,
mode => "0660",
@ -206,18 +215,23 @@ class abusesa::search {
require => Python::Setup::Install["/usr/local/src/abusesa-search"],
}
define configwebhost($htdocs) {
file { "/srv/www/https/${name}/search":
ensure => link,
target => $htdocs,
require => File["/srv/www/https/${name}"],
}
}
if $abusesa_search_webhosts {
configwebhost { $abusesa_search_webhosts:
if $webhosts {
abusesa::search::configwebhost { $webhosts:
htdocs => $htdocs,
}
}
}
# Enable AbuseSA Search for virtual host.
#
define abusesa::search::configwebhost($htdocs) {
file { "/srv/www/https/${name}/search":
ensure => link,
target => $htdocs,
require => File["/srv/www/https/${name}"],
}
}

View file

@ -1,19 +1,34 @@
# Install Apache Solr.
#
class solr {
# === Parameters
#
# $cores:
# List of cores to enable.
#
# $datadir:
# Solr data directory. Defaults to "/srv/solr".
#
# $webhosts:
# List of Solr virtual hosts.
#
class solr(
$cores,
$datadir="/srv/solr",
$webhosts=undef
) {
if ! ($::apache::sslserver::user and $::apache::sslserver::group) {
fail("Must declare apache before solr")
}
if ! $solr_package {
if $solr_package_latest {
$solr_package = $solr_package_latest
if $::solr_package_latest {
$solr_package = $::solr_package_latest
} else {
fail("Must define \$solr_package or \$solr_package_latest")
}
}
if !$solr_core {
fail("Must define \$solr_core")
}
file { "/usr/local/src/solr.tgz":
ensure => present,
mode => "0644",
@ -32,29 +47,21 @@ class solr {
include user::system
realize(User["solr"], Group["solr"])
if $solr_datadir {
file { $solr_datadir:
ensure => directory,
mode => "0770",
owner => "solr",
group => "solr",
require => User["solr"],
}
if $datadir != "/srv/solr" {
file { "/srv/solr":
ensure => link,
target => $solr_datadir,
require => File[$solr_datadir],
target => $datadir,
require => File[$datadir],
}
} else {
file { "/srv/solr":
}
file { $datadir:
ensure => directory,
mode => "0770",
owner => "solr",
group => "solr",
require => User["solr"],
}
}
file { [ "/srv/solr/cores",
"/srv/solr/cores/lib",
@ -153,7 +160,7 @@ class solr {
ensure => present,
mode => "0640",
owner => "root",
group => $apache::sslserver::group,
group => $::apache::sslserver::group,
require => File["/etc/solr"],
}
@ -176,15 +183,7 @@ class solr {
require => File[$htdocs],
}
define configwebhost($htdocs) {
file { "/srv/www/https/${name}/solr":
ensure => link,
target => $htdocs,
require => File["/srv/www/https/${name}"],
}
}
if $solr_webhosts {
if $webhosts {
include apache::mod::proxy
include apache::mod::proxy_http
include apache::mod::rewrite
@ -194,22 +193,22 @@ class solr {
source => "puppet:///modules/solr/solr-httpd.conf",
}
configwebhost { $solr_webhosts:
solr::configwebhost { $webhosts:
htdocs => $htdocs,
}
}
if ! $solr_requests_package {
if $solr_requests_package_latest {
$solr_requests_package = $solr_requests_package_latest
if $::solr_requests_package_latest {
$solr_requests_package = $::solr_requests_package_latest
} else {
fail("Must define \$solr_requests_package or \$solr_requests_package_latest")
}
}
if ! $solr_pysolr_package {
if $solr_pysolr_package_latest {
$solr_pysolr_package = $solr_pysolr_package_latest
if $::solr_pysolr_package_latest {
$solr_pysolr_package = $::solr_pysolr_package_latest
} else {
fail("Must define \$solr_pysolr_package or \$solr_pysolr_package_latest")
}
@ -225,3 +224,16 @@ class solr {
}
}
# Enable solr for virtual host.
#
define solr::configwebhost($htdocs) {
file { "/srv/www/https/${name}/solr":
ensure => link,
target => $htdocs,
require => File["/srv/www/https/${name}"],
}
}

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<solr persistent="false" sharedLib="lib">
<cores adminPath="/admin/cores" host="${host:}" hostPort="${jetty.port:8983}" hostContext="${hostContext:solr}">
<% @solr_core.each do |core| -%>
<% @cores.each do |core| -%>
<core name="<%= core %>" instanceDir="<%= core %>">
<property name="dataDir" value="/srv/solr/index/<%= core %>" />
</core>