Matanya has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/109514


Change subject: mail :lint
......................................................................

mail :lint

Change-Id: Ic4647af95e26a1863c52f31f66cfb35b835f7a33
---
M manifests/mail.pp
1 file changed, 464 insertions(+), 408 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/puppet 
refs/changes/14/109514/1

diff --git a/manifests/mail.pp b/manifests/mail.pp
index 2306acb..4bc1233 100644
--- a/manifests/mail.pp
+++ b/manifests/mail.pp
@@ -1,486 +1,542 @@
 # mail.pp
 
 class exim {
-       class constants {
-               $primary_mx = [ "208.80.152.186", 
"2620::860:2:219:b9ff:fedd:c027" ]
-       }
+    class constants {
+        $primary_mx = [ '208.80.152.186',
+                        '2620::860:2:219:b9ff:fedd:c027'
+        ]
+    }
 
-       class config($install_type="light", $queuerunner="queueonly") {
-               package { [ "exim4-config", "exim4-daemon-${install_type}" ]: 
ensure => latest }
+    class config($install_type='light', $queuerunner='queueonly') {
+        package { [ 'exim4-config', "exim4-daemon-${install_type}" ]:
+            ensure => 'latest',
+        }
 
-               if $install_type == "heavy" {
-                       exec { "mkdir /var/spool/exim4/scan":
-                               require => Package[exim4-daemon-heavy],
-                               path => "/bin:/usr/bin",
-                               creates => "/var/spool/exim4/scan"
-                       }
+        if $install_type == 'heavy' {
+            exec { 'mkdir /var/spool/exim4/scan':
+                require => Package['exim4-daemon-heavy'],
+                path    => '/bin:/usr/bin',
+                creates => '/var/spool/exim4/scan',
+            }
 
-                       mount { [ "/var/spool/exim4/scan", 
"/var/spool/exim4/db" ]:
-                               device => "none",
-                               fstype => "tmpfs",
-                               options => "defaults",
-                               ensure => mounted
-                       }
+            mount { [ '/var/spool/exim4/scan', '/var/spool/exim4/db' ]:
+                ensure  => mounted,
+                device  => 'none',
+                fstype  => 'tmpfs',
+                options => 'defaults',
+            }
 
-                       file { [ "/var/spool/exim4/scan", "/var/spool/exim4/db" 
]:
-                               ensure => directory,
-                               owner => Debian-exim,
-                               group => Debian-exim
-                       }
+            file { [ '/var/spool/exim4/scan', '/var/spool/exim4/db' ]:
+                ensure => 'directory',
+                owner  => 'Debian-exim',
+                group  => 'Debian-exim',
+            }
 
-                       # add nagios to the Debian-exim group to allow 
check_disk tmpfs mounts (puppet still can't manage existing users?! so just 
Exec)
-                       exec { "nagios_to_exim_group":
-                               command => "usermod -a -G Debian-exim nagios",
-                               path => "/usr/sbin";
-                       }
+            # add nagios to the Debian-exim group to allow
+            # check_disk tmpfs mounts
+            #(puppet still can't manage existing users?! so just Exec)
+            exec { 'nagios_to_exim_group':
+                command => 'usermod -a -G Debian-exim nagios',
+                path    => '/usr/sbin',
+            }
 
-                       Exec["mkdir /var/spool/exim4/scan"] -> 
Mount["/var/spool/exim4/scan"] -> File["/var/spool/exim4/scan"]
-                       Package[exim4-daemon-heavy] -> 
Mount["/var/spool/exim4/db"] -> File["/var/spool/exim4/db"]
-               }
+            Exec['mkdir /var/spool/exim4/scan'] -> 
Mount['/var/spool/exim4/scan'] -> File['/var/spool/exim4/scan']
+            Package['exim4-daemon-heavy'] -> Mount['/var/spool/exim4/db'] -> 
File['/var/spool/exim4/db']
+        }
 
-               file {
-                       "/etc/default/exim4":
-                               require => Package[exim4-config],
-                               owner => root,
-                               group => root,
-                               mode => 0444,
-                               content => template("exim/exim4.default.erb");
-                       "/etc/exim4/aliases/":
-                               require => Package[exim4-config],
-                               mode => 0755,
-                               owner => root,
-                               group => root,
-                               ensure => directory;
-               }
-       }
+        file { '/etc/default/exim4':
+            require => Package['exim4-config'],
+            owner   => 'root',
+            group   => 'root',
+            mode    => '0444',
+            content => template('exim/exim4.default.erb'),
+        }
 
-       class service {
-               Class["exim::config"] -> Class[exim::service]
+        file { '/etc/exim4/aliases/':
+            ensure  => 'directory',
+            require => Package['exim4-config'],
+            mode    => '0755',
+            owner   => 'root',
+            group   => 'root',
+        }
+    }
 
-               # The init script's status command exit value only reflects the 
SMTP service
-               service { exim4:
-                       ensure => running,
-                       hasstatus => $exim::config::queuerunner ? {
-                               "queueonly" => false,
-                               default => true
-                       }
-               }
+    class service {
+        Class['exim::config'] -> Class['exim::service']
+        $queuerunner = $exim::config::queuerunner ? {
+            'queueonly' => false,
+            default     => true,
+        }
+        # The init script's status command exit value
+        #only reflects the SMTP service
+        service { 'exim4':
+            ensure    => 'running',
+            hasstatus => $queuerunner,
+        }
 
-               if $exim::config::queuerunner != "queueonly" {
-                       # Nagios monitoring
-                       monitor_service { "smtp": description => "Exim SMTP", 
check_command => "check_smtp" }
-               }
-       }
+        if $exim::config::queuerunner != 'queueonly' {
+            # Nagios monitoring
+            monitor_service { 'smtp':
+                description   => 'Exim SMTP',
+                check_command => 'check_smtp',
+            }
+        }
+    }
 
-       class simple-mail-sender {
-               class { "exim::config": queuerunner => "queueonly" }
-               Class["exim::config"] -> Class[exim::simple-mail-sender]
+    class simple-mail-sender {
+        class { 'exim::config':
+            queuerunner => 'queueonly',
+        }
+        Class['exim::config'] -> Class['exim::simple-mail-sender']
 
-               file {
-                       "/etc/exim4/exim4.conf":
-                               require => Package[exim4-config],
-                               owner => root,
-                               group => root,
-                               mode => 0444,
-                               content => template("exim/exim4.minimal.erb");
-               }
+        file { '/etc/exim4/exim4.conf':
+            require => Package['exim4-config'],
+            owner   => 'root',
+            group   => 'root',
+            mode    => '0444',
+            content => template('exim/exim4.minimal.erb'),
+        }
 
-               include exim::service
-       }
+        include exim::service
+    }
 
-       class rt {
-               class { exim::roled:
-                       local_domains => [ "+system_domains", "+rt_domains" ],
-                       enable_mail_relay => "false",
-                       enable_external_mail => "true",
-                       smart_route_list => [ "mchenry.wikimedia.org", 
"lists.wikimedia.org" ],
-                       enable_mailman => "false",
-                       rt_relay => "true",
-                       enable_mail_submission => "false",
-                       enable_spamassassin => "false"
-               }
-       }
+    class rt {
+        class { 'exim::roled':
+            local_domains          => [ '+system_domains', '+rt_domains' ],
+            enable_mail_relay      => false,
+            enable_external_mail   => true,
+            smart_route_list       => [ 'mchenry.wikimedia.org',
+                                        'lists.wikimedia.org' ],
+            enable_mailman         => false,
+            rt_relay               => true,
+            enable_mail_submission => false,
+            enable_spamassassin    => false,
+        }
+    }
 
-       class smtp {
-               include passwords::exim
-               $otrs_mysql_password = $passwords::exim::otrs_mysql_password
-               $smtp_ldap_password = $passwords::exim::smtp_ldap_password
-       }
+    class smtp {
+        include passwords::exim
+        $otrs_mysql_password = $passwords::exim::otrs_mysql_password
+        $smtp_ldap_password = $passwords::exim::smtp_ldap_password
+    }
 
-       # Class: exim::roled
-       #
-       # This class installs a full featured Exim MTA
-       #
-       # Parameters:
-       #       - $local_domains:
-       #               List of domains Exim will treat as "local", i.e. be 
responsible
-       #               for
-       #       - $enable_mail_relay:
-       #               Values: primary, secondary
-       #               Whether Exim will act as a primary or secondary mail 
relay for
-       #               other mail servers
-       #       - $enable_mailman:
-       #               Whether Mailman delivery functionality is enabled 
(true/false)
-       #       - $enable_imap_delivery:
-       #               Whether IMAP local delivery functional is enabled 
(true/false)
-       #       - $enable_mail_submission:
-       #               Enable/disable mail submission by users/client MUAs
-       #       - $mediawiki_relay:
-       #               Whether this MTA relays mail for MediaWiki (true/false)
-       #       - $enable_spamasssin:
-       #               Enable/disable SpamAssassin spam checking
-       #       - $outbound_ips:
-       #               IP addresses to use for sending outbound e-mail
-       #       - $list_outbound_ips:
-       #               IP addresses to use for sending outbound e-mail from 
Mailman
-       #       - $hold_domains:
-       #               List of domains to hold on the queue without processing
-       class roled(
-                       $enable_clamav="false",
-                       $enable_external_mail="false",
-                       $enable_imap_delivery="false",
-                       $enable_mail_relay="false",
-                       $enable_mail_submission="false",
-                       $enable_mailman="false",
-                       $enable_otrs_server="false",
-                       $enable_spamassassin="false",
-                       $hold_domains=[],
-                       $list_outbound_ips=[],
-                       $local_domains = [ "+system_domains" ],
-                       $mediawiki_relay="false",
-                       $outbound_ips=[ $ipaddress ],
-                       $rt_relay="false",
-                       $smart_route_list=[]
-                ) {
+    # Class: exim::roled
+    #
+    # This class installs a full featured Exim MTA
+    #
+    # Parameters:
+    #   - $local_domains:
+    #       List of domains Exim will treat as "local", i.e. be responsible
+    #       for
+    #   - $enable_mail_relay:
+    #       Values: primary, secondary
+    #       Whether Exim will act as a primary or secondary mail relay for
+    #       other mail servers
+    #   - $enable_mailman:
+    #       Whether Mailman delivery functionality is enabled (true/false)
+    #   - $enable_imap_delivery:
+    #       Whether IMAP local delivery functional is enabled (true/false)
+    #   - $enable_mail_submission:
+    #       Enable/disable mail submission by users/client MUAs
+    #   - $mediawiki_relay:
+    #       Whether this MTA relays mail for MediaWiki (true/false)
+    #   - $enable_spamasssin:
+    #       Enable/disable SpamAssassin spam checking
+    #   - $outbound_ips:
+    #       IP addresses to use for sending outbound e-mail
+    #   - $list_outbound_ips:
+    #       IP addresses to use for sending outbound e-mail from Mailman
+    #   - $hold_domains:
+    #       List of domains to hold on the queue without processing
+    class roled(
+        $enable_clamav          = false,
+        $enable_external_mail   = false,
+        $enable_imap_delivery   = false,
+        $enable_mail_relay      = false,
+        $enable_mail_submission = false,
+        $enable_mailman         = false,
+        $enable_otrs_server     = false,
+        $enable_spamassassin    = false,
+        $hold_domains           = [],
+        $list_outbound_ips      = [],
+        $local_domains          =  [ '+system_domains' ],
+        $mediawiki_relay        = false,
+        $outbound_ips           = [ $ipaddress ],
+        $rt_relay               = false,
+        $smart_route_list       = []
+) {
 
-               class { "exim::config": install_type => "heavy", queuerunner => 
"combined" }
-               Class["exim::config"] -> Class[exim::roled]
+        class { 'exim::config':
+            install_type => 'heavy',
+            queuerunner  => 'combined',
+        }
+        Class['exim::config'] -> Class['exim::roled']
 
-               include exim::service
+        include exim::service
 
-               include exim::smtp
-               include exim::constants
-               include network::constants
-               include privateexim::listserve
+        include exim::smtp
+        include exim::constants
+        include network::constants
+        include privateexim::listserve
 
-               file {
-                       "/etc/exim4/exim4.conf":
-                               require => Package[exim4-config],
-                               notify => Service[exim4],
-                               owner => root,
-                               group => Debian-exim,
-                               mode => 0440,
-                               content => 
template("exim/exim4.conf.SMTP_IMAP_MM.erb");
-                       "/etc/exim4/dkim/":
-                               ensure => 'directory',
-                               purge => true,
-                               owner => root,
-                               group => Debian-exim,
-                               mode => 0440,
-                               require => Package[exim4-config];
-                       "/etc/exim4/system_filter":
-                               owner => root,
-                               group => Debian-exim,
-                               mode => 0444,
-                               content => 
template("exim/system_filter.conf.erb");
-                       "/etc/exim4/defer_domains":
-                               owner => root,
-                               group => Debian-exim,
-                               mode => 0444,
-                               ensure => present;
-                       "/usr/local/bin/collect_exim_stats_via_gmetric":
-                               owner => root,
-                               group => Debian-exim,
-                               mode => 0755,
-                               source => 
'puppet:///files/ganglia/collect_exim_stats_via_gmetric';
-               }
+        file { '/etc/exim4/exim4.conf':
+            require => Package['exim4-config'],
+            notify  => Service['exim4'],
+            owner   => 'root',
+            group   => 'Debian-exim',
+            mode    => '0440',
+            content => template('exim/exim4.conf.SMTP_IMAP_MM.erb'),
+        }
 
-               include backup::host
-               backup::set { 'var-vmail': }
-               if $enable_mailman {
-                       backup::set { 'var-lib-mailman': }
-               }
+        file { '/etc/exim4/dkim/':
+            ensure  => 'directory',
+            purge   => true,
+            owner   => 'root',
+            group   => 'Debian-exim',
+            mode    => '0440',
+            require => Package['exim4-config'],
+        }
 
-               class mail_relay {
-                       Class["exim::config"] -> Class[exim::roled::mail_relay]
+        file { '/etc/exim4/system_filter':
+            owner   => 'root',
+            group   => 'Debian-exim',
+            mode    => '0444',
+            content => template('exim/system_filter.conf.erb'),
+        }
 
-                       file { '/etc/exim4/relay_domains':
-                                       owner => root,
-                                       group => root,
-                                       mode => 0444,
-                                       source => 
"puppet:///files/exim/exim4.secondary_relay_domains.conf";
-                       }
-                       file { '/etc/exim4/dkim/wikimedia.org-wikimedia.key':
-                               ensure  => present,
-                               owner   => 'root',
-                               group   => 'Debian-exim',
-                               mode    => '0440',
-                               source  => 
'puppet:///private/dkim/wikimedia.org-wikimedia.key',
-                               require => File['/etc/exim4/dkim'],
-                               notify  => Service['exim4'],
-                       }
-               }
+        file { '/etc/exim4/defer_domains':
+            ensure => 'present',
+            owner  => 'root',
+            group  => 'Debian-exim',
+            mode   => '0444',
+        }
 
-               class mailman {
-                       Class["exim::config"] -> Class[exim::roled::mailman]
+        file { '/usr/local/bin/collect_exim_stats_via_gmetric':
+            owner  => 'root',
+            group  => 'Debian-exim',
+            mode   => '0755',
+            source => 'puppet:///files/ganglia/collect_exim_stats_via_gmetric',
+        }
 
-                       file { '/etc/exim4/aliases/lists.wikimedia.org':
-                                       owner => root,
-                                       group => root,
-                                       mode => 0444,
-                                       source => 
"puppet:///files/exim/exim4.listserver_aliases.conf";
-                       }
-                       file { 
'/etc/exim4/dkim/lists.wikimedia.org-wikimedia.key':
-                               ensure  => present,
-                               owner   => 'root',
-                               group   => 'Debian-exim',
-                               mode    => '0440',
-                               source  => 
'puppet:///private/dkim/lists.wikimedia.org-wikimedia.key',
-                               require => File['/etc/exim4/dkim'],
-                               notify  => Service['exim4'],
-                       }
-               }
+        include backup::host
+        backup::set { 'var-vmail': }
+        if $enable_mailman {
+            backup::set { 'var-lib-mailman': }
+        }
 
-               if ( $mediawiki_relay == "true" ) {
-                       file { '/etc/exim4/dkim/wikimedia.org-wiki-mail.key':
-                               ensure  => present,
-                               owner   => 'root',
-                               group   => 'Debian-exim',
-                               mode    => '0440',
-                               source  => 
'puppet:///private/dkim/wikimedia.org-wiki-mail.key',
-                               require => File['/etc/exim4/dkim'],
-                               notify  => Service['exim4'],
-                       }
-               }
+        class mail_relay {
+            Class['exim::config'] -> Class['exim::roled::mail_relay']
 
-               cron { 'collect_exim_stats_via_gmetric':
-                       user => 'root',
-                       command => 
'/usr/local/bin/collect_exim_stats_via_gmetric',
-                       ensure => present;
-               }
+            file { '/etc/exim4/relay_domains':
+                owner  => 'root',
+                group  => 'root',
+                mode   => '0444',
+                source => 
'puppet:///files/exim/exim4.secondary_relay_domains.conf',
+            }
 
-               if ( $enable_mailman == "true" ) {
-                       include mailman
-               }
-               if ( $enable_mail_relay == "primary" ) or ( $enable_mail_relay 
== "secondary" ) {
-                       include mail_relay
-               }
-               if ( $enable_spamassassin == "true" ) {
-                       Class[spamassassin] -> Class[exim::roled]
-               }
-               if ( $enable_clamav == "true" ) {
-                       include clamav
-               }
-       }
+            file { '/etc/exim4/dkim/wikimedia.org-wikimedia.key':
+                ensure  => present,
+                owner   => 'root',
+                group   => 'Debian-exim',
+                mode    => '0440',
+                source  => 
'puppet:///private/dkim/wikimedia.org-wikimedia.key',
+                require => File['/etc/exim4/dkim'],
+                notify  => Service['exim4'],
+            }
+        }
+
+        class mailman {
+            Class['exim::config'] -> Class['exim::roled::mailman']
+
+            file { '/etc/exim4/aliases/lists.wikimedia.org':
+                owner  => 'root',
+                group  => 'root',
+                mode   => '0444',
+                source => 'puppet:///files/exim/exim4.listserver_aliases.conf',
+            }
+            file { '/etc/exim4/dkim/lists.wikimedia.org-wikimedia.key':
+                ensure  => present,
+                owner   => 'root',
+                group   => 'Debian-exim',
+                mode    => '0440',
+                source  => 
'puppet:///private/dkim/lists.wikimedia.org-wikimedia.key',
+                require => File['/etc/exim4/dkim'],
+                notify  => Service['exim4'],
+            }
+        }
+
+        if ( $mediawiki_relay == true ) {
+            file { '/etc/exim4/dkim/wikimedia.org-wiki-mail.key':
+                ensure  => present,
+                owner   => 'root',
+                group   => 'Debian-exim',
+                mode    => '0440',
+                source  => 
'puppet:///private/dkim/wikimedia.org-wiki-mail.key',
+                require => File['/etc/exim4/dkim'],
+                notify  => Service['exim4'],
+            }
+        }
+
+        cron { 'collect_exim_stats_via_gmetric':
+            ensure  => present,
+            user    => 'root',
+            command => '/usr/local/bin/collect_exim_stats_via_gmetric',
+        }
+
+        if ( $enable_mailman == true ) {
+            include mailman
+        }
+        if ( $enable_mail_relay == 'primary' )
+        or ( $enable_mail_relay == 'secondary' ) {
+            include mail_relay
+        }
+        if ( $enable_spamassassin == true ) {
+            Class['spamassassin'] -> Class['exim::roled']
+        }
+        if ( $enable_clamav == true ) {
+            include clamav
+        }
+    }
 }
 
 # https://help.ubuntu.com/community/EximClamAV
 # /usr/share/doc/clamav-base/README.Debian.gz
 class clamav {
 
-       generic::systemuser { "clamav":
-               name => "clamav",
-               groups => "Debian-exim", # needed for exim integration
-       }
+    generic::systemuser { 'clamav':
+        name   => 'clamav',
+        groups => 'Debian-exim', # needed for exim integration
+    }
 
-       package { [ "clamav-daemon" ]:
-               ensure => latest;
-               # note: freshclam needs an initial manual run to fetch virus 
definitions
-               # this takes several minutes to run
-       }
+    package { [ 'clamav-daemon' ]:
+        ensure => 'latest',
+        # note: freshclam needs an initial manual run to fetch virus 
definitions
+        # this takes several minutes to run
+    }
 
-       file {
-               "/etc/clamav/clamd.conf":
-                       require => Package["clamav-daemon"],
-                       owner => root,
-                       group => root,
-                       mode => 0444,
-                       source => "puppet:///files/clamav/clamd.conf";
-       }
+    file { '/etc/clamav/clamd.conf':
+        require => Package['clamav-daemon'],
+        owner   => 'root',
+        group   => 'root',
+        mode    => '0444',
+        source  => 'puppet:///files/clamav/clamd.conf',
+    }
 
-       service { "clamav-daemon":
-               require => [ File["/etc/clamav/clamd.conf"], 
Package["clamav-daemon"] ],
-               subscribe => [ File["/etc/clamav/clamd.conf"] ],
-               ensure => running;
-       }
+    service { 'clamav-daemon':
+        ensure    => running,
+        require   => [File['/etc/clamav/clamd.conf'],
+                      Package['clamav-daemon'] ],
+        subscribe => [File['/etc/clamav/clamd.conf'] ],
+    }
 
 }
 
 # SpamAssassin http://spamassassin.apache.org/
 class spamassassin(
-               $required_score = '5.0',
-               $max_children = 8,
-               $nicelevel = 10,
-               $use_bayes = 1,
-               $bayes_auto_learn = 1,
-               $short_report_template = 'false',
-               $otrs_rule_scores = 'false',
-               $spamd_user = 'spamd',
-               $spamd_group = 'spamd'
-       ) {
-       include network::constants
+        $required_score        = '5.0',
+        $max_children          = '8',
+        $nicelevel             = '10',
+        $use_bayes             = '1',
+        $bayes_auto_learn      = '1',
+        $short_report_template = false,
+        $otrs_rule_scores      = false,
+        $spamd_user            = 'spamd',
+        $spamd_group           = 'spamd'
+    ) {
+    include network::constants
 
-       package { [ "spamassassin" ]:
-               ensure => latest;
-       }
+    package { 'spamassassin':
+        ensure => 'latest',
+    }
 
-       # this seems broken, especially since /var/spamd is unused
-       # and spamd's homedir is created as /var/lib/spamd
-       if ( $spamd_user == "spamd" ) {
-               generic::systemuser { "spamd": name => "spamd" }
-               file { "/var/spamd":
-                       require => Generic::Systemuser[spamd],
-                       ensure => directory,
-                       owner => spamd,
-                       group => spamd,
-                       mode => 0700;
-               }
-       }
+    # this seems broken, especially since /var/spamd is unused
+    # and spamd's homedir is created as /var/lib/spamd
+    if ( $spamd_user == 'spamd' ) {
+        generic::systemuser { 'spamd':
+            name => 'spamd',
+        }
+        file { '/var/spamd':
+            ensure  => 'directory',
+            require => Generic::Systemuser['spamd'],
+            owner   => 'spamd',
+            group   => 'spamd',
+            mode    => '0700',
+        }
+    }
 
-       File {
-               require => Package[spamassassin],
-               owner => root,
-               group => root,
-               mode => 0444
-       }
-       file {
-               "/etc/spamassassin/local.cf":
-                       content => template("spamassassin/local.cf");
-               "/etc/default/spamassassin":
-                       content => 
template("spamassassin/spamassassin.default.erb");
-       }
+    File {
+        require => Package['spamassassin'],
+        owner   => 'root',
+        group   => 'root',
+        mode    => '0444',
+    }
+    file { '/etc/spamassassin/local.cf':
+        content => template('spamassassin/local.cf'),
+    }
 
-       service { "spamassassin":
-               require => [ File["/etc/default/spamassassin"], 
File["/etc/spamassassin/local.cf"], Package[spamassassin] ],
-               subscribe => [ File["/etc/default/spamassassin"], 
File["/etc/spamassassin/local.cf"] ],
-               ensure => running;
-       }
+    file { '/etc/default/spamassassin':
+        content => template('spamassassin/spamassassin.default.erb'),
+    }
 
-       monitor_service { "spamd": description => "spamassassin", check_command 
=> "nrpe_check_spamd" }
+    service { 'spamassassin':
+        ensure    => running,
+        require   => [File['/etc/default/spamassassin'],
+                      File['/etc/spamassassin/local.cf'],
+                      Package['spamassassin']
+        ],
+        subscribe => [File['/etc/default/spamassassin'],
+                      File['/etc/spamassassin/local.cf']
+        ],
+    }
+
+    monitor_service { 'spamd':
+        description   => 'spamassassin',
+        check_command => 'nrpe_check_spamd',
+    }
 }
 
 class mailman {
-       class base {
-               # lighttpd needs to be installed first, or the mailman package 
will pull in apache2
-               require webserver::static
+    class base {
+        # lighttpd needs to be installed first,
+        #or the mailman package will pull in apache2
+        require webserver::static
 
-               package { "mailman": ensure => latest }
-       }
+        package { 'mailman':
+            ensure => 'latest',
+        }
+    }
 
-       class listserve {
-               require mailman::base
+    class listserve {
+        require mailman::base
 
-               system::role { "mailman::listserve": description => "Mailman 
listserver" }
+        system::role { 'mailman::listserve':
+            description => 'Mailman listserver',
+        }
 
-               file {
-                       "/etc/mailman/mm_cfg.py":
-                               owner => root,
-                               group => root,
-                               mode => 0444,
-                               source => "puppet:///files/mailman/mm_cfg.py";
-               }
+        file { '/etc/mailman/mm_cfg.py':
+            owner  => 'root',
+            group  => 'root',
+            mode   => '0444',
+            source => 'puppet:///files/mailman/mm_cfg.py',
+        }
 
-               # Install as many languages as possible
-               include generic::locales::international
+        # Install as many languages as possible
+        include generic::locales::international
 
-               generic::debconf::set {
-                       "mailman/gate_news":
-                               value => "false",
-                               notify => Exec["dpkg-reconfigure mailman"];
-                       "mailman/used_languages":
-                               value => "ar big5 ca cs da de en es et eu fi fr 
gb hr hu ia it ja ko lt nl no pl pt pt_BR ro ru sl sr sv tr uk vi zh_CN zh_TW",
-                               notify => Exec["dpkg-reconfigure mailman"];
-                       "mailman/default_server_language":
-                               value => "en",
-                               notify => Exec["dpkg-reconfigure mailman"];
-               }
-               exec { "dpkg-reconfigure mailman":
-                       require => Class["generic::locales::international"],
-                       before => Service[mailman],
-                       command => "/usr/sbin/dpkg-reconfigure -fnoninteractive 
mailman",
-                       refreshonly => true
-               }
+        generic::debconf::set { 'mailman/gate_news':
+            value  => false,
+            notify => Exec['dpkg-reconfigure mailman'],
+        }
 
-               service { mailman:
-                       ensure => running,
-                       hasstatus => false,
-                       pattern => "mailmanctl"
-               }
+        generic::debconf::set { 'mailman/used_languages':
+            value  => 'ar big5 ca cs da de en es et eu fi fr gb hr hu ia it ja 
ko lt nl no pl pt pt_BR ro ru sl sr sv tr uk vi zh_CN zh_TW',
+            notify => Exec['dpkg-reconfigure mailman'],
+        }
 
-               monitor_service { "procs_mailman": description => "mailman", 
check_command => "nrpe_check_mailman" }
-       }
+        generic::debconf::set { 'mailman/default_server_language':
+            value  => 'en',
+            notify => Exec['dpkg-reconfigure mailman'],
+        }
 
-       class web-ui {
-               include webserver::static
+        exec { 'dpkg-reconfigure mailman':
+            require     => Class['generic::locales::international'],
+            before      => Service['mailman'],
+            command     => '/usr/sbin/dpkg-reconfigure -fnoninteractive 
mailman',
+            refreshonly => true,
+        }
 
-               if ( $realm == "production" ) {
-                       install_certificate{ "star.wikimedia.org": }
-               }
+        service { 'mailman':
+            ensure    => 'running',
+            hasstatus => false,
+            pattern   => 'mailmanctl'
+        }
 
-               # htdigest file for private list archives
-               file { "/etc/lighttpd/htdigest":
-                       require => Class["webserver::static"],
-                       source => "puppet:///private/lighttpd/htdigest",
-                       owner => root,
-                       group => www-data,
-                       mode => 0440;
-               }
+        monitor_service { 'procs_mailman':
+            description   => 'mailman',
+            check_command => 'nrpe_check_mailman',
+        }
+    }
 
-               # Enable CGI module
-               mailman_lighttpd_config { "10-cgi": require => 
Class["webserver::static"] }
+    class web-ui {
+        include webserver::static
 
-               # Install Mailman specific Lighttpd config file
-               mailman_lighttpd_config { "50-mailman":
-                       require => [ Class["webserver::static"], 
File["/etc/lighttpd/htdigest"] ],
-                       install => "true"
-               }
+        if ( $realm == 'production' ) {
+            install_certificate{ 'star.wikimedia.org': }
+        }
 
-               # Add files in /var/www (docroot)
-               file { "/var/www":
-                       source => "puppet:///files/mailman/docroot/",
-                       owner => root,
-                       group => root,
-                       mode => 0444,
-                       recurse => remote;
-               }
+        # htdigest file for private list archives
+        file { '/etc/lighttpd/htdigest':
+            require => Class['webserver::static'],
+            source  => 'puppet:///private/lighttpd/htdigest',
+            owner   => 'root',
+            group   => 'www-data',
+            mode    => '0440',
+        }
 
-               # monitor SSL cert expiry
-               if ( $realm == "production" ) {
-                       monitor_service { "https": description => "HTTPS", 
check_command => "check_ssl_cert!*.wikimedia.org" }
-               }
-       }
+        # Enable CGI module
+        mailman_lighttpd_config { '10-cgi':
+            require => Class['webserver::static'],
+        }
 
-       include listserve, web-ui
+        # Install Mailman specific Lighttpd config file
+        mailman_lighttpd_config { '50-mailman':
+            require => [Class['webserver::static'],
+                        File['/etc/lighttpd/htdigest']
+            ],
+            install => true,
+        }
+
+        # Add files in /var/www (docroot)
+        file { '/var/www':
+            source  => 'puppet:///files/mailman/docroot/',
+            owner   => 'root',
+            group   => 'root',
+            mode    => '0444',
+            recurse => 'remote',
+        }
+
+        # monitor SSL cert expiry
+        if ( $realm == 'production' ) {
+            monitor_service { 'https':
+                description   => 'HTTPS',
+                check_command => 'check_ssl_cert!*.wikimedia.org',
+            }
+        }
+    }
+
+    include listserve, web-ui
 }
 
 
 # Enables a certain Lighttpd config
 #
-# TODO:  ensure => false removes symlink.  ensure => purged removes available 
file.
-define mailman_lighttpd_config($install="false") {
-       # Reload lighttpd if the site config file changes.
-       # This subscribes to both the real file and the symlink.
-       exec { "lighttpd_reload_${title}":
-               command     => "/usr/sbin/service service lighttpd reload",
-               refreshonly => true,
-       }
+# TODO:  ensure => false removes symlink.
+#ensure => purged removes available file.
+define mailman_lighttpd_config($install= false) {
+    # Reload lighttpd if the site config file changes.
+    # This subscribes to both the real file and the symlink.
+    exec { "lighttpd_reload_${title}":
+        command     => '/usr/sbin/service service lighttpd reload',
+        refreshonly => true,
+    }
 
-       if $install == "true" {
-               file { "/etc/lighttpd/conf-available/${title}.conf":
-                       source => "puppet:///files/lighttpd/${title}.conf",
-                       owner => root,
-                       group => www-data,
-                       mode => 0444,
-                       before => 
File["/etc/lighttpd/conf-enabled/${title}.conf"],
-                       notify => Exec["lighttpd_reload_${title}"],
-               }
-       }
+    if $install == true {
+        file { "/etc/lighttpd/conf-available/${title}.conf":
+            source => "puppet:///files/lighttpd/${title}.conf",
+            owner  => 'root',
+            group  => 'www-data',
+            mode   => '0444',
+            before => File["/etc/lighttpd/conf-enabled/${title}.conf"],
+            notify => Exec["lighttpd_reload_${title}"],
+        }
+    }
 
-       # Create a symlink to the available config file
-       # in the conf-enabled directory.  Notify
-       file { "/etc/lighttpd/conf-enabled/${title}.conf":
-               ensure => "/etc/lighttpd/conf-available/${title}.conf",
-               notify => Exec["lighttpd_reload_${title}"],
-       }
+    # Create a symlink to the available config file
+    # in the conf-enabled directory.  Notify
+    file { "/etc/lighttpd/conf-enabled/${title}.conf":
+        ensure => link,
+        target => "/etc/lighttpd/conf-available/${title}.conf",
+        notify => Exec["lighttpd_reload_${title}"],
+    }
 
 }

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic4647af95e26a1863c52f31f66cfb35b835f7a33
Gerrit-PatchSet: 1
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Matanya <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to