ajack 2004/04/26 09:13:57
Modified: python/gump/syndication rss.py
python/gump/results resulter.py model.py
python/gump/utils tools.py
python/gump/core gumpenv.py engine.py
python/gump/document/forrest documenter.py
Log:
1) Put timezoneOffset into Env & Results, and document it.
Stepping towards a utility to 'show next predicted gump run'.
2) Document the Environment (using bean-like extraction)
Revision Changes Path
1.21 +7 -5 gump/python/gump/syndication/rss.py
Index: rss.py
===================================================================
RCS file: /home/cvs/gump/python/gump/syndication/rss.py,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- rss.py 16 Apr 2004 17:28:43 -0000 1.20
+++ rss.py 26 Apr 2004 16:13:56 -0000 1.21
@@ -59,7 +59,9 @@
# <http://www.apache.org/>.
"""
- Highly experimental RSS feeds.
+
+ RSS feeds.
+
"""
import os
@@ -78,7 +80,7 @@
###############################################################################
-# Local time zone, in offset from GMT
+# Local time zone, in offset from UTC
TZ='%+.2d:00' % (-time.timezone/3600)
###############################################################################
1.23 +6 -0 gump/python/gump/results/resulter.py
Index: resulter.py
===================================================================
RCS file: /home/cvs/gump/python/gump/results/resulter.py,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- resulter.py 11 Apr 2004 23:50:29 -0000 1.22
+++ resulter.py 26 Apr 2004 16:13:56 -0000 1.23
@@ -16,7 +16,9 @@
"""
+
Results (XML document containing states/dates/etc.)
+
"""
import socket
@@ -165,7 +167,11 @@
workspaceResults.startDateTimeUtc=self.workspace.getStartDateTimeUtc()
workspaceResults.endDateTime=self.workspace.getEndDateTime()
workspaceResults.endDateTimeUtc=self.workspace.getEndDateTimeUtc()
+
+ # :TODO: Timezones and such are on env, not workspace [move them]
workspaceResults.timezone=self.workspace.getTimezone()
+
+
workspaceResults.timezoneOffset=self.run.getEnvironment().getTimezoneOffset()
# For all modules...
for module in self.workspace.getModules():
1.17 +8 -1 gump/python/gump/results/model.py
Index: model.py
===================================================================
RCS file: /home/cvs/gump/python/gump/results/model.py,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- model.py 14 Apr 2004 23:26:04 -0000 1.16
+++ model.py 26 Apr 2004 16:13:56 -0000 1.17
@@ -127,7 +127,11 @@
finally:
# Since we may exit via an exception, close explicitly.
if f: f.close()
-
+
+ def getTimezoneOffset(self):
+ if not hasattr(self,'timezoneOffset') :
+ return self.getOwner().getTimezoneOffset()
+ return self.timezoneOffset
def getTimezone(self):
if not hasattr(self,'timezone') :
@@ -201,6 +205,7 @@
self.endDateTimeUtc=''
self.endDateTime=''
self.timezone=''
+ self.timezoneOffset=''
#
# Lists...
@@ -263,6 +268,7 @@
topElement.setAttribute('endUtc',self.getEndDateTimeUtc())
topElement.setAttribute('end',self.getEndDateTime())
topElement.setAttribute('tzone',self.getTimezone())
+ topElement.setAttribute('tzoneOffset',self.getTimezoneOffset())
for moduleResult in self.moduleResults.values():
moduleResult.createDom(self.dom,topElement)
@@ -282,6 +288,7 @@
self.endDateTimeUtc=self.dom.documentElement.getAttribute('endUtc')
self.timezone=self.dom.documentElement.getAttribute('tzone')
+ self.timezoneOffset=self.dom.documentElement.getAttribute('tzoneOffset')
#
# Import all modules
1.23 +6 -2 gump/python/gump/utils/tools.py
Index: tools.py
===================================================================
RCS file: /home/cvs/gump/python/gump/utils/tools.py,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- tools.py 14 Apr 2004 22:12:58 -0000 1.22
+++ tools.py 26 Apr 2004 16:13:56 -0000 1.23
@@ -213,11 +213,12 @@
def tailFileToString(file,lines,wrapLen=0,eol=None,marker=None):
return "".join(tailFile(file,lines,wrapLen,eol,marker))
-
+
+SEPARATOR='---------------------------------------------------------------- GUMP\n'
def catFile(output,file,title=None):
""" Cat a file to a stream... """
if title:
-
output.write('----------------------------------------------------------------
GUMP\n')
+ output.write(SEPARATOR)
output.write(title + '\n\n')
input=open(file,'r')
@@ -226,6 +227,9 @@
output.write(line)
# Next...
line = input.readline()
+
+ if title:
+ output.write(SEPARATOR)
if __name__=='__main__':
1.3 +11 -0 gump/python/gump/core/gumpenv.py
Index: gumpenv.py
===================================================================
RCS file: /home/cvs/gump/python/gump/core/gumpenv.py,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- gumpenv.py 16 Apr 2004 20:38:12 -0000 1.2
+++ gumpenv.py 26 Apr 2004 16:13:56 -0000 1.3
@@ -41,6 +41,9 @@
# Classes
###############################################################################
+# Local time zone, in offset from UTC
+TZ='%+.2d:00' % (-time.timezone/3600)
+
class GumpEnvironment(Annotatable,Workable,Propogatable):
def __init__(self):
@@ -70,6 +73,11 @@
#
self.javaCommand = 'java'
+ #
+ # Offset from UTC
+ #
+ self.timezoneOffset=TZ
+
def checkEnvironment(self,exitOnError=0):
""" Check Things That are Required """
@@ -271,6 +279,9 @@
def getJavaCommand(self):
return self.javaCommand
+
+ def getTimezoneOffset(self):
+ return self.timezoneOffset
if __name__ == '__main__':
env = GumpEnvironment()
1.5 +5 -4 gump/python/gump/core/engine.py
Index: engine.py
===================================================================
RCS file: /home/cvs/gump/python/gump/core/engine.py,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- engine.py 24 Apr 2004 15:25:18 -0000 1.4
+++ engine.py 26 Apr 2004 16:13:56 -0000 1.5
@@ -232,7 +232,7 @@
and not module.hasSvn() \
and not module.hasJars(): continue
- log.debug('Perform CVS/SVN/Jars Update on #[' + `moduleNo` + \
+ log.info('Perform CVS/SVN/Jars Update on #[' + `moduleNo` + \
'] of [' + `moduleCount` + ']: ' + module.getName())
if module.okToPerformWork():
@@ -371,7 +371,7 @@
projectNo=1
for project in list:
- log.debug(' ------ Project: #[' + `projectNo` + '] of [' +
`projectCount` + '] : ' + project.getName())
+ log.info(' Project: #[' + `projectNo` + '] of [' + `projectCount` + ']
: ' + project.getName())
# Extract stats (in case we want to do conditional processing)
stats=None
@@ -504,7 +504,8 @@
log.debug(' ------ Performing pre-Build Actions (mkdir/delete) for : '+
project.getName())
-
+ startedOk = project.okToPerformWork()
+
#
#
# NOTE --------------- NOT TURNED ON YET!!!!!!
@@ -552,7 +553,7 @@
log.error('Generate Maven Properties Failed', exc_info=1)
project.changeState(STATE_FAILED,REASON_PREBUILD_FAILED)
- if not project.okToPerformWork():
+ if startedOk and not project.okToPerformWork():
log.warn('Failed to perform pre-build on project [' + project.getName()
+ ']')
def performPostBuild(self, run, project, repository, wasBuilt, stats):
1.18 +23 -5 gump/python/gump/document/forrest/documenter.py
Index: documenter.py
===================================================================
RCS file: /home/cvs/gump/python/gump/document/forrest/documenter.py,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- documenter.py 23 Apr 2004 18:09:24 -0000 1.17
+++ documenter.py 26 Apr 2004 16:13:57 -0000 1.18
@@ -292,7 +292,18 @@
envSection=document.createSection('Gump Environment')
envSection.createParagraph(
- """The environment that this Gump run was within.""")
+ """The environment that this Gump run was within.""")
+
+
+ propertiesSection=envSection.createSection('Properties')
+ envTable=propertiesSection.createTable(['Name','Value'])
+ envs=0
+ # iterate over this suites properties
+ for (name,value) in getBeanAttributes(environment).items():
+ envTable.createEntry(str(name),str(value))
+ envs+=1
+ if not envs: envTable.createEntry('None')
+
self.documentAnnotations(document,environment)
#self.documentFileList(run,document,environment,'Environment-level Files')
@@ -491,7 +502,7 @@
self.resolver.getFile(workspace,'servers'))
serversSection=document.createSection('All Servers')
- serversTable=serversSection.createTable(['Name','Notes','Results','Start
(Local)','Start (UTC)','End (UTC)'])
+ serversTable=serversSection.createTable(['Name','Notes','Results','Start
(Local)','Start (UTC)','End (UTC)','Offset (from UTC)'])
scount=0
for server in sortedServerList:
@@ -519,10 +530,12 @@
serverRow.createData(server.getResults().getStartDateTime())
serverRow.createData(server.getResults().getStartDateTimeUtc())
serverRow.createData(server.getResults().getEndDateTimeUtc())
+ serverRow.createData(server.getResults().getTimezoneOffset())
else:
serverRow.createData('N/A')
serverRow.createData('N/A')
serverRow.createData('N/A')
+ serverRow.createData('N/A')
if not scount: serversTable.createLine('None')
@@ -797,7 +810,7 @@
self.documentSummary(document, workspace.getProjectSummary())
projectsSection=document.createSection('Projects recently fixed...')
- projectsSection.createParagraph("""These are the projects that were 'fixed'
(state changed to success) within %s runs.
+ projectsSection.createParagraph("""These are the projects that were 'fixed'
(state changed to success from failed) within %s runs.
This page helps Gumpmeisters (and others) observe community progress.
""" % INSIGNIFICANT_DURATION)
@@ -809,6 +822,7 @@
if not gumpSet.inProjectSequence(project): continue
if not project.getState()==STATE_SUCCESS or \
+ not project.getStats().previousState==STATE_FAILED or \
not project.getStats().sequenceInState < INSIGNIFICANT_DURATION:
continue
@@ -1202,6 +1216,9 @@
detailList.createEntry('Results URL: ').createFork( \
server.getResultsUrl(),server.getResultsUrl())
+ detailList.createEntry('Timezone Offset: ',
+ server.getResults().getTimezoneOffset())
+
detailList.createEntry('Start Time: ', \
server.getResults().getStartDateTime() + ' ' + \
server.getResults().getTimezone())
@@ -2763,8 +2780,8 @@
def documentProjectsByDependencyDepth(self,stats,run,workspace,gumpSet,total=0):
if total:
- title='Projects By Total Dependency Depth'
- fileName='project_totdepdepth'
+ title='Projects By Total Dependency Depth'
+ fileName='project_totdepdepth'
else:
title='Projects By Dependency Depth'
fileName='project_depdepth'
@@ -2775,6 +2792,7 @@
list = stats.projectsByTotalDependencyDepth
else:
list = stats.projectsByDependencyDepth
+
for project in list:
if not gumpSet.inProjectSequence(project): continue
durRow=durTable.createRow()
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]