⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 collect_and_upload_logs.py

📁 Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work
💻 PY
📖 第 1 页 / 共 2 页
字号:
        utils.log( 'Warning: timestamp file "%s" does not exist'% file )        utils.log( 'Using current UTC time (%s)' % result )        return result    return time.gmtime( os.stat( file ).st_mtime )def collect_logs(           results_dir        , runner_id        , tag        , platform        , comment_file        , timestamp_file        , user        , source        , run_type        , dart_server = None        , http_proxy = None        , revision = ''        , **unused        ):        timestamp = time.strftime( '%Y-%m-%dT%H:%M:%SZ', read_timestamp( timestamp_file ) )        if dart_server:        publish_test_logs( [ results_dir ],            runner_id, tag, platform, comment_file, timestamp, user, source, run_type,            dart_server = dart_server,            http_proxy = http_proxy )        results_file = os.path.join( results_dir, '%s.xml' % runner_id )    results_writer = open( results_file, 'w' )    utils.log( 'Collecting test logs into "%s"...' % results_file )            results_xml = xml.sax.saxutils.XMLGenerator( results_writer )    results_xml.startDocument()    results_xml.startElement(           'test-run'        , {               'tag':        tag            , 'platform':   platform            , 'runner':     runner_id            , 'timestamp':  timestamp            , 'source':     source            , 'run-type':   run_type            , 'revision':   revision            }        )        copy_comments( results_xml, comment_file )    collect_test_logs( [ results_dir ], results_writer )    results_xml.endElement( "test-run" )    results_xml.endDocument()    results_writer.close()    utils.log( 'Done writing "%s".' % results_file )    compress_file(          results_file        , os.path.join( results_dir,'%s.zip' % runner_id )        )def upload_logs(          results_dir        , runner_id        , tag        , user        , ftp_proxy        , debug_level        , send_bjam_log = False        , timestamp_file = None        , dart_server = None        , **unused        ):    logs_archive = os.path.join( results_dir, '%s.zip' % runner_id )    upload_to_ftp( tag, logs_archive, ftp_proxy, debug_level )    if send_bjam_log:        bjam_log_path = os.path.join( results_dir, 'bjam.log' )        if not timestamp_file:            timestamp_file = bjam_log_path        timestamp = time.strftime( '%Y-%m-%d-%H-%M-%S', read_timestamp( timestamp_file ) )        logs_archive = os.path.join( results_dir, '%s.%s.log.zip' % ( runner_id, timestamp ) )        compress_file( bjam_log_path, logs_archive )        upload_to_ftp( '%s/logs' % tag, logs_archive, ftp_proxy, debug_level )def collect_and_upload_logs(           results_dir        , runner_id        , tag        , platform        , comment_file        , timestamp_file        , user        , source        , run_type        , revision = None        , ftp_proxy = None        , debug_level = 0        , send_bjam_log = False        , dart_server = None        , http_proxy = None        , **unused        ):        collect_logs(           results_dir        , runner_id        , tag        , platform        , comment_file        , timestamp_file        , user        , source        , run_type        , revision = revision        , dart_server = dart_server        , http_proxy = http_proxy        )        upload_logs(          results_dir        , runner_id        , tag        , user        , ftp_proxy        , debug_level        , send_bjam_log        , timestamp_file        , dart_server = dart_server        )def accept_args( args ):    args_spec = [           'locate-root='        , 'runner='        , 'tag='        , 'platform='        , 'comment='        , 'timestamp='        , 'source='        , 'run-type='        , 'user='        , 'ftp-proxy='        , 'proxy='        , 'debug-level='        , 'send-bjam-log'        , 'help'        , 'dart-server='        , 'revision='        ]        options = {          '--tag'           : 'trunk'        , '--platform'      : sys.platform        , '--comment'       : 'comment.html'        , '--timestamp'     : 'timestamp'        , '--user'          : None        , '--source'        : 'SVN'        , '--run-type'      : 'full'        , '--ftp-proxy'     : None        , '--proxy'         : None        , '--debug-level'   : 0        , '--dart-server'   : 'beta.boost.org:8081'        , '--revision'      : None                }        utils.accept_args( args_spec, args, options, usage )            return {          'results_dir'     : options[ '--locate-root' ]        , 'runner_id'       : options[ '--runner' ]        , 'tag'             : options[ '--tag' ]        , 'platform'        : options[ '--platform']        , 'comment_file'    : options[ '--comment' ]        , 'timestamp_file'  : options[ '--timestamp' ]        , 'user'            : options[ '--user' ]        , 'source'          : options[ '--source' ]        , 'run_type'        : options[ '--run-type' ]        , 'ftp_proxy'       : options[ '--ftp-proxy' ]        , 'http_proxy'      : options[ '--proxy' ]        , 'debug_level'     : int(options[ '--debug-level' ])        , 'send_bjam_log'   : options.has_key( '--send-bjam-log' )        , 'dart_server'     : options[ '--dart-server' ]        , 'revision   '     : options[ '--revision' ]        }commands = {      'collect-and-upload'  : collect_and_upload_logs    , 'collect-logs'        : collect_logs    , 'upload-logs'         : upload_logs    }def usage():    print 'Usage: %s [command] [options]' % os.path.basename( sys.argv[0] )    print    '''Commands:\t%sOptions:\t--locate-root   directory to to scan for "test_log.xml" files\t--runner        runner ID (e.g. "Metacomm")\t--timestamp     path to a file which modification time will be used \t                as a timestamp of the run ("timestamp" by default)\t--comment       an HTML comment file to be inserted in the reports\t                ("comment.html" by default)\t--tag           the tag for the results ("trunk" by default)\t--user          SourceForge user name for a shell account (optional)\t--source        where Boost sources came from ("SVN" or "tarball";\t                "SVN" by default)\t--run-type      "incremental" or "full" ("full" by default)\t--send-bjam-log in addition to regular XML results, send in full bjam\t                log of the regression run\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)\t--debug-level   debugging level; controls the amount of debugging \t                output printed; 0 by default (no debug output)\t--dart-server   The dart server to send results to.''' % '\n\t'.join( commands.keys() )    def main():    if len(sys.argv) > 1 and sys.argv[1] in commands:        command = sys.argv[1]        args = sys.argv[ 2: ]    else:        command = 'collect-and-upload'        args = sys.argv[ 1: ]        commands[ command ]( **accept_args( args ) )if __name__ != '__main__':  import utilselse:    # in absense of relative import...    xsl_path = os.path.abspath( os.path.dirname( sys.argv[ 0 ] ) )    while os.path.basename( xsl_path ) != 'xsl_reports': xsl_path = os.path.dirname( xsl_path )    sys.path.append( xsl_path )    import utils    main()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -