diff --git a/REFERENCE.md b/REFERENCE.md index 2383a5fe..3694c014 100644 --- a/REFERENCE.md +++ b/REFERENCE.md @@ -21,7 +21,7 @@ * [`icingaweb2::module::generictts`](#icingaweb2--module--generictts): Installs and enables the generictts module. * [`icingaweb2::module::graphite`](#icingaweb2--module--graphite): The Graphite module draws graphs out of time series data stored in Graphite. * [`icingaweb2::module::icingadb`](#icingaweb2--module--icingadb): Manages the icingadb module. This module is still optional at the moment. -* [`icingaweb2::module::idoreports`](#icingaweb2--module--idoreports): Installs, configures and enables the idoreports module. +* [`icingaweb2::module::idoreports`](#icingaweb2--module--idoreports): Installs, configures and enables the idoreports module. The module is deprecated. * [`icingaweb2::module::incubator`](#icingaweb2--module--incubator): Installs and enables the incubator module. * [`icingaweb2::module::ipl`](#icingaweb2--module--ipl): Installs and enables the ipl module. * [`icingaweb2::module::monitoring`](#icingaweb2--module--monitoring): Manages the monitoring module. This module is deprecated. @@ -2171,7 +2171,7 @@ Default value: `{}` ### `icingaweb2::module::idoreports` -Installs, configures and enables the idoreports module. +Installs, configures and enables the idoreports module. The module is deprecated. * **Note** If you want to use `git` as `install_method`, the CLI `git` command has to be installed. You can manage it yourself as package resource or declare the package name in icingaweb2 class parameter `extra_packages`. @@ -2196,18 +2196,6 @@ The following parameters are available in the `icingaweb2::module::idoreports` c * [`install_method`](#-icingaweb2--module--idoreports--install_method) * [`package_name`](#-icingaweb2--module--idoreports--package_name) * [`import_schema`](#-icingaweb2--module--idoreports--import_schema) -* [`ido_db_username`](#-icingaweb2--module--idoreports--ido_db_username) -* [`ido_db_password`](#-icingaweb2--module--idoreports--ido_db_password) -* [`use_tls`](#-icingaweb2--module--idoreports--use_tls) -* [`tls_key_file`](#-icingaweb2--module--idoreports--tls_key_file) -* [`tls_cert_file`](#-icingaweb2--module--idoreports--tls_cert_file) -* [`tls_cacert_file`](#-icingaweb2--module--idoreports--tls_cacert_file) -* [`tls_key`](#-icingaweb2--module--idoreports--tls_key) -* [`tls_cert`](#-icingaweb2--module--idoreports--tls_cert) -* [`tls_cacert`](#-icingaweb2--module--idoreports--tls_cacert) -* [`tls_capath`](#-icingaweb2--module--idoreports--tls_capath) -* [`tls_noverify`](#-icingaweb2--module--idoreports--tls_noverify) -* [`tls_cipher`](#-icingaweb2--module--idoreports--tls_cipher) ##### `ensure` @@ -2217,11 +2205,11 @@ Enable or disable module. ##### `module_dir` -Data type: `Optional[Stdlib::Absolutepath]` +Data type: `Stdlib::Absolutepath` Target directory of the module. -Default value: `undef` +Default value: `"${icingaweb2::globals::default_module_path}/idoreports"` ##### `git_repository` @@ -2259,113 +2247,6 @@ whereas with mysql its different options. Default value: `false` -##### `ido_db_username` - -Data type: `Optional[String]` - -An alternative username to login into the database. By default, the user from -the `monitoring` module is used. - -Default value: `$icingaweb2::module::monitoring::ido_db_username` - -##### `ido_db_password` - -Data type: `Optional[Icingaweb2::Secret]` - -The password for the alternative user. By default, the password from -the `monitoring` module is used. - -Default value: `$icingaweb2::module::monitoring::ido_db_password` - -##### `use_tls` - -Data type: `Optional[Boolean]` - -Either enable or disable TLS encryption to the database. Other TLS parameters -are only affected if this is set to 'true'. By default, same value from -the `monitoring` module is used. - -Default value: `$icingaweb2::module::monitoring::use_tls` - -##### `tls_key_file` - -Data type: `Optional[Stdlib::Absolutepath]` - -Location of the private key for client authentication. Only valid if tls is enabled. -By default, same value from the `monitoring` module is used. - -Default value: `$icingaweb2::module::monitoring::tls_key_file` - -##### `tls_cert_file` - -Data type: `Optional[Stdlib::Absolutepath]` - -Location of the certificate for client authentication. Only valid if tls is enabled. -By default, same value from the `monitoring` module is used. - -Default value: `$icingaweb2::module::monitoring::tls_cert_file` - -##### `tls_cacert_file` - -Data type: `Optional[Stdlib::Absolutepath]` - -Location of the ca certificate. Only valid if tls is enabled. -By default, same value from the `monitoring` module is used. - -Default value: `$icingaweb2::module::monitoring::tls_cacert_file` - -##### `tls_key` - -Data type: `Optional[Icingaweb2::Secret]` - -The private key to store in spicified `tls_key_file` file. Only valid if tls is enabled. -By default, same value from the `monitoring` module is used. - -Default value: `$icingaweb2::module::monitoring::tls_key` - -##### `tls_cert` - -Data type: `Optional[String]` - -The certificate to store in spicified `tls_cert_file` file. Only valid if tls is enabled. -By default, same value from the `monitoring` module is used. - -Default value: `$icingaweb2::module::monitoring::tls_cert` - -##### `tls_cacert` - -Data type: `Optional[String]` - -The ca certificate to store in spicified `tls_cacert_file` file. Only valid if tls is enabled. -By default, same value from the `monitoring` module is used. - -Default value: `$icingaweb2::module::monitoring::tls_cacert` - -##### `tls_capath` - -Data type: `Optional[Stdlib::Absolutepath]` - -The file path to the directory that contains the trusted SSL CA certificates, which are stored in PEM format. -Only available for the mysql database. By default, same value from the `monitoring` module is used. - -Default value: `$icingaweb2::module::monitoring::tls_capath` - -##### `tls_noverify` - -Data type: `Optional[Boolean]` - -Disable validation of the server certificate. By default, same value from the `monitoring` module is used. - -Default value: `$icingaweb2::module::monitoring::tls_noverify` - -##### `tls_cipher` - -Data type: `Optional[String]` - -Cipher to use for the encrypted database connection. By default, same value from the `monitoring` module is used. - -Default value: `$icingaweb2::module::monitoring::tls_cipher` - ### `icingaweb2::module::incubator` Installs and enables the incubator module. diff --git a/manifests/module/idoreports.pp b/manifests/module/idoreports.pp index cccb7b8a..78c9d3f4 100644 --- a/manifests/module/idoreports.pp +++ b/manifests/module/idoreports.pp @@ -1,5 +1,5 @@ # @summary -# Installs, configures and enables the idoreports module. +# Installs, configures and enables the idoreports module. The module is deprecated. # # @note If you want to use `git` as `install_method`, the CLI `git` command has to be installed. You can manage it yourself as package resource or declare the package name in icingaweb2 class parameter `extra_packages`. # @@ -26,53 +26,6 @@ # Options `mariadb` and `mysql`, both means true. With mariadb its cli options are used for the import, # whereas with mysql its different options. # -# @param ido_db_username -# An alternative username to login into the database. By default, the user from -# the `monitoring` module is used. -# -# @param ido_db_password -# The password for the alternative user. By default, the password from -# the `monitoring` module is used. -# -# @param use_tls -# Either enable or disable TLS encryption to the database. Other TLS parameters -# are only affected if this is set to 'true'. By default, same value from -# the `monitoring` module is used. -# -# @param tls_key_file -# Location of the private key for client authentication. Only valid if tls is enabled. -# By default, same value from the `monitoring` module is used. -# -# @param tls_cert_file -# Location of the certificate for client authentication. Only valid if tls is enabled. -# By default, same value from the `monitoring` module is used. -# -# @param tls_cacert_file -# Location of the ca certificate. Only valid if tls is enabled. -# By default, same value from the `monitoring` module is used. -# -# @param tls_key -# The private key to store in spicified `tls_key_file` file. Only valid if tls is enabled. -# By default, same value from the `monitoring` module is used. -# -# @param tls_cert -# The certificate to store in spicified `tls_cert_file` file. Only valid if tls is enabled. -# By default, same value from the `monitoring` module is used. -# -# @param tls_cacert -# The ca certificate to store in spicified `tls_cacert_file` file. Only valid if tls is enabled. -# By default, same value from the `monitoring` module is used. -# -# @param tls_capath -# The file path to the directory that contains the trusted SSL CA certificates, which are stored in PEM format. -# Only available for the mysql database. By default, same value from the `monitoring` module is used. -# -# @param tls_noverify -# Disable validation of the server certificate. By default, same value from the `monitoring` module is used. -# -# @param tls_cipher -# Cipher to use for the encrypted database connection. By default, same value from the `monitoring` module is used. -# # @example # class { 'icingaweb2::module::idoreports': # git_revision => 'v0.10.0', @@ -83,34 +36,22 @@ Enum['git', 'none', 'package'] $install_method, String $git_repository, String $package_name, - Optional[Stdlib::Absolutepath] $module_dir = undef, - Optional[String] $git_revision = undef, - Variant[Boolean, Enum['mariadb', 'mysql']] $import_schema = false, - Optional[String] $ido_db_username = $icingaweb2::module::monitoring::ido_db_username, - Optional[Icingaweb2::Secret] $ido_db_password = $icingaweb2::module::monitoring::ido_db_password, - Optional[Boolean] $use_tls = $icingaweb2::module::monitoring::use_tls, - Optional[Stdlib::Absolutepath] $tls_key_file = $icingaweb2::module::monitoring::tls_key_file, - Optional[Stdlib::Absolutepath] $tls_cert_file = $icingaweb2::module::monitoring::tls_cert_file, - Optional[Stdlib::Absolutepath] $tls_cacert_file = $icingaweb2::module::monitoring::tls_cacert_file, - Optional[Stdlib::Absolutepath] $tls_capath = $icingaweb2::module::monitoring::tls_capath, - Optional[Icingaweb2::Secret] $tls_key = $icingaweb2::module::monitoring::tls_key, - Optional[String] $tls_cert = $icingaweb2::module::monitoring::tls_cert, - Optional[String] $tls_cacert = $icingaweb2::module::monitoring::tls_cacert, - Optional[Boolean] $tls_noverify = $icingaweb2::module::monitoring::tls_noverify, - Optional[String] $tls_cipher = $icingaweb2::module::monitoring::tls_cipher, + Stdlib::Absolutepath $module_dir = "${icingaweb2::globals::default_module_path}/idoreports", + Optional[String] $git_revision = undef, + Variant[Boolean, Enum['mariadb', 'mysql']] $import_schema = false, ) { unless defined(Class['icingaweb2::module::monitoring']) { fail('You must declare the icingaweb2::module::monitoring class before using icingaweb2::module::idoreports!') } - $conf_dir = $icingaweb2::globals::conf_dir - $module_conf_dir = "${conf_dir}/modules/idoreports" + $conf_dir = $icingaweb2::globals::conf_dir + $module_conf_dir = "${conf_dir}/modules/idoreports" Exec { path => $facts['path'], provider => shell, user => 'root', - require => Icingaweb2::Module['idoreports'], + require => Class['icingaweb2::module::monitoring'], } icingaweb2::module { 'idoreports': @@ -128,33 +69,9 @@ } if $import_schema { - $db = { - type => $icingaweb2::module::monitoring::ido_type, - host => $icingaweb2::module::monitoring::ido_host, - port => pick($icingaweb2::module::monitoring::ido_port, $icingaweb2::globals::port[$icingaweb2::module::monitoring::ido_type]), - name => $icingaweb2::module::monitoring::ido_db_name, - user => $ido_db_username, - pass => $ido_db_password, - } - - $tls = delete($icingaweb2::config::tls, ['key', 'cert', 'cacert']) + delete_undef_values(icingaweb2::cert::files( - 'client', - $module_conf_dir, - $tls_key_file, - $tls_cert_file, - $tls_cacert_file, - $tls_key, - $tls_cert, - $tls_cacert, - ) + { - capath => $tls_capath, - noverify => $tls_noverify, - cipher => $tls_cipher, - }) - - icingaweb2::tls::client { 'icingaweb2::module::idoreports tls client config': - args => $tls, - } + $db = $icingaweb2::module::monitoring::db + $use_tls = $icingaweb2::module::monitoring::use_tls + $tls = $icingaweb2::module::monitoring::config::tls # determine the real dbms, because there are some differnces between # the mysql and mariadb client @@ -163,7 +80,7 @@ } else { $import_schema } - $db_cli_options = icingaweb2::db::connect($db + { type => $real_db_type }, $tls, $use_tls) + $db_cli_options = icinga::db::connect($db + { type => $real_db_type }, $tls, $use_tls) case $db['type'] { 'mysql': {