From 05cc4732455221aabf92a00fb8f494c98706468f Mon Sep 17 00:00:00 2001 From: Gardouille Date: Fri, 20 Feb 2015 12:17:18 +0100 Subject: [PATCH] Add the possibility to choose if the server's subclass should manage the client's subsclass. And add the client as a dependencie to install Xymon server. --- manifests/params.pp | 2 ++ manifests/server.pp | 7 +------ manifests/server/install.pp | 3 ++- manifests/server/preconfig.pp | 8 ++++++++ 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/manifests/params.pp b/manifests/params.pp index f8f39c5..ba8dfef 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -47,6 +47,8 @@ class xymon::params { $srv_pkg_ensure = 'present' $srv_pkg_provider = 'dpkg' + # If the server subclass should manage the client one + $manage_client = true } default: { fail('This Puppet module has been tested only on Debian OS family.') diff --git a/manifests/server.pp b/manifests/server.pp index 75da73f..2f6e0c5 100644 --- a/manifests/server.pp +++ b/manifests/server.pp @@ -29,14 +29,9 @@ class xymon::server ( $package_name = $xymon::params::srv_package_name, $pkg_ensure = $xymon::params::srv_pkg_ensure, $pkg_provider = $xymon::params::srv_pkg_provider, + $manage_client = $xymon::params::manage_client, ) inherits xymon::params { - if ! defined(Class['::xymon::client']) { - class { '::xymon::client': - service_enabled => false, - } - } - include '::xymon::server::preconfig' include '::xymon::server::install' #include '::xymon::server::config' diff --git a/manifests/server/install.pp b/manifests/server/install.pp index fe4bfee..dcebc69 100644 --- a/manifests/server/install.pp +++ b/manifests/server/install.pp @@ -22,10 +22,11 @@ class xymon::server::install { } -> # Install Xymon server package - package { 'xymon-server': + package { 'xymon': ensure => $xymon::server::pkg_ensure, provider => $xymon::server::pkg_provider, source => "${xymon::server::download_dir}/${xymon::server::preconfig::pkg_name}", + require => [ Package[$xymon::server::dep_pkg_name], Class['::xymon::client'] ], } diff --git a/manifests/server/preconfig.pp b/manifests/server/preconfig.pp index a2272ec..48c1bc4 100644 --- a/manifests/server/preconfig.pp +++ b/manifests/server/preconfig.pp @@ -4,6 +4,14 @@ # class xymon::server::preconfig { + # If the Xymon client should be managed too + if (! defined(Class['::xymon::client'])) and ($xymon::server::manage_client == true) { + class { '::xymon::client': + service_enabled => false, + new_version => $xymon::server::new_version, + } + } + # Define the download URL if $xymon::server::download_url == undef { case $::osfamily {