[llvm-commits] [zorg] r106168 - in /zorg/trunk/lnt/lnt: util/ImportData.py viewer/Config.py
Daniel Dunbar
daniel at zuster.org
Wed Jun 16 16:06:17 PDT 2010
Author: ddunbar
Date: Wed Jun 16 18:06:16 2010
New Revision: 106168
URL: http://llvm.org/viewvc/llvm-project?rev=106168&view=rev
Log:
LNT: Factor out an EmailConfig object.
Modified:
zorg/trunk/lnt/lnt/util/ImportData.py
zorg/trunk/lnt/lnt/viewer/Config.py
Modified: zorg/trunk/lnt/lnt/util/ImportData.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/lnt/util/ImportData.py?rev=106168&r1=106167&r2=106168&view=diff
==============================================================================
--- zorg/trunk/lnt/lnt/util/ImportData.py (original)
+++ zorg/trunk/lnt/lnt/util/ImportData.py Wed Jun 16 18:06:16 2010
@@ -37,26 +37,17 @@
return (False, None)
print >>log, ' LOAD TIME: %.2fs' % (time.time() - startTime,)
- # Check if this is a nightlytest run.
- tag = data.get('Run',{}).get('Info',{}).get('tag',None)
- is_nt = tag is None or tag == 'nightlytest'
-
# Find the email address for this machine's results.
toAddress = None
- if is_nt and config.ntEmailEnabled:
- if isinstance(config.ntEmailTo, str):
- toAddress = config.ntEmailTo
- else:
- # Find the machine name.
- machineName = str(data.get('Machine',{}).get('Name'))
- for pattern,addr in config.ntEmailTo:
- if re.match(pattern, machineName):
- toAddress = addr
- break
- else:
- print >>log,("ERROR: unable to match machine name "
- "for test results email address!")
- return (False, None)
+ email_config = config.databases[db_name].email_config
+ if email_config.enabled:
+ # Find the machine name.
+ machineName = str(data.get('Machine',{}).get('Name'))
+ toAddress = email_config.get_to_address(machineName)
+ if toAddress is None:
+ print >>log,("ERROR: unable to match machine name "
+ "for test results email address!")
+ return (False, None)
importStartTime = time.time()
try:
@@ -83,7 +74,7 @@
NTEmailReport.emailReport(db, run,
"%s/db_%s/nightlytest/" % (config.zorgURL,
db_name),
- config.ntEmailHost, config.ntEmailFrom,
+ email_config.host, email_config.from_address,
toAddress, success, commit)
print >>log, "ADDED: %d machines" % (db.getNumMachines() - numMachines,)
Modified: zorg/trunk/lnt/lnt/viewer/Config.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/lnt/viewer/Config.py?rev=106168&r1=106167&r2=106168&view=diff
==============================================================================
--- zorg/trunk/lnt/lnt/viewer/Config.py (original)
+++ zorg/trunk/lnt/lnt/viewer/Config.py Wed Jun 16 18:06:16 2010
@@ -3,23 +3,44 @@
"""
import os
+import re
+
+class EmailConfig:
+ def __init__(self, enabled, host, from_address, to_address):
+ self.enabled = enabled
+ self.host = host
+ self.from_address = from_address
+ self.to_address = to_address
+
+ def get_to_address(self, machine_name):
+ # The email to_address field can either be a string, or a list of tuples
+ # of the form [(accept-regexp-pattern, to-address)].
+ if isinstance(self.to_address, str):
+ return self.to_address
+
+ for pattern,addr in self.to_address:
+ if re.match(pattern, machine_name):
+ return addr
class DBInfo:
@staticmethod
- def fromData(baseDir, dict):
+ def fromData(baseDir, dict, default_email_config):
dbPath = dict.get('path')
if '://' not in dbPath:
dbPath = os.path.join(baseDir, dbPath)
return DBInfo(dbPath,
bool(dict.get('showNightlytest')),
bool(dict.get('showGeneral')),
- bool(dict.get('showSimple')))
+ bool(dict.get('showSimple')),
+ default_email_config)
- def __init__(self, path, showNightlytest, showGeneral, showSimple):
+ def __init__(self, path, showNightlytest, showGeneral, showSimple,
+ email_config):
self.path = path
self.showGeneral = showGeneral
self.showNightlytest = showNightlytest
self.showSimple = showSimple
+ self.email_config = email_config
class Config:
@staticmethod
@@ -28,23 +49,20 @@
# config file.
baseDir = os.path.dirname(os.path.abspath(path))
- ntEmailer = data.get('nt_emailer')
- if ntEmailer:
- ntEmailEnabled = bool(ntEmailer.get('enabled'))
- ntEmailHost = str(ntEmailer.get('host'))
- ntEmailFrom = str(ntEmailer.get('from'))
-
+ # Get the default email config.
+ emailer = data.get('nt_emailer')
+ if emailer:
# The email to field can either be a string, or a list of tuples of
# the form [(accept-regexp-pattern, to-address)].
- item = ntEmailer.get('to')
- if isinstance(item, str):
- ntEmailTo = item
- else:
- ntEmailTo = [(str(a),str(b))
- for a,b in item]
+ to_address = emailer.get('to')
+ if not isinstance(to_address, str):
+ to_address = [(str(a),str(b)) for a,b in to_address]
+ default_email_config = EmailConfig(bool(emailer.get('enabled')),
+ str(emailer.get('host')),
+ str(emailer.get('from')),
+ to_address)
else:
- ntEmailEnabled = False
- ntEmailHost = ntEmailFrom = ntEmailTo = ""
+ default_email_config = EmailConfig(False, '', '', [])
dbDir = data.get('db_dir', '.')
dbDirPath = os.path.join(baseDir, dbDir)
@@ -54,12 +72,11 @@
return Config(data.get('name', 'LNT'), data['zorgURL'],
dbDir, os.path.join(baseDir, tempDir),
- dict([(k,DBInfo.fromData(dbDirPath, v))
- for k,v in data['databases'].items()]),
- ntEmailEnabled, ntEmailHost, ntEmailFrom, ntEmailTo)
+ dict([(k,DBInfo.fromData(dbDirPath, v,
+ default_email_config))
+ for k,v in data['databases'].items()]))
- def __init__(self, name, zorgURL, dbDir, tempDir, databases,
- ntEmailEnabled, ntEmailHost, ntEmailFrom, ntEmailTo):
+ def __init__(self, name, zorgURL, dbDir, tempDir, databases):
self.name = name
self.zorgURL = zorgURL
self.dbDir = dbDir
@@ -67,7 +84,3 @@
while self.zorgURL.endswith('/'):
self.zorgURL = zorgURL[:-1]
self.databases = databases
- self.ntEmailEnabled = ntEmailEnabled
- self.ntEmailHost = ntEmailHost
- self.ntEmailFrom = ntEmailFrom
- self.ntEmailTo = ntEmailTo
More information about the llvm-commits
mailing list