ajack 2004/03/02 13:11:40 Modified: python/gump/results resulter.py loader.py python/gump check.py engine.py . gumpy.py python/gump/output nag.py python/gump/test nagging.py Log: 1) Bug fixes to gumpy.py
2) Bug fixes to results.xml (and downloading, visualizing) 3) Bug fixes to gump/check.py [that checks a workspace] Revision Changes Path 1.8 +15 -6 gump/python/gump/results/resulter.py Index: resulter.py =================================================================== RCS file: /home/cvs/gump/python/gump/results/resulter.py,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- resulter.py 1 Mar 2004 21:28:00 -0000 1.7 +++ resulter.py 2 Mar 2004 21:11:39 -0000 1.8 @@ -110,7 +110,7 @@ elif isinstance(object,Project): result=serverResults.getProjectResult(name) else: - raise RuntimeError('Not understood') + raise RuntimeError('Object [' + object.__class__.__name__ + '] NOT understood for Results') if result: results[server] = result @@ -118,21 +118,30 @@ return results def loadResultsForServers(self): + + if self.serversLoaded: return + for server in self.workspace.getServers(): if not server in self.serverResults: results=None try: - results=loadResultsForServer(server) - except: - pass + results=self.loadResultsForServer(server) + except Exception, details: + log.warn('Failed to load results for [' + str(server) + '] : ' \ + + str(details), exc_info=1) + if results: + self.workspace.addInfo('Loaded results for server [' + str(server) + ']') self.serverResults(server, results) + + self.serversLoaded=1 def loadResultsForServer(self, server): - return loadResults(server.getUrl() + '/results.xml') + return self.loadResults(server.getUrl() + '/results.xml') def loadResults(self, url): - loader = WorkspaceResultLoader() + loader = WorkspaceResultLoader() + log.debug('Load results from URL : [' + url + ']') return loader.loadFromUrl(url) def gatherResults(self): 1.3 +1 -0 gump/python/gump/results/loader.py Index: loader.py =================================================================== RCS file: /home/cvs/gump/python/gump/results/loader.py,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- loader.py 28 Feb 2004 00:08:49 -0000 1.2 +++ loader.py 2 Mar 2004 21:11:39 -0000 1.3 @@ -69,6 +69,7 @@ from gump.results.model import WorkspaceResult from gump.utils.note import transferAnnotations, Annotatable +from gump.utils.http import cacheHTTP from gump.utils import dump from gump.config import gumpPath 1.37 +4 -4 gump/python/gump/check.py Index: check.py =================================================================== RCS file: /home/cvs/gump/python/gump/check.py,v retrieving revision 1.36 retrieving revision 1.37 diff -u -r1.36 -r1.37 --- check.py 5 Feb 2004 05:43:56 -0000 1.36 +++ check.py 2 Mar 2004 21:11:39 -0000 1.37 @@ -112,7 +112,7 @@ result = GumpEngine().check(run) # - log.info('Gump Integration complete. Exit code:' + str(result)) + log.info('Gump Check complete. Exit code:' + str(result)) # bye! sys.exit(result) 1.69 +17 -2 gump/python/gump/engine.py Index: engine.py =================================================================== RCS file: /home/cvs/gump/python/gump/engine.py,v retrieving revision 1.68 retrieving revision 1.69 diff -u -r1.68 -r1.69 --- engine.py 1 Mar 2004 21:28:00 -0000 1.68 +++ engine.py 2 Mar 2004 21:11:39 -0000 1.69 @@ -208,6 +208,14 @@ self.preprocess(run, 0) # + # Load the statistics (so we can use them during + # other operations). + # + logResourceUtilization('Before load statistics') + self.loadStatistics(run) + + + # # Check the metadata # self.checkWorkspace(run) @@ -396,14 +404,21 @@ repository=run.getOutputsRepository() # build all projects this project depends upon, then the project itself + projectCount=len(list) + projectNo=1 for project in list: + + log.info(' ------ Project: #[' + `projectNo` + '] of [' + `projectCount` + '] : ' + project.getName()) + + if project.isPackaged(): continue + # Do this even if not ok self.performPreBuild( run, project ) if project.okToPerformWork(): - log.debug(' ------ Building: ' + project.getName()) + log.debug(' ------ Building: [' + `projectNo` + '] ' + project.getName()) cmd=project.getBuildCommand() @@ -429,7 +444,7 @@ self.performPostBuild( run, project, repository ) if not project.okToPerformWork(): - log.warn('Failed to build project [' + project.getName() + '], state:' \ + log.warn('Failed to build project #[' + `projectNo` + '] [' + project.getName() + '], state:' \ + project.getStateDescription()) 1.8 +5 -11 gump/gumpy.py Index: gumpy.py =================================================================== RCS file: /home/cvs/gump/gumpy.py,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- gumpy.py 1 Mar 2004 21:56:23 -0000 1.7 +++ gumpy.py 2 Mar 2004 21:11:39 -0000 1.8 @@ -182,7 +182,7 @@ # Enable a log logFile=os.path.abspath('gumpy.log') -log=open(logFile,'w') +log=open(logFile,'w',0) # Unbuffered... result=0 @@ -210,8 +210,7 @@ workspaceName = hostname + '.xml' if os.environ.has_key('GUMP_WORKSPACE'): - workspaceName = os.environ['GUMP_WORKSPACE'] + '.xml' - + workspaceName = os.environ['GUMP_WORKSPACE'] + '.xml' workspacePath = os.path.abspath(workspaceName) projectsExpr='all' @@ -285,14 +284,9 @@ if not result: # # - # Process command line - # - args='' - for arg in sys.argv[1:]: - if args: args += ' ' - args += arg - - iargs = '-w ../' + workspaceName + ' ' + projectsExpr + args + # Process/build command line + # + iargs = '-w ../' + workspaceName + ' ' + projectsExpr + ' ' + ' '.join(sys.argv[1:]) # # Run the main Gump... 1.19 +55 -11 gump/python/gump/output/nag.py Index: nag.py =================================================================== RCS file: /home/cvs/gump/python/gump/output/nag.py,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- nag.py 29 Feb 2004 19:16:19 -0000 1.18 +++ nag.py 2 Mar 2004 21:11:39 -0000 1.19 @@ -78,7 +78,8 @@ from gump.net.mailer import * from gump.utils import * -LINE='- - - - - -- -- ------------------------------------ G U M P' +LINE ='- - - - - -- -- ------------------------------------ G U M P' +SEPARATOR='******************************************************** G U M P' class AddressPair: def __init__(self,toAddr,fromAddr): @@ -102,8 +103,12 @@ self.gumpSet=run.getGumpSet() self.unsent='' - self.unwanted='' + self.unsentSubjects='' + self.unsents=0 + self.unwanted='' + self.unwantedSubjects='' + self.unwanteds=0 def nag(self): @@ -155,11 +160,14 @@ log.info('We have some unwanted\'s to send to list...') self.sendEmail(self.workspace.mailinglist,self.workspace.email, \ - 'All dressed up, with nowhere to go...',self.unwanted) + 'BATCH: All dressed up, with nowhere to go...',\ + self.getUnwantedContent()) # A bit paranoid, ought just rely upon object being # destroyed, - self.unwanted='' + self.unwanted='' + self.unwantedSubjects='' + self.unwanteds=0 else: log.info('No unwanted nags.') @@ -167,30 +175,66 @@ if self.hasUnsent(): log.info('We have some unsented\'s to send to list...') self.sendEmail(self.workspace.mailinglist,self.workspace.email, \ - 'Unable to send...',self.unsent) + 'BATCH: Unable to send...',self.unsent) # A bit paranoid, ought just rely upon object being # destroyed, self.unsent='' + self.unsentSubjects='' + self.unsents=0 else: log.info('No unsent nags.') def addUnwanted(self,subject,content): if self.unwanted: - self.unwanted += '-------------------------------------------------------------\n' + self.unwanted += SEPARATOR + self.unwanted += '\n' self.unwanted += subject self.unwanted += '\n' self.unwanted += content self.unwanted += '\n' + + self.unwantedSubjects += subject + self.unwanteds += 1 def addUnsent(self,subject,content): if self.unsent: - self.unsent += '-------------------------------------------------------------\n' + self.unsent += SEPARATOR + self.unsent += '\n' self.unsent += subject self.unsent += '\n' self.unsent += content self.unsent += '\n' - + + self.unsentSubjects += subject + self.unsents += 1 + + def getUnwantedContent(self): + content = '' + + if self.unwanteds: + plural='' + if self.unwanted > 0: + plural='s' + + content = """Dear Gumpmeisters, + +The following %s nag%s could have been sent (if requested) + +""" % (`self.unwanteds`, plural) + + content += SEPARATOR + content += '\n' + + content += self.unwantedSubjects + + content += SEPARATOR + content += '\n' + + content += self.unwanted + + return content + def hasUnwanted(self): if self.unwanted: return 1 return 0 1.5 +3 -0 gump/python/gump/test/nagging.py Index: nagging.py =================================================================== RCS file: /home/cvs/gump/python/gump/test/nagging.py,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- nagging.py 17 Feb 2004 21:54:21 -0000 1.4 +++ nagging.py 2 Mar 2004 21:11:39 -0000 1.5 @@ -144,6 +144,9 @@ 'Test Subject', \ 'Test Content') #print str(email) + + nagger.getUnwantedContent() + nagger.getSentContent() def testNag(self): nag(self.run) --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]