Constructor for splunkjs.Service.Job
Constructor for splunkjs.Service.Job
Name | Type | Description |
---|---|---|
service | splunkjs.Service | A service instance |
sid | String | The search ID for this search |
namespace | Object | Namespace information (owner, app, sharing) |
init: function(service, sid, namespace) {
this.name = sid;
this._super(service, this.path(), namespace);
this.sid = sid;
// We perform the bindings so that every function works
// properly when it is passed as a callback.
this.cancel = utils.bind(this, this.cancel);
this.disablePreview = utils.bind(this, this.disablePreview);
this.enablePreview = utils.bind(this, this.enablePreview);
this.events = utils.bind(this, this.events);
this.finalize = utils.bind(this, this.finalize);
this.pause = utils.bind(this, this.pause);
this.preview = utils.bind(this, this.preview);
this.results = utils.bind(this, this.results);
this.searchlog = utils.bind(this, this.searchlog);
this.setPriority = utils.bind(this, this.setPriority);
this.setTTL = utils.bind(this, this.setTTL);
this.summary = utils.bind(this, this.summary);
this.timeline = utils.bind(this, this.timeline);
this.touch = utils.bind(this, this.touch);
this.unpause = utils.bind(this, this.unpause);
},
Get the preview results for a job
Get the preview results for a job with given parameters.
Name | Type | Description |
---|---|---|
params | Object | Parameters for results preview fetching |
callback | Function | A callback with when the preview results are fetched: |
var job = service.jobs().item("mysid");
job.preview({count: 10}, function(err, results, job) {
console.log("Fields: ", results.fields);
});
preview: function(params, callback) {
callback = callback || function() {};
var that = this;
return this.get("results_preview", params, function(err, response) {
if (err) {
callback(err);
}
else {
callback(null, response.data, that);
}
});
},
Unpause a search job
Name | Type | Description |
---|---|---|
callback | Function | A callback with this job: |
var job = service.jobs().item("mysid");
job.unpause(function(err) {
console.log("JOB UNPAUSED");
});
unpause: function(callback) {
callback = callback || function() {};
var that = this;
var req = this.post("control", {action: "unpause"}, function(err) {
callback(err, that);
});
return req;
}
});
Get the search log for this job.
Name | Type | Description |
---|---|---|
callback | Function | A callback with the searchlog and job: |
var job = service.jobs().item("mysid");
job.searchlog(function(err, searchlog, job) {
console.log(searchlog);
});
searchlog: function(callback) {
callback = callback || function() {};
var that = this;
return this.get("search.log", {}, function(err, response) {
if (err) {
callback(err);
}
else {
callback(null, response.data.entry.content, that);
}
});
},
REST path for this resource (with no namespace)
path: function() {
return Paths.jobs + "/" + encodeURIComponent(this.name);
},
Set the job priority
Name | Type | Description |
---|---|---|
value | Number | Value for the new priority |
callback | Function | A callback with the this job: |
var job = service.jobs().item("mysid");
job.setPriority(6, function(err, job) {
console.log("JOB PRIORITY SET");
});
setPriority: function(value, callback) {
callback = callback || function() {};
var that = this;
var req = this.post("control", {action: "setpriority", priority: value}, function(err) {
callback(err, that);
});
return req;
},
Disable preview for a job
Name | Type | Description |
---|---|---|
callback | Function | A callback with the this job: |
var job = service.jobs().item("mysid");
job.disablePreview(function(err, job) {
console.log("PREVIEW DISABLED");
});
disablePreview: function(callback) {
callback = callback || function() {};
var that = this;
var req = this.post("control", {action: "disablepreview"}, function(err) {
callback(err, that);
});
return req;
},
Get job events
Get the events for a job with given parameters.
Name | Type | Description |
---|---|---|
params | Object | Parameters for event fetching |
callback | Function | A callback with when the events are fetched: |
var job = service.jobs().item("mysid");
job.events({count: 10}, function(err, events, job) {
console.log("Fields: ", events.fields);
});
events: function(params, callback) {
callback = callback || function() {};
var that = this;
return this.get("events", params, function(err, response) {
if (err) {
callback(err);
}
else {
callback(null, response.data, that);
}
});
},
Touch a job
Name | Type | Description |
---|---|---|
callback | Function | A callback with this job: |
var job = service.jobs().item("mysid");
job.touch(function(err) {
console.log("JOB TOUCHED");
});
touch: function(callback) {
callback = callback || function() {};
var that = this;
var req = this.post("control", {action: "touch"}, function(err) {
callback(err, that);
});
return req;
},
Get the timeline for this job
Name | Type | Description |
---|---|---|
params | Object | Parameters for timeline fetching |
callback | Function | A callback with with the timeline and this job: |
var job = service.jobs().item("mysid");
job.timeline({time_format: "%c"}, function(err, job, timeline) {
console.log("Timeline: ", timeline);
});
timeline: function(params, callback) {
callback = callback || function() {};
var that = this;
return this.get("timeline", params, function(err, response) {
if (err) {
callback(err);
}
else {
callback(null, response.data, that);
}
});
},
Get the summary for this job
Get the job summary for this job with the given parameters
Name | Type | Description |
---|---|---|
params | Object | Parameters for summary fetching |
callback | Function | A callback with with the summary and this job: |
var job = service.jobs().item("mysid");
job.summary({top_count: 5}, function(err, summary, job) {
console.log("Summary: ", summary);
});
summary: function(params, callback) {
callback = callback || function() {};
var that = this;
return this.get("summary", params, function(err, response) {
if (err) {
callback(err);
}
else {
callback(null, response.data, that);
}
});
},
Set the job TTL
Name | Type | Description |
---|---|---|
value | Number | Value for the new priority |
callback | Function | A callback with the this job: |
var job = service.jobs().item("mysid");
job.setTTL(1000, function(err, job) {
console.log("JOB TTL SET");
});
setTTL: function(value, callback) {
callback = callback || function() {};
var that = this;
var req = this.post("control", {action: "setttl", ttl: value}, function(err) {
callback(err, that);
});
return req;
},
Finalize a search job
Name | Type | Description |
---|---|---|
callback | Function | A callback with the this job: |
var job = service.jobs().item("mysid");
job.finalize(function(err, job) {
console.log("JOB FINALIZED");
});
finalize: function(callback) {
callback = callback || function() {};
var that = this;
var req = this.post("control", {action: "finalize"}, function(err) {
callback(err, that);
});
return req;
},
Enable preview for a job
Name | Type | Description |
---|---|---|
callback | Function | A callback with the this job: |
var job = service.jobs().item("mysid");
job.disablePreview(function(err, job) {
console.log("PREVIEW ENABLED");
});
enablePreview: function(callback) {
callback = callback || function() {};
var that = this;
var req = this.post("control", {action: "enablepreview"}, function(err) {
callback(err, that);
});
return req;
},
Get job results
Get the results for a job with given parameters.
Name | Type | Description |
---|---|---|
params | Object | Parameters for results fetching |
callback | Function | A callback with when the results are fetched: |
var job = service.jobs().item("mysid");
job.results({count: 10}, function(err, results, job) {
console.log("Fields: ", results.results);
});
results: function(params, callback) {
callback = callback || function() {};
var that = this;
return this.get("results", params, function(err, response) {
if (err) {
callback(err);
}
else {
callback(null, response.data, that);
}
});
},
Cancel a search job
Name | Type | Description |
---|---|---|
callback | Function | A callback when the search is done: |
var job = service.jobs().item("mysid");
job.cancel(function(err) {
console.log("CANCELLED");
});
cancel: function(callback) {
var req = this.post("control", {action: "cancel"}, callback);
return req;
},
Pause a search job
Name | Type | Description |
---|---|---|
callback | Function | A callback with the this job: |
var job = service.jobs().item("mysid");
job.pause(function(err, job) {
console.log("JOB PAUSED");
});
pause: function(callback) {
callback = callback || function() {};
var that = this;
var req = this.post("control", {action: "pause"}, function(err) {
callback(err, that);
});
return req;
},
Retrieve the updated time for this entity
updated: function() {
return this._updated;
},
Reload the entity
This will reload the entity on the server.
Name | Type | Description |
---|---|---|
callback | Function | A callback when the object is reloaded: |
reload: function(callback) {
callback = callback || function() {};
var that = this;
this.post("_reload", {}, function(err, response) {
if (err) {
callback(err);
}
else {
callback(null, that);
}
});
}
});
Refresh the resource
This will fetch the object from the server and load it up.
Name | Type | Description |
---|---|---|
options | Object | Optional dictionary of collection filtering and pagination options |
callback | Function | A callback when the object is retrieved: |
fetch: function(options, callback) {
if (!callback && utils.isFunction(options)) {
callback = options;
options = {};
}
callback = callback || function() {};
options = options || {};
var that = this;
return this.get("", options, function(err, response) {
if (err) {
callback(err);
}
else {
that._load(response.data.entry);
callback(null, that);
}
});
},
Whether or not to call fetch()
after an update to fetch the updated item. By default we don't fetch the entity, as the endpoint will return (echo) the updated entity
fetchOnUpdate: false,
Retrieve the fields information for this entity
fields: function() {
return this._fields;
},
Enable the entity
This will enable the entity on the server.
Name | Type | Description |
---|---|---|
callback | Function | A callback when the object is enabled: |
enable: function(callback) {
callback = callback || function() {};
var that = this;
this.post("enable", {}, function(err, response) {
if (err) {
callback(err);
}
else {
callback(null, that);
}
});
},
Disable the entity
This will disable the entity on the server.
Name | Type | Description |
---|---|---|
callback | Function | A callback when the object is disabled: |
disable: function(callback) {
callback = callback || function() {};
var that = this;
this.post("disable", {}, function(err, response) {
if (err) {
callback(err);
}
else {
callback(null, that);
}
});
},
Update the entity
This will update the entity on the server.
Name | Type | Description |
---|---|---|
props | Object | Properties to be updated the object with. |
callback | Function | A callback when the object is updated: |
update: function(props, callback) {
callback = callback || function() {};
if (props.hasOwnProperty("name")) {
throw new Error("Cannot set 'name' field in 'update'");
}
var that = this;
var req = this.post("", props, function(err, response) {
if (!err && !that.fetchOnUpdate) {
that._load(response.data.entry);
callback(err, that);
}
else if (!err && that.fetchOnUpdate) {
that.fetch(function() {
if (req.wasAborted) {
return; // aborted, so ignore
}
else {
callback.apply(null, arguments);
}
});
}
else {
callback(err, that);
}
});
return req;
},
Delete the entity
This will tell the server to delete this entity.
Name | Type | Description |
---|---|---|
callback | Function | A callback when the object is deleted: |
remove: function(callback) {
callback = callback || function() {};
var that = this;
return this.del("", {}, function(err) {
callback(err);
});
},
Retrieve the ACL information for this entity
acl: function() {
return this._acl;
},
Retrieve the published time for this entity
published: function() {
return this._published;
},
Load the resource, also storing the properties.
Name | Type | Description |
---|---|---|
properties | Object | The properties for this resource |
_load: function(properties) {
properties = utils.isArray(properties) ? properties[0] : properties;
// Initialize the properties to
// empty values
properties = properties || {
content: {},
fields: {},
acl: {},
links: {}
};
this._super(properties);
// Take out the entity-specific content
this._properties = properties.content || {};
this._fields = properties.fields || this._fields || {};
this._acl = properties.acl || {};
this._links = properties.links || {};
this._author = properties.author || null;
this._updated = properties.updated || null;
this._published = properties.published || null;
},
Retrieve the author information for this entity
author: function() {
return this._author;
},
Retrieve the links information for this entity
links: function() {
return this._links;
},
Retrieve the state for this resource
This will retrieve the current full state for this resource.
state: function() {
return this._state;
}
});
Retrieve the properties for this resource
This will retrieve the current properties for this resource.
properties: function() {
return this._properties;
},
Perform a relative DELETE request
Perform a relative DELETE request on this endpoint's path, combined with the parameters and a relative path if specified.
Name | Type | Description |
---|---|---|
relpath | String | A relative path to append at the end of the path |
params | Object | A dictionary of parameters to add to the query string |
callback | Function | A callback to be invoked when the request is complete: |
// Will make a request to {service.prefix}/search/jobs/123456
var endpoint = new splunkjs.Service.Endpoint(service, "search/jobs/12345");
endpoint.delete("", {}, function() { console.log("DELETED"))});
del: function(relpath, params, callback) {
var url = this.qualifiedPath;
// If we have a relative path, we will append it with a preceding
// slash.
if (relpath) {
url = url + "/" + relpath;
}
return this.service.del(
url,
params,
callback
);
}
});
Perform a relative POST request
Perform a relative POST request on this endpoint's path, combined with the parameters and a relative path if specified.
Name | Type | Description |
---|---|---|
relpath | String | A relative path to append at the end of the path |
params | Object | A dictionary of parameters to add to the body |
callback | Function | A callback to be invoked when the request is complete: |
// Will make a request to {service.prefix}/search/jobs/123456/control
var endpoint = new splunkjs.Service.Endpoint(service, "search/jobs/12345");
endpoint.post("control", {action: "cancel"}, function() { console.log("CANCELLED"))});
post: function(relpath, params, callback) {
var url = this.qualifiedPath;
// If we have a relative path, we will append it with a preceding
// slash.
if (relpath) {
url = url + "/" + relpath;
}
return this.service.post(
url,
params,
callback
);
},
Perform a relative GET request
Perform a relative GET request on this endpoint's path, combined with the parameters and a relative path if specified.
Name | Type | Description |
---|---|---|
relpath | String | A relative path to append at the end of the path |
params | Object | A dictionary of parameters to add to the query string |
callback | Function | A callback to be invoked when the request is complete: |
// Will make a request to {service.prefix}/search/jobs/123456/results?offset=1
var endpoint = new splunkjs.Service.Endpoint(service, "search/jobs/12345");
endpoint.get("results", {offset: 1}, function() { console.log("DONE"))});
get: function(relpath, params, callback) {
var url = this.qualifiedPath;
// If we have a relative path, we will append it with a preceding
// slash.
if (relpath) {
url = url + "/" + relpath;
}
return this.service.get(
url,
params,
callback
);
},