Loads the resource and stores the properties.
Loads the resource and stores 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;
},
Retrieves the access control list (ACL) information for this entity, which contains the permissions for accessing the resource.
The ACL.
acl: function() {
return this._acl;
},
Retrieves the author information for this entity.
The author.
author: function() {
return this._author;
},
Disables the entity on the server.
Name | Type | Description |
---|---|---|
callback | Function | A function to call 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);
}
});
},
Enables the entity on the server.
Name | Type | Description |
---|---|---|
callback | Function | A function to call 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);
}
});
},
Refreshes the resource by fetching the object from the server and loading it.
Name | Type | Description |
---|---|---|
options | Object | An optional dictionary of collection filtering and pagination options. |
callback | Function | A function to call 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);
}
});
},
Indicates whether to call fetch
after an update to get the updated item. By default, the entity is not fetched because the endpoint returns (echoes) the updated entity.
fetchOnUpdate: false,
Retrieves the fields information for this entity, indicating which fields are wildcards, required, and optional.
The fields information.
fields: function() {
return this._fields;
},
Constructor for splunkjs.Service.Entity
.
Name | Type | Description |
---|---|---|
service | splunkjs.Service | A |
path | String | A relative endpoint path (for example, 'search/jobs'). |
namespace | Object | Namespace information (owner, app, sharing). |
A new splunkjs.Service.Entity
instance.
init: function(service, path, namespace) {
this._super(service, path, namespace);
// We perform the bindings so that every function works
// properly when it is passed as a callback.
this._load = utils.bind(this, this._load);
this.fetch = utils.bind(this, this.fetch);
this.remove = utils.bind(this, this.remove);
this.update = utils.bind(this, this.update);
this.fields = utils.bind(this, this.fields);
this.links = utils.bind(this, this.links);
this.acl = utils.bind(this, this.acl);
this.author = utils.bind(this, this.author);
this.updated = utils.bind(this, this.updated);
this.published = utils.bind(this, this.published);
this.enable = utils.bind(this, this.enable);
this.disable = utils.bind(this, this.disable);
this.reload = utils.bind(this, this.reload);
// Initial values
this._properties = {};
this._fields = {};
this._acl = {};
this._links = {};
},
Retrieves the links information for this entity, which is the URI of the resource relative to the management port of a Splunk instance.
The links information.
links: function() {
return this._links;
},
Retrieves the published time for this entity.
The published time.
published: function() {
return this._published;
},
Reloads the entity on the server.
Name | Type | Description |
---|---|---|
callback | Function | A function to call 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);
}
});
}
});
Deletes the entity from the server.
Name | Type | Description |
---|---|---|
callback | Function | A function to call when the object is deleted: |
remove: function(callback) {
callback = callback || function() {};
var that = this;
return this.del("", {}, function(err) {
callback(err);
});
},
Updates the entity on the server.
Name | Type | Description |
---|---|---|
props | Object | The properties to update the object with. |
callback | Function | A function to call 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;
},
Retrieves the updated time for this entity.
The updated time.
updated: function() {
return this._updated;
},
Performs a relative DELETE request on an endpoint's path, combined with the parameters and a relative path if specified.
Name | Type | Description |
---|---|---|
relpath | String | A relative path to append to the path. |
params | Object | A dictionary of parameters to add to the query string. |
callback | Function | A function to call 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
);
}
});
Performs a relative GET request on an endpoint's path, combined with the parameters and a relative path if specified.
Name | Type | Description |
---|---|---|
relpath | String | A relative path to append to the path. |
params | Object | A dictionary of parameters to add to the query string. |
callback | Function | A function to call 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
);
},
Retrieves the REST endpoint path for this resource (with no namespace).
path: function() {
throw new Error("MUST BE OVERRIDDEN");
},
Performs a relative POST request on an endpoint's path, combined with the parameters and a relative path if specified.
Name | Type | Description |
---|---|---|
relpath | String | A relative path to append to the path. |
params | Object | A dictionary of parameters to add to the body. |
callback | Function | A function to call 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
);
},
Retrieves the current properties for this resource.
The properties for this resource.
properties: function() {
return this._properties;
},
Retrieves the current full state of this resource.
The current full state of this resource.
state: function() {
return this._state;
}
});