| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- """异常 Case 管理 CLI。"""
- import argparse
- from defect_analysis.cases import create_root_cause_case, list_cases, update_case_status
- def main():
- parser = argparse.ArgumentParser(description="管理缺陷根因异常 Case")
- subparsers = parser.add_subparsers(dest="command", required=True)
- create_parser = subparsers.add_parser("create", help="创建 Case")
- create_parser.add_argument("--db", default="defect_analysis.db")
- create_parser.add_argument("--title", required=True)
- create_parser.add_argument("--candidate-type", required=True)
- create_parser.add_argument("--candidate-value", required=True)
- create_parser.add_argument("--defect-type", default="")
- create_parser.add_argument("--panel-zone", default="")
- create_parser.add_argument("--owner", default="")
- create_parser.add_argument("--created-by", default="system")
- create_parser.add_argument("--recommendation", default="")
- update_parser = subparsers.add_parser("update", help="更新 Case 状态")
- update_parser.add_argument("--db", default="defect_analysis.db")
- update_parser.add_argument("--case-id", type=int, required=True)
- update_parser.add_argument("--status", required=True)
- update_parser.add_argument("--actor", default="system")
- update_parser.add_argument("--note", default="")
- list_parser = subparsers.add_parser("list", help="列出 Case")
- list_parser.add_argument("--db", default="defect_analysis.db")
- list_parser.add_argument("--status")
- args = parser.parse_args()
- if args.command == "create":
- case_id = create_root_cause_case(
- args.db,
- title=args.title,
- candidate_type=args.candidate_type,
- candidate_value=args.candidate_value,
- defect_type=args.defect_type,
- panel_zone=args.panel_zone,
- owner=args.owner,
- created_by=args.created_by,
- recommendation=args.recommendation,
- )
- print(f"已创建 Case: {case_id}")
- elif args.command == "update":
- update_case_status(
- args.db,
- case_id=args.case_id,
- status=args.status,
- actor=args.actor,
- note=args.note,
- )
- print(f"已更新 Case {args.case_id} 状态为 {args.status}")
- elif args.command == "list":
- cases = list_cases(args.db, status=args.status)
- if cases.empty:
- print("暂无 Case")
- else:
- print(cases.to_string(index=False))
- if __name__ == "__main__":
- main()
|