def prepare_option_parser_for_split_or_continuous_workload(op, allow_between=False): # `--workload-during` specifies one or more workloads that will be run # continuously while other stuff is happening. `--extra-*` specifies how # many seconds to sit while the workloads are running. op["workload-during"] = vcoptparse.ValueFlag("--workload-during", converter=str, default=[], combiner=vcoptparse.append_combiner) op["extra-before"] = vcoptparse.IntFlag("--extra-before", 10) op["extra-between"] = vcoptparse.IntFlag("--extra-between", 10) op["extra-after"] = vcoptparse.IntFlag("--extra-after", 10) # `--workload-*` specifies a workload to run at some point in the scenario. # `--timeout-*` specifies the timeout to enforce for `--workload-*`. op["workload-before"] = vcoptparse.StringFlag("--workload-before", None) op["timeout-before"] = vcoptparse.IntFlag("--timeout-before", 600) if allow_between: op["workload-between"] = vcoptparse.StringFlag("--workload-between", None) op["timeout-between"] = vcoptparse.IntFlag("--timeout-between", 600) op["workload-after"] = vcoptparse.StringFlag("--workload-after", None) op["timeout-after"] = vcoptparse.IntFlag("--timeout-after", 600)
#!/usr/bin/env python # Copyright 2010-2016 RethinkDB, all rights reserved. import os, sys, time sys.path.append( os.path.abspath( os.path.join(os.path.dirname(__file__), os.path.pardir, 'common'))) import driver, scenario_common, utils, vcoptparse, workload_runner op = vcoptparse.OptParser() scenario_common.prepare_option_parser_mode_flags(op) op["workload1"] = vcoptparse.StringFlag("--workload-before", None) op["workload2"] = vcoptparse.StringFlag("--workload-after", None) op["timeout"] = vcoptparse.IntFlag("--timeout", 600) opts = op.parse(sys.argv) _, command_prefix, serve_options = scenario_common.parse_mode_flags(opts) r = utils.import_python_driver() dbName, tableName = utils.get_test_db_table() utils.print_with_time("Starting cluster with one server") with driver.Cluster(initial_servers=['first'], output_folder='.', command_prefix=command_prefix, extra_options=serve_options, wait_until_ready=True) as cluster: server1 = cluster[0] workload_ports1 = workload_runner.RDBPorts(host=server1.host, http_port=server1.http_port,
def option_parser_for_connect(): op = vcoptparse.OptParser() op['address'] = vcoptparse.StringFlag('--address', 'localhost:28015') op['table'] = vcoptparse.StringFlag('--table') return op
def prepare_option_parser_mode_flags(opt_parser): opt_parser["valgrind"] = vcoptparse.BoolFlag("--valgrind") opt_parser["valgrind-options"] = vcoptparse.StringFlag("--valgrind-options", "--leak-check=full --track-origins=yes --child-silent-after-fork=yes") opt_parser["wrapper"] = vcoptparse.StringFlag("--wrapper", None) opt_parser["mode"] = vcoptparse.StringFlag("--mode", "") opt_parser["serve-flags"] = vcoptparse.StringFlag("--serve-flags", "")
#!/usr/bin/env python # Copyright 2010-2014 RethinkDB, all rights reserved. import os, httplib, sys, time sys.path.append( os.path.abspath( os.path.join(os.path.dirname(__file__), os.path.pardir, 'common'))) import vcoptparse # This isn't really a memcached workload... op = vcoptparse.OptParser() op['address'] = vcoptparse.StringFlag('--address', 'localhost:8080') opts = op.parse(sys.argv) host, port = opts["address"].split(':') def fetch(resource, expect=[200]): conn = httplib.HTTPConnection(host, port) conn.request("GET", resource) response = conn.getresponse() assert response.status in expect fetch("/") try: while True: fetch("/") time.sleep(1)