search.py (1560B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\datadog\dogshell\search.py 2 from __future__ import print_function 3 from datadog import api 4 from datadog.dogshell.common import report_errors, report_warnings 5 from datadog.util.compat import json 6 7 class SearchClient(object): 8 9 @classmethod 10 def setup_parser(cls, subparsers): 11 parser = subparsers.add_parser('search', help='search datadog') 12 verb_parsers = parser.add_subparsers(title='Verbs', dest='verb') 13 verb_parsers.required = True 14 query_parser = verb_parsers.add_parser('query', help='Search datadog.') 15 query_parser.add_argument('query', help='optionally faceted search query') 16 query_parser.set_defaults(func=cls._query) 17 18 @classmethod 19 def _query(cls, args): 20 api._timeout = args.timeout 21 res = api.Infrastructure.search(q=args.query) 22 report_warnings(res) 23 report_errors(res) 24 if format == 'pretty': 25 for facet, results in list(res['results'].items()): 26 for idx, result in enumerate(results): 27 if idx == 0: 28 print('\n') 29 print('%s\t%s' % (facet, result)) 30 else: 31 print('%s\t%s' % (' ' * len(facet), result)) 32 33 elif format == 'raw': 34 print(json.dumps(res)) 35 else: 36 for facet, results in list(res['results'].items()): 37 for result in results: 38 print('%s\t%s' % (facet, result))