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 2004/07/22 04:54:39 UTC

cvs commit: gump/python/gump/model repository.py

ajack       2004/07/21 19:54:39

  Modified:    python/gump/update artifact.py
               python/gump/test __init__.py launching.py stats.py timing.py
                        notifying.py utils.py pyunit.py
               python/gump/notify notifier.py
               python/gump/utils smtp.py
               src/documentation/content/xdocs index.xml gettingstarted.xml
               .        .cvsignore
               python/gump/model repository.py
  Log:
  1) Some documentation work
  2) Some unit testing related fixes
  3) More debug on SMTP failures.
  
  Revision  Changes    Path
  1.5       +21 -12    gump/python/gump/update/artifact.py
  
  Index: artifact.py
  ===================================================================
  RCS file: /home/cvs/gump/python/gump/update/artifact.py,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- artifact.py	19 Jul 2004 16:07:55 -0000	1.4
  +++ artifact.py	22 Jul 2004 02:54:38 -0000	1.5
  @@ -16,7 +16,7 @@
   # limitations under the License.
   
   """
  -
  +    The artifact updater
   """
   
   import os.path
  @@ -53,10 +53,8 @@
           RunSpecific.__init__(self,run)
   
       def updateModule(self,module):
  -        """
  -        
  -            Perform an Artifact update on a module
  -            
  +        """        
  +            Perform an Artifact update on a module            
           """            
           log.info('Perform Artifact Update on #[' + `module.getPosition()` + \
                           '] : ' + module.getName())
  @@ -70,9 +68,7 @@
           # Execute the command and capture results        
           cmdResult=execute(cmd, module.getWorkspace().tmpdir)
         
  -        #
           # Store this as work, on both the module and (cloned) on the repo
  -        #
           work=CommandWorkItem(WORK_TYPE_UPDATE,cmd,cmdResult)
           module.performedWork(work)  
           module.getRepository().performedWork(work.clone())
  @@ -93,15 +89,16 @@
                   # Kinda bogus, but better than nowt (for now)
                   module.changeState(STATE_SUCCESS,REASON_UPDATE_FAILED)
           else:
  +            self.mapArtifacts(module)
  +            
               module.changeState(STATE_SUCCESS)       
                   
           return module.okToPerformWork()                                                 
            
  -    def preview(self,module):            
  -        command = self.getArtifactUpdateCommand(module)
  -        command.dump()                                            
  -         
       def getArtifactUpdateCommand(self,module):
  +        """
  +        Create the Depot command line for updating this module.
  +        """
           
           log.debug("Artifact Update Module " + module.getName() + \
                          ", Repository Name: " + str(module.repository.getName()))
  @@ -139,4 +136,16 @@
           cmd.addParameter(module.getName())  
      
           return cmd
  -     
  +    
  +    def mapArtifacts(self,module):
  +        """
  +        Map the artifacts to jars ids (within projects)
  +        """
  +        
  +    def preview(self,module):            
  +        """
  +        Preview the command
  +        """
  +        command = self.getArtifactUpdateCommand(module)
  +        command.dump()                                            
  +         
  
  
  
  1.16      +1 -1      gump/python/gump/test/__init__.py
  
  Index: __init__.py
  ===================================================================
  RCS file: /home/cvs/gump/python/gump/test/__init__.py,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- __init__.py	19 Jul 2004 16:07:55 -0000	1.15
  +++ __init__.py	22 Jul 2004 02:54:38 -0000	1.16
  @@ -58,7 +58,7 @@
       workspace=getTestWorkspace(xml)
          
       # Load statistics for this workspace
  -    db=StatisticsDB(dir.test,'test.db')  
  +    db=StatisticsDB(gump.core.config.dir.test,'test.db')  
       db.loadStatistics(workspace)
   
       # Some file items...
  
  
  
  1.2       +18 -0     gump/python/gump/test/launching.py
  
  Index: launching.py
  ===================================================================
  RCS file: /home/cvs/gump/python/gump/test/launching.py,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- launching.py	14 Jul 2004 20:47:02 -0000	1.1
  +++ launching.py	22 Jul 2004 02:54:38 -0000	1.2
  @@ -26,6 +26,24 @@
       def __init__(self):
           UnitTestSuite.__init__(self)
           
  +    def testSpacesInCommandLines(self):
  +        params=gump.process.command.Parameters()
  +        params.addParameter('NoSpaces', 'aaaaa','=')
  +        params.addParameter('WithValueSpaces', 'aa aa a','=')
  +        params.addParameter('With Name Spaces', 'aaaaa','=')
  +        params.addParameter('WithQuotesAndSpaces', 'aa \' \" aa a','=')
  +        params.addParameter('WithEscapes', 'aa\\a','=')
  +        
  +        #print params.formatCommandLine()
  +        
  +        params=gump.process.command.Parameters()
  +        params.addPrefixedParameter('-D','X', 'aaaaa','=')
  +        params.addPrefixedParameter('-D','Y', 'aa aa a','=')
  +        params.addPrefixedParameter('-D','Z', 'aa \' aa a','=')
  +        params.addPrefixedParameter('-D','Z', 'aa \" aa a','=')
  +        
  +        #print params.formatCommandLine()
  +        
       def testGoodLaunch(self):
           env=gump.process.command.Cmd('env')
           result=gump.process.launcher.execute(env)
  
  
  
  1.12      +2 -0      gump/python/gump/test/stats.py
  
  Index: stats.py
  ===================================================================
  RCS file: /home/cvs/gump/python/gump/test/stats.py,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- stats.py	21 May 2004 23:15:00 -0000	1.11
  +++ stats.py	22 Jul 2004 02:54:38 -0000	1.12
  @@ -24,6 +24,8 @@
   from gump import log
   import gump.core.config
   from gump.stats.statsdb import *
  +from gump.utils import *
  +from gump.utils.timing import *
   from gump.test import getWorkedTestWorkspace
   from gump.test.pyunit import UnitTestSuite
   
  
  
  
  1.4       +1 -0      gump/python/gump/test/timing.py
  
  Index: timing.py
  ===================================================================
  RCS file: /home/cvs/gump/python/gump/test/timing.py,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- timing.py	14 Jul 2004 20:47:02 -0000	1.3
  +++ timing.py	22 Jul 2004 02:54:38 -0000	1.4
  @@ -18,6 +18,7 @@
   """
   
   from gump.utils import *
  +from gump.utils.timing import *
   from gump.test.pyunit import UnitTestSuite
   
   class TimingTestSuite(UnitTestSuite):
  
  
  
  1.6       +21 -15    gump/python/gump/test/notifying.py
  
  Index: notifying.py
  ===================================================================
  RCS file: /home/cvs/gump/python/gump/test/notifying.py,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- notifying.py	19 Jul 2004 16:07:55 -0000	1.5
  +++ notifying.py	22 Jul 2004 02:54:38 -0000	1.6
  @@ -30,7 +30,7 @@
   from gump.test.pyunit import UnitTestSuite
   
   from gump.notify.notifier import Notifier
  -from gump.notify.notification import PositiveNotification,NegativeNotification
  +from gump.notify.notification import SuccessNotification,FailureNotification,WarningNotification
   from gump.utils.smtp import *
   
   class NotificationTestSuite(UnitTestSuite):
  @@ -53,38 +53,44 @@
       def testNotificationContents(self):
           
           resolver=self.run.getOptions().getResolver()
  -        content1=PositiveNotification(self.run, self.workspace).resolveContent(resolver)
  -        content2=NegativeNotification(self.run, self.workspace).resolveContent(resolver)    
  +        content1=SuccessNotification(self.run, self.workspace).resolveContent(resolver)
  +        content2=FailureNotification(self.run, self.workspace).resolveContent(resolver)   
  +        content3=WarningNotification(self.run, self.workspace).resolveContent(resolver)    
           #print content1
           #print content2
  +        #print content3
       
           # For all modules...
           for module in self.workspace.getModules():                    
               #print 'Get Content For Module : ' + module.getName()
  -            content1=PositiveNotification(self.run, module).resolveContent(resolver)
  -            content2=NegativeNotification(self.run, module).resolveContent(resolver) 
  +            content1=SuccessNotification(self.run, module).resolveContent(resolver)
  +            content2=FailureNotification(self.run, module).resolveContent(resolver) 
  +            content3=WarningNotification(self.run, module).resolveContent(resolver) 
               #print content1
               #print content2
  +            #print content3
               for project in module.getProjects():
                   #print 'Get Content For Project : ' + project.getName()
                   # print 
  -                content1=PositiveNotification(self.run, project).resolveContent(resolver)
  -                content2=NegativeNotification(self.run, project).resolveContent(resolver)
  +                content1=SuccessNotification(self.run, project).resolveContent(resolver)
  +                content2=FailureNotification(self.run, project).resolveContent(resolver)
  +                content3=WarningNotification(self.run, project).resolveContent(resolver)
                   #print content1
                   #print content2
  +                #print content3
                   
       def testNotifyUnwantedUnsent(self):
       
           notifier=Notifier(self.run)
           
  -        self.assertFalse( 'No Unwanted', notifier.hasUnwanted() )
  -        self.assertFalse( 'No Unsent', notifier.hasUnsent() )
  +        self.assertFalse( 'No Unwanted', notifier._hasUnwanted() )
  +        self.assertFalse( 'No Unsent', notifier._hasUnsent() )
           
  -        notifier.addUnwanted('test subject','test content')
  -        notifier.addUnsent('test subject','test content')
  +        notifier._addUnwanted('test subject','test content')
  +        notifier._addUnsent('test subject','test content')
           
  -        self.assertTrue( 'Has Unwanted', notifier.hasUnwanted() )
  -        self.assertTrue( 'Has Unsent', notifier.hasUnsent() )
  +        self.assertTrue( 'Has Unwanted', notifier._hasUnwanted() )
  +        self.assertTrue( 'Has Unsent', notifier._hasUnsent() )
                   
       def testNotifyAddresses(self):
       
  @@ -121,6 +127,6 @@
                               'Test Content')       
                       #print str(email)
                       
  -        notifier.getUnwantedContent()
  -        notifier.getUnsentContent()
  +        notifier._getUnwantedContent()
  +        notifier._getUnsentContent()
           
  
  
  
  1.16      +0 -19     gump/python/gump/test/utils.py
  
  Index: utils.py
  ===================================================================
  RCS file: /home/cvs/gump/python/gump/test/utils.py,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- utils.py	14 Jul 2004 20:47:02 -0000	1.15
  +++ utils.py	22 Jul 2004 02:54:38 -0000	1.16
  @@ -32,25 +32,6 @@
       def suiteSetUp(self):
           self.now=default.time
       
  -        
  -    def testSpacesInCommandLines(self):
  -        params=Parameters()
  -        params.addParameter('NoSpaces', 'aaaaa','=')
  -        params.addParameter('WithValueSpaces', 'aa aa a','=')
  -        params.addParameter('With Name Spaces', 'aaaaa','=')
  -        params.addParameter('WithQuotesAndSpaces', 'aa \' \" aa a','=')
  -        params.addParameter('WithEscapes', 'aa\\a','=')
  -        
  -        #print params.formatCommandLine()
  -        
  -        params=Parameters()
  -        params.addPrefixedParameter('-D','X', 'aaaaa','=')
  -        params.addPrefixedParameter('-D','Y', 'aa aa a','=')
  -        params.addPrefixedParameter('-D','Z', 'aa \' aa a','=')
  -        params.addPrefixedParameter('-D','Z', 'aa \" aa a','=')
  -        
  -        #print params.formatCommandLine()
  -        
       def testWrap(self):
           
           eol='\n'
  
  
  
  1.36      +1 -0      gump/python/gump/test/pyunit.py
  
  Index: pyunit.py
  ===================================================================
  RCS file: /home/cvs/gump/python/gump/test/pyunit.py,v
  retrieving revision 1.35
  retrieving revision 1.36
  diff -u -r1.35 -r1.36
  --- pyunit.py	14 Jul 2004 20:47:02 -0000	1.35
  +++ pyunit.py	22 Jul 2004 02:54:38 -0000	1.36
  @@ -373,6 +373,7 @@
       
       from gump.test.launching import LaunchingTestSuite  
       runner.addSuite(LaunchingTestSuite())
  + 
       
       # Any args are pattern matches
       patterns=list(sys.argv)
  
  
  
  1.12      +5 -4      gump/python/gump/notify/notifier.py
  
  Index: notifier.py
  ===================================================================
  RCS file: /home/cvs/gump/python/gump/notify/notifier.py,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- notifier.py	21 Jul 2004 14:54:34 -0000	1.11
  +++ notifier.py	22 Jul 2004 02:54:38 -0000	1.12
  @@ -358,14 +358,13 @@
               #print 'Server:' + `self.workspace.mailserver`
               #print 'e-mail:' + `email`    
               # Fire ...
  -            sent=mail(toaddrs,fromaddr,email,	\
  -                        self.workspace.mailserver,	\
  +            sent=mail(toaddrs,fromaddr,email,
  +                        self.workspace.mailserver,
                           self.workspace.mailport)  
                      
           except Exception, details:
               sent=False
  -            log.error('Failed to send notify e-mail: ' + str(details), \
  -                        exc_info=1)
  +            log.error('Failed to send notify e-mail: ' + str(details), exc_info=1)
                           
               # Add why unset along with content stored (and e-mailed) below.            
               content = 'Failed to send notify e-mail: ' + str(details) + '\n' + content
  @@ -375,5 +374,7 @@
               
               self._addUnsent(subject,content)                                        
               log.error('Failed with to: ['+str(toaddr)+'] from: ['+str(fromaddr)+']' )
  +        else:
  +            self.sents+=1                        
               
           return sent
  
  
  
  1.3       +15 -6     gump/python/gump/utils/smtp.py
  
  Index: smtp.py
  ===================================================================
  RCS file: /home/cvs/gump/python/gump/utils/smtp.py,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- smtp.py	8 Jul 2004 20:33:06 -0000	1.2
  +++ smtp.py	22 Jul 2004 02:54:38 -0000	1.3
  @@ -93,7 +93,7 @@
       else:
           data = EmailMessage(toaddrs,fromaddr,'',str(message)).getSerialized()
       
  -    sent=0
  +    sent=False
       try:
           #
           # Attach to the SMTP server to send....
  @@ -103,16 +103,25 @@
           failures = server.sendmail(sane_fromaddr, sane_toaddrs, data)
           server.quit()
           
  -		# Note: w/o an exception it was accepted to some folk...
  -		# Failures is a list of tuples of error code plus recipient
  -		# that was refused.
  -        if not failures: sent=1
  +        # Note: w/o an exception it was accepted to some folk...
  +        # Failures is a list of tuples of error code plus recipient
  +        # that was refused.
  +        
  +        if not failures: 
  +            sent=True
  +        else:
  +            for failure in failures:
  +                log.error('Failed to send e-mail to : ' + `failure`)
           
       except Exception, details:
  -        sent=0
  +        sent=False
  +        
           log.error('Failed to send e-mail: ' + str(details))
           log.error(data, exc_info=1)
           log.error('Server :' + str(server) + ' From   :' + str(fromaddr) + ' To     :' + str(toaddrs))
  +        
  +        # Keep it going...
  +        raise
       
       return sent
       
  
  
  
  1.10      +10 -38    gump/src/documentation/content/xdocs/index.xml
  
  Index: index.xml
  ===================================================================
  RCS file: /home/cvs/gump/src/documentation/content/xdocs/index.xml,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- index.xml	9 Mar 2004 14:53:53 -0000	1.9
  +++ index.xml	22 Jul 2004 02:54:38 -0000	1.10
  @@ -117,19 +117,16 @@
     </section>
   
     <section><title>When does Gump run?</title>
  -    <p>
  -      For Gump to have the desired social effects, it must be predictable.  
  -      Given the global scale of open source development, there is clearly no 
  -      one time when everyone is inactive.
  -    </p>
   
       <p>
  -      The run at midnight US/Pacific time causes nag emails to be sent.  
  -      Interrim runs are now done evey eight hours, based on the hardware kindly 
  -      donated by Sun and Covalent. Below is the schedule for all runs relative 
  -      to several representative time zones.
  +      Gump runs continually in various locations, primarily on Apache hardware, see below.	  
       </p>
   
  +	<note>
  +	Gump operates best in when distributed (over various servers). Please contact us if you are willing to
  +	contribute resources to this project.
  +	</note>
  +	
       <table>
         <tr>
           <th>Site</th>
  @@ -137,38 +134,13 @@
           <th>Comments</th>
         </tr>
         <tr>
  -        <td><link href="http://cvs.apache.org/builds/gump/latest">Rubix</link> </td>
  -        <td/>
  -        <td><strong>Unavailable</strong></td>
  -      </tr>
  -      <tr>
  -        <td><link href="http://nagoya.apache.org/~rubys/gump/">Nagoya</link> </td>
  -        <td/>
  -        <td><strong>Unavailable</strong></td>
  -      </tr>
  -      <tr>
  -        <td><link href="http://gump.covalent.net/log/index.html">Covalent</link> </td>
  -        <td>1.4.0_00-b05</td>
  -        <td>Traditional Gump</td>
  -      </tr>
  -      <tr>
  -        <td><link href="http://gump.cocoondev.org/">CocoonDev</link> </td>
  -        <td/>
  -        <td>Traditional Gump</td>
  -      </tr>
  -      <tr>
  -        <td><link href="http://lsd.student.utwente.nl/gump/">LSD</link> </td>
  -        <td>1.4.2-b28</td>
  -        <td>Python Gump</td>
  -      </tr>
  -      <tr>
  -        <td><link href="http://gump.dotnot.org/">DotNot</link> </td>
  -        <td>1.4.1_02-b06</td>
  +        <td><fork href="http://brutus.apache.org/gump/public/">Apache (Brutus)</fork> </td>
  +        <td>1.4.2_04</td>
           <td>Python Gump</td>
         </tr>
         <tr>
  -        <td><link href="http://gump.try.sybase.com/">TrySybase</link> </td>
  -        <td>1.4.2_03</td>
  +        <td><fork href="http://brutus.apache.org/gump/jdk15/">Apache (Brutus) JDK15</fork> </td>
  +        <td>1.5.0-beta2</td>
           <td>Python Gump</td>
         </tr>
       </table>
  
  
  
  1.9       +5 -15     gump/src/documentation/content/xdocs/gettingstarted.xml
  
  Index: gettingstarted.xml
  ===================================================================
  RCS file: /home/cvs/gump/src/documentation/content/xdocs/gettingstarted.xml,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- gettingstarted.xml	29 Feb 2004 19:03:39 -0000	1.8
  +++ gettingstarted.xml	22 Jul 2004 02:54:38 -0000	1.9
  @@ -99,10 +99,10 @@
         		<li>SVN -- <fork href="http://subversion.tigris.org">Subversion</fork></li>
         	</ul>
         	</section>
  -      	<section><title>Jar Download</title>
  +      	<section><title>Jar Downloading</title>
         	<p>This is optional.</p>
         	<ul>
  -      		<li>Ruper -- <fork href="http://incubator.apache.org/projects/ruper.html">Resource Updater</fork></li>
  +      		<li>Ruper -- <fork href="http://incubator.apache.org/depot">Depot Updater</fork></li>
         	</ul>
   		</section>
   	  </section>
  @@ -119,23 +119,13 @@
       </section>
   
       <section><title>Defining your workspace</title>
  -      <p>Two sample workspaces are provided, rubix and rubypad.  Find the
  -      one that is closest to your needs and make a copy of it.  The suggested
  +      <p>Sample workspaces are provided, 'gump' and 'minimal-workspace'.  Find 
  +      take one an edit it to fit your environment/needs.  The suggested
         name for the file you create is your host name.</p>
   
         <p>Again, reference the <link href="site:om/overview">overview</link> to see
         how you can add projects, define your own profiles, and the modify
         which version of referenced projects you want to build.</p>
  -
  -      <p>You will also need to directly modify the <code>gen.bat</code>
  -      or <code>gen.sh</code> scripts to specify where to find the JAXP
  -      implementation to use.  At the present time, recent releases of
  -      Xalan are recommended for performance reasons; but the JAXP
  -      reference implementation will likely catch up shortly.</p>
  -
  -      <p><strong>Note:</strong> Yes, it is tacky that you should have to modify this
  -      file directly.  Patches are welcome.  Meanwhile, cvs does a fairly
  -      good job of merging changes.</p>
       </section>
   
       <section><title>Installing Packages</title>
  @@ -146,7 +136,7 @@
         </p>
   
         <p>A list of some of the packages you might want to install can be found
  -      <link href="http://cvs.apache.org/builds/gump/latest/packages.html">
  +      <link href="http://brutus.apache.org/gump/public/packages.html">
         here</link>.</p>
   
         <p><strong>JDK 1.4</strong> includes both <code>jaxp</code> and <code>jsse</code>
  
  
  
  1.25      +1 -3      gump/.cvsignore
  
  Index: .cvsignore
  ===================================================================
  RCS file: /home/cvs/gump/.cvsignore,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- .cvsignore	8 Jul 2004 20:33:10 -0000	1.24
  +++ .cvsignore	22 Jul 2004 02:54:39 -0000	1.25
  @@ -21,9 +21,7 @@
   tsws1.xml
   test
   x.txt
  -gumpy.log
  -*_log.txt
  -*_runlog.txt
  +gumpy*log*.txt
   gumpy.lock
   out.tmp
   *.wpr
  
  
  
  1.15      +2 -0      gump/python/gump/model/repository.py
  
  Index: repository.py
  ===================================================================
  RCS file: /home/cvs/gump/python/gump/model/repository.py,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- repository.py	14 Jul 2004 18:12:12 -0000	1.14
  +++ repository.py	22 Jul 2004 02:54:39 -0000	1.15
  @@ -28,7 +28,9 @@
   
   class Repository(NamedModelObject, Statable):
       """ 
  +    
       A named repository (CVS|SVN|Artifacts) 
  +    
       """
       def __init__(self,name,dom,workspace):
       	NamedModelObject.__init__(self,name,dom,workspace)
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: general-unsubscribe@gump.apache.org
For additional commands, e-mail: general-help@gump.apache.org