From e549a60d7463bf45b3ce1ce94494c02e9c9880d8 Mon Sep 17 00:00:00 2001 From: Ivan Shumkov Date: Sun, 22 Sep 2024 15:32:37 +0300 Subject: [PATCH 1/2] fix(dashmate): doctor fails collecting to big logs --- packages/dashmate/src/docker/DockerCompose.js | 14 ++++++++++++-- .../tasks/doctor/collectSamplesTaskFactory.js | 2 +- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/packages/dashmate/src/docker/DockerCompose.js b/packages/dashmate/src/docker/DockerCompose.js index c9231128be1..279a75a6d29 100644 --- a/packages/dashmate/src/docker/DockerCompose.js +++ b/packages/dashmate/src/docker/DockerCompose.js @@ -487,13 +487,23 @@ export default class DockerCompose { * Logs * * @param {Config} config + * @param {string[]} services + * @param {Object} options + * @param {number} options.tail * @return {Promise} */ - async logs(config, services = []) { + async logs(config, services = [], options = {}) { await this.throwErrorIfNotInstalled(); + const args = [...services]; + if (options.tail) { + args.unshift('--tail', options.tail.toString()); + } + + const commandOptions = this.#createOptions(config); + try { - return dockerCompose.logs(services, this.#createOptions(config)); + await dockerCompose.logs(args, commandOptions); } catch (e) { throw new DockerComposeError(e); } diff --git a/packages/dashmate/src/listr/tasks/doctor/collectSamplesTaskFactory.js b/packages/dashmate/src/listr/tasks/doctor/collectSamplesTaskFactory.js index 1c4d7540be1..8e4ae5794a4 100644 --- a/packages/dashmate/src/listr/tasks/doctor/collectSamplesTaskFactory.js +++ b/packages/dashmate/src/listr/tasks/doctor/collectSamplesTaskFactory.js @@ -323,7 +323,7 @@ export default function collectSamplesTaskFactory( services.map(async (service) => { const [inspect, logs] = (await Promise.allSettled([ dockerCompose.inspectService(config, service.name), - dockerCompose.logs(config, [service.name]), + dockerCompose.logs(config, [service.name], { tail: 300000 }), ])).map((e) => e.value || e.reason); if (logs?.out) { From 1d09aaba19a8f97aba76d5e4cb212ca97dea00c3 Mon Sep 17 00:00:00 2001 From: Ivan Shumkov Date: Sun, 22 Sep 2024 16:42:46 +0300 Subject: [PATCH 2/2] fix: logs returns undefined --- packages/dashmate/src/docker/DockerCompose.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/dashmate/src/docker/DockerCompose.js b/packages/dashmate/src/docker/DockerCompose.js index 279a75a6d29..8a508008055 100644 --- a/packages/dashmate/src/docker/DockerCompose.js +++ b/packages/dashmate/src/docker/DockerCompose.js @@ -490,7 +490,7 @@ export default class DockerCompose { * @param {string[]} services * @param {Object} options * @param {number} options.tail - * @return {Promise} + * @return {Promise<{exitCode: number | null, out: string, err: string}>} */ async logs(config, services = [], options = {}) { await this.throwErrorIfNotInstalled(); @@ -503,7 +503,7 @@ export default class DockerCompose { const commandOptions = this.#createOptions(config); try { - await dockerCompose.logs(args, commandOptions); + return await dockerCompose.logs(args, commandOptions); } catch (e) { throw new DockerComposeError(e); }