You are viewing a plain text version of this content. The canonical link for it is here.
Posted to general@gump.apache.org by aj...@apache.org on 2003/10/13 20:51:21 UTC

cvs commit: jakarta-gump/python/logging __init__.py

ajack       2003/10/13 11:51:21

  Modified:    python/gump update.py launcher.py build.py logic.py
                        __init__.py integrate.py model.py nag.py
                        statistics.py check.py document.py conf.py
               python/logging __init__.py
  Log:
  1) Set logging level to INFO and more selective about using INFO
  2) Download descriptors using HTTP caching not one time downloads.
  3) Turned on nagging [will depend upon mail servers/accounts]
   Let see what happens, Gumpy may not be ready for this.
  4) Set workspace state to SUCCESS (kinda bogus, but beter than NO WORK).
  5) Make check less verbose (only show projects if a problem.)
  6) Moved check from gumpy.sh into integrate.py, 
  	stores warnings/errors into context (for later display)
  
  *****************************************************
  7) BIG FIXES to CVS password handling. Hopefully now (finally) working...
  
  *****************************************************
  
  Revision  Changes    Path
  1.16      +37 -23    jakarta-gump/python/gump/update.py
  
  Index: update.py
  ===================================================================
  RCS file: /home/cvs/jakarta-gump/python/gump/update.py,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- update.py	7 Oct 2003 21:59:25 -0000	1.15
  +++ update.py	13 Oct 2003 18:51:20 -0000	1.16
  @@ -96,7 +96,7 @@
   
   def update(workspace, expr='*', context=GumpContext()):
           
  -  log.info('--- Updating work directories from (CVS) Repositories ')
  +  log.debug('--- Updating work directories from (CVS) Repositories ')
   
     modules = getModulesForProjectList(getBuildSequenceForProjects(getProjectsForProjectExpression(expr)))
         
  @@ -132,20 +132,34 @@
     return logins
    
   def loginToRepositoryOnDemand(repository,root,logins):
  -    # log into the cvs repository
  -    if repository.root.method=='pserver':
  -        newpass=mangle(repository.root.password)
  -        if not root in logins or logins[root]<>newpass:
  -            log.info('Provide login for CVS repository: ' + repository.name + ' @ ' + root)            
  -            # Open with append...
  -            try:
  -                cvspassfile=os.path.expanduser(os.path.join('~','.cvspass'),'a')
  -                cvspass=open(cvspassfile,'a')
  -                cvspass.write('/1 '+root+' '+newpass+'\n')
  -                cvspass.close()
  -            except Exception, detail:
  -                log.error('Failed to append to ~/.cvspass. Details: ' + str(detail))
  -                
  +    try:
  +        # log into the cvs repository
  +        if str(repository.root.method)=='pserver':
  +            newpass=mangle(repository.root.password)
  +            if not root in logins or logins[root]<>newpass:
  +                log.info('Provide login for CVS repository: ' + str(repository.name) + ' @ ' + root)            
  +                # Open with append...
  +                try:
  +                    cvspassfile=os.path.expanduser(os.path.join('~','.cvspass'))                
  +                    log.info('Updating CVS logins: ' + cvspassfile)            
  +                    # Save new password into file (for CVS tools to use)
  +                    cvspass=open(cvspassfile,'a')
  +                    cvspass.write('/1 '+root+' '+newpass+'\n')
  +                    cvspass.close()
  +                    # Save new password into memory
  +                    logins[root]=newpass
  +                    
  +                except Exception, detail:
  +                    log.error('Failed to append to ~/.cvspass. Details: ' + str(detail))
  +            else:
  +                log.warn('Login already available for: ' + str(repository.name) \
  +                    + ' @ ' + root)            
  +        else:
  +            log.warn('Unable to provide login for CVS repository: ' + str(repository.name) \
  +                + ' @ ' + root + ' method: ' + str(repository.root.method) )            
  +    except Exception, detail:
  +        log.error('Failed to loginToRepositoryOnDemand. Details: ' + str(detail))
  +                     
   def updateModules(workspace, modules, context=GumpContext()):
    
     os.chdir(workspace.cvsdir)
  @@ -153,12 +167,12 @@
   
     logins=readLogins()
   
  -  log.info('Modules to update:') 
  +  log.debug('Modules to update:') 
       
     # Update all the modules that have CVS repositories
     for module in modules:          
       if not module.cvs: continue
  -    log.info('  - ' + module.name)
  +    log.debug('  - ' + module.name)
       
       name=module.name
   
  @@ -167,12 +181,12 @@
       if mctxt.okToPerformWork() \
           and not switch.failtesting:
           try:
  -          log.info("CVS Update Module " + name + ", Repository Name: " + str(module.cvs.repository))
  +          log.debug("CVS Update Module " + name + ", Repository Name: " + str(module.cvs.repository))
   
             repository=Repository.list[module.cvs.repository]
             root=module.cvsroot()
         
  -          log.info("CVS Root " + module.cvsroot() + " Repository: " + str(repository))
  +          log.debug("CVS Root " + module.cvsroot() + " Repository: " + str(repository))
         
             #
             # Provide logins, if not already there
  @@ -228,7 +242,7 @@
           except Exception, detail:
           
             log.error('Failed to update module: ' + module.name + ' : ' + str(detail))
  -        
  +          
             mctxt.propagateErrorState(STATUS_FAILED,REASON_UPDATE_FAILED)  
           
   if __name__=='__main__':
  
  
  
  1.12      +5 -3      jakarta-gump/python/gump/launcher.py
  
  Index: launcher.py
  ===================================================================
  RCS file: /home/cvs/jakarta-gump/python/gump/launcher.py,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- launcher.py	9 Oct 2003 00:22:16 -0000	1.11
  +++ launcher.py	13 Oct 2003 18:51:20 -0000	1.12
  @@ -260,12 +260,14 @@
   def killChildren():
       pid=os.getpid()
       log.info('Kill all children for ' + str(pid))    
  -    os.system('pkill -P ' + str(pid))
  +    os.system('pkill -P ' + str(pid) + ' -signal KILL')
       
  +#
  +# Kill the children 
  +#
   def timeoutHandler(signum, frame):
  -    log.info('Signal handler called with signal: ' + str(signum))
  +    log.info('Timeout Handler Called [Signal : ' + str(signum) + ']')
       killChildren()
  -    raise Error, "Timeout"
       
   def execute(cmd,tmp=dir.tmp):
       res=CmdResult(cmd)
  
  
  
  1.22      +11 -11    jakarta-gump/python/gump/build.py
  
  Index: build.py
  ===================================================================
  RCS file: /home/cvs/jakarta-gump/python/gump/build.py,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- build.py	7 Oct 2003 21:59:25 -0000	1.21
  +++ build.py	13 Oct 2003 18:51:20 -0000	1.22
  @@ -111,9 +111,9 @@
   def buildProjectList(workspace, projects, context=GumpContext()):
     """ Build a expression of projects """
           
  -  log.info('Requests Projects')
  +  log.debug('Requests Projects')
     for p in projects:
  -    log.info('  Requested : ' + p.name)
  +    log.debug('  Requested : ' + p.name)
       
     sequence=getBuildSequenceForProjects(projects)
   
  @@ -121,9 +121,9 @@
     
   def buildProjectSequence(workspace,sequence,context=GumpContext()):
       
  -  log.info('Total Project Sequence (i.e. build order):');
  +  log.debug('Total Project Sequence (i.e. build order):');
     for p in sequence:
  -    log.info('  Sequence : ' + p.name)
  +    log.debug('  Sequence : ' + p.name)
   
     # synchronize @ module level
     syncWorkDir( workspace, sequence, context )
  @@ -137,13 +137,13 @@
   def syncWorkDir( workspace, sequence, context=GumpContext() ):
     """copy the raw module (project) materials from source to work dir (hopefully using rsync, cp is fallback)"""
   
  -  log.info('--- Synchronizing work directories with sources')
  +  log.debug('--- Synchronizing work directories with sources')
   
     modules=getModulesForProjectList(sequence)
     
  -  log.info('Total Module Sequence:');
  +  log.debug('Total Module Sequence:');
     for m in modules:
  -    log.info('  Modules : ' + m.name)    
  +    log.debug('  Modules : ' + m.name)    
   
     for module in modules:
         
  @@ -170,7 +170,7 @@
   def buildProjects( workspace, sequence, context=GumpContext() ):
     """actually perform the build of the specified project and its deps"""
   
  -  log.info('--- Building work directories with sources')
  +  log.debug('--- Building work directories with sources')
   
     # Place repository in jardir (to be renamed to repodir)
     repository=JarRepository(workspace.jardir)
  
  
  
  1.21      +1 -1      jakarta-gump/python/gump/logic.py
  
  Index: logic.py
  ===================================================================
  RCS file: /home/cvs/jakarta-gump/python/gump/logic.py,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- logic.py	7 Oct 2003 05:44:58 -0000	1.20
  +++ logic.py	13 Oct 2003 18:51:20 -0000	1.21
  @@ -227,7 +227,7 @@
       script=project.script
   
       if not (script or ant):
  -      log.info('   Not building this project! (no <ant/> or <script/> specified)')
  +      log.info('   Not building ' + project.name + ' (no <ant/> or <script/> specified)')
         return None
   
       if script and script.name:
  
  
  
  1.16      +7 -8      jakarta-gump/python/gump/__init__.py
  
  Index: __init__.py
  ===================================================================
  RCS file: /home/cvs/jakarta-gump/python/gump/__init__.py,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- __init__.py	26 Sep 2003 20:52:43 -0000	1.15
  +++ __init__.py	13 Oct 2003 18:51:20 -0000	1.16
  @@ -156,14 +156,13 @@
   
       #download the file if not present in the cache
       usecached=0
  -    if switch.optimize or switch.optimizenetwork:
  +    if switch.optimize and switch.optimizenetwork:
           if os.path.exists(cachedHrefFile):
  -          log.info('using cached descriptor for ' + href)
  +          log.info('Using cached descriptor for ' + href)
             usecached=1
             
       if not usecached:
  -      log.debug('caching...')
  -      log.info('downloading '+href)      
  +      log.debug('Downloading (if date/timestamp changes) : '+href)      
         try:
           #
           # urllib ought do some (timestamp oriented) caching also...
  @@ -174,7 +173,7 @@
           try:
             os.remove(cachedHrefFile)
           except:
  -          log.debug('No faulty cached file to remove')
  +          log.debug('No faulty cached file to remove, or failed to remove.')
         else: 
            log.debug('...done')
   
  
  
  
  1.7       +7 -2      jakarta-gump/python/gump/integrate.py
  
  Index: integrate.py
  ===================================================================
  RCS file: /home/cvs/jakarta-gump/python/gump/integrate.py,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- integrate.py	6 Oct 2003 21:22:27 -0000	1.6
  +++ integrate.py	13 Oct 2003 18:51:20 -0000	1.7
  @@ -20,7 +20,7 @@
   from gump import log, load
   from gump.conf import dir, default, handleArgv
   from gump.model import Workspace, Module, Project
  -from gump.check import checkEnvironment
  +from gump.check import checkEnvironment, check
   from gump.context import *
   from gump.update import updateModules
   from gump.build import buildProjectSequence
  @@ -87,7 +87,7 @@
               document(workspace,context,1)
     
           # Nag about failures
  -        # nag(workspace,context)
  +        nag(workspace,context)
     
           # Provide a news feed
           rss(workspace,context)
  @@ -122,6 +122,11 @@
       # Check Environment (eventually not do this each time)
       #
       checkEnvironment(workspace,context)
  +        
  +    #
  +    # Check projects (and such) in workspace...
  +    #
  +    check(workspace, ps, context)    
       
       #
       result = integrate(workspace, ps, context)
  
  
  
  1.22      +10 -3     jakarta-gump/python/gump/model.py
  
  Index: model.py
  ===================================================================
  RCS file: /home/cvs/jakarta-gump/python/gump/model.py,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- model.py	7 Oct 2003 19:19:31 -0000	1.21
  +++ model.py	13 Oct 2003 18:51:20 -0000	1.22
  @@ -253,11 +253,18 @@
           self.home=os.path.abspath(os.path.join(srcdir,self.home.nested))
         elif self.home.parent:
           self.home=os.path.abspath(os.path.join(workspace.basedir,self.home.parent))
  +      else:
  +        log.error('Unable to complete project.home for [not nested/parent]: ' + self.name)
  +        self.home=None
  +        
       elif not self.home:
         if self.module:
           self.home=os.path.abspath(Module.list[self.module].srcdir)
         else:
           self.home=os.path.abspath(os.path.join(workspace.basedir,self.name))
  +    else:
  +        log.error('Unable to complete project.home for: ' + self.name)
  +        self.home=None
   
       # resolve jars
       for jar in self.jar:
  
  
  
  1.2       +6 -5      jakarta-gump/python/gump/nag.py
  
  Index: nag.py
  ===================================================================
  RCS file: /home/cvs/jakarta-gump/python/gump/nag.py,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- nag.py	29 Aug 2003 00:20:22 -0000	1.1
  +++ nag.py	13 Oct 2003 18:51:20 -0000	1.2
  @@ -81,11 +81,13 @@
       for (mname,mctxt) in context.subcontexts.iteritems():
           if not STATUS_SUCCESS == mctxt.status:
               if Module.list.has_key(mname):
  -                if moduleFilterList and not mname in moduleFilterList: continue    
  +                # :TODO: Something doesn't work w/ this.
  +                # if moduleFilterList and not mname in moduleFilterList: continue    
                   module=Module.list[mname]
                   for (pname,pctxt) in mctxt.subcontexts.iteritems():
                       if STATUS_FAILED == pctxt.status:
  -                        if projectFilterList and not pctxt.project in projectFilterList: continue
  +                        # :TODO: Something doesn't work w/ this.
  +                        # if projectFilterList and not pctxt.project in projectFilterList: continue
                           project=Project.list[pname]
                           if project.nag:
                               nagProject(workspace,context,module,mctxt,project,pctxt)
  @@ -101,13 +103,12 @@
       content=''
       content+=getContent(mctxt,"Module: " + module.name + "\n")
       content+=getContent(pctxt,"Project: " + project.name + "\n"    )
  -    
  +        
       email=EmailMessage(workspace.prefix+':'+module.name+'/'+project.name+' '+stateName(pctxt.status),content)
       toaddr=project.nag.toaddr or workspace.email
       fromaddr=project.nag.fromaddr or workspace.email
       toaddrs=[ toaddr or workspace.email ]
  -    mail(toaddrs,fromaddr,email,workspace.mailserver)
  -    
  +    mail(toaddrs,fromaddr,email,workspace.mailserver) 
       
   def getContent(context,message=''):
       content=''
  
  
  
  1.3       +1 -1      jakarta-gump/python/gump/statistics.py
  
  Index: statistics.py
  ===================================================================
  RCS file: /home/cvs/jakarta-gump/python/gump/statistics.py,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- statistics.py	8 Sep 2003 18:13:11 -0000	1.2
  +++ statistics.py	13 Oct 2003 18:51:20 -0000	1.3
  @@ -213,7 +213,7 @@
   
   def statistics(workspace,context,projectFilterList=None):
       
  -    log.info('--- Updating Project Statistics')
  +    log.debug('--- Updating Project Statistics')
       
       db=StatisticsDB()       
       for modulecontext in context:
  
  
  
  1.25      +66 -59    jakarta-gump/python/gump/check.py
  
  Index: check.py
  ===================================================================
  RCS file: /home/cvs/jakarta-gump/python/gump/check.py,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- check.py	6 Oct 2003 14:04:15 -0000	1.24
  +++ check.py	13 Oct 2003 18:51:20 -0000	1.25
  @@ -72,7 +72,7 @@
   from gump.logic import getBuildSequenceForProjects, getProjectsForProjectExpression
   from gump.conf import dir, default, handleArgv, banner
   from gump.model import Workspace, Module, Project
  -from gump.context import GumpContext, CommandWorkItem, WORK_TYPE_CHECK
  +from gump.context import GumpContext, CommandWorkItem, WORK_TYPE_CHECK, STATUS_SUCCESS
   
   from gump.launcher import getCmdFromString, execute, CMD_STATUS_SUCCESS
   
  @@ -156,9 +156,7 @@
           context.noPKill=1
           context.addWarning('"pkill" command not found, no process clean-ups can occur')        
       
  -    # :TODO:
  -    # Need to check javac classes are on CLASSPATH
  -    #
  +    context.setState(STATUS_SUCCESS);
       
   def checkExecutable(workspace,context,command,options,mandatory,name=None):
       ok=0
  @@ -225,10 +223,7 @@
     for project in projects:
       printed_header=0;    
       projectmissing = 0
  -    if not printed_header: 
  -      printHeader(project)
  -      printed_header=1
  -    
  +   
       # for each dependency in current project
       for depend in project.depend:
         # if the dependency is not present in the projects, it's missing
  @@ -237,7 +232,9 @@
             printHeader(project)
             printed_header=1    
           projectmissing+=1
  -        print "  missing: "+depend.project
  +        message="  Missing dependency: " + depend.project + " on project " + project.name
  +        print message
  +        context.addWarning(message)
           if depend.project not in missing:
             missing.append(depend.project)  
               
  @@ -248,12 +245,14 @@
             printHeader(project)
             printed_header=1    
           projectmissing+=1
  -        print "  optional missing: "+depend.project
  +        message="  Missing optional dependency: " + depend.project + " on project " + project.name
  +        print message
  +        context.addWarning(message)
           if depend.project not in optionalMissing:
             optionalMissing.append(depend.project)
               
       if projectmissing>0:
  -      print "  total errors: " , projectmissing
  +        print "  total errors: " , projectmissing
   
     if len(optionalMissing)>0:     
       print
  @@ -271,19 +270,23 @@
       for missed in missing:
         print "  " + missed
   
  -  try:
  -    peekInGlobalProfile(missing);
  -  except:
  -    print
  -    print " ***** In Global Profile... ***** "  
  -    print
  -    print "  Cannot load the global Gump profile, you have to install %\n  the jars by hand."  
  -    print 
  -    traceback.print_exc()    
  -    print
  +  # Comment out for now ...
  +  # 'cos loading a new workspace overwrites
  +  # the loaded one..
  +  
  +  #try:
  +  #  peekInGlobalProfile(missing);
  +  #except:
  +  #  print
  +  #  print " ***** In Global Profile... ***** "  
  +  #  print
  +  #  print "  Cannot load the global Gump profile, you have to install %\n  the jars by hand."  
  +  #  print 
  +  #  traceback.print_exc()    
  +  #  print
         
     print
  -  print " ***** RESULT ***** "  
  +  print " ***** WORKSPACE RESULT ***** "  
     print
     if len(missing)>0:
       print
  @@ -307,40 +310,44 @@
       print " *****************************************************"       
       print " Project: " + project.name
       
  -def peekInGlobalProfile(missing):
  -   
  -  print  
  -  print "  *****************************************************"     
  -  print "  **** Loading global Gump workspace to find info"
  -  print "       about missing projects.   Please wait...   *****"
  -  print "  *****************************************************"    
  -  print
  -
  -  workspace=load(default.globalws)
  -  
  -  for missed in missing:
  -    print  
  -    print      
  -    print "  **** Project: " + missed
  -    print
  -    if missed in Project.list:
  -      currentproject = Project.list[missed]
  -      currentmodule = Module.list[currentproject.module]
  -      print "  ",currentmodule.description
  -      print
  -      if not currentproject.url.href == currentmodule.url.href:
  -            print "   project url: " , currentproject.url.href
  -      print "   module  url: " , currentmodule.url.href
  -      print "   module  cvs: " , currentmodule.cvsroot()
  -      if currentmodule.redistributable:
  -        print  
  -        print "   NOTE: You can also get it in the Gump jar repository." 
  -        print "         See http://jakarta.apache,org/gump/ for details."
  -        
  -    else:
  -      print "   Gump doesn't know about it. Or it's wrong, or you have to "
  -      print "   install the artifacts of " + missed +" manually."
  -            
  +    
  +# Comment out for now ...
  +# 'cos loading a new workspace overwrites
  +# the loaded one..
  +#def peekInGlobalProfile(missing):
  +#   
  +#  print  
  +#  print "  *****************************************************"     
  +#  print "  **** Loading global Gump workspace to find info"
  +#  print "       about missing projects.   Please wait...   *****"
  +#  print "  *****************************************************"    
  +#  print
  +#
  +#  workspace=load(default.globalws)
  +#  
  +#  for missed in missing:
  +#    print  
  +#    print      
  +#    print "  **** Project: " + missed
  +#    print
  +#    if missed in Project.list:
  +#      currentproject = Project.list[missed]
  +#      currentmodule = Module.list[currentproject.module]
  +#      print "  ",currentmodule.description
  +#      print
  +#      if not currentproject.url.href == currentmodule.url.href:
  +#            print "   project url: " , currentproject.url.href
  +#      print "   module  url: " , currentmodule.url.href
  +#      print "   module  cvs: " , currentmodule.cvsroot()
  +#      if currentmodule.redistributable:
  +#        print  
  +#        print "   NOTE: You can also get it in the Gump jar repository." 
  +#        print "         See http://jakarta.apache,org/gump/ for details."
  +#        
  +#    else:
  +#      print "   Gump doesn't know about it. Or it's wrong, or you have to "
  +#      print "   install the artifacts of " + missed +" manually."
  +#            
   
   # static void main()
   if __name__=='__main__':
  
  
  
  1.69      +2 -2      jakarta-gump/python/gump/document.py
  
  Index: document.py
  ===================================================================
  RCS file: /home/cvs/jakarta-gump/python/gump/document.py,v
  retrieving revision 1.68
  retrieving revision 1.69
  diff -u -r1.68 -r1.69
  --- document.py	9 Oct 2003 00:22:16 -0000	1.68
  +++ document.py	13 Oct 2003 18:51:20 -0000	1.69
  @@ -127,7 +127,7 @@
   
   def document(workspace,context,full=None,moduleFilterList=None,projectFilterList=None):
       
  -    log.info('--- Documenting Results')
  +    log.debug('--- Documenting Results')
   
       seedForrest(workspace,context)
       
  @@ -376,7 +376,7 @@
       for mctxt in context:
           mname=mctxt.name
           if not Module.list.has_key(mname): 
  -            log.info("Unknown module : " + mname)
  +            log.warn("Unknown module : " + mname)
               continue        
           if moduleFilterList and not mctxt.module in moduleFilterList: 
               log.info("Module filtered out: " + mname)
  
  
  
  1.19      +10 -7     jakarta-gump/python/gump/conf.py
  
  Index: conf.py
  ===================================================================
  RCS file: /home/cvs/jakarta-gump/python/gump/conf.py,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- conf.py	9 Oct 2003 00:22:16 -0000	1.18
  +++ conf.py	13 Oct 2003 18:51:20 -0000	1.19
  @@ -87,12 +87,14 @@
   class default:
       """Configuration of default settings"""
       
  -    workspace  = os.path.normpath('%s/%s.xml' % (dir.base, socket.gethostname().split('.')[0]))
  +    gumpfullhost   = socket.gethostname()   
  +    gumphost   = socket.gethostname().split('.')[0]
  +    workspace  = os.path.normpath('%s/%s.xml' % (dir.base, gumphost))
       globalws   = os.path.normpath('%s/%s' % (dir.base, 'global-workspace.xml'))
       project    = "jakarta-gump"
       merge      = os.path.normpath('%s/%s' % (dir.work, 'merge.xml'))
       date       = time.strftime('%Y%m%d')
  -    logLevel   = logging.WARN
  +    logLevel   = logging.INFO
       classpath = (os.getenv('CLASSPATH') or '').split(os.pathsep)  
       
       logurl		=	'http://cvs.apache.org/builds/gump/nightly/'
  @@ -100,8 +102,9 @@
       
       email = 'gump@lists.apache.org'
       mailserver = 'mail.apache.org'
  -    prefix = "[GUMPY]"
  -    signature="\r\n--\r\nGump http://jakarta.apache.org/gump"
  +    prefix = '[GUMPY@' + gumphost + ']'
  +    signature="\r\n--\r\nGump http://jakarta.apache.org/gump\n" \
  +        + '[' + gumpfullhost + "]\n"
       
   class setting:    
       """Configuration of hardcoded settings"""
  
  
  
  1.2       +1 -1      jakarta-gump/python/logging/__init__.py
  
  Index: __init__.py
  ===================================================================
  RCS file: /home/cvs/jakarta-gump/python/logging/__init__.py,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- __init__.py	27 Apr 2003 13:15:55 -0000	1.1
  +++ __init__.py	13 Oct 2003 18:51:21 -0000	1.2
  @@ -864,7 +864,7 @@
           To pass exception information, use the keyword argument exc_info with
           a true value, e.g.
   
  -        logger.info("Houston, we have a %s", "interesting problem", exc_info=1)
  +        logger.info("Houston, we have an %s", "interesting problem", exc_info=1)
           """
           if self.manager.disable >= INFO:
               return