NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

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))