Browse Source

FTP proxy server support

[SVN r26390]
Aleksey Gurtovoy 21 years ago
parent
commit
cd0ff84074

+ 12 - 6
tools/regression/xsl_reports/runner/collect_and_upload_logs.py

@@ -43,13 +43,19 @@ def collect_test_logs( input_dirs, test_results_writer ):
         os.path.walk( input_dir, process_test_log_files, test_results_writer )
 
 
-def upload_to_ftp( tag, results_file ):
+def upload_to_ftp( tag, results_file, ftp_proxy ):
     ftp_site = 'fx.meta-comm.com'
     site_path = '/boost-regression'
-    utils.log( "Uploading log archive \"%s\" to ftp://%s%s/%s" % ( results_file, ftp_site, site_path, tag ) )
+    utils.log( 'Uploading log archive "%s" to ftp://%s%s/%s' % ( results_file, ftp_site, site_path, tag ) )
     
-    ftp = ftplib.FTP( ftp_site )
-    ftp.login()
+    if not ftp_proxy:
+        ftp = ftplib.FTP( ftp_site )
+        ftp.login()
+    else:
+        utils.log( '    Connecting through FTP proxy server "%s"' % ftp_proxy )
+        ftp = ftplib.FTP( ftp_proxy )
+        ftp.login( 'anonymous@%s' % ftp_site, 'anonymous@' )
+        
     ftp.cwd( site_path )
     try:
         ftp.cwd( tag )
@@ -148,9 +154,9 @@ def collect_logs(
             utils.log( 'Done compressing "%s".' % archive_path )
 
 
-def upload_logs( results_dir, runner_id, tag, user ):
+def upload_logs( results_dir, runner_id, tag, user, ftp_proxy ):
     logs_archive = os.path.join( results_dir, '%s.zip' % runner_id )
-    upload_to_ftp( tag, logs_archive )
+    upload_to_ftp( tag, logs_archive, ftp_proxy )
 
 
 def collect_and_upload_logs( 

+ 8 - 2
tools/regression/xsl_reports/runner/regression.py

@@ -537,11 +537,12 @@ def upload_logs(
           tag
         , runner
         , user
+        , ftp_proxy
         , **unused
         ):
     import_utils()
     from runner import upload_logs
-    upload_logs( regression_results, runner, tag, user )
+    upload_logs( regression_results, runner, tag, user, ftp_proxy )
 
 
 def update_itself( **unused ):
@@ -574,6 +575,7 @@ def regression(
         , timeout
         , mail = None
         , proxy = None
+        , ftp_proxy = None
         , args = []
         ):
 
@@ -608,7 +610,7 @@ def regression(
         setup( comment, toolsets, bjam_toolset, pjl_toolset, monitored, proxy, [] )
         test( toolsets, bjam_options, monitored, timeout, [] )
         collect_logs( tag, runner, platform, user, comment, incremental, [] )
-        upload_logs( tag, runner, user )
+        upload_logs( tag, runner, user, ftp_proxy )
         update_itself()
         
         if mail:
@@ -656,6 +658,7 @@ def accept_args( args ):
         , 'timeout='
         , 'mail='
         , 'proxy='
+        , 'ftp-proxy='
         , 'incremental'
         , 'monitored'
         , 'help'
@@ -674,6 +677,7 @@ def accept_args( args ):
         , '--timeout'       : 5
         , '--mail'          : None
         , '--proxy'         : None
+        , '--ftp-proxy'     : None
         }
     
     defaults_num = len( options )
@@ -702,6 +706,7 @@ def accept_args( args ):
         , 'timeout'         : options[ '--timeout' ]
         , 'mail'            : options[ '--mail' ]
         , 'proxy'           : options[ '--proxy' ]
+        , 'ftp_proxy'       : options[ '--ftp-proxy' ]
         , 'args'            : other_args
         }
 
@@ -746,6 +751,7 @@ Options:
 \t--mail          email address to send run notification to (optional)
 \t--proxy         HTTP proxy server address and port (e.g. 
 \t                'http://www.someproxy.com:3128', optional)
+\t--ftp-proxy     FTP proxy server (e.g. 'ftpproxy', optional)
 ''' % '\n\t'.join( commands.keys() )
 
     print 'Example:\n\t%s --runner=Metacomm\n' % os.path.basename( sys.argv[0] )

粤ICP备19079148号