Advertisement
Guest User

Untitled

a guest
Feb 27th, 2017
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.76 KB | None | 0 0
  1. import urllib
  2. import httplib2
  3. import time
  4. import re
  5. from time import localtime,strftime
  6. from xml.dom import minidom
  7. import json
  8. import ssl
  9. import requests
  10.  
  11. baseurl = 'https://blabla:8089'
  12. username = 'myusername'
  13. password = 'mypassword'
  14.  
  15. myhttp = httplib2.Http()
  16.  
  17. #Step 1: Get a session key
  18. servercontent = myhttp.request(baseurl + '/services/auth/login', 'POST',
  19. headers={}, body=urllib.urlencode({'username':username, 'password':password}))[1]
  20. sessionkey = minidom.parseString(servercontent).getElementsByTagName('sessionKey')[0].childNodes[0].nodeValue
  21. print "====>sessionkey: %s <====" % sessionkey
  22.  
  23. #Step 2: Create a search job
  24. searchquery = 'index="_internal" | head 10'
  25. if not searchquery.startswith('search'):
  26. searchquery = 'search ' + searchquery
  27.  
  28.  
  29. searchjob = myhttp.request(baseurl + '/services/search/jobs','POST', headers={'Authorization': 'Splunk %s' % sessionkey},body=urllib.urlencode({'search': searchquery}))[1]
  30. sid = minidom.parseString(searchjob).getElementsByTagName('sid')[0].childNodes[0].nodeValue
  31. print "====>sid: %s <====" % sid
  32.  
  33. #Step 3: Get the search status
  34. myhttp.add_credentials(username, password)
  35. servicessearchstatusstr = '/services/search/jobs/%s/' % sid
  36. isnotdone = True
  37. while isnotdone:
  38. searchstatus = myhttp.request(baseurl + servicessearchstatusstr, 'GET')[1]
  39. isdonestatus = re.compile('isDone">(0|1)')
  40. isdonestatus = isdonestatus.search(searchstatus).groups()[0]
  41. if (isdonestatus == '1'):
  42. isnotdone = False
  43. print "====>search status: %s <====" % isdonestatus
  44.  
  45. #Step 4: Get the search results
  46. services_search_results_str = '/services/search/jobs/%s/results?output_mode=json&count=0' % sid
  47. searchresults = myhttp.request(baseurl + services_search_results_str, 'GET')[1]
  48. print "====>search result: [%s] <====" % searchresults
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement