diff --git a/src/common/front-end-routing/routes/cluster/helm/releases/navigate-to-helm-releases.injectable.ts b/src/common/front-end-routing/routes/cluster/helm/releases/navigate-to-helm-releases.injectable.ts
index 77fae74011..3d9aebddf5 100644
--- a/src/common/front-end-routing/routes/cluster/helm/releases/navigate-to-helm-releases.injectable.ts
+++ b/src/common/front-end-routing/routes/cluster/helm/releases/navigate-to-helm-releases.injectable.ts
@@ -16,8 +16,7 @@ const navigateToHelmReleasesInjectable = getInjectable({
const navigateToRoute = di.inject(navigateToRouteInjectionToken);
const route = di.inject(helmReleasesRouteInjectable);
- return (parameters) =>
- navigateToRoute(route, { parameters });
+ return (parameters) => navigateToRoute(route, { parameters });
},
});
diff --git a/src/features/helm-releases/__snapshots__/showing-details-for-helm-release.test.ts.snap b/src/features/helm-releases/__snapshots__/showing-details-for-helm-release.test.ts.snap
index 192dfdcf68..ced68044ac 100644
--- a/src/features/helm-releases/__snapshots__/showing-details-for-helm-release.test.ts.snap
+++ b/src/features/helm-releases/__snapshots__/showing-details-for-helm-release.test.ts.snap
@@ -5388,8 +5388,7 @@ exports[`showing details for helm release given application is started when navi
- NaNy
- ago (some-updated)
+ NaNy ago (some-updated)
- NaNy
- ago (some-updated)
+ NaNy ago (some-updated)
- NaNy
- ago (some-updated)
+ NaNy ago (some-updated)
- NaNy
- ago (some-updated)
+ NaNy ago (some-updated)
- NaNy
- ago (some-updated)
+ NaNy ago (some-updated)
- NaNy
- ago (some-updated)
+ NaNy ago (some-updated)
- Failed to load release
+ Failed to load release:
+
+ some-error
diff --git a/src/main/helm/helm-service/get-helm-release-resources/call-for-helm-manifest/call-for-helm-manifest.injectable.ts b/src/main/helm/helm-service/get-helm-release-resources/call-for-helm-manifest/call-for-helm-manifest.injectable.ts
index e23966d00d..960fb0f860 100644
--- a/src/main/helm/helm-service/get-helm-release-resources/call-for-helm-manifest/call-for-helm-manifest.injectable.ts
+++ b/src/main/helm/helm-service/get-helm-release-resources/call-for-helm-manifest/call-for-helm-manifest.injectable.ts
@@ -6,12 +6,7 @@ import { getInjectable } from "@ogre-tools/injectable";
import type { AsyncResult } from "../../../../../common/utils/async-result";
import execHelmInjectable from "../../../exec-helm/exec-helm.injectable";
import yaml from "js-yaml";
-
-export interface HelmResourceManifest {
- metadata: {
- namespace: string;
- };
-}
+import type { KubeJsonApiData } from "../../../../../common/k8s-api/kube-json-api";
const callForHelmManifestInjectable = getInjectable({
id: "call-for-helm-manifest",
@@ -23,7 +18,7 @@ const callForHelmManifestInjectable = getInjectable({
name: string,
namespace: string,
kubeconfigPath: string,
- ): Promise> => {
+ ): Promise> => {
const result = await execHelm(
"get",
"manifest",
@@ -42,7 +37,7 @@ const callForHelmManifestInjectable = getInjectable({
callWasSuccessful: true,
response: yaml
.loadAll(result.response)
- .filter((manifest) => !!manifest) as HelmResourceManifest[],
+ .filter((manifest) => !!manifest) as KubeJsonApiData[],
};
};
diff --git a/src/main/helm/helm-service/get-helm-release-resources/call-for-kube-resources-by-manifest/call-for-kube-resources-by-manifest.injectable.ts b/src/main/helm/helm-service/get-helm-release-resources/call-for-kube-resources-by-manifest/call-for-kube-resources-by-manifest.injectable.ts
index c530c98385..71a38abf6b 100644
--- a/src/main/helm/helm-service/get-helm-release-resources/call-for-kube-resources-by-manifest/call-for-kube-resources-by-manifest.injectable.ts
+++ b/src/main/helm/helm-service/get-helm-release-resources/call-for-kube-resources-by-manifest/call-for-kube-resources-by-manifest.injectable.ts
@@ -10,13 +10,13 @@ import execFileWithInputInjectable from "./exec-file-with-input/exec-file-with-i
import { getErrorMessage } from "../../../../../common/utils/get-error-message";
import { map } from "lodash/fp";
import { pipeline } from "@ogre-tools/fp";
-import type { HelmResourceManifest } from "../call-for-helm-manifest/call-for-helm-manifest.injectable";
+import type { KubeJsonApiData } from "../../../../../common/k8s-api/kube-json-api";
export type CallForKubeResourcesByManifest = (
namespace: string,
kubeconfigPath: string,
kubectlPath: string,
- resourceManifests: HelmResourceManifest[]
+ resourceManifests: KubeJsonApiData[]
) => Promise;
const callForKubeResourcesByManifestInjectable = getInjectable({
diff --git a/src/renderer/components/+helm-releases/release-details/release-details-content.tsx b/src/renderer/components/+helm-releases/release-details/release-details-content.tsx
index df183ff601..b2bacbd479 100644
--- a/src/renderer/components/+helm-releases/release-details/release-details-content.tsx
+++ b/src/renderer/components/+helm-releases/release-details/release-details-content.tsx
@@ -34,10 +34,16 @@ interface Dependencies {
}
const NonInjectedReleaseDetailsContent = observer(({ model }: Dependencies & ReleaseDetailsContentProps) => {
- const failedToLoad = model.failedToLoad.get();
+ const loadingError = model.loadingError.get();
- if (failedToLoad) {
- return Failed to load release
;
+ if (loadingError) {
+ return (
+
+ Failed to load release:
+ {" "}
+ {loadingError}
+
+ );
}
@@ -58,8 +64,7 @@ const NonInjectedReleaseDetailsContent = observer(({ model }: Dependencies & Rel
- {model.release.getUpdated()}
- {` ago (${model.release.updated})`}
+ {`${model.release.getUpdated()} ago (${model.release.updated})`}
{model.release.getNs()}
diff --git a/src/renderer/components/+helm-releases/release-details/release-details-drawer-toolbar.tsx b/src/renderer/components/+helm-releases/release-details/release-details-drawer-toolbar.tsx
index 5336ffbb25..cb7d5009ec 100644
--- a/src/renderer/components/+helm-releases/release-details/release-details-drawer-toolbar.tsx
+++ b/src/renderer/components/+helm-releases/release-details/release-details-drawer-toolbar.tsx
@@ -21,19 +21,23 @@ interface ReleaseDetailsDrawerProps {
interface Dependencies {
model: ReleaseDetailsModel;
- closeDrawer: () => void;
+ navigateToHelmReleases: () => void;
}
-const NonInjectedReleaseDetailsDrawerToolbar = observer(
- ({ model, closeDrawer }: Dependencies & ReleaseDetailsDrawerProps) =>
- model.failedToLoad.get() ? null : (
+const NonInjectedReleaseDetailsDrawerToolbar = observer(({
+ model,
+ navigateToHelmReleases,
+}: Dependencies & ReleaseDetailsDrawerProps) => (
+ model.loadingError.get()
+ ? null
+ : (
- ),
-);
+ )
+));
export const ReleaseDetailsDrawerToolbar = withInjectables<
Dependencies,
@@ -43,7 +47,7 @@ export const ReleaseDetailsDrawerToolbar = withInjectables<
getProps: async (di, props) => ({
model: await di.inject(releaseDetailsModelInjectable, props.targetRelease),
- closeDrawer: di.inject(navigateToHelmReleasesInjectable),
+ navigateToHelmReleases: di.inject(navigateToHelmReleasesInjectable),
...props,
}),
});
diff --git a/src/renderer/components/+helm-releases/release-details/release-details-model/release-details-model.injectable.tsx b/src/renderer/components/+helm-releases/release-details/release-details-model/release-details-model.injectable.tsx
index 0ccf416f4a..ebedbcdcdf 100644
--- a/src/renderer/components/+helm-releases/release-details/release-details-model/release-details-model.injectable.tsx
+++ b/src/renderer/components/+helm-releases/release-details/release-details-model/release-details-model.injectable.tsx
@@ -54,7 +54,7 @@ const releaseDetailsModelInjectable = getInjectable({
showCheckedErrorNotification,
showSuccessNotification,
createUpgradeChartTab,
- closeDrawer: navigateToHelmReleases,
+ navigateToHelmReleases,
});
await model.load();
@@ -63,47 +63,46 @@ const releaseDetailsModelInjectable = getInjectable({
},
lifecycle: lifecycleEnum.keyedSingleton({
- getInstanceKey: (di, release: TargetHelmRelease) =>
- `${release.namespace}/${release.name}`,
+ getInstanceKey: (di, release: TargetHelmRelease) => `${release.namespace}/${release.name}`,
}),
});
export default releaseDetailsModelInjectable;
export interface OnlyUserSuppliedValuesAreShownToggle {
- value: IObservableValue;
+ readonly value: IObservableValue;
toggle: () => Promise;
}
export interface ConfigurationInput {
- nonSavedValue: IObservableValue;
- isLoading: IObservableValue;
- isSaving: IObservableValue;
+ readonly nonSavedValue: IObservableValue;
+ readonly isLoading: IObservableValue;
+ readonly isSaving: IObservableValue;
onChange: (value: string) => void;
save: () => Promise;
}
interface Dependencies {
+ readonly targetRelease: TargetHelmRelease;
+ readonly activeTheme: IComputedValue;
callForHelmRelease: CallForHelmRelease;
- targetRelease: TargetHelmRelease;
- activeTheme: IComputedValue;
callForHelmReleaseConfiguration: CallForHelmReleaseConfiguration;
getResourceDetailsUrl: GetResourceDetailsUrl;
updateRelease: CallForHelmReleaseUpdate;
showCheckedErrorNotification: ShowCheckedErrorNotification;
showSuccessNotification: ShowNotification;
createUpgradeChartTab: (release: HelmRelease) => string;
- closeDrawer: () => void;
+ navigateToHelmReleases: () => void;
}
export class ReleaseDetailsModel {
- id = `${this.dependencies.targetRelease.namespace}/${this.dependencies.targetRelease.name}`;
+ readonly id = `${this.dependencies.targetRelease.namespace}/${this.dependencies.targetRelease.name}`;
- constructor(private dependencies: Dependencies) {}
+ constructor(private readonly dependencies: Dependencies) {}
- private detailedRelease = observable.box();
+ private readonly detailedRelease = observable.box();
- readonly failedToLoad = observable.box(false);
+ readonly loadingError = observable.box();
readonly configuration: ConfigurationInput = {
nonSavedValue: observable.box(""),
@@ -179,7 +178,7 @@ export class ReleaseDetailsModel {
if (!result.callWasSuccessful) {
runInAction(() => {
- this.failedToLoad.set(true);
+ this.loadingError.set(result.error);
});
return;
@@ -257,13 +256,13 @@ export class ReleaseDetailsModel {
}
close = () => {
- this.dependencies.closeDrawer();
+ this.dependencies.navigateToHelmReleases();
};
startUpgradeProcess = () => {
this.dependencies.createUpgradeChartTab(this.release);
- this.dependencies.closeDrawer();
+ this.dependencies.navigateToHelmReleases();
};
}