Skip to content
This repository was archived by the owner on Nov 18, 2017. It is now read-only.
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .fixtures.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
fixtures:
repositories:
inifile: https://github.com/puppetlabs/puppetlabs-inifile
stdlib: https://github.com/puppetlabs/puppetlabs-stdlib
staging: https://github.com/nanliu/puppet-staging
symlinks:
influxdb: "#{source_dir}"
1 change: 1 addition & 0 deletions Puppetfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@ forge 'http://forge.puppetlabs.com'

mod 'nanliu/staging', '>= 0.4.0'
mod 'puppetlabs/inifile', '>= 1.0.0'
mod 'puppetlabs/stdlib', '>= 4.5.1'
2 changes: 2 additions & 0 deletions Puppetfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,10 @@ FORGE
specs:
nanliu/staging (0.4.0)
puppetlabs/inifile (1.0.3)
puppetlabs/stdlib (4.5.1)

DEPENDENCIES
nanliu/staging (>= 0.4.0)
puppetlabs/inifile (>= 1.0.0)
puppetlabs/stdlib (>= 4.5.1)

221 changes: 13 additions & 208 deletions manifests/config.pp
Original file line number Diff line number Diff line change
@@ -1,213 +1,18 @@
# == Class: influxdb::config
# More information on these settings available at: http://influxdb.org/docs/configuration.html
# create config options based on a hash or hierdata that looks like:
#
# influxdb::configuration:
# default:
# bind-address: '"0.0.0.0"'
# storage:
# dir: '/tmp/bla'
class influxdb::config {
ini_setting { 'hostname':
section => '',
setting => 'hostname',
value => "\"${influxdb::hostname}\"",
}

ini_setting { 'bind_address':
section => '',
setting => 'bind-address',
value => "\"${influxdb::bind_address}\"",
}

# [logging]
ini_setting { 'logging_level':
section => 'logging',
setting => 'level',
value => "\"${influxdb::logging_level}\"",
}

ini_setting { 'logging_file':
section => 'logging',
setting => 'file',
value => "\"${influxdb::logging_file}\"",
}

# [admin]
ini_setting { 'admin_port':
section => 'admin',
setting => 'port',
value => $influxdb::admin_port,
}

ini_setting { 'admin_assets':
section => 'admin',
setting => 'assets',
value => "\"${influxdb::admin_assets}\"",
}

# [api]
ini_setting { 'api_port':
section => 'api',
setting => 'port',
value => $influxdb::api_port,
}

ini_setting { 'api_read_timeout':
section => 'api',
setting => 'read-timeout',
value => "\"${influxdb::api_read_timeout}\"",
}

# [raft]
ini_setting { 'raft_port':
section => 'raft',
setting => 'port',
value => $influxdb::raft_port,
}

ini_setting { 'raft_dir':
section => 'raft',
setting => 'dir',
value => "\"${influxdb::raft_dir}\"",
}

ini_setting { 'raft_election_timeout':
section => 'raft',
setting => 'election-timeout',
value => "\"${influxdb::raft_election_timeout}\"",
}

# [storage]
ini_setting { 'storage_dir':
section => 'storage',
setting => 'dir',
value => "\"${influxdb::storage_dir}\"",
}

ini_setting { 'storage_write_buffer_size':
section => 'storage',
setting => 'write-buffer-size',
value => $influxdb::storage_write_buffer_size,
}

# [cluster]
ini_setting { 'cluster_seed_servers':
section => 'cluster',
setting => 'seed-servers',
value => $influxdb::cluster_seed_servers,
}

ini_setting { 'cluster_protobuf_port':
section => 'cluster',
setting => 'protobuf_port',
value => $influxdb::cluster_protobuf_port,
}

ini_setting { 'cluster_protobuf_timeout':
section => 'cluster',
setting => 'protobuf_timeout',
value => "\"${influxdb::cluster_protobuf_timeout}\"",
}

ini_setting { 'cluster_protobuf_heartbeat':
section => 'cluster',
setting => 'protobuf_heartbeat',
value => "\"${influxdb::cluster_protobuf_heartbeat}\"",
}

ini_setting { 'cluster_protobuf_min_backoff':
section => 'cluster',
setting => 'protobuf_min_backoff',
value => "\"${influxdb::cluster_protobuf_min_backoff}\"",
}

ini_setting { 'cluster_protobuf_max_backoff':
section => 'cluster',
setting => 'protobuf_max_backoff',
value => "\"${influxdb::cluster_protobuf_max_backoff}\"",
}

ini_setting { 'cluster_write_buffer_size':
section => 'cluster',
setting => 'write-buffer-size',
value => $influxdb::cluster_write_buffer_size,
}

ini_setting { 'cluster_max_response_buffer_size':
section => 'cluster',
setting => 'max-response-buffer-size',
value => $influxdb::cluster_max_response_buffer_size,
}

ini_setting { 'cluster_concurrent_shard_query_limit':
section => 'cluster',
setting => 'concurrent-shard-query-limit',
value => $influxdb::cluster_concurrent_shard_query_limit,
}

# [leveldb]
ini_setting { 'leveldb_max_open_files':
section => 'leveldb',
setting => 'max-open-files',
value => $influxdb::leveldb_max_open_files,
}

ini_setting { 'leveldb_lru_cache_size':
section => 'leveldb',
setting => 'lru-cache-size',
value => "\"${influxdb::leveldb_lru_cache_size}\"",
}

ini_setting { 'leveldb_max_open_shards':
section => 'leveldb',
setting => 'max-open-shards',
value => $influxdb::leveldb_max_open_shards,
}

ini_setting { 'leveldb_point_batch_size':
section => 'leveldb',
setting => 'point-batch-size',
value => $influxdb::leveldb_point_batch_size,
}

ini_setting { 'leveldb_point_write_size':
section => 'leveldb',
setting => 'point-write-size',
value => $influxdb::leveldb_point_write_size,
}

# [sharding]

# [wal]
ini_setting { 'wal_dir':
section => 'wal',
setting => 'dir',
value => "\"${influxdb::wal_dir}\"",
}

ini_setting { 'wal_flush_after':
section => 'wal',
setting => 'flush-after',
value => $influxdb::wal_flush_after,
}

ini_setting { 'wal_bookmark_after':
section => 'wal',
setting => 'bookmark-after',
value => $influxdb::wal_bookmark_after,
}

ini_setting { 'wal_index_after':
section => 'wal',
setting => 'index-after',
value => $influxdb::wal_index_after,
}

ini_setting { 'wal_requests_per_logfile':
section => 'wal',
setting => 'requests-per-logfile',
value => $influxdb::wal_requests_per_logfile,
}

# defaults for all settings
Ini_setting {
ensure => present,
path => $influxdb::config_path,
notify => Service['influxdb'],
require => Package['influxdb'],
if !empty($influxdb::configuration) {
$sections = keys($influxdb::configuration)
influxdb::config_section{
$sections:
values => $influxdb::configuration
}
}
}
11 changes: 11 additions & 0 deletions manifests/config_section.pp
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# manage the different config sections
# this is just a wrapper to shuffle data around
define influxdb::config_section(
$values,
){
$names = prefix(keys($values[$name]),"${name}@")
influxdb::config_section_values{
$names:
values => $values[$name]
}
}
25 changes: 25 additions & 0 deletions manifests/config_section_values.pp
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# manage the values of a certain config section.
# this is just a wrapper to shuffle data around
define influxdb::config_section_values(
$values,
) {
if $name =~ /@/ and !($name =~ /^default@/) {
$tmp = split($name,'@')
$section = $tmp[0]
$setting = $tmp[1]
} else {
$section = ''
if $name =~ /^default@/ {
$tmp = split($name,'@')
$setting = $tmp[1]
} else {
$setting = $name
}
}
influxdb::config_value{
$name:
section => $section,
setting => $setting,
value => $values[$setting]
}
}
21 changes: 21 additions & 0 deletions manifests/config_value.pp
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# set a certain config option
# looks like:
# influxdb::config_option{'bind_address':
# section => '',
# setting => 'bind-address',
# value => '"0.0.0.0"'
define influxdb::config_value(
$section,
$value,
$setting = $name,
) {
ini_setting { $name:
ensure => present,
section => $section,
setting => $setting,
value => $value,
path => $influxdb::config_path,
notify => Service['influxdb'],
require => Package['influxdb'],
}
}
43 changes: 5 additions & 38 deletions manifests/init.pp
Original file line number Diff line number Diff line change
@@ -1,45 +1,12 @@
# == Class: influxdb
class influxdb (
$ensure = $influxdb::params::ensure,
$version = $influxdb::params::version,
$install_from_repository = $influxdb::params::install_from_repository,
$config_path = $influxdb::params::config_path,
$hostname = $influxdb::params::hostname,
$bind_address = $influxdb::params::bind_address,
$logging_level = $influxdb::params::logging_level,
$logging_file = $influxdb::params::logging_file,
$admin_port = $influxdb::params::admin_port,
$admin_assets = $influxdb::params::admin_assets,
$api_port = $influxdb::params::api_port,
$api_read_timeout = $influxdb::params::api_read_timeout,
$raft_port = $influxdb::params::raft_port,
$raft_dir = $influxdb::params::raft_dir,
$raft_election_timeout = $influxdb::params::raft_election_timeout,
$storage_dir = $influxdb::params::storage_dir,
$storage_write_buffer_size = $influxdb::params::storage_write_buffer_size,
$cluster_seed_servers = $influxdb::params::cluster_seed_servers,
$cluster_protobuf_port = $influxdb::params::cluster_protobuf_port,
$cluster_protobuf_timeout = $influxdb::params::cluster_protobuf_timeout,
$cluster_protobuf_heartbeat = $influxdb::params::cluster_protobuf_heartbeat,
$cluster_protobuf_min_backoff = $influxdb::params::cluster_protobuf_min_backoff,
$cluster_protobuf_max_backoff = $influxdb::params::cluster_protobuf_max_backoff,
$cluster_write_buffer_size = $influxdb::params::cluster_write_buffer_size,
$cluster_max_response_buffer_size = $influxdb::params::cluster_max_response_buffer_size,
$cluster_concurrent_shard_query_limit = $influxdb::params::cluster_concurrent_shard_query_limit,
$leveldb_max_open_files = $influxdb::params::leveldb_max_open_files,
$leveldb_lru_cache_size = $influxdb::params::leveldb_lru_cache_size,
$leveldb_max_open_shards = $influxdb::params::leveldb_max_open_shards,
$leveldb_point_batch_size = $influxdb::params::leveldb_point_batch_size,
$leveldb_write_batch_size = $influxdb::params::leveldb_write_batch_size,
$wal_dir = $influxdb::params::wal_dir,
$wal_flush_after = $influxdb::params::wal_flush_after,
$wal_bookmark_after = $influxdb::params::wal_bookmark_after,
$wal_index_after = $influxdb::params::wal_index_after,
$wal_requests_per_logfile = $influxdb::params::wal_requests_per_logfile,
$ensure = $influxdb::params::ensure,
$version = $influxdb::params::version,
$install_from_repository = $influxdb::params::install_from_repository,
$config_path = $influxdb::params::config_path,
$configuration = $influxdb::params::configuration,
) inherits influxdb::params {

class { 'influxdb::config': }
class { 'influxdb::install': }
class { 'influxdb::service': }

}
Loading