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]

Reply via email to