1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

Add more log entries on start up

Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
This commit is contained in:
Lauri Nevala 2021-01-14 10:03:19 +02:00
parent 11595abc93
commit 352b05ac6d
6 changed files with 57 additions and 2 deletions

View File

@ -26,6 +26,8 @@ import { InstalledExtension, extensionDiscovery } from "../extensions/extension-
import type { LensExtensionId } from "../extensions/lens-extension"; import type { LensExtensionId } from "../extensions/lens-extension";
import { installDeveloperTools } from "./developer-tools"; import { installDeveloperTools } from "./developer-tools";
import { filesystemProvisionerStore } from "./extension-filesystem"; import { filesystemProvisionerStore } from "./extension-filesystem";
import requestPromise from "request-promise-native";
import { getAppVersion } from "../common/utils";
const workingDir = path.join(app.getPath("appData"), appName); const workingDir = path.join(app.getPath("appData"), appName);
let proxyPort: number; let proxyPort: number;
@ -67,14 +69,17 @@ app.on("ready", async () => {
app.exit(); app.exit();
}); });
logger.info(`📡 Checking for app updates`);
const updater = new AppUpdater(); const updater = new AppUpdater();
updater.start(); updater.start();
registerFileProtocol("static", __static); registerFileProtocol("static", __static);
logger.info("🤓 Installing developer tools");
await installDeveloperTools(); await installDeveloperTools();
logger.info("💾 Loading stores");
// preload // preload
await Promise.all([ await Promise.all([
userStore.load(), userStore.load(),
@ -86,6 +91,7 @@ app.on("ready", async () => {
// find free port // find free port
try { try {
logger.info("🔑 Getting free port for LensProxy server");
proxyPort = await getFreePort(); proxyPort = await getFreePort();
} catch (error) { } catch (error) {
logger.error(error); logger.error(error);
@ -98,6 +104,7 @@ app.on("ready", async () => {
// run proxy // run proxy
try { try {
logger.info("🔌 Starting LensProxy");
// eslint-disable-next-line unused-imports/no-unused-vars-ts // eslint-disable-next-line unused-imports/no-unused-vars-ts
proxyServer = LensProxy.create(proxyPort, clusterManager); proxyServer = LensProxy.create(proxyPort, clusterManager);
} catch (error) { } catch (error) {
@ -106,10 +113,33 @@ app.on("ready", async () => {
app.exit(); app.exit();
} }
// test proxy connection
try {
logger.info("🔎 Testing LensProxy connection ...");
const response = await requestPromise({
method: "GET",
uri: `http://localhost:${proxyPort}/version`,
resolveWithFullResponse: true
});
const appVersion = JSON.parse(response.body).version;
if (getAppVersion() != appVersion) {
logger.error(`Proxy server responded with invalid response: ${response.body}`);
}
logger.info("⚡ LensProxy connection OK");
} catch (error) {
logger.error("Checking proxy server connection failed", error);
}
extensionLoader.init(); extensionLoader.init();
extensionDiscovery.init(); extensionDiscovery.init();
logger.info("🖥️ Starting WindowManager");
windowManager = WindowManager.getInstance<WindowManager>(proxyPort); windowManager = WindowManager.getInstance<WindowManager>(proxyPort);
logger.info("🧩 Initializing extensions");
// call after windowManager to see splash earlier // call after windowManager to see splash earlier
try { try {
const extensions = await extensionDiscovery.load(); const extensions = await extensionDiscovery.load();

View File

@ -29,7 +29,7 @@ export class LensProxy {
listen(port = this.port): this { listen(port = this.port): this {
this.proxyServer = this.buildCustomProxy().listen(port); this.proxyServer = this.buildCustomProxy().listen(port);
logger.info(`LensProxy server has started at ${this.origin}`); logger.info(`[LENS-PROXY] LensProxy server has started at ${this.origin}`);
return this; return this;
} }

View File

@ -5,7 +5,7 @@ import path from "path";
import { readFile } from "fs-extra"; import { readFile } from "fs-extra";
import { Cluster } from "./cluster"; import { Cluster } from "./cluster";
import { apiPrefix, appName, publicPath, isDevelopment, webpackDevServerPort } from "../common/vars"; import { apiPrefix, appName, publicPath, isDevelopment, webpackDevServerPort } from "../common/vars";
import { helmRoute, kubeconfigRoute, metricsRoute, portForwardRoute, resourceApplierRoute, watchRoute } from "./routes"; import { helmRoute, kubeconfigRoute, metricsRoute, portForwardRoute, resourceApplierRoute, watchRoute, versionRoute } from "./routes";
import logger from "./logger"; import logger from "./logger";
export interface RouterRequestOpts { export interface RouterRequestOpts {
@ -143,6 +143,7 @@ export class Router {
this.handleStaticFile(params.path, response, req); this.handleStaticFile(params.path, response, req);
}); });
this.router.add({ method: "get", path: "/version"}, versionRoute.getVersion.bind(versionRoute));
this.router.add({ method: "get", path: `${apiPrefix}/kubeconfig/service-account/{namespace}/{account}` }, kubeconfigRoute.routeServiceAccountRoute.bind(kubeconfigRoute)); this.router.add({ method: "get", path: `${apiPrefix}/kubeconfig/service-account/{namespace}/{account}` }, kubeconfigRoute.routeServiceAccountRoute.bind(kubeconfigRoute));
// Watch API // Watch API

View File

@ -4,3 +4,4 @@ export * from "./port-forward-route";
export * from "./watch-route"; export * from "./watch-route";
export * from "./helm-route"; export * from "./helm-route";
export * from "./resource-applier-route"; export * from "./resource-applier-route";
export * from "./version-route";

View File

@ -0,0 +1,13 @@
import { LensApiRequest } from "../router";
import { LensApi } from "../lens-api";
import { getAppVersion } from "../../common/utils";
class VersionRoute extends LensApi {
public async getVersion(request: LensApiRequest) {
const { response } = request;
this.respondJson(response, { version: getAppVersion()}, 200);
}
}
export const versionRoute = new VersionRoute();

View File

@ -8,6 +8,7 @@ import { initMenu } from "./menu";
import { initTray } from "./tray"; import { initTray } from "./tray";
import { Singleton } from "../common/utils"; import { Singleton } from "../common/utils";
import { ClusterFrameInfo, clusterFrameMap } from "../common/cluster-frames"; import { ClusterFrameInfo, clusterFrameMap } from "../common/cluster-frames";
import logger from "./logger";
export class WindowManager extends Singleton { export class WindowManager extends Singleton {
protected mainWindow: BrowserWindow; protected mainWindow: BrowserWindow;
@ -81,10 +82,19 @@ export class WindowManager extends Singleton {
this.splashWindow = null; this.splashWindow = null;
app.dock?.hide(); // hide icon in dock (mac-os) app.dock?.hide(); // hide icon in dock (mac-os)
}); });
this.mainWindow.webContents.on("did-fail-load", (_event, code, desc) => {
logger.error(`[WINDOW-MANAGER] Failed to load Main window`, code, desc);
});
this.mainWindow.webContents.on("did-finish-load", () => {
logger.info("[WINDOW-MANAGER] Main window loaded");
});
} }
try { try {
if (showSplash) await this.showSplash(); if (showSplash) await this.showSplash();
logger.info(`[WINDOW-MANAGER] Loading Main window from url: ${this.mainUrl} ...`);
await this.mainWindow.loadURL(this.mainUrl); await this.mainWindow.loadURL(this.mainUrl);
this.mainWindow.show(); this.mainWindow.show();
this.splashWindow?.close(); this.splashWindow?.close();