Coverage for scripts / get_queue.py: 36%
39 statements
« prev ^ index » next coverage.py v7.13.0, created at 2025-12-25 18:08 -0500
« prev ^ index » next coverage.py v7.13.0, created at 2025-12-25 18:08 -0500
1#!/usr/bin/env python3
2"""
3Get JSM service desk queue details.
5Usage:
6 python get_queue.py --service-desk 1 --queue-id 5
7 python get_queue.py --service-desk 1 --queue-id 5 --output json
8"""
10import sys
11import os
12import argparse
13import json
14from pathlib import Path
15from typing import Optional, Dict, Any
17sys.path.insert(0, str(Path(__file__).parent.parent.parent / 'shared' / 'scripts' / 'lib'))
19from config_manager import get_jira_client
20from error_handler import print_error, JiraError
23def get_queue(service_desk_id: int, queue_id: int,
24 profile: Optional[str] = None) -> Dict[str, Any]:
25 """Get queue details."""
26 with get_jira_client(profile) as client:
27 return client.get_queue(service_desk_id, queue_id)
30def format_queue_text(queue: Dict[str, Any]) -> str:
31 """Format queue as text."""
32 lines = []
33 lines.append(f"\nQueue: {queue.get('name')}")
34 lines.append("=" * 80)
35 lines.append(f"ID: {queue.get('id')}")
36 lines.append(f"JQL: {queue.get('jql', 'N/A')}")
37 return '\n'.join(lines)
40def format_queue_json(queue: Dict[str, Any]) -> str:
41 """Format queue as JSON."""
42 return json.dumps(queue, indent=2)
45def main():
46 """Main entry point."""
47 parser = argparse.ArgumentParser(description='Get JSM service desk queue details')
48 parser.add_argument('--service-desk', type=int, required=True, help='Service desk ID')
49 parser.add_argument('--queue-id', type=int, required=True, help='Queue ID')
50 parser.add_argument('--output', choices=['text', 'json'], default='text')
51 parser.add_argument('--profile', help='JIRA profile to use')
53 args = parser.parse_args()
55 try:
56 queue = get_queue(args.service_desk, args.queue_id, args.profile)
58 if args.output == 'json':
59 print(format_queue_json(queue))
60 else:
61 print(format_queue_text(queue))
63 return 0
65 except JiraError as e:
66 print_error(f"Failed to get queue: {e}")
67 return 1
70if __name__ == '__main__':
71 sys.exit(main())