From cd8535c47ad1a888f914d2ee2a3ddf8a054a0404 Mon Sep 17 00:00:00 2001 From: Joe Fleming Date: Wed, 21 Jan 2015 10:59:11 -0700 Subject: [PATCH 1/6] rename kibana task --- tasks/{maybe_connect_dev.js => maybe_start_kibana.js} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename tasks/{maybe_connect_dev.js => maybe_start_kibana.js} (98%) diff --git a/tasks/maybe_connect_dev.js b/tasks/maybe_start_kibana.js similarity index 98% rename from tasks/maybe_connect_dev.js rename to tasks/maybe_start_kibana.js index 8e44084a732179..69f1a4a58dee43 100644 --- a/tasks/maybe_connect_dev.js +++ b/tasks/maybe_start_kibana.js @@ -41,7 +41,7 @@ module.exports = function (grunt) { }; grunt.registerTask('maybe_start_kibana', maybeStartServer({ name: 'kibana-server', - port: 5601, + port: 8000, tasks: ['kibana_server'] })); }; From c3a270e909f707d2868d06106104c7757e004632 Mon Sep 17 00:00:00 2001 From: Joe Fleming Date: Wed, 21 Jan 2015 11:16:14 -0700 Subject: [PATCH 2/6] use config port to check for existing server, report running port, add debugging info --- tasks/kibana_server.js | 2 ++ tasks/maybe_start_kibana.js | 26 +++++++++++++++++++------- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/tasks/kibana_server.js b/tasks/kibana_server.js index 11c40c6e8e71c2..b0cbab896442e9 100644 --- a/tasks/kibana_server.js +++ b/tasks/kibana_server.js @@ -4,7 +4,9 @@ module.exports = function (grunt) { var config = require('../src/server/config'); config.quiet = true; var server = require('../src/server'); + server.start(function () { + grunt.log.ok('Server started on port', config.kibana.port); if (keepalive !== 'keepalive') done(); }); }); diff --git a/tasks/maybe_start_kibana.js b/tasks/maybe_start_kibana.js index 69f1a4a58dee43..a96cba0f0fe8d8 100644 --- a/tasks/maybe_start_kibana.js +++ b/tasks/maybe_start_kibana.js @@ -1,25 +1,36 @@ module.exports = function (grunt) { + var config = require('../src/server/config'); + var maybeStartServer = function (options) { return function () { var http = require('http'); - - var req = http.request({ + var opts = { method: 'HEAD', path: '/', host: 'localhost', port: options.port - }); + }; + + grunt.log.debug('checking for server', JSON.stringify(opts)); + + var req = http.request(opts); function onResponse(res) { + grunt.log.debug('Server responded with', res.statusCode); + if (res.statusCode === 200) { - grunt.log.writeln('server already started'); + grunt.log.ok('Kibana server already started on port', options.port); } else { - grunt.log.error('another server is already running at localhost:8000!'); + grunt.log.error('Another server is already running on port', options.port); } done(res); } - function onError() { + function onError(err) { + if (err.code !== 'ECONNREFUSED') { + grunt.log.error('Kibana server check failed', err); + } + grunt.config.set(options.name, true); grunt.task.run(options.tasks); done(); @@ -39,9 +50,10 @@ module.exports = function (grunt) { req.end(); }; }; + grunt.registerTask('maybe_start_kibana', maybeStartServer({ name: 'kibana-server', - port: 8000, + port: config.kibana.port, tasks: ['kibana_server'] })); }; From a604d70213f7479481cf89ab0f7c6692ffe0ce69 Mon Sep 17 00:00:00 2001 From: Joe Fleming Date: Wed, 21 Jan 2015 11:48:16 -0700 Subject: [PATCH 3/6] remove express header, append kibana app headers --- src/server/app.js | 3 +++ src/server/lib/appHeaders.js | 12 ++++++++++++ 2 files changed, 15 insertions(+) create mode 100644 src/server/lib/appHeaders.js diff --git a/src/server/app.js b/src/server/app.js index 2f3d069131414e..9f85fe0afba5c5 100644 --- a/src/server/app.js +++ b/src/server/app.js @@ -2,6 +2,7 @@ var express = require('express'); var path = require('path'); var favicon = require('serve-favicon'); var requestLogger = require('./lib/requestLogger'); +var appHeaders = require('./lib/appHeaders'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); var compression = require('compression'); @@ -15,9 +16,11 @@ var app = express(); // view engine setup app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'jade'); +app.set('x-powered-by', false); app.use(favicon(path.join(config.public_folder, 'styles', 'theme', 'elk.ico'))); app.use(requestLogger()); +app.use(appHeaders()); if (app.get('env') === 'development') { require('./dev')(app); diff --git a/src/server/lib/appHeaders.js b/src/server/lib/appHeaders.js new file mode 100644 index 00000000000000..571ff81247712c --- /dev/null +++ b/src/server/lib/appHeaders.js @@ -0,0 +1,12 @@ +var path = require('path'); +var pkgPath = path.resolve(__dirname, '..', '..', '..', 'package.json'); +var pkg = require(pkgPath); + +module.exports = function () { + return function (req, res, next) { + console.log('middleware'); + res.header('X-App-Name', 'kibana'); + res.header('X-App-Version', pkg.version); + next(); + }; +}; From 490ec226a5e16f24e826843a0a5d0d492aac4867 Mon Sep 17 00:00:00 2001 From: Joe Fleming Date: Wed, 21 Jan 2015 11:50:24 -0700 Subject: [PATCH 4/6] check app name header to verify kibana server --- tasks/maybe_start_kibana.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tasks/maybe_start_kibana.js b/tasks/maybe_start_kibana.js index a96cba0f0fe8d8..5997ef4863e867 100644 --- a/tasks/maybe_start_kibana.js +++ b/tasks/maybe_start_kibana.js @@ -17,8 +17,9 @@ module.exports = function (grunt) { function onResponse(res) { grunt.log.debug('Server responded with', res.statusCode); + var app = res.headers['x-app-name']; - if (res.statusCode === 200) { + if (res.statusCode === 200 && app && app === 'kibana') { grunt.log.ok('Kibana server already started on port', options.port); } else { grunt.log.error('Another server is already running on port', options.port); From 9596ed6a8fdeb1972ccd1121cecc7001f09eb356 Mon Sep 17 00:00:00 2001 From: Joe Fleming Date: Wed, 21 Jan 2015 11:55:52 -0700 Subject: [PATCH 5/6] abort startup process if another server is already running --- tasks/maybe_start_kibana.js | 1 + 1 file changed, 1 insertion(+) diff --git a/tasks/maybe_start_kibana.js b/tasks/maybe_start_kibana.js index 5997ef4863e867..187875e5995a20 100644 --- a/tasks/maybe_start_kibana.js +++ b/tasks/maybe_start_kibana.js @@ -23,6 +23,7 @@ module.exports = function (grunt) { grunt.log.ok('Kibana server already started on port', options.port); } else { grunt.log.error('Another server is already running on port', options.port); + process.exit(1); } done(res); } From 39034a16d059624559ffe7ba5f93573dc92ee87b Mon Sep 17 00:00:00 2001 From: Joe Fleming Date: Wed, 21 Jan 2015 12:06:49 -0700 Subject: [PATCH 6/6] remove debugging code --- src/server/lib/appHeaders.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/server/lib/appHeaders.js b/src/server/lib/appHeaders.js index 571ff81247712c..4cebe2201083e5 100644 --- a/src/server/lib/appHeaders.js +++ b/src/server/lib/appHeaders.js @@ -4,7 +4,6 @@ var pkg = require(pkgPath); module.exports = function () { return function (req, res, next) { - console.log('middleware'); res.header('X-App-Name', 'kibana'); res.header('X-App-Version', pkg.version); next();