in helix-core/src/main/scripts/integration-test/script/dds_driver.py [0:0]
def main(argv):
# default
global options
parser.add_option("-n", "--testname", action="store", dest="testname", default=None, help="A test name identifier")
parser.add_option("-c", "--component", action="store", dest="component", default=None, choices=cmd_dict.keys(),
help="%s" % cmd_dict.keys())
parser.add_option("-o", "--operation", action="store", dest="operation", default=None, choices=allowed_opers,
help="%s" % allowed_opers)
parser.add_option("--wait_pattern", action="store", dest="wait_pattern", default=None,
help="the pattern to wait for the operation to finish")
parser.add_option("", "--output", action="store", dest="output", default=None,
help="Output file name. Default to stdout")
parser.add_option("", "--logfile", action="store", dest="logfile", default=None,
help="log file for both stdout and stderror. Default auto generated")
parser.add_option("","--timeout", action="store", type="long", dest="timeout", default=600,
help="Time out in secs before waiting for the success pattern. [default: %default]")
parser.add_option("", "--save_process_id", action="store_true", dest="save_process_id", default = False,
help="Store the process id if set. [default: %default]")
parser.add_option("", "--restart", action="store_true", dest="restart", default = False,
help="Restart the process using previos config if set. [default: %default]")
jvm_group = OptionGroup(parser, "jvm options", "")
jvm_group.add_option("", "--jvm_direct_memory_size", action="store", dest="jvm_direct_memory_size", default = None,
help="Set the jvm direct memory size. e.g., 2048m. Default using the one driver_cmd_dict.")
jvm_group.add_option("", "--jvm_max_heap_size", action="store", dest="jvm_max_heap_size", default = None,
help="Set the jvm max heap size. e.g., 1024m. Default using the one in driver_cmd_dict.")
jvm_group.add_option("", "--jvm_min_heap_size", action="store", dest="jvm_min_heap_size", default = None,
help="Set the jvm min heap size. e.g., 1024m. Default using the one in driver_cmd_dict.")
jvm_group.add_option("", "--jvm_args", action="store", dest="jvm_args", default = None,
help="Other jvm args. e.g., '-Xms24m -Xmx50m'")
jvm_group.add_option("", "--jvm_gc_log", action="store", dest="jvm_gc_log", default = None,
help="Enable gc and give jvm gc log file")
test_case_group = OptionGroup(parser, "Testcase options", "")
test_case_group.add_option("", "--testcase", action="store", dest="testcase", default = None,
help="Run a test. Report error. Default no test")
stats_group = OptionGroup(parser, "Stats options", "")
stats_group.add_option("","--jmx_bean", action="store", dest="jmx_bean", default="list",
help="jmx bean to get. [default: %default]")
stats_group.add_option("","--jmx_att", action="store", dest="jmx_attr", default="all",
help="jmx attr to get. [default: %default]")
remote_group = OptionGroup(parser, "Remote options", "")
remote_group.add_option("", "--remote_run", action="store_true", dest="remote_run", default = False,
help="Run remotely based on config file. Default False")
remote_group.add_option("", "--remote_deploy", action="store_true", dest="remote_deploy", default = False,
help="Deploy the source tree to the remote machine based on config file. Default False")
remote_group.add_option("", "--remote_config_file", action="store", dest="remote_config_file", default = None,
help="Remote config file")
zookeeper_group = OptionGroup(parser, "Zookeeper options", "")
zookeeper_group.add_option("", "--zookeeper_server_ports", action="store", dest="zookeeper_server_ports", default = None,
help="comma separated zookeeper ports, used to start/stop/connect to zookeeper")
zookeeper_group.add_option("", "--zookeeper_path", action="store", dest="zookeeper_path", default = None,
help="the zookeeper path to wait for")
zookeeper_group.add_option("", "--zookeeper_value", action="store", dest="zookeeper_value", default = None,
help="zookeeper path value")
zookeeper_group.add_option("", "--zookeeper_cmds", action="store", dest="zookeeper_cmds", default = None,
help="cmds to send to zookeeper client. Comma separated ")
zookeeper_group.add_option("", "--zookeeper_server_ids", action="store", dest="zookeeper_server_ids", default = None,
help="Comma separated list of server to start. If not given, start the number of servers in zookeeper_server_ports. This is used to start server on multiple machines ")
zookeeper_group.add_option("", "--zookeeper_jmx_start_port", action="store", dest="zookeeper_jmx_start_port", default = 27960,
help="Starting port for jmx")
zookeeper_group.add_option("", "--zookeeper_reset", action="store_true", dest="zookeeper_reset", default = False,
help="If true recreate server dir, otherwise start from existing server dir")
debug_group = OptionGroup(parser, "Debug options", "")
debug_group.add_option("-d", "--debug", action="store_true", dest="debug", default = False,
help="debug mode")
debug_group.add_option("--ant_debug", action="store_true", dest="ant_debug", default = False,
help="ant debug mode")
debug_group.add_option("--capture_java_call", action="store", dest="capture_java_call", default = None,
help="capture the java call. give the class name or auto")
debug_group.add_option("--enable_direct_java_call", action="store_true", dest="enable_direct_java_call", default = True,
#debug_group.add_option("--enable_direct_java_call", action="store_true", dest="enable_direct_java_call", default = False,
help="enable direct java call. ")
debug_group.add_option("--check_class_path", action="store_true", dest="check_class_path", default = True,
help="check if class path exists. ")
debug_group.add_option("", "--sys_call_debug", action="store_true", dest="enable_sys_call_debug", default = False,
help="debug sys call")
# load local options
#execfile(os.path.join(get_this_file_dirname(),"driver_local_options.py"))
#pdb.set_trace()
parser.add_option_group(jvm_group)
parser.add_option_group(config_group)
parser.add_option_group(other_option_group)
parser.add_option_group(test_case_group)
parser.add_option_group(stats_group)
parser.add_option_group(remote_group)
parser.add_option_group(zookeeper_group)
parser.add_option_group(debug_group)
(options, args) = parser.parse_args()
set_debug(options.debug)
set_sys_call_debug(options.enable_sys_call_debug)
dbg_print("options = %s args = %s" % (options, args))
arg_error=False
if not options.component and not options.testcase and not options.remote_deploy:
print("\n!!!Please give component!!!\n")
arg_error=True
if arg_error:
parser.print_help()
parser.exit()
if afterParsingHook: afterParsingHook(options) # the hook to call after parsing, change options
setup_env()
if (not options.testname):
options.testname = "TEST_NAME" in os.environ and os.environ["TEST_NAME"] or "default"
os.environ["TEST_NAME"]= options.testname;
if (not "WORK_SUB_DIR" in os.environ):
os.environ["WORK_SUB_DIR"] = "log"
if (not "LOG_SUB_DIR" in os.environ):
os.environ["LOG_SUB_DIR"] = "log"
setup_work_dir()
if options.testcase:
ret = run_testcase(options.testcase)
if ret!=0: ret=1 # workaround a issue that ret of 256 will become 0 after sys.exit
my_exit(ret)
if options.remote_deploy or options.remote_run:
if options.remote_config_file:
parse_config(options.remote_config_file)
if options.remote_deploy:
sys_call_debug_begin()
ret = do_remote_deploy()
sys_call_debug_end()
my_exit(ret)
sys_call_debug_begin()
ret = run_cmd()
sys_call_debug_end()
my_exit(ret)