code: def export(options, service):
      
  
      start = options.kwargs['start']
      end = options.kwargs['end']
      fixtail = options.kwargs['fixtail']
      once = True
  
      squery = options.kwargs['search']
      squery = squery + " index=%s" % options.kwargs['index']
      if (start != ""):
          squery = squery + " earliest_time=%s" % start
      if (end != ""):
          squery = squery + " latest_time=%s" % end
  
      success = False
  
      while not success:
          # issue query to splunkd
          # count=0 overrides the maximum number of events
          # returned (normally 50K) regardless of what the .conf
          # file for splunkd says. 
          result = service.get('search/jobs/export', 
                               search=squery, 
                               output_mode=options.kwargs['omode'],
                               timeout=60,
                               earliest_time="0.000",
                               time_format="%s.%Q",
                               count=0)
  
          if result.status != 200:
              print("warning: export job failed: %d, sleep/retry" % result.status)
              time.sleep(60)
          else:
              success = True
  
      # write export file 
      while True:
          if fixtail and once:
              cleanup_tail(options)
              once = False
          content = result.body.read()
          if len(content) == 0: break
          options.kwargs['fd'].write(content)
          options.kwargs['fd'].write("\n")
  
      options.kwargs['fd'].flush()
docs: main export method: export any number of indexes