|
Boost : |
From: Caleb Epstein (caleb.epstein_at_[hidden])
Date: 2004-11-30 11:53:23
On Tue, 30 Nov 2004 02:39:12 -0600, Aleksey Gurtovoy
<agurtovoy_at_[hidden]> 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_at_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_at_[hidden]
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_at_[hidden]
--proxy $http_proxy
# Sending start notification to "caleb.epstein_at_[hidden]"
# Sending report to "caleb.epstein_at_[hidden]"
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
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk