Validate & Submit
"""Validate a workflow YAML locally, then (dry-run) submit it.
This script doesn't actually submit unless ``OSMO_TARGET_POOL`` is set -
otherwise it just prints what it *would* do.
Run:
OSMO_TARGET_POOL=my-pool python examples/02_validate_and_submit.py path/to/workflow.yaml
"""
from __future__ import annotations
import json
import os
import sys
from strands_osmo import osmo_workflow_submit, osmo_workflow_validate
def main() -> None:
workflow = sys.argv[1] if len(sys.argv) > 1 else "../OSMO/cookbook/groot/groot_finetune/groot_finetune.yaml"
pool = os.getenv("OSMO_TARGET_POOL", "")
print(f"=== osmo_workflow_validate({workflow}) ===")
validate = osmo_workflow_validate(workflow_yaml=workflow)
print(json.dumps(validate, indent=2, default=str))
if validate.get("status") != "success":
print("\nValidation failed - not submitting.")
return
if not pool:
print("\nOSMO_TARGET_POOL not set - skipping submit (dry run).")
print(f"To submit: OSMO_TARGET_POOL=<pool> python {sys.argv[0]} {workflow}")
return
print(f"\n=== osmo_workflow_submit(..., pool={pool}) ===")
result = osmo_workflow_submit(workflow_yaml=workflow, pool=pool)
print(json.dumps(result, indent=2, default=str))
if __name__ == "__main__":
main()