Advertisement
Guest User

Untitled

a guest
Aug 10th, 2016
853
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.17 KB | None | 0 0
  1. "use strict";
  2. //Get the splunk sdk
  3. var splunkjs = require('splunk-sdk');
  4. //get promise dependencies
  5. Promise = require("bluebird");
  6.  
  7. //get request dependencies
  8. let request = require('request-promise');
  9.  
  10. exports.splunkQuery = Promise.coroutine(function*(){
  11. try{
  12. // Create a Service instance and log in
  13. let service = Promise.promisifyAll(new splunkjs.Service({
  14. username:"user",
  15. password:"pass",
  16. scheme:"https",
  17. host:"mysplunk",
  18. port:"8089",
  19. version:"6.3.2"
  20. }));
  21. // Pass the search query
  22. let searchQuery = yield Promise.resolve("search index=edex FIDELITY.CCB.LPS.PROD.MORTFILE* PNOD=CD.HNBNOLA RECI=CTRC");
  23. // Search params (No Idea what these do)
  24. let searchParams = yield Promise.resolve({
  25. exec_mode: "blocking"
  26. });
  27. //get the job object from splunk
  28. let job = yield service.searchAsync(searchQuery,searchParams);
  29. //add the fetchJson function to the job object
  30. job.fetchJsonAsync = fetchJsonAsync;
  31. //get the results
  32. let results = yield Promise.resolve(job.fetchJsonAsync());
  33. //return the resuling value
  34. console.log(results.events[0]._raw)
  35. } catch (e){
  36. console.log(e)
  37. }
  38.  
  39. });
  40.  
  41.  
  42.  
  43.  
  44. //A function that returns a promise
  45. function fetchJsonAsync(){
  46. //Create a result object and return it
  47. var resultsArrayObject = {}
  48. //return a promise
  49. return new Promise (function(resolve,reject){
  50. //display the job id
  51. console.log("Search job id: " + this.sid);
  52. this.results({}, function(err, results) {
  53. var fields = results.fields;
  54. var rows = results.rows;
  55. //Create an array to hold all of the event objects
  56. var eventsArray = [];
  57. for(var i = 0; i < rows.length; i++) {
  58. var values = rows[i];
  59. //Create an empty object to hold the atributes of an event
  60. var eventObject = {}
  61. for(var j = 0; j < values.length; j++) {
  62. var field = fields[j];
  63. var value = values[j];
  64. eventObject[field] = value;
  65. }
  66. eventsArray.push(eventObject);
  67. }
  68. //populated the results object
  69. resultsArrayObject["events"]=eventsArray;
  70. if(err){
  71. //reject the promise if there is an error
  72. reject(err);
  73. console.error(err)
  74. }else{
  75. //fulfill the promise
  76. resolve(resultsArrayObject);
  77. }
  78. })
  79.  
  80. }.bind(this)); //This needs to be binded to this function so that it can get the rest of the functions properly
  81. }
  82.  
  83. var test = Promise.coroutine(function*(request,response){
  84. let result = yield Promise.resolve(splunk.splunkQuery());
  85. console.log(result);
  86. });
  87.  
  88. test();
  89.  
  90. "use strict";
  91. //Get the splunk sdk
  92. var splunkjs = require('splunk-sdk');
  93. //get promise dependencies
  94. Promise = require("bluebird");
  95.  
  96. //Create Class
  97. let Splunk = {};
  98.  
  99. //Define object variables
  100. Splunk._service = {}
  101. Splunk._serviceDetails = {}
  102. Splunk._query = ""
  103. Splunk._searchParameters = {}
  104.  
  105. //Define object functions
  106. //Set the login information
  107.  
  108. Splunk.setServiceDetails = function(serviceDetails){
  109. return new Promise (function(resolve,reject){
  110. this._serviceDetails = serviceDetails;
  111. resolve(true)
  112. }.bind(this));
  113. }
  114.  
  115. Splunk.getServiceDetails = function(serviceDetails){
  116. return new Promise (function(resolve,reject){
  117. resolve(this._serviceDetails)
  118. }.bind(this));
  119. }
  120.  
  121. //Start the service
  122. Splunk.startService = function(){
  123. return new Promise (function(resolve,reject){
  124. this._service = Promise.promisifyAll(new splunkjs.Service(this._serviceDetails));
  125. resolve(true)
  126. }.bind(this));
  127. }
  128.  
  129. //Start the service
  130. Splunk.getService = function(){
  131. return new Promise (function(resolve,reject){
  132. resolve(this._service)
  133. }.bind(this));
  134. }
  135.  
  136. Splunk.setQuery = function(query){
  137. return new Promise (function(resolve,reject){
  138. this._query = query;
  139. resolve(true)
  140. }.bind(this));
  141. }
  142.  
  143. Splunk.getQuery = function(query){
  144. return new Promise (function(resolve,reject){
  145. console.log("Getting Query")
  146. resolve(this._query)
  147. }.bind(this));
  148. }
  149.  
  150. Splunk.setSearchParameters = function (searchParameters){
  151. return new Promise (function(resolve,reject){
  152. this._searchParameters = searchParameters;
  153. resolve(true)
  154. }.bind(this));
  155. }
  156.  
  157. Splunk.getSearchParameters = function (searchParameters){
  158. return new Promise (function(resolve,reject){
  159. console.log("Getting Search Parameters")
  160. resolve(this._searchParameters)
  161. }.bind(this));
  162. }
  163.  
  164. Splunk.execute = Promise.coroutine(function*(){
  165. try{
  166. // Create a Service instance and log in
  167. let service = yield this.getService();
  168. // Pass the search query
  169. let searchQuery = yield this.getQuery();
  170. // Search params (No Idea what these do)
  171. let searchParams = this.getSearchParameters();
  172. //get the job object from splunk
  173. let job = yield service.searchAsync(searchQuery,searchParams);
  174. //add the fetchJson function to the job object
  175. job.fetchJsonAsync = this._fetchJsonAsync;
  176. //get the results
  177. let results = yield Promise.resolve(job.fetchJsonAsync());
  178. //return the resuling value
  179. return results
  180. } catch (e){
  181. console.log(e)
  182. }
  183.  
  184. });
  185.  
  186. Splunk._fetchJsonAsync = function(){
  187. //Create a result object and return it
  188. var resultsArrayObject = {}
  189. //return a promise
  190. return new Promise (function(resolve,reject){
  191. //display the job id
  192. console.log("Search job id: " + this.sid);
  193. this.results({}, function(err, results) {
  194. var fields = results.fields;
  195. var rows = results.rows;
  196. //Create an array to hold all of the event objects
  197. var eventsArray = [];
  198. for(var i = 0; i < rows.length; i++) {
  199. var values = rows[i];
  200. //Create an empty object to hold the atributes of an event
  201. var eventObject = {}
  202. for(var j = 0; j < values.length; j++) {
  203. var field = fields[j];
  204. var value = values[j];
  205. eventObject[field] = value;
  206. }
  207. eventsArray.push(eventObject);
  208. }
  209. //populated the results object
  210. resultsArrayObject["events"]=eventsArray;
  211. if(err){
  212. //reject the promise if there is an error
  213. reject(err);
  214. console.error(err)
  215. }else{
  216. //fulfill the promise
  217. resolve(resultsArrayObject);
  218. }
  219. })
  220.  
  221. }.bind(this)); //This needs to be binded to this function so that it can get the rest of the functions properly
  222. }
  223.  
  224.  
  225.  
  226.  
  227.  
  228. module.exports = Splunk;
  229.  
  230. var test = Promise.coroutine(function*(request,response){
  231. //let result = yield Promise.resolve(splunk.splunkQuery());
  232. try{
  233. yield splunkClass.setServiceDetails({
  234. username:"user",
  235. password:"pass",
  236. scheme:"https",
  237. host:"mysplunk",
  238. port:"8089",
  239. version:"6.3.2"
  240. });
  241. console.log("set service details");
  242. yield splunkClass.startService();
  243. console.log("started service");
  244. yield splunkClass.setQuery("search index=edex FIDELITY.CCB.LPS.PROD.MORTFILE* PNOD=CD.HNBNOLA RECI=CTRC");
  245. console.log("set query async")
  246. yield splunkClass.setSearchParameters({
  247. exec_mode: "blocking"
  248. });
  249. console.log("set search parameters")
  250. let result = yield splunkClass.execute()
  251. console.log("executed")
  252. yield Promise.resolve(console.log(result));
  253. Promise.resolve(response.send(result))
  254. }catch(exception){
  255. console.log(exception)
  256. }
  257. });
  258.  
  259. test();
  260.  
  261. Search job id: 1470853434.636329
  262. TypeError: Cannot read property 'length' of undefined
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement