mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 17:59:23 -04:00
[5.6] [es/healthcheck] ensure that healthcheck stops when server is stopped… (#13402)
(cherry picked from commit 924548864d
)
This commit is contained in:
parent
ae76f15a3b
commit
b4be678efd
2 changed files with 38 additions and 7 deletions
|
@ -24,13 +24,18 @@ describe('plugins/elasticsearch', () => {
|
|||
let plugin;
|
||||
let cluster;
|
||||
let server;
|
||||
const sandbox = sinon.sandbox.create();
|
||||
|
||||
function getTimerCount() {
|
||||
return Object.keys(sandbox.clock.timers || {}).length;
|
||||
}
|
||||
|
||||
beforeEach(() => {
|
||||
const COMPATIBLE_VERSION_NUMBER = '5.0.0';
|
||||
|
||||
// Stub the Kibana version instead of drawing from package.json.
|
||||
sinon.stub(kibanaVersion, 'get').returns(COMPATIBLE_VERSION_NUMBER);
|
||||
sinon.stub(ensureTypesExistNS, 'ensureTypesExist');
|
||||
sandbox.stub(kibanaVersion, 'get').returns(COMPATIBLE_VERSION_NUMBER);
|
||||
sandbox.stub(ensureTypesExistNS, 'ensureTypesExist');
|
||||
|
||||
// setup the plugin stub
|
||||
plugin = {
|
||||
|
@ -58,7 +63,7 @@ describe('plugins/elasticsearch', () => {
|
|||
}
|
||||
}));
|
||||
|
||||
sinon.stub(determineEnabledScriptingLangsNS, 'determineEnabledScriptingLangs').returns(Promise.resolve([]));
|
||||
sandbox.stub(determineEnabledScriptingLangsNS, 'determineEnabledScriptingLangs').returns(Promise.resolve([]));
|
||||
|
||||
// setup the config().get()/.set() stubs
|
||||
const get = sinon.stub();
|
||||
|
@ -82,16 +87,37 @@ describe('plugins/elasticsearch', () => {
|
|||
savedObjectsClientFactory: () => ({
|
||||
find: sinon.stub().returns(Promise.resolve({ saved_objects: [] })),
|
||||
create: sinon.stub().returns(Promise.resolve({ id: 'foo' })),
|
||||
})
|
||||
}),
|
||||
ext: sinon.stub()
|
||||
};
|
||||
|
||||
health = healthCheck(plugin, server, { mappings });
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
kibanaVersion.get.restore();
|
||||
determineEnabledScriptingLangs.restore();
|
||||
ensureTypesExistNS.ensureTypesExist.restore();
|
||||
sandbox.restore();
|
||||
});
|
||||
|
||||
it('should stop when cluster is shutdown', () => {
|
||||
sandbox.useFakeTimers();
|
||||
|
||||
// ensure that health.start() is responsible for the timer we are observing
|
||||
expect(getTimerCount()).to.be(0);
|
||||
health.start();
|
||||
expect(getTimerCount()).to.be(1);
|
||||
|
||||
// ensure that a server extension was registered
|
||||
sinon.assert.calledOnce(server.ext);
|
||||
sinon.assert.calledWithExactly(server.ext, sinon.match.string, sinon.match.func);
|
||||
|
||||
// call the server extension
|
||||
const reply = sinon.stub();
|
||||
const [,handler] = server.ext.firstCall.args;
|
||||
handler({}, reply);
|
||||
|
||||
// ensure that the handler called reply and unregistered the time
|
||||
sinon.assert.calledOnce(reply);
|
||||
expect(getTimerCount()).to.be(0);
|
||||
});
|
||||
|
||||
it('should set the cluster green if everything is ready', function () {
|
||||
|
|
|
@ -152,6 +152,11 @@ module.exports = function (plugin, server, { mappings }) {
|
|||
return true;
|
||||
}
|
||||
|
||||
server.ext('onPreStop', (request, reply) => {
|
||||
stopChecking();
|
||||
reply();
|
||||
});
|
||||
|
||||
return {
|
||||
waitUntilReady: waitUntilReady,
|
||||
run: check,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue