Defined Type: query_service::blazegraph
- Defined in:
- modules/query_service/manifests/blazegraph.pp
Overview
define: query_service::blazegraph
Note: This resource installs and start the blazegraph service
Parameters:
-
$port: Blazegraph port to run on
-
$config_file_name: The name of the config file for this instance
-
$package_dir: Directory where the service should be installed.
-
$data_dir: Directory where the database should be stored
-
$logstash_logback_port: port which rsyslog server is listening on
-
$log_dir: Directory where the logs go
-
$heap_size: heapsize for blazegraph
-
$username: Username owning the service
-
$deploy_user: username of deploy user
-
$use_deployed_config: Whether we should use config in deployed repo or our own
-
$options: options for Blazegraph startup script
-
$extra_jvm_opts: Extra JVM configs for blazegraph
-
$use_geospatial: Turn on blazegraph geospatial features
-
$journal: Name to assign instance journal. Must be unique per data_dir.
-
$oauth_settings: should oauth proxy be run along side blazegraph (to be used by nginx)
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
# File 'modules/query_service/manifests/blazegraph.pp', line 20
define query_service::blazegraph(
Stdlib::Port $port,
String $config_file_name,
Stdlib::Unixpath $package_dir,
Stdlib::Unixpath $data_dir,
String $deploy_name, # TODO: we should use $title for this.
Stdlib::Port $logstash_logback_port,
Stdlib::Unixpath $log_dir,
String $heap_size,
String $username,
Boolean $use_deployed_config,
Array[String] $options,
Array[String] $extra_jvm_opts,
Boolean $use_geospatial,
String $journal,
String $blazegraph_main_ns,
String $federation_user_agent,
String $prefixes_file,
Optional[Query_service::OAuthSettings] $oauth_settings = undef
) {
$data_file = "${data_dir}/${journal}.jnl"
if ($use_deployed_config) {
$config_file = $config_file_name
} else {
$common_config = template('query_service/RWStore.common.properties.erb')
$specific_config = template("query_service/${config_file_name}.erb")
if ($use_geospatial) {
$geo_config = template('query_service/RWStore.geo.properties.erb')
} else {
$geo_config = 'com.bigdata.rdf.store.AbstractTripleStore.geoSpatial=false'
}
$config_file = "/etc/${deploy_name}/${config_file_name}"
file { $config_file:
ensure => file,
content => "${common_config}\n${specific_config}\n${geo_config}",
owner => 'root',
group => 'root',
mode => '0644',
before => Systemd::Unit[$title],
}
}
file { "/etc/default/${title}":
ensure => present,
content => template('query_service/blazegraph-default.erb'),
owner => 'root',
group => 'root',
mode => '0644',
before => Systemd::Unit[$title],
}
query_service::logback_config { $title:
logstash_logback_port => $logstash_logback_port,
deploy_name => $deploy_name,
log_dir => $log_dir,
pattern => '%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg %mdc%n%rEx{1,QUERY_TIMEOUT,SYNTAX_ERROR}',
evaluators => true,
}
# Blazegraph service
systemd::unit { $title:
content => template('query_service/initscripts/blazegraph.systemd.erb'),
}
service { $title:
ensure => 'running',
}
# This is a rather ugly hack to ensure that permissions of $data_file are
# managed, but that the file is not created by puppet. If that file does
# not exist, puppet will raise an error and skip the File[$data_file]
# resource (and only that resource). It means that puppet will be in error
# until data import is started, but that's a reasonable behaviour.
# This works as:
# if $data_file dose not exist then:
# * this resource state is not clean so run the command
# * command returns false so the resource fales
# * file{$data_file} resource dose not run as a dependecy fails
# else
# The file exists so the exec resource state is clean and dose not need to run command
# This causes the exec resource to succeed without running command
# and so the file can mange permissions
exec { "${data_file} exists":
command => '/bin/false',
creates => $data_file,
}
file { $data_file:
ensure => file,
owner => $username,
group => $username,
mode => '0664',
require => Exec["${data_file} exists"],
tag => 'in-wdqs-data-dir',
}
}
|