Skip to content

Commit 1627ba2

Browse files
ishachirimarfacebook-github-bot
authored andcommitted
Support flow orchestrator launches in JSON mode (#1108)
Summary: `OrchestratorRunner` was not being correctly initialized for JSON cases since the JSON input was parsed after Runner initialized. This diff moves some of the logic around to make sure: - in FB version, the correct scheduler is logged - JSON parsing isn't repeated unnecessarily - if JSON mode is used, the scheduler is parsed before getting the runner to account for `single_orchestrator_runner` scheduler usage Differential Revision: D81705462
1 parent 9247816 commit 1627ba2

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

torchx/cli/cmd_run.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,7 @@ def run(self, args: argparse.Namespace) -> None:
206206
class CmdRun(SubCommand):
207207
def __init__(self) -> None:
208208
self._subparser: Optional[argparse.ArgumentParser] = None
209+
self.stdin_data_json: Dict[str, Any] = {}
209210

210211
def add_arguments(self, subparser: argparse.ArgumentParser) -> None:
211212
scheduler_names = get_scheduler_factories().keys()
@@ -419,18 +420,21 @@ def verify_no_extra_args(self, args: argparse.Namespace) -> None:
419420
)
420421

421422
def _run(self, runner: Runner, args: argparse.Namespace) -> None:
422-
# Verify no conflicting arguments when using to loop over the stdin
423-
self.verify_no_extra_args(args)
424423
if args.stdin:
425-
stdin_data_json = self.torchx_json_from_stdin()
426-
self._run_from_stdin_args(runner, stdin_data_json)
424+
self._run_from_stdin_args(runner, self.stdin_data_json)
427425
else:
428426
self._run_from_cli_args(runner, args)
429427

428+
def _validate_and_save_torchx_stdin_args(self, args: argparse.Namespace) -> None:
429+
self.verify_no_extra_args(args)
430+
if args.stdin:
431+
self.stdin_data_json = self.torchx_json_from_stdin()
432+
430433
def run(self, args: argparse.Namespace) -> None:
431434
os.environ["TORCHX_CONTEXT_NAME"] = os.getenv("TORCHX_CONTEXT_NAME", "cli_run")
432435
component_defaults = load_sections(prefix="component")
433436

437+
self._validate_and_save_torchx_stdin_args(args)
434438
with get_runner(component_defaults=component_defaults) as runner:
435439
self._run(runner, args)
436440

0 commit comments

Comments
 (0)