mirror of
https://github.com/vale981/ray
synced 2025-03-06 10:31:39 -05:00

Fixing special cases (e.g. smoke tests, long running tests) in the release test package infrastructure. Prepare migration of Tune and XGBoost tests.
89 lines
2.6 KiB
Python
89 lines
2.6 KiB
Python
import os
|
|
import sys
|
|
from typing import Dict
|
|
|
|
import click
|
|
import yaml
|
|
|
|
|
|
class FormatDumper(yaml.SafeDumper):
|
|
last_indent = 0
|
|
|
|
def write_line_break(self, data=None):
|
|
if (self.indent or 0) < self.last_indent:
|
|
super().write_line_break()
|
|
|
|
super().write_line_break(data)
|
|
self.last_indent = self.indent or 0
|
|
|
|
|
|
def replace_prepare(dt: Dict):
|
|
if "prepare" in dt and "wait_cluster" in dt["prepare"]:
|
|
_, _, nodes, timeout = dt.pop("prepare").split(" ")
|
|
dt["wait_for_nodes"] = {"num_nodes": int(nodes), "timeout": int(timeout)}
|
|
|
|
|
|
@click.command()
|
|
@click.argument("legacy_config", type=str)
|
|
@click.argument("prefix", type=str)
|
|
@click.argument("group", type=str)
|
|
@click.argument("alert", type=str)
|
|
def main(legacy_config: str, prefix: str, group: str, alert: str):
|
|
with open(legacy_config, "rt") as fp:
|
|
config = yaml.safe_load(fp)
|
|
|
|
tests = []
|
|
for old in config:
|
|
test = {}
|
|
test["name"] = f"{prefix}_{old['name']}"
|
|
|
|
test["group"] = group
|
|
test["working_dir"] = os.path.basename(os.path.dirname(legacy_config))
|
|
|
|
test["legacy"] = {
|
|
"test_name": old["name"],
|
|
"test_suite": os.path.basename(legacy_config)[:-5],
|
|
}
|
|
|
|
test["frequency"] = "FILLOUT"
|
|
test["team"] = old.get("team", "FILLOUT")
|
|
|
|
test["cluster"] = {
|
|
"cluster_env": old["cluster"]["app_config"],
|
|
"cluster_compute": old["cluster"]["compute_template"],
|
|
}
|
|
|
|
if "cloud_id" in old["cluster"]:
|
|
test["cluster"]["cloud_id"] = old["cluster"]["cloud_id"]
|
|
if "cloud_name" in old["cluster"]:
|
|
test["cluster"]["cloud_name"] = old["cluster"]["cloud_name"]
|
|
|
|
if "driver_setup" in old:
|
|
test["driver_setup"] = "driver_setup"
|
|
|
|
use_connect = old["run"].pop("use_connect", False)
|
|
autosuspend = old["run"].pop("autosuspend_mins", None)
|
|
if autosuspend:
|
|
test["cluster"]["autosuspend_mins"] = int(autosuspend)
|
|
|
|
test["run"] = old["run"]
|
|
replace_prepare(test["run"])
|
|
if "smoke_test" in old:
|
|
test["smoke_test"] = old["smoke_test"]
|
|
if "run" in test["smoke_test"]:
|
|
replace_prepare(test["smoke_test"]["run"])
|
|
|
|
test["run"]["type"] = "sdk_command" if not use_connect else "client"
|
|
if not use_connect:
|
|
test["run"]["file_manager"] = "job"
|
|
|
|
test["alert"] = alert
|
|
|
|
tests.append(test)
|
|
|
|
yaml.dump(tests, sys.stdout, Dumper=FormatDumper, sort_keys=False)
|
|
sys.stdout.flush()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|