ArielGlenn has uploaded a new change for review.

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

Change subject: retention emails fixes:
......................................................................

retention emails fixes:

send emails to a default email if no user->email entry
fix typo in options
document name format of audit files to be processed by the script

Change-Id: Idb45e5eabf8dfebc379dd9b17ec0127678245e2c
---
M clouseau/scripts/retention/do_audit_emails.py
1 file changed, 31 insertions(+), 13 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/software 
refs/changes/77/233477/1

diff --git a/clouseau/scripts/retention/do_audit_emails.py 
b/clouseau/scripts/retention/do_audit_emails.py
index 1fe5b2c..c7db981 100644
--- a/clouseau/scripts/retention/do_audit_emails.py
+++ b/clouseau/scripts/retention/do_audit_emails.py
@@ -193,7 +193,7 @@
 
     def __init__(self, email_addrs_file, audit_output_dir, mail_from,
                  mail_subject, mail_server, formmail,
-                 users, hosts, verbose, dryrun):
+                 users, hosts, to_default, verbose, dryrun):
         self.email_addrs_file = email_addrs_file
         self.audit_output_dir = audit_output_dir
         self.mail_from = mail_from
@@ -203,6 +203,7 @@
         self.formmail = formmail
         self.users = users
         self.hosts = hosts
+        self.to_default = to_default
         self.verbose = verbose
         self.dryrun = dryrun
 
@@ -266,10 +267,14 @@
 
         for user in email_texts:
             if user not in self.homes_vs_addrs:
-                print "Can't find user '%s', skipping" % user
-                continue
-
-            user_address = self.homes_vs_addrs[user]
+                if self.to_default is not None:
+                    user_address = self.to_default
+                    print "Falling back to %s for user %s" % (self.to_default, 
user)
+                else:
+                    print "Can't find user '%s', skipping" % user
+                    continue
+            else:
+                user_address = self.homes_vs_addrs[user]
 
             message = email.mime.text.MIMEText(email_texts[user])
             message["Subject"] = self.mail_subject
@@ -358,7 +363,8 @@
     usage_message = """Usage: do_audit_emails.py --mailserver <hostname>
              [--auditdir <path>] [--subject <text>] [--fromaddr <addr>]
              [--emailadddrs] [--users username[,username...]]
-             [--hosts hostname[,hostname...]] [--dryrun]
+             [--hosts hostname[,hostname...]] [--todefault <addr>]
+             [--dryrun]
 
 This script reads output from a data retention audit and generates and
 sends mails to user with the files an diretories located by the audit as
@@ -369,21 +375,28 @@
   --mailserver (-m)  fqdn of mail server
   --auditdir   (-d)  directory containing the audit outputs
                      (default: audit_dir_YYYYMMDD)
+                     files within this directory generated
+                     by data_auditor.py run remotely via salt
+                     and ending in "final.txt" will be
+                     scanned, everything else will be ignored
   --subject    (-s)  subject of emails to be sent (default:
                      'Data retention audit')
   --fromaddr   (-f)  email address to use for From:
                      (default: [email protected])
   --emailaddrs (-a)  file mapping home dirs to email addrs
                      (default: homes_vs_addresses.txt)
-   --formmail  (-F): name of file with form mail text
+  --formmail   (-F): name of file with form mail text
                      (default: use hardcoded text in script)
-   --users     (-u)  only generate and send emails for the
+  --users      (-u)  only generate and send emails for the
                      users (home dir names) in the
                      comma-separated list
-   --hosts     (-H)  only generate and send emails for the
+  --hosts      (-H)  only generate and send emails for the
                      output from the hosts in the
                      comma-separated list
-   --dryrun    (-D)  print messages, don't email them
+  --todefault  (-t)  emails for which there is no entry in the
+                     emailaddrs file get sent here (default:
+                     no mail sent, a warning message displayed)
+  --dryrun     (-D)  print messages, don't email them
 """
     sys.stderr.write(usage_message)
     sys.exit(1)
@@ -409,16 +422,18 @@
     form_mail_file = None
     users = None
     hosts = None
+    to_default = None
     verbose = False
     dryrun = False
 
     try:
         (options, remainder) = getopt.gnu_getopt(
-            sys.argv[1:], "a:d:f:m:s:F:u:H:vDh",
+            sys.argv[1:], "a:d:f:m:s:F:u:H:t:vDh",
             ["auditdir=", "fromaddr=",
-             "emailaddrss=", "mailserver=",
+             "emailaddrs=", "mailserver=",
              "subject=", "formmail",
              "users=", "hosts=",
+             "todefault=",
              "verbose", "dryrun", "help"])
 
     except getopt.GetoptError as err:
@@ -443,6 +458,8 @@
             email_subject = val
         elif opt in ["-u", "--users"]:
             users = val
+        elif opt in ["-t", "--todefault"]:
+            to_default = val
         elif opt in ["-v", "--verbose"]:
             verbose = True
         elif opt in ["-h", "--help"]:
@@ -464,7 +481,8 @@
     emailer = AuditEmailer(addr_list, audit_dir,
                            auditor_email, email_subject,
                            email_server, form_mail_file,
-                           users, hosts, verbose, dryrun)
+                           users, hosts, to_default,
+                           verbose, dryrun)
     emailer.run()
 
 

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Idb45e5eabf8dfebc379dd9b17ec0127678245e2c
Gerrit-PatchSet: 1
Gerrit-Project: operations/software
Gerrit-Branch: master
Gerrit-Owner: ArielGlenn <[email protected]>

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

Reply via email to