Mark Bergsma has submitted this change and it was merged.

Change subject: Support aggregators responsible for multiple sites
......................................................................


Support aggregators responsible for multiple sites

Change-Id: I0ec2576b1ed9d3214d5b71566222987b065ad670
---
M manifests/site.pp
M modules/ganglia_new/manifests/configuration.pp
M modules/ganglia_new/manifests/monitor/aggregator.pp
M modules/ganglia_new/manifests/monitor/aggregator/instance.pp
4 files changed, 33 insertions(+), 9 deletions(-)

Approvals:
  Mark Bergsma: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/manifests/site.pp b/manifests/site.pp
index 0fec1dd..4e4b070 100644
--- a/manifests/site.pp
+++ b/manifests/site.pp
@@ -1072,7 +1072,7 @@
                        hosts => $storagehosts
        }
 
-       include ganglia_new::monitor::aggregator
+       class { "ganglia_new::monitor::aggregator": sites => ["pmtpa"] }
 }
 
 node "hooper.wikimedia.org" {
diff --git a/modules/ganglia_new/manifests/configuration.pp 
b/modules/ganglia_new/manifests/configuration.pp
index bc5e8b1..4fd18e4 100644
--- a/modules/ganglia_new/manifests/configuration.pp
+++ b/modules/ganglia_new/manifests/configuration.pp
@@ -121,11 +121,22 @@
                        $url = "http://ganglia.wikimedia.org";
                        $gmetad_hosts = [ "208.80.152.15", "208.80.154.150" ]
                        $base_port = 8649
+                       $site_port_prefix = {
+                               pmtpa => 0,
+                               eqiad => 1000,
+                               esams => 3000,
+                       }
+                       $default_sites = ["pmtpa", "eqiad"]
                }
                'labs': {
                        $url = "http://ganglia.wmflabs.org";
                        $gmetad_hosts = [ "10.4.0.79"]
                        $base_port = 8649
+                       $site_port_prefix = {
+                               pmtpa => 0,
+                               eqiad => 0,
+                       }
+                       $default_sites = ["pmtpa"]
                }
        }
 }
\ No newline at end of file
diff --git a/modules/ganglia_new/manifests/monitor/aggregator.pp 
b/modules/ganglia_new/manifests/monitor/aggregator.pp
index 2ba6f95..e8d64db 100644
--- a/modules/ganglia_new/manifests/monitor/aggregator.pp
+++ b/modules/ganglia_new/manifests/monitor/aggregator.pp
@@ -1,4 +1,4 @@
-class ganglia_new::monitor::aggregator {
+class ganglia_new::monitor::aggregator($sites) {
        require ganglia_new::monitor::packages
        include ganglia_new::configuration
 
@@ -20,9 +20,13 @@
 
        upstart_job { "ganglia-monitor-aggregator-instance": }
 
-       # Instantiate aggregators for all clusters
-       $cluster_list = keys($ganglia_new::configuration::clusters)
-       instance{ $cluster_list: }
+       define site_instances() {
+               # Instantiate aggregators for all clusters for this site 
($title)
+               $cluster_list = 
suffix(keys($ganglia_new::configuration::clusters), "_${title}")
+               instance{ $cluster_list: site => $title }
+       }
+
+       site_instances{ $sites: }
 
        service { "ganglia-monitor-aggregator":
                provider => upstart,
diff --git a/modules/ganglia_new/manifests/monitor/aggregator/instance.pp 
b/modules/ganglia_new/manifests/monitor/aggregator/instance.pp
index 4e952c8..b0cf918 100644
--- a/modules/ganglia_new/manifests/monitor/aggregator/instance.pp
+++ b/modules/ganglia_new/manifests/monitor/aggregator/instance.pp
@@ -1,25 +1,34 @@
-define ganglia_new::monitor::aggregator::instance() {
+define ganglia_new::monitor::aggregator::instance($site) {
        Ganglia_new::Monitor::Aggregator::Instance[$title] -> 
Service[ganglia-monitor-aggregator]
 
        include ganglia_new::configuration, network::constants
 
        $aggregator = true
 
-       # TODO: support multiple $site
+       if has_key($ganglia_new::configuration::clusters[$cluster], 'sites') {
+               $sites = 
$ganglia_new::configuration::clusters[$cluster]['sites']
+       } else {
+               $sites = $ganglia_new::configuration::default_sites
+       }
        $cluster = $title
        $id = $ganglia_new::configuration::clusters[$cluster]['id']
        $desc = $ganglia_new::configuration::clusters[$cluster]['name']
-       $portnr = $ganglia_new::configuration::base_port + $id
+       $portnr = $ganglia_new::configuration::base_port + 
$ganglia_new::configuration::site_port_prefix[$site] + $id
        $gmond_port = $::realm ? {
                production => $portnr,
                labs => $::project_gid
        }
        $cname = "${desc} ${::site}"
+       $ensure = $site in $sites ? {
+               true => present,
+               default => absent
+       }
 
        file { "/etc/ganglia/aggregators/${id}.conf":
                require => File["/etc/ganglia/aggregators"],
                mode => 0444,
                content => template("$module_name/gmond.conf.erb"),
-               notify => Service["ganglia-monitor-aggregator"]
+               notify => Service["ganglia-monitor-aggregator"],
+               ensure => $ensure
        }
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/60842
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I0ec2576b1ed9d3214d5b71566222987b065ad670
Gerrit-PatchSet: 4
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Mark Bergsma <m...@wikimedia.org>
Gerrit-Reviewer: Mark Bergsma <m...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to