Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[esArchiver] drop support for --dir, use repo-relative paths instead #101345

Merged
  •  
  •  
  •  
Original file line number Diff line number Diff line change
Expand Up @@ -229,9 +229,9 @@ export default function ({ getService, getPageObject }) {
before(async () => {
await Promise.all([
// start with an empty .kibana index
esArchiver.load('empty_kibana'),
esArchiver.load('test/functional/fixtures/es_archiver/empty_kibana'),
// load some basic log data only if the index doesn't exist
esArchiver.loadIfNeeded('makelogs')
esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/makelogs')
]);
// go to the page described by `apps.visualize` in the config
await PageObjects.common.navigateTo('visualize');
Expand All @@ -243,7 +243,7 @@ export default function ({ getService, getPageObject }) {
// we unload the empty_kibana archive but not the makelogs
// archive because we don't make any changes to it, and subsequent
// suites could use it if they call `.loadIfNeeded()`.
await esArchiver.unload('empty_kibana');
await esArchiver.unload('test/functional/fixtures/es_archiver/empty_kibana');
});

// This series of tests illustrate how tests generally verify
Expand Down Expand Up @@ -370,9 +370,9 @@ await testSubjects.click(‘containerButton’);
* Source: {blob}test/common/services/es_archiver.ts[test/common/services/es_archiver.ts]
* Load/unload archives created with the `esArchiver`
* Popular methods:
** `esArchiver.load(name)`
** `esArchiver.loadIfNeeded(name)`
** `esArchiver.unload(name)`
** `esArchiver.load(path)`
** `esArchiver.loadIfNeeded(path)`
** `esArchiver.unload(path)`

Full list of services that are used in functional tests can be found here: {blob}test/functional/services[test/functional/services]

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,11 +58,6 @@ export default async function ({ readConfigFile }) {
}
},

// choose where esArchiver should load archives from
esArchiver: {
directory: resolve(__dirname, './es_archives'),
},

// choose where screenshots should be saved
screenshots: {
directory: resolve(__dirname, './tmp/screenshots'),
Expand Down
20 changes: 9 additions & 11 deletions packages/kbn-es-archiver/src/actions/edit.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
* Side Public License, v 1.
*/

import { resolve, relative } from 'path';
import { relative } from 'path';
import Fs from 'fs';
import { createGunzip, createGzip, Z_BEST_COMPRESSION } from 'zlib';
import { createGunzip, createGzip, constants } from 'zlib';
import { promisify } from 'util';
import globby from 'globby';
import { ToolingLog } from '@kbn/dev-utils';
Expand All @@ -17,24 +17,22 @@ import { createPromiseFromStreams } from '@kbn/utils';
const unlinkAsync = promisify(Fs.unlink);

export async function editAction({
prefix,
dataDir,
path,
log,
handler,
}: {
prefix: string;
dataDir: string;
path: string;
log: ToolingLog;
handler: () => Promise<any>;
}) {
const archives = (
await globby('**/*.gz', {
cwd: prefix ? resolve(dataDir, prefix) : dataDir,
cwd: path,
absolute: true,
})
).map((path) => ({
path,
rawPath: path.slice(0, -3),
).map((found) => ({
path: found,
rawPath: found.slice(0, -3),
}));

await Promise.all(
Expand All @@ -61,7 +59,7 @@ export async function editAction({
archives.map(async (archive) => {
await createPromiseFromStreams([
Fs.createReadStream(archive.rawPath),
createGzip({ level: Z_BEST_COMPRESSION }),
createGzip({ level: constants.Z_BEST_COMPRESSION }),
Fs.createWriteStream(archive.path),
]);

Expand Down
12 changes: 5 additions & 7 deletions packages/kbn-es-archiver/src/actions/load.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@
* Side Public License, v 1.
*/

import { resolve } from 'path';
import { resolve, relative } from 'path';
import { createReadStream } from 'fs';
import { Readable } from 'stream';
import { ToolingLog } from '@kbn/dev-utils';
import { ToolingLog, REPO_ROOT } from '@kbn/dev-utils';
import { KbnClient } from '@kbn/test';
import type { KibanaClient } from '@elastic/elasticsearch/api/kibana';
import { createPromiseFromStreams, concatStreamProviders } from '@kbn/utils';
Expand Down Expand Up @@ -37,23 +37,21 @@ const pipeline = (...streams: Readable[]) =>
);

export async function loadAction({
name,
inputDir,
skipExisting,
useCreate,
client,
dataDir,
log,
kbnClient,
}: {
name: string;
inputDir: string;
skipExisting: boolean;
useCreate: boolean;
client: KibanaClient;
dataDir: string;
log: ToolingLog;
kbnClient: KbnClient;
}) {
const inputDir = resolve(dataDir, name);
const name = relative(REPO_ROOT, inputDir);
const stats = createStats(name, log);
const files = prioritizeMappings(await readDirectory(inputDir));
const kibanaPluginIds = await kbnClient.plugins.getEnabledIds();
Expand Down
21 changes: 6 additions & 15 deletions packages/kbn-es-archiver/src/actions/rebuild_all.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@
* Side Public License, v 1.
*/

import { resolve, dirname, relative } from 'path';
import { resolve, relative } from 'path';
import { stat, Stats, rename, createReadStream, createWriteStream } from 'fs';
import { Readable, Writable } from 'stream';
import { fromNode } from 'bluebird';
import { ToolingLog } from '@kbn/dev-utils';
import { ToolingLog, REPO_ROOT } from '@kbn/dev-utils';
import { createPromiseFromStreams } from '@kbn/utils';
import {
prioritizeMappings,
Expand All @@ -25,15 +25,7 @@ async function isDirectory(path: string): Promise<boolean> {
return stats.isDirectory();
}

export async function rebuildAllAction({
dataDir,
log,
rootDir = dataDir,
}: {
dataDir: string;
log: ToolingLog;
rootDir?: string;
}) {
export async function rebuildAllAction({ dataDir, log }: { dataDir: string; log: ToolingLog }) {
const childNames = prioritizeMappings(await readDirectory(dataDir));
for (const childName of childNames) {
const childPath = resolve(dataDir, childName);
Expand All @@ -42,13 +34,12 @@ export async function rebuildAllAction({
await rebuildAllAction({
dataDir: childPath,
log,
rootDir,
});
continue;
}

const archiveName = dirname(relative(rootDir, childPath));
log.info(`${archiveName} Rebuilding ${childName}`);
const archiveName = relative(REPO_ROOT, childPath);
log.info('[%s] Rebuilding %j', archiveName, childName);
const gzip = isGzip(childPath);
const tempFile = childPath + (gzip ? '.rebuilding.gz' : '.rebuilding');

Expand All @@ -60,6 +51,6 @@ export async function rebuildAllAction({
] as [Readable, ...Writable[]]);

await fromNode((cb) => rename(tempFile, childPath, cb));
log.info(`${archiveName} Rebuilt ${childName}`);
log.info('[%s] Rebuilt %j', archiveName, childName);
}
}
12 changes: 5 additions & 7 deletions packages/kbn-es-archiver/src/actions/save.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@
* Side Public License, v 1.
*/

import { resolve } from 'path';
import { resolve, relative } from 'path';
import { createWriteStream, mkdirSync } from 'fs';
import { Readable, Writable } from 'stream';
import type { KibanaClient } from '@elastic/elasticsearch/api/kibana';
import { ToolingLog } from '@kbn/dev-utils';
import { ToolingLog, REPO_ROOT } from '@kbn/dev-utils';
import { createListStream, createPromiseFromStreams } from '@kbn/utils';

import {
Expand All @@ -22,23 +22,21 @@ import {
} from '../lib';

export async function saveAction({
name,
outputDir,
indices,
client,
dataDir,
log,
raw,
query,
}: {
name: string;
outputDir: string;
indices: string | string[];
client: KibanaClient;
dataDir: string;
log: ToolingLog;
raw: boolean;
query?: Record<string, any>;
}) {
const outputDir = resolve(dataDir, name);
const name = relative(REPO_ROOT, outputDir);
const stats = createStats(name, log);

log.info('[%s] Creating archive of %j', name, indices);
Expand Down
12 changes: 5 additions & 7 deletions packages/kbn-es-archiver/src/actions/unload.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@
* Side Public License, v 1.
*/

import { resolve } from 'path';
import { resolve, relative } from 'path';
import { createReadStream } from 'fs';
import { Readable, Writable } from 'stream';
import type { KibanaClient } from '@elastic/elasticsearch/api/kibana';
import { ToolingLog } from '@kbn/dev-utils';
import { ToolingLog, REPO_ROOT } from '@kbn/dev-utils';
import { KbnClient } from '@kbn/test';
import { createPromiseFromStreams } from '@kbn/utils';

Expand All @@ -25,19 +25,17 @@ import {
} from '../lib';

export async function unloadAction({
name,
inputDir,
client,
dataDir,
log,
kbnClient,
}: {
name: string;
inputDir: string;
client: KibanaClient;
dataDir: string;
log: ToolingLog;
kbnClient: KbnClient;
}) {
const inputDir = resolve(dataDir, name);
const name = relative(REPO_ROOT, inputDir);
const stats = createStats(name, log);
const kibanaPluginIds = await kbnClient.plugins.getEnabledIds();

Expand Down
Loading