From e8b06f098b784d7f1bce9e98bab90f0acdd0d5a3 Mon Sep 17 00:00:00 2001 From: Juozas Gaigalas Date: Wed, 6 Sep 2023 19:57:51 +0300 Subject: [PATCH] fqkinds record lookup --- src/cli/kubernetes/kubectlGet.ts | 4 +-- src/types/kubernetes/kubernetesTypes.ts | 45 +++++++------------------ src/ui/treeviews/nodes/treeNode.ts | 16 ++------- 3 files changed, 16 insertions(+), 49 deletions(-) diff --git a/src/cli/kubernetes/kubectlGet.ts b/src/cli/kubernetes/kubectlGet.ts index 2de4d928..11e81f6e 100644 --- a/src/cli/kubernetes/kubectlGet.ts +++ b/src/cli/kubernetes/kubectlGet.ts @@ -9,7 +9,7 @@ import { HelmRelease } from 'types/flux/helmRelease'; import { HelmRepository } from 'types/flux/helmRepository'; import { Kustomization } from 'types/flux/kustomization'; import { OCIRepository } from 'types/flux/ociRepository'; -import { Deployment, FullyQualifiedKinds, Kind, KubernetesObject, Pod } from 'types/kubernetes/kubernetesTypes'; +import { Deployment, Kind, KubernetesObject, Pod, qualifyToolkitKind } from 'types/kubernetes/kubernetesTypes'; import { TelemetryError } from 'types/telemetryEventNames'; import { parseJson, parseJsonItems } from 'utils/jsonUtils'; import { invokeKubectlCommand } from './kubernetesToolsKubectl'; @@ -49,7 +49,7 @@ export async function getResourcesAllNamespaces(kind return list as T[]; } - let fqKind = FullyQualifiedKinds[kind]; + let fqKind = qualifyToolkitKind(kind); const shellResult = await invokeKubectlCommand(`get ${fqKind} -A -o json`); if (shellResult?.code !== 0) { diff --git a/src/types/kubernetes/kubernetesTypes.ts b/src/types/kubernetes/kubernetesTypes.ts index 1f27f913..df9dcee1 100644 --- a/src/types/kubernetes/kubernetesTypes.ts +++ b/src/types/kubernetes/kubernetesTypes.ts @@ -50,41 +50,20 @@ export const enum Kind { GitOpsTemplate = 'GitOpsTemplate', } -export const enum FullyKind { - Bucket = 'Buckets.source.toolkit.fluxcd.io', - GitRepository = 'GitRepositories.source.toolkit.fluxcd.io', - OCIRepository = 'OCIRepositories.source.toolkit.fluxcd.io', - HelmRepository = 'HelmRepositories.source.toolkit.fluxcd.io', - HelmRelease = 'HelmReleases.helm.toolkit.fluxcd.io', - Kustomization = 'Kustomizations.kustomize.toolkit.fluxcd.io', - GitOpsTemplate = 'GitOpsTemplates.templates.weave.works', - List = '', - Deployment = '', - Node = '', - Pod = '', - Namespace = '', - ConfigMap = '', -} - -type KindMapType = { - [id in Kind]: FullyKind; +const fullKinds: Record = { + Bucket: 'Buckets.source.toolkit.fluxcd.io', + GitRepository: 'GitRepositories.source.toolkit.fluxcd.io', + OCIRepository: 'OCIRepositories.source.toolkit.fluxcd.io', + HelmRepository: 'HelmRepositories.source.toolkit.fluxcd.io', + HelmRelease: 'HelmReleases.helm.toolkit.fluxcd.io', + Kustomization: 'Kustomizations.kustomize.toolkit.fluxcd.io', + GitOpsTemplate: 'GitOpsTemplates.templates.weave.works', }; -export const FullyQualifiedKinds: KindMapType = { - Bucket: FullyKind.Bucket, - GitRepository: FullyKind.GitRepository, - OCIRepository: FullyKind.OCIRepository, - HelmRepository: FullyKind.HelmRepository, - HelmRelease: FullyKind.HelmRelease, - Kustomization: FullyKind.Kustomization, - GitOpsTemplate: FullyKind.GitOpsTemplate, - List: FullyKind.List, - Deployment: FullyKind.Deployment, - Node: FullyKind.Node, - Pod: FullyKind.Pod, - Namespace: FullyKind.Namespace, - ConfigMap: FullyKind.ConfigMap, -}; +export function qualifyToolkitKind(kind: string): string { + return fullKinds[kind] || kind; +} + export const enum SourceKind { Bucket = 'Bucket', diff --git a/src/ui/treeviews/nodes/treeNode.ts b/src/ui/treeviews/nodes/treeNode.ts index 8793386b..94bfef6d 100644 --- a/src/ui/treeviews/nodes/treeNode.ts +++ b/src/ui/treeviews/nodes/treeNode.ts @@ -2,7 +2,7 @@ import { Command, MarkdownString, ThemeColor, ThemeIcon, TreeItem, TreeItemColla import { CommandId } from 'types/extensionIds'; import { FileTypes } from 'types/fileTypes'; -import { Kind, FullyQualifiedKinds, KubernetesObject } from 'types/kubernetes/kubernetesTypes'; +import { KubernetesObject, qualifyToolkitKind } from 'types/kubernetes/kubernetesTypes'; import { asAbsolutePath } from 'utils/asAbsolutePath'; import { getResourceUri } from 'utils/getResourceUri'; import { KnownTreeNodeResources, createMarkdownTable } from 'utils/markdownUtils'; @@ -142,19 +142,7 @@ export class TreeNode extends TreeItem { } fullyQualifyKind(): string { - let stringKind = ''; - if(this.resource) { - stringKind = this.resource.kind as string; - } - if (stringKind) { - let typedKind: Kind = stringKind as Kind; - let fqKind = FullyQualifiedKinds[typedKind]; - - if(fqKind !== '') { - stringKind = fqKind as string; - } - } - return stringKind; + return qualifyToolkitKind(this.resource?.kind || ''); } // @ts-ignore