Move activating cluster into injectable IPC (#7355)

Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
Sebastian Malton authored and GitHub committed 2023-03-15 08:26:28 -04:00
1 parent 121a50ecf3
commit 497f63fde6
12 files changed
+122 -38

No files matched your search

@@ -9,11 +9,12 @@ import { broadcastMessage } from "../ipc";
import { app } from "electron";
import type { CatalogEntityConstructor, CatalogEntitySpec } from "../catalog/catalog-entity";
import { IpcRendererNavigationEvents } from "../ipc/navigation-events";
import { requestClusterActivation, requestClusterDisconnection } from "../../renderer/ipc";
import { requestClusterDisconnection } from "../../renderer/ipc";
import KubeClusterCategoryIcon from "./icons/kubernetes.svg";
import getClusterByIdInjectable from "../cluster-store/get-by-id.injectable";
import { getLegacyGlobalDiForExtensionApi } from "../../extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api";
import clusterConnectionInjectable from "../../main/cluster/cluster-connection.injectable";
import { requestClusterActivationInjectionToken } from "../../features/cluster/activation/common/request-token";
export interface KubernetesClusterPrometheusMetrics {
address?: {
@@ -77,21 +78,12 @@ export class KubernetesCluster<
public readonly kind = KubernetesCluster.kind;
async connect(): Promise<void> {
if (app) {
const di = getLegacyGlobalDiForExtensionApi();
const getClusterById = di.inject(getClusterByIdInjectable);
const cluster = getClusterById(this.getId());
const di = getLegacyGlobalDiForExtensionApi();
const requestClusterActivation = di.inject(requestClusterActivationInjectionToken);
if (!cluster) {
return;
}
const connectionCluster = di.inject(clusterConnectionInjectable, cluster);
await connectionCluster.activate();
} else {
await requestClusterActivation(this.getId(), false);
}
await requestClusterActivation({
clusterId: this.getId(),
});
}
async disconnect(): Promise<void> {
-1
View File
@@ -3,7 +3,6 @@
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
export const clusterActivateHandler = "cluster:activate";
export const clusterSetFrameIdHandler = "cluster:set-frame-id";
export const clusterVisibilityHandler = "cluster:visibility";
export const clusterDisconnectHandler = "cluster:disconnect";
@@ -10,6 +10,10 @@ export interface RequestFromChannel {
<Response>(channel: RequestChannel<void, Response>): Promise<Awaited<Response>>;
}
export type ChannelRequester<Channel> = Channel extends RequestChannel<infer Request, infer Response>
? (req: Request) => Promise<Awaited<Response>>
: never;
export const requestFromChannelInjectionToken = getInjectionToken<RequestFromChannel>({
id: "request-from-request-channel",
});