|
|
|
@ -42,6 +42,7 @@ import subprocess |
|
|
|
|
import sys |
|
|
|
|
import tempfile |
|
|
|
|
import time |
|
|
|
|
import traceback |
|
|
|
|
import uuid |
|
|
|
|
import performance.scenario_config as scenario_config |
|
|
|
|
|
|
|
|
@ -230,8 +231,22 @@ def create_scenarios(languages, workers_by_lang, remote_host=None, regex='.*'): |
|
|
|
|
for language in languages: |
|
|
|
|
for scenario_json in language.scenarios(): |
|
|
|
|
if re.search(args.regex, scenario_json['name']): |
|
|
|
|
workers = workers_by_lang[str(language)] |
|
|
|
|
# 'SERVER_LANGUAGE' is an indicator for this script to pick |
|
|
|
|
# a server in different language. It doesn't belong to the Scenario |
|
|
|
|
# schema, so we also need to remove it. |
|
|
|
|
custom_server_lang = scenario_json.pop('SERVER_LANGUAGE', None) |
|
|
|
|
if custom_server_lang: |
|
|
|
|
if not workers_by_lang.get(custom_server_lang, []): |
|
|
|
|
print 'Warning: Skipping scenario %s as' % scenario_json['name'] |
|
|
|
|
print('SERVER_LANGUAGE is set to %s yet the language has ' |
|
|
|
|
'not been selected with -l' % custom_server_lang) |
|
|
|
|
continue |
|
|
|
|
for idx in range(0, scenario_json['num_servers']): |
|
|
|
|
# replace first X workers by workers of a different language |
|
|
|
|
workers[idx] = workers_by_lang[custom_server_lang][idx] |
|
|
|
|
scenario = create_scenario_jobspec(scenario_json, |
|
|
|
|
workers_by_lang[str(language)], |
|
|
|
|
workers, |
|
|
|
|
remote_host=remote_host) |
|
|
|
|
scenarios.append(scenario) |
|
|
|
|
|
|
|
|
@ -328,5 +343,7 @@ try: |
|
|
|
|
jobset.message('FAILED', 'Some of the scenarios failed.', |
|
|
|
|
do_newline=True) |
|
|
|
|
sys.exit(1) |
|
|
|
|
except: |
|
|
|
|
traceback.print_exc() |
|
|
|
|
finally: |
|
|
|
|
finish_qps_workers(qpsworker_jobs) |
|
|
|
|