Alexandros Kosiaris has submitted this change and it was merged.
Change subject: Modularize torrus
......................................................................
Modularize torrus
Modularize the torrus manifests
Add tests
Move files into module
Introduce role classe
Assign role class to netmon1001
Change-Id: I5fa9063299ac28b6e33f86c110b183a5b6883ce9
---
D manifests/misc/torrus.pp
A manifests/role/torrus.pp
M manifests/site.pp
R modules/torrus/files/conf/schema-override.pl
R modules/torrus/files/conf/torrus-siteconfig.pl
R modules/torrus/files/templates/default-dir-modified.html
R modules/torrus/files/templates/html-incblocks-modified.txt
R modules/torrus/files/templates/overview-dir.html
R modules/torrus/files/torrus-discovery
R modules/torrus/files/wikimedia.css
R modules/torrus/files/xmlconfig/aggregates.xml
R modules/torrus/files/xmlconfig/facilities_aggregates.xml
R modules/torrus/files/xmlconfig/power.xml
R modules/torrus/files/xmlconfig/servertech-mib.xml
R modules/torrus/files/xmlconfig/squid-mib.xml
R modules/torrus/files/xmlconfig/varnish-mib.xml
A modules/torrus/manifests/config.pp
A modules/torrus/manifests/discovery.pp
A modules/torrus/manifests/discovery/ddxfile.pp
A modules/torrus/manifests/init.pp
A modules/torrus/manifests/web.pp
A modules/torrus/manifests/xml_generation/cdn.pp
A modules/torrus/manifests/xmlconfig.pp
R modules/torrus/templates/cdn-aggregates.xml.erb
R modules/torrus/templates/generic.ddx.erb
R modules/torrus/templates/site-global.xml.erb
R modules/torrus/templates/varnish.xml.erb
A modules/torrus/tests/Makefile
A modules/torrus/tests/cdn.pp
A modules/torrus/tests/config.pp
A modules/torrus/tests/ddxfile.pp
A modules/torrus/tests/discovery.pp
A modules/torrus/tests/init.pp
A modules/torrus/tests/web.pp
A modules/torrus/tests/xmlconfig.pp
35 files changed, 493 insertions(+), 251 deletions(-)
Approvals:
Alexandros Kosiaris: Looks good to me, approved
jenkins-bot: Verified
diff --git a/manifests/misc/torrus.pp b/manifests/misc/torrus.pp
deleted file mode 100644
index 8e55ea0..0000000
--- a/manifests/misc/torrus.pp
+++ /dev/null
@@ -1,194 +0,0 @@
-# misc/torrus.pp
-
-class misc::torrus {
- system::role { 'misc::torrus':
- description => 'Torrus',
- }
-
- package { 'torrus-common':
- ensure => latest,
- }
-
- class web {
- package { 'torrus-apache2':
- ensure => latest,
- before => Service['apache2'],
- }
-
- include ::apache::mod::rewrite
- include ::apache::mod::perl
-
- @webserver::apache::site { 'torrus.wikimedia.org':
- require => Class['::apache::mod::rewrite', '::apache::mod::perl'],
- docroot => '/var/www',
- custom => ['RedirectMatch ^/$ /torrus'],
- includes => ['/etc/torrus/torrus-apache2.conf'],
- }
- }
-
- class config {
- File { require => Package['torrus-common'] }
-
- file { '/etc/torrus/conf/':
- source => 'puppet:///files/torrus/conf/',
- owner => 'root',
- group => 'root',
- mode => '0444',
- recurse => remote,
- }
-
- file { '/etc/torrus/templates/':
- source => 'puppet:///files/torrus/templates/',
- owner => 'root',
- group => 'root',
- mode => '0444',
- recurse => remote,
- }
-
- file { '/usr/share/torrus/sup/webplain/wikimedia.css':
- owner => 'root',
- group => 'root',
- mode => '0444',
- source => 'puppet:///files/torrus/wikimedia.css',
- }
- }
-
- exec { 'torrus clearcache':
- command => '/usr/sbin/torrus clearcache',
- require => Class['misc::torrus::config'],
- subscribe => Class['misc::torrus::config'],
- logoutput => true,
- refreshonly => true,
- before => Exec['torrus compile'],
- }
-
- exec { 'torrus compile':
- command => '/usr/sbin/torrus compile --all',
- require => Class[['misc::torrus::config',
- 'misc::torrus::xmlconfig']
- ],
- subscribe => Class[['misc::torrus::config',
- 'misc::torrus::xmlconfig']
- ],
- logoutput => true,
- refreshonly => true,
- }
-
- service { 'torrus-common':
- ensure => running,
- require => Exec['torrus compile'],
- subscribe => File[ ['/etc/torrus/conf/',
- '/etc/torrus/templates/']
- ],
- hasrestart => false,
- }
-
- class xmlconfig {
- require misc::torrus::config
- include passwords::network
-
- file { '/etc/torrus/xmlconfig/':
- source => 'puppet:///files/torrus/xmlconfig/',
- owner => 'root',
- group => 'root',
- mode => '0444',
- recurse => remote,
- }
-
- file { '/etc/torrus/xmlconfig/site-global.xml':
- owner => 'root',
- group => 'root',
- mode => '0444',
- content => template('torrus/site-global.xml.erb'),
- }
- }
-
- class discovery {
- require misc::torrus::config
- require misc::torrus::xmlconfig
-
- # Definition: misc::torrus::discovery
- #
- # This definition generates a torrus discovery DDX file, which Torrus
- # will use to compile its XML config files from SNMP
- #
- # Parameters:
- # - $subtree: the Torrus subtree path used in the XML config file
- # - $domain: The domain name to use for SNMP host names
- # - $snmp_community: The SNMP community needed to query
- # - $hosts: A list of hosts
- define ddxfile(
- $subtree,
- $domain= '',
- $snmp_community= 'public',
- $hosts= []
- ) {
- file { "/etc/torrus/discovery/${title}.ddx":
- require => File['/etc/torrus/discovery'],
- content => template('torrus/generic.ddx.erb'),
- owner => 'root',
- group => 'root',
- mode => '0444',
- before => Exec['torrus-discovery'],
- notify => Exec['torrus-discovery'],
- }
- }
-
- file { '/etc/torrus/discovery':
- ensure => directory,
- owner => 'root',
- group => 'root',
- mode => '0750',
- }
-
- file { '/etc/cron.daily/torrus-discovery':
- source => 'puppet:///files/torrus/torrus-discovery',
- owner => 'root',
- group => 'root',
- mode => '0550',
- }
-
- exec { 'torrus-discovery':
- require => File['/etc/cron.daily/torrus-discovery'],
- command => '/etc/cron.daily/torrus-discovery',
- timeout => 1800,
- refreshonly => true,
- before => Exec['torrus compile'],
- }
- }
-
- class xml-generation {
- # Class: misc::torrus::xml-generation::cdn
- #
- # This class automatically generates XML files for
- # Squid and Varnish servers
- #
- # Uses role/cache/cache.pp
- class cdn {
- require role::cache::configuration
-
- File {
- owner => 'root',
- group => 'root',
- mode => '0444',
- notify => Exec['torrus compile --tree=CDN'],
- }
- file { '/etc/torrus/xmlconfig/varnish.xml':
- content => template('torrus/varnish.xml.erb'),
- }
-
- file { '/etc/torrus/xmlconfig/cdn-aggregates.xml':
- content => template('torrus/cdn-aggregates.xml.erb'),
- }
-
- exec { 'torrus compile --tree=CDN':
- path => '/bin:/sbin:/usr/bin:/usr/sbin',
- logoutput => true,
- refreshonly => true,
- }
- }
- }
-
- include xmlconfig
- include discovery
-}
diff --git a/manifests/role/torrus.pp b/manifests/role/torrus.pp
new file mode 100644
index 0000000..6bd210d
--- /dev/null
+++ b/manifests/role/torrus.pp
@@ -0,0 +1,57 @@
+class role::torrus {
+ include ::torrus
+ include ::torrus::web
+ include ::torrus::xml_generation::cdn
+ include passwords::network
+ $snmp_ro_community = $passwords::network::snmp_ro_community
+
+ $corerouters = [
+ 'cr1-eqiad.wikimedia.org',
+ 'cr1-esams.wikimedia.org',
+ 'cr1-ulsfo.wikimedia.org',
+ 'cr1-ulsfo.wikimedia.org',
+ 'cr2-eqiad.wikimedia.org',
+ 'cr2-knams.wikimedia.org',
+ 'cr2-ulsfo.wikimedia.org',
+ 'cr2-codfw.wikimedia.org',
+ 'pfw1-eqiad.wikimedia.org',
+ ]
+
+ $accessswitches = [
+ 'asw2-a5-eqiad.mgmt.eqiad.wmnet',
+ 'asw-a-eqiad.mgmt.eqiad.wmnet',
+ 'asw-b-eqiad.mgmt.eqiad.wmnet',
+ 'asw-c-eqiad.mgmt.eqiad.wmnet',
+ 'asw-d-eqiad.mgmt.eqiad.wmnet',
+ 'asw-a-codfw.mgmt.codfw.wmnet',
+ 'asw-b-codfw.mgmt.codfw.wmnet',
+ 'asw-c-codfw.mgmt.codfw.wmnet',
+ 'asw-d-codfw.mgmt.codfw.wmnet',
+ 'csw2-esams.wikimedia.org',
+ 'msw1-eqiad.mgmt.eqiad.wmnet',
+ 'psw1-eqiad.mgmt.eqiad.wmnet',
+ ]
+
+ $storagehosts = [
+ 'nas1001-a.eqiad.wmnet',
+ 'nas1001-b.eqiad.wmnet',
+ ]
+
+ ::torrus::discovery::ddxfile { 'corerouters':
+ subtree => '/Core_routers',
+ snmp_community => $snmp_ro_community,
+ hosts => $corerouters,
+ }
+
+ ::torrus::discovery::ddxfile { 'accessswitches':
+ subtree => '/Access_switches',
+ snmp_community => $snmp_ro_community,
+ hosts => $accessswitches,
+ }
+
+ ::torrus::discovery::ddxfile { 'storage':
+ subtree => '/Storage',
+ snmp_community => $snmp_ro_community,
+ hosts => $storagehosts,
+ }
+}
diff --git a/manifests/site.pp b/manifests/site.pp
index 298162a..fb313fb 100644
--- a/manifests/site.pp
+++ b/manifests/site.pp
@@ -2105,70 +2105,18 @@
include smokeping
include smokeping::web
include role::librenms
- include misc::torrus
- include misc::torrus::web
- include misc::torrus::xml-generation::cdn
include passwords::network
include ganglia::collector
include role::servermon
+ include role::torrus
+
+ interface::add_ip6_mapped { 'main': }
class { 'ganglia_new::monitor::aggregator':
sites => ['eqiad', 'codfw'],
}
- $snmp_ro_community = $passwords::network::snmp_ro_community
- interface::add_ip6_mapped { 'main': }
-
- $corerouters = [
- 'cr1-eqiad.wikimedia.org',
- 'cr1-esams.wikimedia.org',
- 'cr1-ulsfo.wikimedia.org',
- 'cr1-ulsfo.wikimedia.org',
- 'cr2-eqiad.wikimedia.org',
- 'cr2-knams.wikimedia.org',
- 'cr2-ulsfo.wikimedia.org',
- 'cr2-codfw.wikimedia.org',
- 'pfw1-eqiad.wikimedia.org',
- ]
-
- $accessswitches = [
- 'asw2-a5-eqiad.mgmt.eqiad.wmnet',
- 'asw-a-eqiad.mgmt.eqiad.wmnet',
- 'asw-b-eqiad.mgmt.eqiad.wmnet',
- 'asw-c-eqiad.mgmt.eqiad.wmnet',
- 'asw-d-eqiad.mgmt.eqiad.wmnet',
- 'asw-a-codfw.mgmt.codfw.wmnet',
- 'asw-b-codfw.mgmt.codfw.wmnet',
- 'asw-c-codfw.mgmt.codfw.wmnet',
- 'asw-d-codfw.mgmt.codfw.wmnet',
- 'csw2-esams.wikimedia.org',
- 'msw1-eqiad.mgmt.eqiad.wmnet',
- 'psw1-eqiad.mgmt.eqiad.wmnet',
- ]
-
- $storagehosts = [
- 'nas1001-a.eqiad.wmnet',
- 'nas1001-b.eqiad.wmnet',
- ]
-
- misc::torrus::discovery::ddxfile { 'corerouters':
- subtree => '/Core_routers',
- snmp_community => $snmp_ro_community,
- hosts => $corerouters,
- }
-
- misc::torrus::discovery::ddxfile { 'accessswitches':
- subtree => '/Access_switches',
- snmp_community => $snmp_ro_community,
- hosts => $accessswitches,
- }
-
- misc::torrus::discovery::ddxfile { 'storage':
- subtree => '/Storage',
- snmp_community => $snmp_ro_community,
- hosts => $storagehosts,
- }
}
node 'nitrogen.wikimedia.org' {
diff --git a/files/torrus/conf/schema-override.pl
b/modules/torrus/files/conf/schema-override.pl
similarity index 100%
rename from files/torrus/conf/schema-override.pl
rename to modules/torrus/files/conf/schema-override.pl
diff --git a/files/torrus/conf/torrus-siteconfig.pl
b/modules/torrus/files/conf/torrus-siteconfig.pl
similarity index 100%
rename from files/torrus/conf/torrus-siteconfig.pl
rename to modules/torrus/files/conf/torrus-siteconfig.pl
diff --git a/files/torrus/templates/default-dir-modified.html
b/modules/torrus/files/templates/default-dir-modified.html
similarity index 100%
rename from files/torrus/templates/default-dir-modified.html
rename to modules/torrus/files/templates/default-dir-modified.html
diff --git a/files/torrus/templates/html-incblocks-modified.txt
b/modules/torrus/files/templates/html-incblocks-modified.txt
similarity index 100%
rename from files/torrus/templates/html-incblocks-modified.txt
rename to modules/torrus/files/templates/html-incblocks-modified.txt
diff --git a/files/torrus/templates/overview-dir.html
b/modules/torrus/files/templates/overview-dir.html
similarity index 100%
rename from files/torrus/templates/overview-dir.html
rename to modules/torrus/files/templates/overview-dir.html
diff --git a/files/torrus/torrus-discovery
b/modules/torrus/files/torrus-discovery
similarity index 100%
rename from files/torrus/torrus-discovery
rename to modules/torrus/files/torrus-discovery
diff --git a/files/torrus/wikimedia.css b/modules/torrus/files/wikimedia.css
similarity index 100%
rename from files/torrus/wikimedia.css
rename to modules/torrus/files/wikimedia.css
diff --git a/files/torrus/xmlconfig/aggregates.xml
b/modules/torrus/files/xmlconfig/aggregates.xml
similarity index 100%
rename from files/torrus/xmlconfig/aggregates.xml
rename to modules/torrus/files/xmlconfig/aggregates.xml
diff --git a/files/torrus/xmlconfig/facilities_aggregates.xml
b/modules/torrus/files/xmlconfig/facilities_aggregates.xml
similarity index 100%
rename from files/torrus/xmlconfig/facilities_aggregates.xml
rename to modules/torrus/files/xmlconfig/facilities_aggregates.xml
diff --git a/files/torrus/xmlconfig/power.xml
b/modules/torrus/files/xmlconfig/power.xml
similarity index 100%
rename from files/torrus/xmlconfig/power.xml
rename to modules/torrus/files/xmlconfig/power.xml
diff --git a/files/torrus/xmlconfig/servertech-mib.xml
b/modules/torrus/files/xmlconfig/servertech-mib.xml
similarity index 100%
rename from files/torrus/xmlconfig/servertech-mib.xml
rename to modules/torrus/files/xmlconfig/servertech-mib.xml
diff --git a/files/torrus/xmlconfig/squid-mib.xml
b/modules/torrus/files/xmlconfig/squid-mib.xml
similarity index 100%
rename from files/torrus/xmlconfig/squid-mib.xml
rename to modules/torrus/files/xmlconfig/squid-mib.xml
diff --git a/files/torrus/xmlconfig/varnish-mib.xml
b/modules/torrus/files/xmlconfig/varnish-mib.xml
similarity index 100%
rename from files/torrus/xmlconfig/varnish-mib.xml
rename to modules/torrus/files/xmlconfig/varnish-mib.xml
diff --git a/modules/torrus/manifests/config.pp
b/modules/torrus/manifests/config.pp
new file mode 100644
index 0000000..76c788d
--- /dev/null
+++ b/modules/torrus/manifests/config.pp
@@ -0,0 +1,27 @@
+class torrus::config {
+ File { require => Package['torrus-common'] }
+
+ file { '/etc/torrus/conf/':
+ source => 'puppet:///modules/torrus/conf/',
+ owner => 'root',
+ group => 'root',
+ mode => '0444',
+ recurse => remote,
+ }
+
+ file { '/etc/torrus/templates/':
+ source => 'puppet:///modules/torrus/templates/',
+ owner => 'root',
+ group => 'root',
+ mode => '0444',
+ recurse => remote,
+ }
+
+ file { '/usr/share/torrus/sup/webplain/wikimedia.css':
+ owner => 'root',
+ group => 'root',
+ mode => '0444',
+ source => 'puppet:///modules/torrus/wikimedia.css',
+ }
+}
+
diff --git a/modules/torrus/manifests/discovery.pp
b/modules/torrus/manifests/discovery.pp
new file mode 100644
index 0000000..b5503a6
--- /dev/null
+++ b/modules/torrus/manifests/discovery.pp
@@ -0,0 +1,27 @@
+class torrus::discovery {
+ require torrus::config
+ require torrus::xmlconfig
+
+ file { '/etc/torrus/discovery':
+ ensure => directory,
+ owner => 'root',
+ group => 'root',
+ mode => '0750',
+ }
+
+ file { '/etc/cron.daily/torrus-discovery':
+ source => 'puppet:///modules/torrus/torrus-discovery',
+ owner => 'root',
+ group => 'root',
+ mode => '0550',
+ }
+
+ exec { 'torrus-discovery':
+ require => File['/etc/cron.daily/torrus-discovery'],
+ command => '/etc/cron.daily/torrus-discovery',
+ timeout => 1800,
+ refreshonly => true,
+ before => Exec['torrus compile'],
+ }
+}
+
diff --git a/modules/torrus/manifests/discovery/ddxfile.pp
b/modules/torrus/manifests/discovery/ddxfile.pp
new file mode 100644
index 0000000..884a38f
--- /dev/null
+++ b/modules/torrus/manifests/discovery/ddxfile.pp
@@ -0,0 +1,26 @@
+# Definition: torrus::discovery
+#
+# This definition generates a torrus discovery DDX file, which Torrus
+# will use to compile its XML config files from SNMP
+#
+# Parameters:
+# - $subtree: the Torrus subtree path used in the XML config file
+# - $domain: The domain name to use for SNMP host names
+# - $snmp_community: The SNMP community needed to query
+# - $hosts: A list of hosts
+define torrus::discovery::ddxfile(
+ $subtree,
+ $domain= '',
+ $snmp_community= 'public',
+ $hosts= []
+) {
+ file { "/etc/torrus/discovery/${title}.ddx":
+ require => File['/etc/torrus/discovery'],
+ content => template('torrus/generic.ddx.erb'),
+ owner => 'root',
+ group => 'root',
+ mode => '0444',
+ before => Exec['torrus-discovery'],
+ notify => Exec['torrus-discovery'],
+ }
+}
diff --git a/modules/torrus/manifests/init.pp b/modules/torrus/manifests/init.pp
new file mode 100644
index 0000000..53cd60f
--- /dev/null
+++ b/modules/torrus/manifests/init.pp
@@ -0,0 +1,42 @@
+class torrus {
+ system::role { 'torrus':
+ description => 'Torrus',
+ }
+
+ package { 'torrus-common':
+ ensure => present,
+ }
+
+ exec { 'torrus clearcache':
+ command => '/usr/sbin/torrus clearcache',
+ require => Class['torrus::config'],
+ subscribe => Class['torrus::config'],
+ logoutput => true,
+ refreshonly => true,
+ before => Exec['torrus compile'],
+ }
+
+ exec { 'torrus compile':
+ command => '/usr/sbin/torrus compile --all',
+ require => Class[['torrus::config',
+ 'torrus::xmlconfig']
+ ],
+ subscribe => Class[['torrus::config',
+ 'torrus::xmlconfig']
+ ],
+ logoutput => true,
+ refreshonly => true,
+ }
+
+ service { 'torrus-common':
+ ensure => running,
+ require => Exec['torrus compile'],
+ subscribe => File[ ['/etc/torrus/conf/',
+ '/etc/torrus/templates/']
+ ],
+ hasrestart => false,
+ }
+
+ include torrus::xmlconfig
+ include torrus::discovery
+}
diff --git a/modules/torrus/manifests/web.pp b/modules/torrus/manifests/web.pp
new file mode 100644
index 0000000..b24d0f1
--- /dev/null
+++ b/modules/torrus/manifests/web.pp
@@ -0,0 +1,16 @@
+class torrus::web {
+ package { 'torrus-apache2':
+ ensure => present,
+ before => Service['apache2'],
+ }
+
+ include ::apache::mod::rewrite
+ include ::apache::mod::perl
+
+ @webserver::apache::site { 'torrus.wikimedia.org':
+ require => Class['::apache::mod::rewrite', '::apache::mod::perl'],
+ docroot => '/var/www',
+ custom => ['RedirectMatch ^/$ /torrus'],
+ includes => ['/etc/torrus/torrus-apache2.conf'],
+ }
+}
diff --git a/modules/torrus/manifests/xml_generation/cdn.pp
b/modules/torrus/manifests/xml_generation/cdn.pp
new file mode 100644
index 0000000..21782be
--- /dev/null
+++ b/modules/torrus/manifests/xml_generation/cdn.pp
@@ -0,0 +1,29 @@
+t st# Class: torrus::xml_generation::cdn
+#
+# This class automatically generates XML files for
+# Squid and Varnish servers
+#
+# Uses role/cache/cache.pp
+class torrus::xml_generation::cdn {
+ require role::cache::configuration
+
+ File {
+ owner => 'root',
+ group => 'root',
+ mode => '0444',
+ notify => Exec['torrus compile --tree=CDN'],
+ }
+ file { '/etc/torrus/xmlconfig/varnish.xml':
+ content => template('torrus/varnish.xml.erb'),
+ }
+
+ file { '/etc/torrus/xmlconfig/cdn-aggregates.xml':
+ content => template('torrus/cdn-aggregates.xml.erb'),
+ }
+
+ exec { 'torrus compile --tree=CDN':
+ path => '/bin:/sbin:/usr/bin:/usr/sbin',
+ logoutput => true,
+ refreshonly => true,
+ }
+}
diff --git a/modules/torrus/manifests/xmlconfig.pp
b/modules/torrus/manifests/xmlconfig.pp
new file mode 100644
index 0000000..0a460a3
--- /dev/null
+++ b/modules/torrus/manifests/xmlconfig.pp
@@ -0,0 +1,19 @@
+class torrus::xmlconfig {
+ require torrus::config
+ include passwords::network
+
+ file { '/etc/torrus/xmlconfig/':
+ source => 'puppet:///modules/torrus/xmlconfig/',
+ owner => 'root',
+ group => 'root',
+ mode => '0444',
+ recurse => remote,
+ }
+
+ file { '/etc/torrus/xmlconfig/site-global.xml':
+ owner => 'root',
+ group => 'root',
+ mode => '0444',
+ content => template('torrus/site-global.xml.erb'),
+ }
+}
diff --git a/templates/torrus/cdn-aggregates.xml.erb
b/modules/torrus/templates/cdn-aggregates.xml.erb
similarity index 99%
rename from templates/torrus/cdn-aggregates.xml.erb
rename to modules/torrus/templates/cdn-aggregates.xml.erb
index f69d309..e235090 100644
--- a/templates/torrus/cdn-aggregates.xml.erb
+++ b/modules/torrus/templates/cdn-aggregates.xml.erb
@@ -39,7 +39,7 @@
<configuration>
<creator-info>
- Puppet class misc::torrus::xml-generation::cdn in misc/torrus.pp
+ Puppet class torrus::xml_generation::cdn
</creator-info>
<datasources>
diff --git a/templates/torrus/generic.ddx.erb
b/modules/torrus/templates/generic.ddx.erb
similarity index 100%
rename from templates/torrus/generic.ddx.erb
rename to modules/torrus/templates/generic.ddx.erb
diff --git a/templates/torrus/site-global.xml.erb
b/modules/torrus/templates/site-global.xml.erb
similarity index 100%
rename from templates/torrus/site-global.xml.erb
rename to modules/torrus/templates/site-global.xml.erb
diff --git a/templates/torrus/varnish.xml.erb
b/modules/torrus/templates/varnish.xml.erb
similarity index 98%
rename from templates/torrus/varnish.xml.erb
rename to modules/torrus/templates/varnish.xml.erb
index a691704..38402ba 100644
--- a/templates/torrus/varnish.xml.erb
+++ b/modules/torrus/templates/varnish.xml.erb
@@ -31,7 +31,7 @@
<configuration>
<creator-info>
- Puppet class misc::torrus::xml-generation::cdn in misc/torrus.pp
+ Puppet class torrus::xml_generation::cdn
</creator-info>
<include filename="varnish-mib.xml"/>
diff --git a/modules/torrus/tests/Makefile b/modules/torrus/tests/Makefile
new file mode 100644
index 0000000..76cd656
--- /dev/null
+++ b/modules/torrus/tests/Makefile
@@ -0,0 +1,13 @@
+MANIFESTS=$(wildcard *.pp)
+OBJS=$(MANIFESTS:.pp=.po)
+TESTS_DIR=$(dir $(CURDIR))
+MODULE_DIR=$(TESTS_DIR:/=)
+MODULES_DIR=$(dir $(MODULE_DIR))
+
+all: test
+
+test: $(OBJS)
+
+%.po: %.pp
+ puppet parser validate $<
+ puppet apply --noop --modulepath $(MODULES_DIR) $<
diff --git a/modules/torrus/tests/cdn.pp b/modules/torrus/tests/cdn.pp
new file mode 100644
index 0000000..186bb22
--- /dev/null
+++ b/modules/torrus/tests/cdn.pp
@@ -0,0 +1,213 @@
+#
+
+# class to satify includes
+class role::cache::configuration {
+ $active_nodes = {
+ 'production' => {
+ 'text' => {
+ 'eqiad' => [
+ 'cp1052.eqiad.wmnet',
+ 'cp1068.eqiad.wmnet',
+ ],
+ 'esams' => [
+ 'amssq31.esams.wmnet',
+ 'amssq62.esams.wikimedia.org',
+ ],
+ 'ulsfo' => [
+ 'cp4008.ulsfo.wmnet',
+ 'cp4018.ulsfo.wmnet',
+ ]
+ },
+ 'api' => {
+ 'eqiad' => [],
+ 'esams' => [],
+ 'ulsfo' => [],
+ },
+ 'bits' => {
+ 'eqiad' => ['cp1056.eqiad.wmnet',
+ 'cp1070.eqiad.wmnet',
+ ],
+ 'esams' => ['cp3019.esams.wikimedia.org',
+ 'cp3022.esams.wikimedia.org',
+ ],
+ 'ulsfo' => ['cp4001.ulsfo.wmnet',
+ 'cp4004.ulsfo.wmnet',
+ ],
+ },
+ 'upload' => {
+ 'eqiad' => [
+ 'cp1048.eqiad.wmnet',
+ 'cp1064.eqiad.wmnet',
+ ],
+ 'esams' => [
+ 'cp3003.esams.wikimedia.org',
+ 'cp3018.esams.wmnet',
+ ],
+ 'ulsfo' => [
+ 'cp4005.ulsfo.wmnet',
+ 'cp4015.ulsfo.wmnet',
+ ],
+ },
+ 'mobile' => {
+ 'eqiad' => ['cp1046.eqiad.wmnet',
+ 'cp1060.eqiad.wmnet',
+ ],
+ 'esams' => ['cp3011.esams.wikimedia.org',
+ 'cp3014.esams.wmnet',
+ ],
+ 'ulsfo' => ['cp4011.ulsfo.wmnet',
+ 'cp4020.ulsfo.wmnet',
+ ]
+ },
+ 'parsoid' => {
+ 'eqiad' => ['cp1045.eqiad.wmnet', 'cp1058.eqiad.wmnet'],
+ 'esams' => [],
+ 'ulsfo' => []
+ },
+ 'misc' => {
+ 'eqiad' => ['cp1043.eqiad.wmnet', 'cp1044.eqiad.wmnet'],
+ 'esams' => [],
+ 'ulsfo' => [],
+ }
+ },
+ 'labs' => {
+ 'api' => {
+ 'eqiad' => '127.0.0.1',
+ },
+ 'bits' => {
+ 'eqiad' => '127.0.0.1',
+ },
+ 'mobile' => {
+ 'eqiad' => '127.0.0.1',
+ },
+ 'text' => {
+ 'eqiad' => '127.0.0.1',
+ },
+ 'upload' => {
+ 'eqiad' => '127.0.0.1',
+ },
+ 'parsoid' => {
+ 'eqiad' => '127.0.0.1',
+ },
+ },
+ }
+
+ $decommissioned_nodes = {
+ 'text' => {
+ 'eqiad' => [
+
+ ],
+ 'esams' => [
+ 'knsq30.knams.wikimedia.org',
+ ]
+ },
+ 'api' => {
+ 'eqiad' => [],
+ 'esams' => [],
+ },
+ 'bits' => {
+ 'eqiad' => [],
+ 'esams' => [
+ 'knsq1.esams.wikimedia.org',
+ 'knsq7.esams.wikimedia.org',
+ ],
+ 'ulsfo' => [],
+ },
+ 'upload' => {
+ 'eqiad' => [
+ 'cp1021.eqiad.wmnet',
+ 'cp1036.eqiad.wmnet',
+ ],
+ 'esams' => [
+ 'knsq8.knams.wikimedia.org',
+ 'knsq15.knams.wikimedia.org'
+ ],
+ 'ulsfo' => [],
+ },
+ 'mobile' => {
+ 'eqiad' => ['cp1041.eqiad.wmnet', 'cp1042.eqiad.wmnet'],
+ 'esams' => [],
+ 'ulsfo' => [],
+ },
+ 'parsoid' => {
+ 'eqiad' => [],
+ 'esams' => [],
+ 'ulsfo' => [],
+ },
+ 'misc' => {
+ 'eqiad' => [],
+ 'esams' => [],
+ 'ulsfo' => [],
+ }
+ }
+
+ $backends = {
+ 'production' => {
+ 'appservers' => ['1.1.1.1', '2.2.2.2',],
+ 'hhvm_appservers' => ['1.1.1.1', '2.2.2.2',],
+ 'api' => ['1.1.1.1', '2.2.2.2',],
+ 'hhvm_api' => ['1.1.1.1', '2.2.2.2',],
+ 'rendering' => ['1.1.1.1', '2.2.2.2',],
+ 'bits' => {
+ 'eqiad' => flatten(['1.1.1.1', '2.2.2.2',]),
+ },
+ 'bits_appservers' => {
+ 'eqiad' => flatten(['1.1.1.1', '2.2.2.2',]),
+ },
+ 'test_appservers' => {
+ 'eqiad' => [ 'mw1017.eqiad.wmnet' ],
+ },
+ 'parsoid' => ['1.1.1.1'],
+ },
+ 'labs' => {
+ 'appservers' => {
+ 'eqiad' => [
+ '10.68.17.96', # deployment-mediawiki01
+ '10.68.17.208', # deployment-mediawiki02
+ ],
+ },
+ 'hhvm_appservers' => {
+ 'eqiad' => [
+ '10.68.17.208', # deployment-mediawiki02
+ ],
+ },
+ 'api' => {
+ 'eqiad' => [
+ '10.68.17.96', # deployment-mediawiki01
+ '10.68.17.208', # deployment-mediawiki02
+ ],
+ },
+ 'hhvm_api' => {
+ 'eqiad' => [
+ '10.68.17.208', # deployment-mediawiki02
+ ],
+ },
+ 'bits' => {
+ 'eqiad' => [
+ '10.68.17.96', # deployment-mediawiki01
+ '10.68.17.208', # deployment-mediawiki02
+ ],
+ },
+ 'bits_appservers' => {
+ 'eqiad' => [
+ '10.68.17.96', # deployment-mediawiki01
+ '10.68.17.208', # deployment-mediawiki02
+ ],
+ },
+ 'rendering' => {
+ 'eqiad' => [
+ '10.68.17.96', # deployment-mediawiki01
+ '10.68.17.208', # deployment-mediawiki02
+ ],
+ },
+ 'test_appservers' => {
+ 'eqiad' => [ '10.68.17.96' ], # deployment-mediawiki01
+ },
+ 'parsoid' => {
+ 'eqiad' => [ '10.68.16.17' ], # deployment-parsoid04
+ }
+ }
+ }
+}
+
+include torrus::xml_generation::cdn
diff --git a/modules/torrus/tests/config.pp b/modules/torrus/tests/config.pp
new file mode 100644
index 0000000..f91bfee
--- /dev/null
+++ b/modules/torrus/tests/config.pp
@@ -0,0 +1,3 @@
+#
+
+include torrus::config
diff --git a/modules/torrus/tests/ddxfile.pp b/modules/torrus/tests/ddxfile.pp
new file mode 100644
index 0000000..d2c2637
--- /dev/null
+++ b/modules/torrus/tests/ddxfile.pp
@@ -0,0 +1,4 @@
+torrus::discovery::ddxfile {'nosuchone':
+ subtree => '/A/Tree',
+ domain => 'example.com',
+}
diff --git a/modules/torrus/tests/discovery.pp
b/modules/torrus/tests/discovery.pp
new file mode 100644
index 0000000..81ba34b
--- /dev/null
+++ b/modules/torrus/tests/discovery.pp
@@ -0,0 +1,3 @@
+#
+
+include torrus::discovery
diff --git a/modules/torrus/tests/init.pp b/modules/torrus/tests/init.pp
new file mode 100644
index 0000000..0fb3397
--- /dev/null
+++ b/modules/torrus/tests/init.pp
@@ -0,0 +1,3 @@
+#
+
+include torrus
diff --git a/modules/torrus/tests/web.pp b/modules/torrus/tests/web.pp
new file mode 100644
index 0000000..d892fdf
--- /dev/null
+++ b/modules/torrus/tests/web.pp
@@ -0,0 +1,3 @@
+#
+
+include torrus::web
diff --git a/modules/torrus/tests/xmlconfig.pp
b/modules/torrus/tests/xmlconfig.pp
new file mode 100644
index 0000000..6043b4f
--- /dev/null
+++ b/modules/torrus/tests/xmlconfig.pp
@@ -0,0 +1,3 @@
+#
+
+include torrus::xmlconfig
--
To view, visit https://gerrit.wikimedia.org/r/174389
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I5fa9063299ac28b6e33f86c110b183a5b6883ce9
Gerrit-PatchSet: 8
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Alexandros Kosiaris <[email protected]>
Gerrit-Reviewer: Alexandros Kosiaris <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits