Skip to content

Commit

Permalink
[kbn-test] extract ES logs only for svl (#202927)
Browse files Browse the repository at this point in the history
## Summary

PR fixes the issue reported by @dolaru when running stateful FTR
environment without docker setup locally:

```
 info [es] killing node
 info [es] stopping node scout
 info [es] no debug files found, assuming es did not write any
 info [es] cleanup complete
ERROR UNHANDLED ERROR
ERROR Error: Command failed with exit code 1: docker ps -a --format {{.Names}}
      error during connect: Get "http://docker.example.com/v1.47/containers/json?all=1": command [ssh -o ConnectTimeout=30 -T -l dolaru -- debian-12-vm docker system dial-stdio] has exited with exit status 255, make sure the URL is valid, and Docker 18.09 or later is installed on the remote host: stderr=ssh: Could not resolve hostname dolaru-m2-mbp-debian.local: nodename nor servname provided, or not known
          at makeError (/Users/dolaru/workspace/kibana/node_modules/execa/lib/error.js:60:11)
          at handlePromise (/Users/dolaru/workspace/kibana/node_modules/execa/index.js:118:26)
          at processTicksAndRejections (node:internal/process/task_queues:95:5)
          at extractAndArchiveLogs (extract_and_archive_logs.ts:34:41)
          at run_elasticsearch.ts:86:5
```

Since we don't need it for stateful ES instance, I added condition.
kbn-scout had the same issue, so I exported `cleanupElasticsearch` from
`kbn-test` to avoid code duplication
  • Loading branch information
dmlemeshko authored Dec 4, 2024
1 parent c8866e4 commit cdb5a2d
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 8 deletions.
7 changes: 3 additions & 4 deletions packages/kbn-scout/src/servers/run_elasticsearch.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ import { resolve } from 'path';
import type { ToolingLog } from '@kbn/tooling-log';
import { REPO_ROOT } from '@kbn/repo-info';
import type { ArtifactLicense, ServerlessProjectType } from '@kbn/es';
import { isServerlessProjectType, extractAndArchiveLogs } from '@kbn/es/src/utils';
import { createTestEsCluster, esTestConfig } from '@kbn/test';
import { isServerlessProjectType } from '@kbn/es/src/utils';
import { createTestEsCluster, esTestConfig, cleanupElasticsearch } from '@kbn/test';
import { Config } from '../config';

interface RunElasticsearchOptions {
Expand Down Expand Up @@ -82,8 +82,7 @@ export async function runElasticsearch(
config,
});
return async () => {
await node.cleanup();
await extractAndArchiveLogs({ outputFolder: logsDir, log });
await cleanupElasticsearch(node, config.serverless, logsDir, log);
};
}

Expand Down
1 change: 1 addition & 0 deletions packages/kbn-test/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ export {
remapPluginPaths,
getKibanaCliArg,
getKibanaCliLoggers,
cleanupElasticsearch,
} from './src/functional_tests/lib';

export { initLogsDir } from './src/functional_tests/lib';
Expand Down
2 changes: 1 addition & 1 deletion packages/kbn-test/src/functional_tests/lib/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
*/

export { runKibanaServer } from './run_kibana_server';
export { runElasticsearch } from './run_elasticsearch';
export { runElasticsearch, cleanupElasticsearch } from './run_elasticsearch';
export * from './run_ftr';
export {
parseRawFlags,
Expand Down
18 changes: 15 additions & 3 deletions packages/kbn-test/src/functional_tests/lib/run_elasticsearch.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import { REPO_ROOT } from '@kbn/repo-info';
import type { ArtifactLicense, ServerlessProjectType } from '@kbn/es';
import { isServerlessProjectType, extractAndArchiveLogs } from '@kbn/es/src/utils';
import type { Config } from '../../functional_test_runner';
import { createTestEsCluster, esTestConfig } from '../../es';
import { ICluster, createTestEsCluster, esTestConfig } from '../../es';

interface RunElasticsearchOptions {
log: ToolingLog;
Expand Down Expand Up @@ -77,6 +77,19 @@ function getEsConfig({
};
}

export async function cleanupElasticsearch(
node: ICluster,
isServerless: boolean,
logsDir: string | undefined,
log: ToolingLog
): Promise<void> {
await node.cleanup();

if (isServerless) {
await extractAndArchiveLogs({ outputFolder: logsDir, log });
}
}

export async function runElasticsearch(
options: RunElasticsearchOptions
): Promise<() => Promise<void>> {
Expand All @@ -91,8 +104,7 @@ export async function runElasticsearch(
config,
});
return async () => {
await node.cleanup();
await extractAndArchiveLogs({ outputFolder: logsDir, log });
await cleanupElasticsearch(node, config.serverless, logsDir, log);
};
}

Expand Down

0 comments on commit cdb5a2d

Please sign in to comment.