/
es_archiver.ts
50 lines (43 loc) · 1.42 KB
/
es_archiver.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0 and the Server Side Public License, v 1; you may not use this file except
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
import { EsArchiver } from '@kbn/es-archiver';
import { FtrProviderContext } from '../ftr_provider_context';
import * as KibanaServer from './kibana_server';
export function EsArchiverProvider({ getService }: FtrProviderContext): EsArchiver {
const config = getService('config');
const client = getService('es');
const lifecycle = getService('lifecycle');
const log = getService('log');
const kibanaServer = getService('kibanaServer');
const retry = getService('retry');
const esArchives = config.get('testData.esArchives');
const esArchiver = new EsArchiver({
client,
log,
kbnClient: kibanaServer,
});
KibanaServer.extendEsArchiver({
esArchiver,
kibanaServer,
retry,
defaults: config.get('uiSettings.defaults'),
});
if (esArchives) {
lifecycle.beforeTests.add(async () => {
for (const archive of esArchives) {
await esArchiver.load(archive);
}
});
lifecycle.cleanup.add(async () => {
for (const archive of esArchives) {
await esArchiver.unload(archive);
}
});
}
return esArchiver;
}