mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 17:28:26 -04:00
* [kbnArchiver] convert archive names to root-relative paths * ensure that newly multiline hooks are explicitly async * missed a newly multiline hook * fix exists check * avoid extra lines by wrapping arrow body in {} * one block more * fix errant `name` variable Co-authored-by: spalger <spalger@users.noreply.github.com> # Conflicts: # test/api_integration/apis/kql_telemetry/kql_telemetry.ts # test/api_integration/apis/saved_objects/bulk_create.ts # test/api_integration/apis/saved_objects/bulk_get.ts # test/api_integration/apis/saved_objects/bulk_update.ts # test/api_integration/apis/saved_objects/create.ts # test/api_integration/apis/saved_objects/delete.ts # test/api_integration/apis/saved_objects/export.ts # test/api_integration/apis/saved_objects/find.ts # test/api_integration/apis/saved_objects/get.ts # test/api_integration/apis/saved_objects/import.ts # test/api_integration/apis/saved_objects/resolve.ts # test/api_integration/apis/saved_objects/resolve_import_errors.ts # test/api_integration/apis/saved_objects/update.ts # test/api_integration/apis/saved_objects_management/find.ts # test/api_integration/apis/saved_objects_management/get.ts # test/api_integration/apis/saved_objects_management/relationships.ts # test/api_integration/apis/shorten/index.js # test/api_integration/apis/stats/stats.js # test/api_integration/apis/suggestions/suggestions.js # test/functional/apps/discover/_discover.ts Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
parent
0074cf5088
commit
34c5979eeb
21 changed files with 38 additions and 53 deletions
|
@ -43,13 +43,11 @@ export function runKbnArchiverCli() {
|
|||
new RunWithCommands({
|
||||
description: 'Import/export saved objects from archives, for testing',
|
||||
globalFlags: {
|
||||
string: ['config', 'space', 'kibana-url', 'dir'],
|
||||
string: ['config', 'space', 'kibana-url'],
|
||||
help: `
|
||||
--space space id to operate on, defaults to the default space
|
||||
--config optional path to an FTR config file that will be parsed and used for defaults
|
||||
--kibana-url set the url that kibana can be reached at, uses the "servers.kibana" setting from --config by default
|
||||
--dir directory that contains exports to be imported, or where exports will be saved, uses the "kbnArchiver.directory"
|
||||
setting from --config by default
|
||||
`,
|
||||
},
|
||||
async extendContext({ log, flags }) {
|
||||
|
@ -79,23 +77,6 @@ export function runKbnArchiverCli() {
|
|||
);
|
||||
}
|
||||
|
||||
let importExportDir;
|
||||
if (flags.dir) {
|
||||
if (typeof flags.dir !== 'string') {
|
||||
throw createFlagError('expected --dir to be a string');
|
||||
}
|
||||
|
||||
importExportDir = flags.dir;
|
||||
} else if (config) {
|
||||
importExportDir = config.get('kbnArchiver.directory');
|
||||
}
|
||||
|
||||
if (!importExportDir) {
|
||||
throw createFlagError(
|
||||
'--config does not include a kbnArchiver.directory, specify it or include --dir flag'
|
||||
);
|
||||
}
|
||||
|
||||
const space = flags.space;
|
||||
if (!(space === undefined || typeof space === 'string')) {
|
||||
throw createFlagError('--space must be a string');
|
||||
|
@ -106,7 +87,7 @@ export function runKbnArchiverCli() {
|
|||
kbnClient: new KbnClient({
|
||||
log,
|
||||
url: kibanaUrl,
|
||||
importExportDir,
|
||||
importExportBaseDir: process.cwd(),
|
||||
}),
|
||||
};
|
||||
},
|
||||
|
|
|
@ -21,7 +21,7 @@ export interface KbnClientOptions {
|
|||
certificateAuthorities?: Buffer[];
|
||||
log: ToolingLog;
|
||||
uiSettingDefaults?: UiSettingValues;
|
||||
importExportDir?: string;
|
||||
importExportBaseDir?: string;
|
||||
}
|
||||
|
||||
export class KbnClient {
|
||||
|
@ -64,7 +64,7 @@ export class KbnClient {
|
|||
this.log,
|
||||
this.requester,
|
||||
this.savedObjects,
|
||||
options.importExportDir
|
||||
options.importExportBaseDir
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -8,10 +8,11 @@
|
|||
|
||||
import { inspect } from 'util';
|
||||
import Fs from 'fs/promises';
|
||||
import { existsSync } from 'fs';
|
||||
import Path from 'path';
|
||||
|
||||
import FormData from 'form-data';
|
||||
import { ToolingLog, isAxiosResponseError, createFailError } from '@kbn/dev-utils';
|
||||
import { ToolingLog, isAxiosResponseError, createFailError, REPO_ROOT } from '@kbn/dev-utils';
|
||||
|
||||
import { KbnClientRequester, uriencode, ReqOptions } from './kbn_client_requester';
|
||||
import { KbnClientSavedObjects } from './kbn_client_saved_objects';
|
||||
|
@ -39,7 +40,7 @@ export class KbnClientImportExport {
|
|||
public readonly log: ToolingLog,
|
||||
public readonly requester: KbnClientRequester,
|
||||
public readonly savedObjects: KbnClientSavedObjects,
|
||||
public readonly dir?: string
|
||||
public readonly baseDir: string = REPO_ROOT
|
||||
) {}
|
||||
|
||||
private resolvePath(path: string) {
|
||||
|
@ -47,18 +48,19 @@ export class KbnClientImportExport {
|
|||
path = `${path}.json`;
|
||||
}
|
||||
|
||||
if (!this.dir && !Path.isAbsolute(path)) {
|
||||
const absolutePath = Path.resolve(this.baseDir, path);
|
||||
if (!existsSync(absolutePath)) {
|
||||
throw new Error(
|
||||
'unable to resolve relative path to import/export without a configured dir, either path absolute path or specify --dir'
|
||||
`unable to resolve path [${path}] to import/export, resolved relative to [${this.baseDir}]`
|
||||
);
|
||||
}
|
||||
|
||||
return this.dir ? Path.resolve(this.dir, path) : path;
|
||||
return absolutePath;
|
||||
}
|
||||
|
||||
async load(name: string, options?: { space?: string }) {
|
||||
const src = this.resolvePath(name);
|
||||
this.log.debug('resolved import for', name, 'to', src);
|
||||
async load(path: string, options?: { space?: string }) {
|
||||
const src = this.resolvePath(path);
|
||||
this.log.debug('resolved import for', path, 'to', src);
|
||||
|
||||
const objects = await parseArchive(src);
|
||||
this.log.info('importing', objects.length, 'saved objects', { space: options?.space });
|
||||
|
@ -91,8 +93,8 @@ export class KbnClientImportExport {
|
|||
}
|
||||
}
|
||||
|
||||
async unload(name: string, options?: { space?: string }) {
|
||||
const src = this.resolvePath(name);
|
||||
async unload(path: string, options?: { space?: string }) {
|
||||
const src = this.resolvePath(path);
|
||||
this.log.debug('unloading docs from archive at', src);
|
||||
|
||||
const objects = await parseArchive(src);
|
||||
|
@ -110,8 +112,8 @@ export class KbnClientImportExport {
|
|||
this.log.success(deleted, 'saved objects deleted');
|
||||
}
|
||||
|
||||
async save(name: string, options: { types: string[]; space?: string }) {
|
||||
const dest = this.resolvePath(name);
|
||||
async save(path: string, options: { types: string[]; space?: string }) {
|
||||
const dest = this.resolvePath(path);
|
||||
this.log.debug('saving export to', dest);
|
||||
|
||||
const resp = await this.req(options.space, {
|
||||
|
|
|
@ -22,7 +22,6 @@ export function KibanaServerProvider({ getService }: FtrProviderContext): KbnCli
|
|||
url,
|
||||
certificateAuthorities: config.get('servers.kibana.certificateAuthorities'),
|
||||
uiSettingDefaults: defaults,
|
||||
importExportDir: config.get('kbnArchiver.directory'),
|
||||
});
|
||||
|
||||
if (defaults) {
|
||||
|
|
|
@ -24,7 +24,7 @@ export default function ({
|
|||
|
||||
before(async function () {
|
||||
await kibanaServer.savedObjects.clean({ types: ['search', 'index-pattern'] });
|
||||
await kibanaServer.importExport.load('discover');
|
||||
await kibanaServer.importExport.load('test/functional/fixtures/kbn_archiver/discover.json');
|
||||
await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/logstash_functional');
|
||||
await kibanaServer.uiSettings.replace(defaultSettings);
|
||||
await PageObjects.common.navigateToApp('discover');
|
||||
|
|
|
@ -36,7 +36,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
describe('discover data grid context tests', () => {
|
||||
before(async () => {
|
||||
await kibanaServer.savedObjects.clean({ types: ['search', 'index-pattern'] });
|
||||
await kibanaServer.importExport.load('discover');
|
||||
await kibanaServer.importExport.load('test/functional/fixtures/kbn_archiver/discover.json');
|
||||
await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/logstash_functional');
|
||||
await PageObjects.timePicker.setDefaultAbsoluteRangeViaUiSettings();
|
||||
await kibanaServer.uiSettings.update(defaultSettings);
|
||||
|
|
|
@ -28,7 +28,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
before(async function () {
|
||||
log.debug('load kibana index with default index pattern');
|
||||
await kibanaServer.savedObjects.clean({ types: ['search', 'index-pattern'] });
|
||||
await kibanaServer.importExport.load('discover');
|
||||
await kibanaServer.importExport.load('test/functional/fixtures/kbn_archiver/discover.json');
|
||||
await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/logstash_functional');
|
||||
await kibanaServer.uiSettings.replace(defaultSettings);
|
||||
await PageObjects.timePicker.setDefaultAbsoluteRangeViaUiSettings();
|
||||
|
|
|
@ -27,7 +27,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
this.tags('includeFirefox');
|
||||
before(async function () {
|
||||
await kibanaServer.savedObjects.clean({ types: ['search', 'index-pattern'] });
|
||||
await kibanaServer.importExport.load('discover');
|
||||
await kibanaServer.importExport.load('test/functional/fixtures/kbn_archiver/discover.json');
|
||||
await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/logstash_functional');
|
||||
await PageObjects.timePicker.setDefaultAbsoluteRangeViaUiSettings();
|
||||
await kibanaServer.uiSettings.update(defaultSettings);
|
||||
|
|
|
@ -30,7 +30,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
before(async function () {
|
||||
log.debug('load kibana index with default index pattern');
|
||||
|
||||
await kibanaServer.importExport.load('discover');
|
||||
await kibanaServer.importExport.load('test/functional/fixtures/kbn_archiver/discover.json');
|
||||
log.info(
|
||||
`\n### SAVED OBJECT TYPES IN index: [.kibana]: \n\t${await savedObjectInfo.types()}`
|
||||
);
|
||||
|
|
|
@ -23,7 +23,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
before(async function () {
|
||||
log.debug('load kibana index with default index pattern');
|
||||
await kibanaServer.savedObjects.clean({ types: ['search', 'index-pattern'] });
|
||||
await kibanaServer.importExport.load('discover');
|
||||
await kibanaServer.importExport.load('test/functional/fixtures/kbn_archiver/discover.json');
|
||||
await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/logstash_functional');
|
||||
await kibanaServer.uiSettings.replace(defaultSettings);
|
||||
log.debug('discover');
|
||||
|
|
|
@ -30,7 +30,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
before(async function () {
|
||||
log.debug('load kibana index with default index pattern');
|
||||
await kibanaServer.savedObjects.clean({ types: ['search', 'index-pattern'] });
|
||||
await kibanaServer.importExport.load('discover');
|
||||
await kibanaServer.importExport.load('test/functional/fixtures/kbn_archiver/discover.json');
|
||||
|
||||
// and load a set of makelogs data
|
||||
await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/logstash_functional');
|
||||
|
|
|
@ -24,7 +24,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
this.tags('includeFirefox');
|
||||
before(async function () {
|
||||
await kibanaServer.savedObjects.clean({ types: ['search', 'index-pattern'] });
|
||||
await kibanaServer.importExport.load('discover');
|
||||
await kibanaServer.importExport.load('test/functional/fixtures/kbn_archiver/discover.json');
|
||||
await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/logstash_functional');
|
||||
await kibanaServer.uiSettings.replace({
|
||||
defaultIndex: 'logstash-*',
|
||||
|
|
|
@ -24,7 +24,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
this.tags('includeFirefox');
|
||||
before(async function () {
|
||||
await kibanaServer.savedObjects.clean({ types: ['search', 'index-pattern'] });
|
||||
await kibanaServer.importExport.load('discover');
|
||||
await kibanaServer.importExport.load('test/functional/fixtures/kbn_archiver/discover.json');
|
||||
await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/logstash_functional');
|
||||
await kibanaServer.uiSettings.replace({
|
||||
defaultIndex: 'logstash-*',
|
||||
|
|
|
@ -25,7 +25,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
before(async function () {
|
||||
log.debug('load kibana index with default index pattern');
|
||||
await kibanaServer.savedObjects.clean({ types: ['search', 'index-pattern'] });
|
||||
await kibanaServer.importExport.load('discover');
|
||||
await kibanaServer.importExport.load('test/functional/fixtures/kbn_archiver/discover.json');
|
||||
|
||||
// and load a set of makelogs data
|
||||
await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/logstash_functional');
|
||||
|
|
|
@ -34,7 +34,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
before(async () => {
|
||||
await kibanaServer.savedObjects.clean({ types: ['search', 'index-pattern'] });
|
||||
|
||||
await kibanaServer.importExport.load('discover');
|
||||
await kibanaServer.importExport.load('test/functional/fixtures/kbn_archiver/discover.json');
|
||||
await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/logstash_functional');
|
||||
// delete .kibana index and update configDoc
|
||||
await kibanaServer.uiSettings.replace({
|
||||
|
|
|
@ -23,7 +23,9 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
before(async function () {
|
||||
await security.testUser.setRoles(['kibana_admin', 'kibana_large_strings']);
|
||||
|
||||
await kibanaServer.importExport.load('testlargestring');
|
||||
await kibanaServer.importExport.load(
|
||||
'test/functional/fixtures/kbn_archiver/testlargestring.json'
|
||||
);
|
||||
await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/hamlet');
|
||||
await kibanaServer.uiSettings.replace({
|
||||
defaultIndex: 'testlargestring',
|
||||
|
|
|
@ -30,7 +30,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
before(async function () {
|
||||
log.debug('load kibana index with default index pattern');
|
||||
await kibanaServer.savedObjects.clean({ types: ['search', 'index-pattern'] });
|
||||
await kibanaServer.importExport.load('discover');
|
||||
await kibanaServer.importExport.load('test/functional/fixtures/kbn_archiver/discover.json');
|
||||
|
||||
// and load a set of makelogs data
|
||||
await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/logstash_functional');
|
||||
|
|
|
@ -38,7 +38,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
|
||||
log.debug('load kibana index with default index pattern');
|
||||
await kibanaServer.savedObjects.clean({ types: ['search', 'index-pattern'] });
|
||||
await kibanaServer.importExport.load('discover');
|
||||
await kibanaServer.importExport.load('test/functional/fixtures/kbn_archiver/discover.json');
|
||||
await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/logstash_functional');
|
||||
|
||||
await kibanaServer.uiSettings.replace({
|
||||
|
|
|
@ -23,7 +23,7 @@ export default function ({ getPageObjects, getService, loadTestFile }: FtrProvid
|
|||
await browser.setWindowSize(1280, 800);
|
||||
await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/logstash_functional');
|
||||
await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/long_window_logstash');
|
||||
await kibanaServer.importExport.load('visualize');
|
||||
await kibanaServer.importExport.load('test/functional/fixtures/kbn_archiver/visualize.json');
|
||||
await kibanaServer.uiSettings.replace({
|
||||
defaultIndex: 'logstash-*',
|
||||
[UI_SETTINGS.FORMAT_BYTES_DEFAULT_PATTERN]: '0,0.[000]b',
|
||||
|
|
|
@ -49,7 +49,9 @@ export class VisualizePageObject extends FtrService {
|
|||
|
||||
public async initTests(isNewLibrary = false) {
|
||||
await this.kibanaServer.savedObjects.clean({ types: ['visualization'] });
|
||||
await this.kibanaServer.importExport.load('visualize');
|
||||
await this.kibanaServer.importExport.load(
|
||||
'test/functional/fixtures/kbn_archiver/visualize.json'
|
||||
);
|
||||
|
||||
await this.kibanaServer.uiSettings.replace({
|
||||
defaultIndex: 'logstash-*',
|
||||
|
|
|
@ -227,7 +227,6 @@ export default ({ getService, getPageObjects }) => {
|
|||
url: process.env.TEST_KIBANA_URLDATA,
|
||||
certificateAuthorities: config.get('servers.kibana.certificateAuthorities'),
|
||||
uiSettingDefaults: kibanaServer.uiSettings,
|
||||
importExportDir: config.get('kbnArchiver.directory'),
|
||||
});
|
||||
|
||||
const esArchiver = new EsArchiver({
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue