diff --git a/packages/core/src/features/cluster/namespaces/edit-namespace-from-new-tab.test.tsx b/packages/core/src/features/cluster/namespaces/edit-namespace-from-new-tab.test.tsx index f1df8e3a34..a94ad05a23 100644 --- a/packages/core/src/features/cluster/namespaces/edit-namespace-from-new-tab.test.tsx +++ b/packages/core/src/features/cluster/namespaces/edit-namespace-from-new-tab.test.tsx @@ -227,7 +227,7 @@ metadata: it("calls for save with just the adding version label", () => { expect(requestPatchKubeResourceMock).toHaveBeenCalledWith( - someNamespace, + "/apis/some-api-version/namespaces/some-uid", [{ op: "add", path: "/metadata/labels", @@ -527,7 +527,7 @@ metadata: it("calls for save with changed configuration", () => { expect(requestPatchKubeResourceMock).toHaveBeenCalledWith( - someNamespace, + "/apis/some-api-version/namespaces/some-uid", [ { op: "remove", @@ -594,7 +594,7 @@ metadata: fireEvent.click(saveButton); expect(requestPatchKubeResourceMock).toHaveBeenCalledWith( - someNamespace, + "/apis/some-api-version/namespaces/some-uid", [ { op: "add", @@ -782,7 +782,7 @@ metadata: fireEvent.click(saveButton); expect(requestPatchKubeResourceMock).toHaveBeenCalledWith( - someOtherNamespace, + "/apis/some-api-version/namespaces/some-other-uid", [{ op: "add", path: "/metadata/labels", @@ -855,7 +855,7 @@ metadata: fireEvent.click(saveButton); expect(requestPatchKubeResourceMock).toHaveBeenCalledWith( - someNamespace, + "/apis/some-api-version/namespaces/some-uid", [ { op: "add", path: "/metadata/labels", diff --git a/packages/core/src/renderer/components/dock/edit-resource/edit-resource-model/edit-resource-model.injectable.tsx b/packages/core/src/renderer/components/dock/edit-resource/edit-resource-model/edit-resource-model.injectable.tsx index 7dcba54d01..30ceae1f6a 100644 --- a/packages/core/src/renderer/components/dock/edit-resource/edit-resource-model/edit-resource-model.injectable.tsx +++ b/packages/core/src/renderer/components/dock/edit-resource/edit-resource-model/edit-resource-model.injectable.tsx @@ -205,7 +205,7 @@ export class EditResourceModel { return null; } - const result = await this.dependencies.callForPatchResource(this.resource, patches); + const result = await this.dependencies.callForPatchResource(selfLink, patches); if (!result.callWasSuccessful) { this.dependencies.showErrorNotification(( diff --git a/packages/core/src/renderer/components/dock/edit-resource/edit-resource-model/request-patch-kube-resource.injectable.ts b/packages/core/src/renderer/components/dock/edit-resource/edit-resource-model/request-patch-kube-resource.injectable.ts index 1636d74fa7..0eac05a43f 100644 --- a/packages/core/src/renderer/components/dock/edit-resource/edit-resource-model/request-patch-kube-resource.injectable.ts +++ b/packages/core/src/renderer/components/dock/edit-resource/edit-resource-model/request-patch-kube-resource.injectable.ts @@ -4,42 +4,36 @@ */ import { getInjectable } from "@ogre-tools/injectable"; import type { AsyncResult } from "@k8slens/utilities"; -import apiManagerInjectable from "../../../../../common/k8s-api/api-manager/manager.injectable"; import type { JsonPatch } from "../../../../../common/k8s-api/kube-object.store"; -import type { KubeObject } from "../../../../../common/k8s-api/kube-object"; -import assert from "assert"; import { getErrorMessage } from "../../../../../common/utils/get-error-message"; +import apiKubeInjectable from "../../../../k8s/api-kube.injectable"; +import { patchTypeHeaders } from "../../../../../common/k8s-api/kube-api"; -export type RequestPatchKubeResource = ( - item: KubeObject, - patch: JsonPatch -) => AsyncResult<{ name: string; kind: string }>; +export type RequestPatchKubeResource = (selfLink: string, patch: JsonPatch) => AsyncResult<{ name: string; kind: string }>; const requestPatchKubeResourceInjectable = getInjectable({ id: "request-patch-kube-resource", instantiate: (di): RequestPatchKubeResource => { - const apiManager = di.inject(apiManagerInjectable); - - return async (item, patch) => { - const store = apiManager.getStore(item.selfLink); - - assert(store); - - let kubeObject: KubeObject; + const apiKube = di.inject(apiKubeInjectable); + return async (selfLink, patch) => { try { - kubeObject = await store.patch(item, patch); - } catch (e: any) { + const kubeObject = await apiKube.patch(selfLink, { data: patch }, { + headers: { + "content-type": patchTypeHeaders.json, + }, + }); + + return { + callWasSuccessful: true, + response: { name: kubeObject.metadata.name, kind: kubeObject.kind }, + }; + } catch (e) { return { callWasSuccessful: false, error: getErrorMessage(e), }; } - - return { - callWasSuccessful: true, - response: { name: kubeObject.getName(), kind: kubeObject.kind }, - }; }; },