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 <akosia...@wikimedia.org>
Gerrit-Reviewer: Alexandros Kosiaris <akosia...@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