49 lines
1.4 KiB
Python
49 lines
1.4 KiB
Python
"""aios-cell command implementation for V2R1 Cell lifecycle."""
|
|
from __future__ import annotations
|
|
|
|
import argparse
|
|
import json
|
|
import sys
|
|
|
|
from .cell_manager import CellManager
|
|
|
|
|
|
def build_parser() -> argparse.ArgumentParser:
|
|
parser = argparse.ArgumentParser(prog="aios-cell")
|
|
parser.add_argument("registry")
|
|
sub = parser.add_subparsers(dest="command", required=True)
|
|
|
|
create = sub.add_parser("create")
|
|
create.add_argument("tenant_id")
|
|
create.add_argument("cell_id")
|
|
create.add_argument("version")
|
|
create.add_argument("digest")
|
|
|
|
status = sub.add_parser("status")
|
|
status.add_argument("tenant_id")
|
|
|
|
transition = sub.add_parser("transition")
|
|
transition.add_argument("tenant_id")
|
|
transition.add_argument("state")
|
|
|
|
return parser
|
|
|
|
|
|
def main(argv: list[str] | None = None) -> int:
|
|
args = build_parser().parse_args(argv)
|
|
manager = CellManager(args.registry)
|
|
if args.command == "create":
|
|
result = manager.create(args.tenant_id, args.cell_id, args.version, args.digest)
|
|
elif args.command == "status":
|
|
result = manager.status(args.tenant_id)
|
|
elif args.command == "transition":
|
|
result = manager.transition(args.tenant_id, args.state)
|
|
else:
|
|
return 2
|
|
print(json.dumps(result.__dict__, ensure_ascii=False, sort_keys=True))
|
|
return 0
|
|
|
|
|
|
if __name__ == "__main__":
|
|
sys.exit(main())
|