UNPKG

@spalger/kibana

Version:

Kibana is an open source (Apache Licensed), browser based analytics and search dashboard for Elasticsearch. Kibana is a snap to setup and start using. Kibana strives to be easy to get started with, while also being flexible and powerful, just like Elastic

269 lines (232 loc) 8.63 kB
define(function (require) { var _ = require('lodash'); var angular = require('angular'); var canStack = (function () { var err = new Error(); return !!err.stack; }()); var errors = {}; // abstract error class function KbnError(msg, constructor) { this.message = msg; Error.call(this, this.message); if (Error.captureStackTrace) { Error.captureStackTrace(this, constructor || KbnError); } else if (canStack) { this.stack = (new Error()).stack; } else { this.stack = ''; } } errors.KbnError = KbnError; _.class(KbnError).inherits(Error); /** * HastyRefresh error class * @param {String} [msg] - An error message that will probably end up in a log. */ errors.HastyRefresh = function HastyRefresh() { KbnError.call(this, 'Courier attempted to start a query before the previous had finished.', errors.HastyRefresh); }; _.class(errors.HastyRefresh).inherits(KbnError); /** * SearchTimeout error class */ errors.SearchTimeout = function SearchTimeout() { KbnError.call(this, 'All or part of your request has timed out. The data shown may be incomplete.', errors.SearchTimeout); }; _.class(errors.SearchTimeout).inherits(KbnError); /** * Request Failure - When an entire mutli request fails * @param {Error} err - the Error that came back * @param {Object} resp - optional HTTP response */ errors.RequestFailure = function RequestFailure(err, resp) { err = err || false; KbnError.call(this, 'Request to Elasticsearch failed: ' + angular.toJson(resp || err.message), errors.RequestFailure); this.origError = err; this.resp = resp; }; _.class(errors.RequestFailure).inherits(KbnError); /** * FetchFailure Error - when there is an error getting a doc or search within * a multi-response response body * @param {String} [msg] - An error message that will probably end up in a log. */ errors.FetchFailure = function FetchFailure(resp) { KbnError.call(this, 'Failed to get the doc: ' + angular.toJson(resp), errors.FetchFailure); this.resp = resp; }; _.class(errors.FetchFailure).inherits(KbnError); /** * ShardFailure Error - when one or more shards fail * @param {String} [msg] - An error message that will probably end up in a log. */ errors.ShardFailure = function ShardFailure(resp) { KbnError.call(this, resp._shards.failed + ' of ' + resp._shards.total + ' shards failed.', errors.ShardFailure); this.resp = resp; }; _.class(errors.ShardFailure).inherits(KbnError); /** * A doc was re-indexed but it was out of date. * @param {Object} resp - The response from es (one of the multi-response responses). */ errors.VersionConflict = function VersionConflict(resp) { KbnError.call(this, 'Failed to store document changes do to a version conflict.', errors.VersionConflict); this.resp = resp; }; _.class(errors.VersionConflict).inherits(KbnError); /** * there was a conflict storing a doc * @param {String} field - the fields which contains the conflict */ errors.MappingConflict = function MappingConflict(field) { KbnError.call(this, 'Field "' + field + '" is defined with at least two different types in indices matching the pattern', errors.MappingConflict); }; _.class(errors.MappingConflict).inherits(KbnError); /** * a field mapping was using a restricted fields name * @param {String} field - the fields which contains the conflict */ errors.RestrictedMapping = function RestrictedMapping(field, index) { var msg = field + ' is a restricted field name'; if (index) msg += ', found it while attempting to fetch mapping for index pattern: ' + index; KbnError.call(this, msg, errors.RestrictedMapping); }; _.class(errors.RestrictedMapping).inherits(KbnError); /** * a non-critical cache write to elasticseach failed */ errors.CacheWriteFailure = function CacheWriteFailure() { KbnError.call(this, 'A Elasticsearch cache write has failed.', errors.CacheWriteFailure); }; _.class(errors.CacheWriteFailure).inherits(KbnError); /** * when a field mapping is requested for an unknown field * @param {String} name - the field name */ errors.FieldNotFoundInCache = function FieldNotFoundInCache(name) { KbnError.call(this, 'The ' + name + ' field was not found in the cached mappings', errors.FieldNotFoundInCache); }; _.class(errors.FieldNotFoundInCache).inherits(KbnError); /** * when a mapping already exists for a field the user is attempting to add * @param {String} name - the field name */ errors.DuplicateField = function DuplicateField(name) { KbnError.call(this, 'The "' + name + '" field already exists in this mapping', errors.DuplicateField); }; _.class(errors.DuplicateField).inherits(KbnError); /** * A saved object was not found * @param {String} field - the fields which contains the conflict */ errors.SavedObjectNotFound = function SavedObjectNotFound(type, id) { this.savedObjectType = type; this.savedObjectId = id; var idMsg = id ? ' (id: ' + id + ')' : ''; KbnError.call(this, 'Could not locate that ' + type + idMsg, errors.SavedObjectNotFound); }; _.class(errors.SavedObjectNotFound).inherits(KbnError); /** * Tried to call a method that relies on SearchSource having an indexPattern assigned */ errors.IndexPatternMissingIndices = function IndexPatternMissingIndices(type) { KbnError.call(this, 'IndexPattern\'s configured pattern does not match any indices', errors.IndexPatternMissingIndices); }; _.class(errors.IndexPatternMissingIndices).inherits(KbnError); /** * Tried to call a method that relies on SearchSource having an indexPattern assigned */ errors.NoDefinedIndexPatterns = function NoDefinedIndexPatterns(type) { KbnError.call(this, 'Define at least one index pattern to continue', errors.NoDefinedIndexPatterns); }; _.class(errors.NoDefinedIndexPatterns).inherits(KbnError); /** * Tried to load a route besides settings/indices but you don't have a default index pattern! */ errors.NoDefaultIndexPattern = function NoDefaultIndexPattern(type) { KbnError.call(this, 'Please specify a default index pattern', errors.NoDefaultIndexPattern); }; _.class(errors.NoDefaultIndexPattern).inherits(KbnError); /** * used by the vislib, when the container is too small * @param {String} message - the message to provide with the error */ errors.ContainerTooSmall = function ContainerTooSmall() { KbnError.call(this, 'This container is too small to render the visualization', errors.ContainerTooSmall); }; _.class(errors.ContainerTooSmall).inherits(KbnError); /** * error thrown when user tries to render an chart with less * than the required number of data points * @param {String} message - the message to provide with the error */ errors.NotEnoughData = function NotEnoughData(message) { KbnError.call(this, message, errors.NotEnoughData); }; _.class(errors.NotEnoughData).inherits(KbnError); /** * error thrown when no results are returned from an elasticsearch query */ errors.NoResults = function NoResults() { KbnError.call(this, 'No results found', errors.NoResults); }; _.class(errors.NoResults).inherits(KbnError); /** * error thrown when no results are returned from an elasticsearch query */ errors.PieContainsAllZeros = function PieContainsAllZeros() { KbnError.call(this, 'No results displayed because all values equal 0', errors.PieContainsAllZeros); }; _.class(errors.PieContainsAllZeros).inherits(KbnError); /** * error thrown when no results are returned from an elasticsearch query */ errors.InvalidLogScaleValues = function InvalidLogScaleValues() { KbnError.call(this, 'Values less than 1 cannot be displayed on a log scale', errors.InvalidLogScaleValues); }; _.class(errors.InvalidLogScaleValues).inherits(KbnError); /** error thrown when wiggle chart is selected for non linear data */ errors.InvalidWiggleSelection = function InvalidWiggleSelection() { KbnError.call(this, 'In wiggle mode the area chart requires ordered values on the x-axis. Try using a Histogram or Date Histogram aggregation.', errors.InvalidWiggleSelection); }; _.class(errors.InvalidWiggleSelection).inherits(KbnError); return errors; });