UNPKG

kibana-riya

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

79 lines (57 loc) 2.44 kB
'use strict'; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var _bluebird = require('bluebird'); var _bluebird2 = _interopRequireDefault(_bluebird); var _is_upgradeable = require('./is_upgradeable'); var _is_upgradeable2 = _interopRequireDefault(_is_upgradeable); var _lodash = require('lodash'); var _lodash2 = _interopRequireDefault(_lodash); var _util = require('util'); module.exports = function (server) { var MAX_INTEGER = Math.pow(2, 53) - 1; var _server$plugins$elasticsearch$getCluster = server.plugins.elasticsearch.getCluster('admin'); var callWithInternalUser = _server$plugins$elasticsearch$getCluster.callWithInternalUser; var config = server.config(); function createNewConfig() { return callWithInternalUser('create', { index: config.get('kibana.index'), type: 'config', body: { buildNum: config.get('pkg.buildNum') }, id: config.get('pkg.version') }); } return function (response) { var newConfig = {}; // Check to see if there are any doc. If not then we set the build number and id if (response.hits.hits.length === 0) { return createNewConfig(); } // if we already have a the current version in the index then we need to stop var devConfig = _lodash2['default'].find(response.hits.hits, function currentVersion(hit) { return hit._id !== '@@version' && hit._id === config.get('pkg.version'); }); if (devConfig) { return _bluebird2['default'].resolve(); } // Look for upgradeable configs. If none of them are upgradeable // then create a new one. var body = _lodash2['default'].find(response.hits.hits, _is_upgradeable2['default'].bind(null, server)); if (!body) { return createNewConfig(); } // if the build number is still the template string (which it wil be in development) // then we need to set it to the max interger. Otherwise we will set it to the build num body._source.buildNum = config.get('pkg.buildNum'); server.log(['plugin', 'elasticsearch'], { tmpl: 'Upgrade config from <%= prevVersion %> to <%= newVersion %>', prevVersion: body._id, newVersion: config.get('pkg.version') }); return callWithInternalUser('create', { index: config.get('kibana.index'), type: 'config', body: body._source, id: config.get('pkg.version') }); }; };