feat(workloads): define authoritative reference contract
Assistant: codex Assistant-Model: gpt-5.6-sol Assistant-Session: 01a023c0-a0a3-7c03-b395-5a0d2757214d
This commit is contained in:
parent
fa1f272ea4
commit
b36b68bc57
8 changed files with 705 additions and 0 deletions
|
|
@ -365,6 +365,23 @@ def main(argv: list[str] | None = None) -> int:
|
|||
p_cache_export.add_argument("--output", required=True)
|
||||
p_cache_export.add_argument("--force", action="store_true")
|
||||
|
||||
p_workload = sub.add_parser(
|
||||
"workload",
|
||||
help="Index or resolve authoritative rapp workload declarations",
|
||||
)
|
||||
workload_sub = p_workload.add_subparsers(dest="workload_command")
|
||||
p_workload_index = workload_sub.add_parser(
|
||||
"index", help="Index workload identities from rapp declarations"
|
||||
)
|
||||
p_workload_index.add_argument("--root", default=".", help="Fleet root or one rapp repo")
|
||||
p_workload_resolve = workload_sub.add_parser(
|
||||
"resolve", help="Resolve one explicit workload reference without inference"
|
||||
)
|
||||
p_workload_resolve.add_argument("--root", default=".", help="Fleet root or one rapp repo")
|
||||
p_workload_resolve.add_argument("--rapp-id", required=True)
|
||||
p_workload_resolve.add_argument("--name", required=True)
|
||||
p_workload_resolve.add_argument("--deployable", default=None)
|
||||
|
||||
args = parser.parse_args(argv)
|
||||
|
||||
if args.version or args.command in (None, "version"):
|
||||
|
|
@ -812,6 +829,24 @@ def main(argv: list[str] | None = None) -> int:
|
|||
print(json.dumps(result, indent=2))
|
||||
return 0 if result.get("ok") else 1
|
||||
|
||||
if args.command == "workload":
|
||||
if not args.workload_command:
|
||||
p_workload.print_help()
|
||||
return 2
|
||||
from repo_manager.workloads import index_workloads, resolve_workload
|
||||
|
||||
if args.workload_command == "index":
|
||||
result = index_workloads(Path(args.root))
|
||||
else:
|
||||
result = resolve_workload(
|
||||
Path(args.root),
|
||||
rapp_id=args.rapp_id,
|
||||
name=args.name,
|
||||
deployable=args.deployable,
|
||||
)
|
||||
print(json.dumps(result, indent=2))
|
||||
return 0 if result.get("ok") else 1
|
||||
|
||||
parser.print_help()
|
||||
return 0
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue