2020-05-13 14:35:29 -04:00
""" Command-line entry-point into resmoke. """
2022-10-19 19:13:46 +00:00
from datetime import datetime
2020-05-13 14:35:29 -04:00
import time
2022-07-14 09:48:13 -05:00
import os
import psutil
2023-01-10 17:52:30 +00:00
from mongo_tooling_metrics . client import get_mongo_metrics_client
from mongo_tooling_metrics . errors import ExternalHostException
from mongo_tooling_metrics . lib . top_level_metrics import ResmokeToolingMetrics
2020-05-13 14:35:29 -04:00
from buildscripts . resmokelib import parser
def main ( argv ) :
"""
Execute Main function for resmoke .
: param argv : sys . argv
: return : None
"""
__start_time = time . time ( )
2022-07-14 09:48:13 -05:00
os . environ [ ' RESMOKE_PARENT_PROCESS ' ] = str ( os . getpid ( ) )
os . environ [ ' RESMOKE_PARENT_CTIME ' ] = str ( psutil . Process ( ) . create_time ( ) )
2021-02-18 17:18:35 -05:00
subcommand = parser . parse_command_line (
argv [ 1 : ] , start_time = __start_time ,
usage = " Resmoke is MongoDB ' s correctness testing orchestrator. \n "
" For more information, see the help message for each subcommand. \n "
2022-01-06 01:03:46 +00:00
" For example: resmoke.py run -h \n "
2022-01-11 14:10:41 +00:00
" Note: bisect and setup-multiversion subcommands have been moved to db-contrib-tool (https://github.com/10gen/db-contrib-tool#readme). \n "
2022-01-06 01:03:46 +00:00
)
2023-01-10 17:52:30 +00:00
try :
metrics_client = get_mongo_metrics_client ( )
metrics_client . register_metrics ( ResmokeToolingMetrics ,
utc_starttime = datetime . utcfromtimestamp ( __start_time ) )
except ExternalHostException as _ :
pass
except Exception as _ : # pylint: disable=broad-except
print (
" This MongoDB Virtual Workstation could not connect to the internal cluster \n This is a non-issue, but if this message persists feel free to reach out in #server-dev-platform "
)
2022-11-28 17:15:48 +00:00
subcommand . execute ( )