
On Tue, 30 Nov 2004 02:39:12 -0600, Aleksey Gurtovoy <agurtovoy@meta-comm.com> wrote:
I had to do this manually because the regression.py script doesn't handly my FTP firewall properly.
Could you post the exact traceback? Chances are we can do something about it.
# Done writing "/home/nbde52d/src/boost-regression/results/CalebEpstein.xml". # Compressing "/home/nbde52d/src/boost-regression/results/CalebEpstein.xml"... # Done writing "/home/nbde52d/src/boost-regression/results/CalebEpstein.zip". # Uploading log archive "/home/nbde52d/src/boost-regression/results/CalebEpstein.zip" to ftp://fx.meta-comm.com/boost-regression/CVS-HEAD Traceback (most recent call last): File "./regression.py", line 765, in ? commands[ command ]( **accept_args( args ) ) File "./regression.py", line 612, in regression upload_logs( tag, runner, user ) File "./regression.py", line 545, in upload_logs upload_logs( regression_results, runner, tag, user ) File "/home/nbde52d/src/boost-regression/boost/tools/regression/xsl_reports/runner/collect_and_upload_logs.py", line 153, in upload_logs upload_to_ftp( tag, logs_archive ) File "/home/nbde52d/src/boost-regression/boost/tools/regression/xsl_reports/runner/collect_and_upload_logs.py", line 51, in upload_to_ftp ftp = ftplib.FTP( ftp_site ) File "/home/eqdev/tools/sunos-sparc-gcc/python-2.3.4/lib/python2.3/ftplib.py", line 107, in __init__ self.connect(host) File "/home/eqdev/tools/sunos-sparc-gcc/python-2.3.4/lib/python2.3/ftplib.py", line 117, in connect for res in socket.getaddrinfo(self.host, self.port, 0, socket.SOCK_STREAM): socket.gaierror: (8, 'host/servname not known') I cannot resolve internet hostnames inside my firewall. I have an http proxy server which can handle http, https and ftp requests (e.g. ftp-over-http, which probably only supports RETR I suspect), as well as an FTP proxy server that uses the convention of specifying user@remotehost as the username to connect to Internet hosts. In other words, I do: % ftp ny-proxy Connected to ny-proxy. 220 nyinfppxy1 FTP proxy (Version V2.1) ready. Name (ny-proxy:nbde52d): annonymous@fx.meta-comm.com 331-(----GATEWAY CONNECTED TO fx.meta-comm.com----) 331-(220 filestor Microsoft FTP Service (Version 5.0).) 331 Password required for annonymous. Password: Then from there things behave like regular FTP. I don't think Python's ftplib has any out-of-the-box support for firewalls unlike the equivalent Perl module Net::FTP which honors the environment variable FTP_FIREWALL.
These results are with one small patch applied to date_time to work with the Rogue Wave std::locale::facet.
Your might consider putting this into your comment file.
Done. This will be in the next zip I upload. I'm also attaching the two small patches to this message.
We should really get rid of the obstacles on the way to automated runs, though. I'll look into fixing the tarball issue you've reported earlier.
Thanks. There are also some other bugs I've found with regression.py: 1. Using the --mail argument crashes the script: % python ./regression.py --runner CalebEpstein --local boost_1_32_0 --toolsets sunpro --bjam-options "-j8" --mail caleb.epstein@gmail.com --proxy $http_proxy # Sending start notification to "caleb.epstein@gmail.com" # Sending report to "caleb.epstein@gmail.com" Traceback (most recent call last): File "./regression.py", line 765, in ? commands[ command ]( **accept_args( args ) ) File "./regression.py", line 625, in regression msg = regression_log + [ '' ] + apply( traceback.format_exception, sys.exc_info() ) TypeError: cannot concatenate 'str' and 'list' objects 2. The --local argument is not idempotent. If this points to a directory, it will be renamed to "boost", so a later run with the same arguments will fail. 3. The --local argument expects to be given a name like <tag>.<something> and takes the first portion before the . as a tag. If the name points to a directory like boost_1_32_0 the tag name is taken as this name with the last character dropped (e.g. "boost_1_32_"). 4. Unless --comment is supplied, an existing comment.html file will be overwritten. I found this one out the hard way! global comment_path if comment is None: log( 'Comment file "%s" not found; creating default comment.' % comment_ path ) f = open( comment_path, 'w' ) f.write( '<p>Tests are run on %s platform.</p>' % string.capitalize( sys .platform ) ) f.close() else: comment_path = os.path.join( regression_root, comment ) -- Caleb Epstein caleb dot epstein at gmail dot com