Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- "use strict";
- //Get the splunk sdk
- var splunkjs = require('splunk-sdk');
- //get promise dependencies
- Promise = require("bluebird");
- //get request dependencies
- let request = require('request-promise');
- exports.splunkQuery = Promise.coroutine(function*(){
- try{
- // Create a Service instance and log in
- let service = Promise.promisifyAll(new splunkjs.Service({
- username:"user",
- password:"pass",
- scheme:"https",
- host:"mysplunk",
- port:"8089",
- version:"6.3.2"
- }));
- // Pass the search query
- let searchQuery = yield Promise.resolve("search index=edex FIDELITY.CCB.LPS.PROD.MORTFILE* PNOD=CD.HNBNOLA RECI=CTRC");
- // Search params (No Idea what these do)
- let searchParams = yield Promise.resolve({
- exec_mode: "blocking"
- });
- //get the job object from splunk
- let job = yield service.searchAsync(searchQuery,searchParams);
- //add the fetchJson function to the job object
- job.fetchJsonAsync = fetchJsonAsync;
- //get the results
- let results = yield Promise.resolve(job.fetchJsonAsync());
- //return the resuling value
- console.log(results.events[0]._raw)
- } catch (e){
- console.log(e)
- }
- });
- //A function that returns a promise
- function fetchJsonAsync(){
- //Create a result object and return it
- var resultsArrayObject = {}
- //return a promise
- return new Promise (function(resolve,reject){
- //display the job id
- console.log("Search job id: " + this.sid);
- this.results({}, function(err, results) {
- var fields = results.fields;
- var rows = results.rows;
- //Create an array to hold all of the event objects
- var eventsArray = [];
- for(var i = 0; i < rows.length; i++) {
- var values = rows[i];
- //Create an empty object to hold the atributes of an event
- var eventObject = {}
- for(var j = 0; j < values.length; j++) {
- var field = fields[j];
- var value = values[j];
- eventObject[field] = value;
- }
- eventsArray.push(eventObject);
- }
- //populated the results object
- resultsArrayObject["events"]=eventsArray;
- if(err){
- //reject the promise if there is an error
- reject(err);
- console.error(err)
- }else{
- //fulfill the promise
- resolve(resultsArrayObject);
- }
- })
- }.bind(this)); //This needs to be binded to this function so that it can get the rest of the functions properly
- }
- var test = Promise.coroutine(function*(request,response){
- let result = yield Promise.resolve(splunk.splunkQuery());
- console.log(result);
- });
- test();
- "use strict";
- //Get the splunk sdk
- var splunkjs = require('splunk-sdk');
- //get promise dependencies
- Promise = require("bluebird");
- //Create Class
- let Splunk = {};
- //Define object variables
- Splunk._service = {}
- Splunk._serviceDetails = {}
- Splunk._query = ""
- Splunk._searchParameters = {}
- //Define object functions
- //Set the login information
- Splunk.setServiceDetails = function(serviceDetails){
- return new Promise (function(resolve,reject){
- this._serviceDetails = serviceDetails;
- resolve(true)
- }.bind(this));
- }
- Splunk.getServiceDetails = function(serviceDetails){
- return new Promise (function(resolve,reject){
- resolve(this._serviceDetails)
- }.bind(this));
- }
- //Start the service
- Splunk.startService = function(){
- return new Promise (function(resolve,reject){
- this._service = Promise.promisifyAll(new splunkjs.Service(this._serviceDetails));
- resolve(true)
- }.bind(this));
- }
- //Start the service
- Splunk.getService = function(){
- return new Promise (function(resolve,reject){
- resolve(this._service)
- }.bind(this));
- }
- Splunk.setQuery = function(query){
- return new Promise (function(resolve,reject){
- this._query = query;
- resolve(true)
- }.bind(this));
- }
- Splunk.getQuery = function(query){
- return new Promise (function(resolve,reject){
- console.log("Getting Query")
- resolve(this._query)
- }.bind(this));
- }
- Splunk.setSearchParameters = function (searchParameters){
- return new Promise (function(resolve,reject){
- this._searchParameters = searchParameters;
- resolve(true)
- }.bind(this));
- }
- Splunk.getSearchParameters = function (searchParameters){
- return new Promise (function(resolve,reject){
- console.log("Getting Search Parameters")
- resolve(this._searchParameters)
- }.bind(this));
- }
- Splunk.execute = Promise.coroutine(function*(){
- try{
- // Create a Service instance and log in
- let service = yield this.getService();
- // Pass the search query
- let searchQuery = yield this.getQuery();
- // Search params (No Idea what these do)
- let searchParams = this.getSearchParameters();
- //get the job object from splunk
- let job = yield service.searchAsync(searchQuery,searchParams);
- //add the fetchJson function to the job object
- job.fetchJsonAsync = this._fetchJsonAsync;
- //get the results
- let results = yield Promise.resolve(job.fetchJsonAsync());
- //return the resuling value
- return results
- } catch (e){
- console.log(e)
- }
- });
- Splunk._fetchJsonAsync = function(){
- //Create a result object and return it
- var resultsArrayObject = {}
- //return a promise
- return new Promise (function(resolve,reject){
- //display the job id
- console.log("Search job id: " + this.sid);
- this.results({}, function(err, results) {
- var fields = results.fields;
- var rows = results.rows;
- //Create an array to hold all of the event objects
- var eventsArray = [];
- for(var i = 0; i < rows.length; i++) {
- var values = rows[i];
- //Create an empty object to hold the atributes of an event
- var eventObject = {}
- for(var j = 0; j < values.length; j++) {
- var field = fields[j];
- var value = values[j];
- eventObject[field] = value;
- }
- eventsArray.push(eventObject);
- }
- //populated the results object
- resultsArrayObject["events"]=eventsArray;
- if(err){
- //reject the promise if there is an error
- reject(err);
- console.error(err)
- }else{
- //fulfill the promise
- resolve(resultsArrayObject);
- }
- })
- }.bind(this)); //This needs to be binded to this function so that it can get the rest of the functions properly
- }
- module.exports = Splunk;
- var test = Promise.coroutine(function*(request,response){
- //let result = yield Promise.resolve(splunk.splunkQuery());
- try{
- yield splunkClass.setServiceDetails({
- username:"user",
- password:"pass",
- scheme:"https",
- host:"mysplunk",
- port:"8089",
- version:"6.3.2"
- });
- console.log("set service details");
- yield splunkClass.startService();
- console.log("started service");
- yield splunkClass.setQuery("search index=edex FIDELITY.CCB.LPS.PROD.MORTFILE* PNOD=CD.HNBNOLA RECI=CTRC");
- console.log("set query async")
- yield splunkClass.setSearchParameters({
- exec_mode: "blocking"
- });
- console.log("set search parameters")
- let result = yield splunkClass.execute()
- console.log("executed")
- yield Promise.resolve(console.log(result));
- Promise.resolve(response.send(result))
- }catch(exception){
- console.log(exception)
- }
- });
- test();
- Search job id: 1470853434.636329
- TypeError: Cannot read property 'length' of undefined
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement