mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Move initializing ClusterManager into a runable
Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
parent
8f3e851237
commit
a52ad35e40
@ -5,9 +5,9 @@
|
|||||||
|
|
||||||
import type { ApplicationBuilder } from "../../renderer/components/test-utils/get-application-builder";
|
import type { ApplicationBuilder } from "../../renderer/components/test-utils/get-application-builder";
|
||||||
import { getApplicationBuilder } from "../../renderer/components/test-utils/get-application-builder";
|
import { getApplicationBuilder } from "../../renderer/components/test-utils/get-application-builder";
|
||||||
import type { ClusterManager } from "../../main/cluster-manager";
|
import type { ClusterManager } from "../../main/cluster/manager";
|
||||||
import exitAppInjectable from "../../main/electron-app/features/exit-app.injectable";
|
import exitAppInjectable from "../../main/electron-app/features/exit-app.injectable";
|
||||||
import clusterManagerInjectable from "../../main/cluster-manager.injectable";
|
import clusterManagerInjectable from "../../main/cluster/manager.injectable";
|
||||||
import stopServicesAndExitAppInjectable from "../../main/stop-services-and-exit-app.injectable";
|
import stopServicesAndExitAppInjectable from "../../main/stop-services-and-exit-app.injectable";
|
||||||
import { advanceFakeTime, useFakeTime } from "../../common/test-utils/use-fake-time";
|
import { advanceFakeTime, useFakeTime } from "../../common/test-utils/use-fake-time";
|
||||||
|
|
||||||
|
|||||||
@ -12,8 +12,8 @@ import type { CatalogEntity } from "../../../common/catalog";
|
|||||||
import getClusterByIdInjectable from "../../../common/cluster-store/get-by-id.injectable";
|
import getClusterByIdInjectable from "../../../common/cluster-store/get-by-id.injectable";
|
||||||
import type { Cluster } from "../../../common/cluster/cluster";
|
import type { Cluster } from "../../../common/cluster/cluster";
|
||||||
import { loadConfigFromString } from "../../../common/kube-helpers";
|
import { loadConfigFromString } from "../../../common/kube-helpers";
|
||||||
import { catalogEntityFromCluster } from "../../cluster-manager";
|
import { catalogEntityFromCluster } from "../../cluster/manager";
|
||||||
import clusterManagerInjectable from "../../cluster-manager.injectable";
|
import clusterManagerInjectable from "../../cluster/manager.injectable";
|
||||||
import createClusterInjectable from "../../create-cluster/create-cluster.injectable";
|
import createClusterInjectable from "../../create-cluster/create-cluster.injectable";
|
||||||
import configToModelsInjectable from "./config-to-models.injectable";
|
import configToModelsInjectable from "./config-to-models.injectable";
|
||||||
import kubeconfigSyncLoggerInjectable from "./logger.injectable";
|
import kubeconfigSyncLoggerInjectable from "./logger.injectable";
|
||||||
|
|||||||
@ -1,25 +0,0 @@
|
|||||||
/**
|
|
||||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
|
||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
|
||||||
*/
|
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
|
||||||
import { ClusterManager } from "./cluster-manager";
|
|
||||||
import clusterStoreInjectable from "../common/cluster-store/cluster-store.injectable";
|
|
||||||
import catalogEntityRegistryInjectable from "./catalog/entity-registry.injectable";
|
|
||||||
|
|
||||||
const clusterManagerInjectable = getInjectable({
|
|
||||||
id: "cluster-manager",
|
|
||||||
|
|
||||||
instantiate: (di) => {
|
|
||||||
const clusterManager = new ClusterManager({
|
|
||||||
store: di.inject(clusterStoreInjectable),
|
|
||||||
catalogEntityRegistry: di.inject(catalogEntityRegistryInjectable),
|
|
||||||
});
|
|
||||||
|
|
||||||
clusterManager.init();
|
|
||||||
|
|
||||||
return clusterManager;
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
export default clusterManagerInjectable;
|
|
||||||
24
src/main/cluster/initialize-manager.injectable.ts
Normal file
24
src/main/cluster/initialize-manager.injectable.ts
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
|
*/
|
||||||
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
|
import { onLoadOfApplicationInjectionToken } from "../start-main-application/runnable-tokens/on-load-of-application-injection-token";
|
||||||
|
import clusterManagerInjectable from "./manager.injectable";
|
||||||
|
|
||||||
|
const initializeClusterManagerInjectable = getInjectable({
|
||||||
|
id: "initialize-cluster-manager",
|
||||||
|
instantiate: (di) => {
|
||||||
|
const clusterManager = di.inject(clusterManagerInjectable);
|
||||||
|
|
||||||
|
return {
|
||||||
|
run: () => {
|
||||||
|
clusterManager.init();
|
||||||
|
},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
injectionToken: onLoadOfApplicationInjectionToken,
|
||||||
|
causesSideEffects: true,
|
||||||
|
});
|
||||||
|
|
||||||
|
export default initializeClusterManagerInjectable;
|
||||||
19
src/main/cluster/manager.injectable.ts
Normal file
19
src/main/cluster/manager.injectable.ts
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
|
*/
|
||||||
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
|
import clusterStoreInjectable from "../../common/cluster-store/cluster-store.injectable";
|
||||||
|
import catalogEntityRegistryInjectable from "../catalog/entity-registry.injectable";
|
||||||
|
import { ClusterManager } from "./manager";
|
||||||
|
|
||||||
|
const clusterManagerInjectable = getInjectable({
|
||||||
|
id: "cluster-manager",
|
||||||
|
|
||||||
|
instantiate: (di) => new ClusterManager({
|
||||||
|
store: di.inject(clusterStoreInjectable),
|
||||||
|
catalogEntityRegistry: di.inject(catalogEntityRegistryInjectable),
|
||||||
|
}),
|
||||||
|
});
|
||||||
|
|
||||||
|
export default clusterManagerInjectable;
|
||||||
@ -3,20 +3,20 @@
|
|||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import "../common/ipc/cluster";
|
import "../../common/ipc/cluster";
|
||||||
import type http from "http";
|
import type http from "http";
|
||||||
import { action, makeObservable, observable, observe, reaction, toJS } from "mobx";
|
import { action, makeObservable, observable, observe, reaction, toJS } from "mobx";
|
||||||
import type { Cluster } from "../common/cluster/cluster";
|
import type { Cluster } from "../../common/cluster/cluster";
|
||||||
import logger from "./logger";
|
import logger from "../logger";
|
||||||
import { apiKubePrefix } from "../common/vars";
|
import { apiKubePrefix } from "../../common/vars";
|
||||||
import { getClusterIdFromHost, isErrnoException } from "../common/utils";
|
import { getClusterIdFromHost, isErrnoException } from "../../common/utils";
|
||||||
import type { KubernetesClusterPrometheusMetrics } from "../common/catalog-entities/kubernetes-cluster";
|
import type { KubernetesClusterPrometheusMetrics } from "../../common/catalog-entities/kubernetes-cluster";
|
||||||
import { isKubernetesCluster, KubernetesCluster, LensKubernetesClusterStatus } from "../common/catalog-entities/kubernetes-cluster";
|
import { isKubernetesCluster, KubernetesCluster, LensKubernetesClusterStatus } from "../../common/catalog-entities/kubernetes-cluster";
|
||||||
import { ipcMainOn } from "../common/ipc";
|
import { ipcMainOn } from "../../common/ipc";
|
||||||
import { once } from "lodash";
|
import { once } from "lodash";
|
||||||
import type { ClusterStore } from "../common/cluster-store/cluster-store";
|
import type { ClusterStore } from "../../common/cluster-store/cluster-store";
|
||||||
import type { ClusterId } from "../common/cluster-types";
|
import type { ClusterId } from "../../common/cluster-types";
|
||||||
import type { CatalogEntityRegistry } from "./catalog";
|
import type { CatalogEntityRegistry } from "../catalog";
|
||||||
|
|
||||||
const logPrefix = "[CLUSTER-MANAGER]:";
|
const logPrefix = "[CLUSTER-MANAGER]:";
|
||||||
|
|
||||||
@ -6,7 +6,7 @@ import { getInjectable } from "@ogre-tools/injectable";
|
|||||||
import directoryForLensLocalStorageInjectable from "../../../../common/directory-for-lens-local-storage/directory-for-lens-local-storage.injectable";
|
import directoryForLensLocalStorageInjectable from "../../../../common/directory-for-lens-local-storage/directory-for-lens-local-storage.injectable";
|
||||||
import { setupIpcMainHandlers } from "./setup-ipc-main-handlers";
|
import { setupIpcMainHandlers } from "./setup-ipc-main-handlers";
|
||||||
import loggerInjectable from "../../../../common/logger.injectable";
|
import loggerInjectable from "../../../../common/logger.injectable";
|
||||||
import clusterManagerInjectable from "../../../cluster-manager.injectable";
|
import clusterManagerInjectable from "../../../cluster/manager.injectable";
|
||||||
import applicationMenuItemsInjectable from "../../../menu/application-menu-items.injectable";
|
import applicationMenuItemsInjectable from "../../../menu/application-menu-items.injectable";
|
||||||
import getAbsolutePathInjectable from "../../../../common/path/get-absolute-path.injectable";
|
import getAbsolutePathInjectable from "../../../../common/path/get-absolute-path.injectable";
|
||||||
import clusterStoreInjectable from "../../../../common/cluster-store/cluster-store.injectable";
|
import clusterStoreInjectable from "../../../../common/cluster-store/cluster-store.injectable";
|
||||||
|
|||||||
@ -12,7 +12,7 @@ import { appEventBus } from "../../../../common/app-event-bus/event-bus";
|
|||||||
import { broadcastMainChannel, broadcastMessage, ipcMainHandle, ipcMainOn } from "../../../../common/ipc";
|
import { broadcastMainChannel, broadcastMessage, ipcMainHandle, ipcMainOn } from "../../../../common/ipc";
|
||||||
import type { CatalogEntityRegistry } from "../../../catalog";
|
import type { CatalogEntityRegistry } from "../../../catalog";
|
||||||
import { pushCatalogToRenderer } from "../../../catalog-pusher";
|
import { pushCatalogToRenderer } from "../../../catalog-pusher";
|
||||||
import type { ClusterManager } from "../../../cluster-manager";
|
import type { ClusterManager } from "../../../cluster/manager";
|
||||||
import { ResourceApplier } from "../../../resource-applier";
|
import { ResourceApplier } from "../../../resource-applier";
|
||||||
import { remove } from "fs-extra";
|
import { remove } from "fs-extra";
|
||||||
import type { IComputedValue } from "mobx";
|
import type { IComputedValue } from "mobx";
|
||||||
|
|||||||
@ -88,6 +88,9 @@ import { registerMobX } from "@ogre-tools/injectable-extension-for-mobx";
|
|||||||
import electronInjectable from "./utils/resolve-system-proxy/electron.injectable";
|
import electronInjectable from "./utils/resolve-system-proxy/electron.injectable";
|
||||||
import type { HotbarStore } from "../common/hotbars/store";
|
import type { HotbarStore } from "../common/hotbars/store";
|
||||||
import focusApplicationInjectable from "./electron-app/features/focus-application.injectable";
|
import focusApplicationInjectable from "./electron-app/features/focus-application.injectable";
|
||||||
|
import kubectlDownloadingNormalizedArchInjectable from "./kubectl/normalized-arch.injectable";
|
||||||
|
import initializeClusterManagerInjectable from "./cluster/initialize-manager.injectable";
|
||||||
|
import addKubeconfigSyncAsEntitySourceInjectable from "./start-main-application/runnables/kube-config-sync/add-source.injectable";
|
||||||
import type { GlobalOverride } from "../common/test-utils/get-global-override";
|
import type { GlobalOverride } from "../common/test-utils/get-global-override";
|
||||||
|
|
||||||
export function getDiForUnitTesting(opts: { doGeneralOverrides?: boolean } = {}) {
|
export function getDiForUnitTesting(opts: { doGeneralOverrides?: boolean } = {}) {
|
||||||
@ -125,7 +128,7 @@ export function getDiForUnitTesting(opts: { doGeneralOverrides?: boolean } = {})
|
|||||||
di.override(electronInjectable, () => ({}));
|
di.override(electronInjectable, () => ({}));
|
||||||
di.override(waitUntilBundledExtensionsAreLoadedInjectable, () => async () => {});
|
di.override(waitUntilBundledExtensionsAreLoadedInjectable, () => async () => {});
|
||||||
di.override(getRandomIdInjectable, () => () => "some-irrelevant-random-id");
|
di.override(getRandomIdInjectable, () => () => "some-irrelevant-random-id");
|
||||||
|
di.override(kubectlDownloadingNormalizedArchInjectable, () => "amd64");
|
||||||
di.override(hotbarStoreInjectable, () => ({
|
di.override(hotbarStoreInjectable, () => ({
|
||||||
load: () => {},
|
load: () => {},
|
||||||
getActive: () => ({ name: "some-hotbar", items: [] }),
|
getActive: () => ({ name: "some-hotbar", items: [] }),
|
||||||
@ -204,6 +207,8 @@ export function getDiForUnitTesting(opts: { doGeneralOverrides?: boolean } = {})
|
|||||||
const overrideRunnablesHavingSideEffects = (di: DiContainer) => {
|
const overrideRunnablesHavingSideEffects = (di: DiContainer) => {
|
||||||
[
|
[
|
||||||
initializeExtensionsInjectable,
|
initializeExtensionsInjectable,
|
||||||
|
initializeClusterManagerInjectable,
|
||||||
|
addKubeconfigSyncAsEntitySourceInjectable,
|
||||||
setupIpcMainHandlersInjectable,
|
setupIpcMainHandlersInjectable,
|
||||||
setupLensProxyInjectable,
|
setupLensProxyInjectable,
|
||||||
setupShellInjectable,
|
setupShellInjectable,
|
||||||
|
|||||||
@ -7,7 +7,7 @@ import { LensProxy } from "./lens-proxy";
|
|||||||
import { kubeApiUpgradeRequest } from "./proxy-functions";
|
import { kubeApiUpgradeRequest } from "./proxy-functions";
|
||||||
import routerInjectable from "../router/router.injectable";
|
import routerInjectable from "../router/router.injectable";
|
||||||
import httpProxy from "http-proxy";
|
import httpProxy from "http-proxy";
|
||||||
import clusterManagerInjectable from "../cluster-manager.injectable";
|
import clusterManagerInjectable from "../cluster/manager.injectable";
|
||||||
import shellApiRequestInjectable from "./proxy-functions/shell-api-request/shell-api-request.injectable";
|
import shellApiRequestInjectable from "./proxy-functions/shell-api-request/shell-api-request.injectable";
|
||||||
import lensProxyPortInjectable from "./lens-proxy-port.injectable";
|
import lensProxyPortInjectable from "./lens-proxy-port.injectable";
|
||||||
import contentSecurityPolicyInjectable from "../../common/vars/content-security-policy.injectable";
|
import contentSecurityPolicyInjectable from "../../common/vars/content-security-policy.injectable";
|
||||||
|
|||||||
@ -6,7 +6,7 @@ import { getInjectable } from "@ogre-tools/injectable";
|
|||||||
import { shellApiRequest } from "./shell-api-request";
|
import { shellApiRequest } from "./shell-api-request";
|
||||||
import createShellSessionInjectable from "../../../shell-session/create-shell-session.injectable";
|
import createShellSessionInjectable from "../../../shell-session/create-shell-session.injectable";
|
||||||
import shellRequestAuthenticatorInjectable from "./shell-request-authenticator/shell-request-authenticator.injectable";
|
import shellRequestAuthenticatorInjectable from "./shell-request-authenticator/shell-request-authenticator.injectable";
|
||||||
import clusterManagerInjectable from "../../../cluster-manager.injectable";
|
import clusterManagerInjectable from "../../../cluster/manager.injectable";
|
||||||
|
|
||||||
const shellApiRequestInjectable = getInjectable({
|
const shellApiRequestInjectable = getInjectable({
|
||||||
id: "shell-api-request",
|
id: "shell-api-request",
|
||||||
|
|||||||
@ -7,7 +7,7 @@ import logger from "../../../logger";
|
|||||||
import type WebSocket from "ws";
|
import type WebSocket from "ws";
|
||||||
import { Server as WebSocketServer } from "ws";
|
import { Server as WebSocketServer } from "ws";
|
||||||
import type { ProxyApiRequestArgs } from "../types";
|
import type { ProxyApiRequestArgs } from "../types";
|
||||||
import type { ClusterManager } from "../../../cluster-manager";
|
import type { ClusterManager } from "../../../cluster/manager";
|
||||||
import URLParse from "url-parse";
|
import URLParse from "url-parse";
|
||||||
import type { Cluster } from "../../../../common/cluster/cluster";
|
import type { Cluster } from "../../../../common/cluster/cluster";
|
||||||
import type { ClusterId } from "../../../../common/cluster-types";
|
import type { ClusterId } from "../../../../common/cluster-types";
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
*/
|
*/
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import clusterManagerInjectable from "../../cluster-manager.injectable";
|
import clusterManagerInjectable from "../../cluster/manager.injectable";
|
||||||
import { beforeQuitOfFrontEndInjectionToken } from "../runnable-tokens/before-quit-of-front-end-injection-token";
|
import { beforeQuitOfFrontEndInjectionToken } from "../runnable-tokens/before-quit-of-front-end-injection-token";
|
||||||
|
|
||||||
const stopClusterManagerInjectable = getInjectable({
|
const stopClusterManagerInjectable = getInjectable({
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import exitAppInjectable from "./electron-app/features/exit-app.injectable";
|
import exitAppInjectable from "./electron-app/features/exit-app.injectable";
|
||||||
import clusterManagerInjectable from "./cluster-manager.injectable";
|
import clusterManagerInjectable from "./cluster/manager.injectable";
|
||||||
import appEventBusInjectable from "../common/app-event-bus/app-event-bus.injectable";
|
import appEventBusInjectable from "../common/app-event-bus/app-event-bus.injectable";
|
||||||
import loggerInjectable from "../common/logger.injectable";
|
import loggerInjectable from "../common/logger.injectable";
|
||||||
import closeAllWindowsInjectable from "./start-main-application/lens-window/hide-all-windows/close-all-windows.injectable";
|
import closeAllWindowsInjectable from "./start-main-application/lens-window/hide-all-windows/close-all-windows.injectable";
|
||||||
|
|||||||
@ -54,7 +54,7 @@ import { RootFrame } from "../../frames/root-frame/root-frame";
|
|||||||
import { ClusterFrame } from "../../frames/cluster-frame/cluster-frame";
|
import { ClusterFrame } from "../../frames/cluster-frame/cluster-frame";
|
||||||
import hostedClusterIdInjectable from "../../cluster-frame-context/hosted-cluster-id.injectable";
|
import hostedClusterIdInjectable from "../../cluster-frame-context/hosted-cluster-id.injectable";
|
||||||
import activeKubernetesClusterInjectable from "../../cluster-frame-context/active-kubernetes-cluster.injectable";
|
import activeKubernetesClusterInjectable from "../../cluster-frame-context/active-kubernetes-cluster.injectable";
|
||||||
import { catalogEntityFromCluster } from "../../../main/cluster-manager";
|
import { catalogEntityFromCluster } from "../../../main/cluster/manager";
|
||||||
import namespaceStoreInjectable from "../+namespaces/store.injectable";
|
import namespaceStoreInjectable from "../+namespaces/store.injectable";
|
||||||
import { isAllowedResource } from "../../../common/cluster/is-allowed-resource";
|
import { isAllowedResource } from "../../../common/cluster/is-allowed-resource";
|
||||||
import createApplicationWindowInjectable from "../../../main/start-main-application/lens-window/application-window/create-application-window.injectable";
|
import createApplicationWindowInjectable from "../../../main/start-main-application/lens-window/application-window/create-application-window.injectable";
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user