mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Move activating cluster into injectable IPC (#7355)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
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> {
|
||||
|
||||
@@ -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",
|
||||
});
|
||||
Reference in new issue
Block a user