From 16aac15f1a1facedd4e35103c77252093b9fb1be Mon Sep 17 00:00:00 2001 From: Alex Andreev Date: Fri, 12 Aug 2022 11:19:54 +0300 Subject: [PATCH] Move downloadAllLogs to model Signed-off-by: Alex Andreev --- .../dock/logs/logs-view-model.injectable.ts | 2 ++ .../components/dock/logs/logs-view-model.ts | 16 +++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/renderer/components/dock/logs/logs-view-model.injectable.ts b/src/renderer/components/dock/logs/logs-view-model.injectable.ts index 9204c041aa..77e4ca983c 100644 --- a/src/renderer/components/dock/logs/logs-view-model.injectable.ts +++ b/src/renderer/components/dock/logs/logs-view-model.injectable.ts @@ -19,6 +19,7 @@ import searchStoreInjectable from "../../../search-store/search-store.injectable import getPodsByOwnerIdInjectable from "../../+workloads-pods/get-pods-by-owner-id.injectable"; import getPodByIdInjectable from "../../+workloads-pods/get-pod-by-id.injectable"; import downloadLogsInjectable from "./download-logs.injectable"; +import downloadAllLogsInjectable from "./download-all-logs.injectable"; export interface InstantiateArgs { tabId: TabId; @@ -41,6 +42,7 @@ const logsViewModelInjectable = getInjectable({ getPodById: di.inject(getPodByIdInjectable), getPodsByOwnerId: di.inject(getPodsByOwnerIdInjectable), downloadLogs: di.inject(downloadLogsInjectable), + downloadAllLogs: di.inject(downloadAllLogsInjectable), searchStore: di.inject(searchStoreInjectable), }), lifecycle: lifecycleEnum.transient, diff --git a/src/renderer/components/dock/logs/logs-view-model.ts b/src/renderer/components/dock/logs/logs-view-model.ts index 50cf2dd04a..6f2b8aaade 100644 --- a/src/renderer/components/dock/logs/logs-view-model.ts +++ b/src/renderer/components/dock/logs/logs-view-model.ts @@ -7,12 +7,13 @@ import type { IComputedValue } from "mobx"; import { computed } from "mobx"; import type { TabId } from "../dock/store"; import type { SearchStore } from "../../../search-store/search-store"; -import type { Pod } from "../../../../common/k8s-api/endpoints"; +import type { Pod, PodLogsQuery } from "../../../../common/k8s-api/endpoints"; import { isDefined } from "../../../utils"; import assert from "assert"; import type { GetPodById } from "../../+workloads-pods/get-pod-by-id.injectable"; import type { GetPodsByOwnerId } from "../../+workloads-pods/get-pods-by-owner-id.injectable"; import type { LoadLogs } from "./load-logs.injectable"; +import type { ResourceDescriptor } from "../../../../common/k8s-api/kube-api"; export interface LogTabViewModelDependencies { getLogs: (tabId: TabId) => string[]; @@ -28,6 +29,7 @@ export interface LogTabViewModelDependencies { getPodsByOwnerId: GetPodsByOwnerId; areLogsPresent: (tabId: TabId) => boolean; downloadLogs: (filename: string, logs: string[]) => void; + downloadAllLogs: (params: ResourceDescriptor, query: PodLogsQuery) => Promise; searchStore: SearchStore; } @@ -92,4 +94,16 @@ export class LogTabViewModel { this.dependencies.downloadLogs(`${fileName}.log`, logsToDownload); } }; + + downloadAllLogs = async () => { + const pod = this.pod.get(); + const tabData = this.logTabData.get(); + + if (pod && tabData) { + const params = { name: pod.getName(), namespace: pod.getNs() }; + const query = { timestamps: tabData.showTimestamps, previous: tabData.showPrevious } + + this.dependencies.downloadAllLogs(params, query); + } + } }