| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 | 
							- #!/usr/bin/python3
 
- # coding: utf-8
 
- # {{{ Imports
 
- import sys
 
- import argparse
 
- import yaml
 
- import json
 
- import traceback
 
- # }}}
 
- # {{{ Constants
 
- _NAME = "yaml2json"
 
- _DESC = "Convert yaml data to zabbix json discovery format"
 
- _VERSION = "0.1"
 
- # }}}
 
- # {{{ main
 
- def main():
 
-     parser = argparse.ArgumentParser(prog=_NAME, description=_DESC)
 
-     parser.add_argument('-v', '--version', action='version',
 
-                         version='%(prog)s ' + _VERSION)
 
-     parser.add_argument('-d', '--debug', dest='debug', default=False, action='store_true',
 
-                         help='Print additional debug informations: traceback, etc. (default: no)')
 
-     parser.add_argument('datafile')
 
-     options = parser.parse_args()
 
-     try:
 
-         data = {'data': []}
 
-         with open(options.datafile) as f:
 
-             datayml = yaml.safe_load(f)
 
-             if datayml is not None:
 
-                 for section in datayml:
 
-                     localdata = {
 
-                         '{#KEY}': section,
 
-                     }
 
-                     for k in datayml[section]:
 
-                         localdata['{#%s}' % (k.upper())] = datayml[section][k]
 
-                     data['data'].append(localdata)
 
-         print(json.dumps(data, indent=4))
 
-     except Exception as e:
 
-         if not options.debug:
 
-             print('Exception raised (use --debug option to get more info): %s' % (unicode(e)))
 
-         else:
 
-             print('Exception raised: %s' % (e))
 
-             traceback.print_exc(file=sys.stderr)
 
-         sys.exit(-1)
 
- # }}}
 
- # {{{ __main__
 
- if __name__ == "__main__":
 
-     main()
 
- # }}}
 
- # vim: foldmethod=marker foldlevel=0 foldenable
 
 
  |