mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Merge branch 'master' into enhancement-ability-to-remove-subnamespaces
This commit is contained in:
12 files changed
+3901
-115
No files matched your search
+8
-7
@@ -37,18 +37,17 @@ export interface RequestMetricsParams {
|
||||
namespace?: string;
|
||||
}
|
||||
|
||||
export interface RequestMetrics {
|
||||
(query: string, params?: RequestMetricsParams): Promise<MetricData>;
|
||||
(query: string[], params?: RequestMetricsParams): Promise<MetricData[]>;
|
||||
<Keys extends string>(query: Record<Keys, Partial<Record<string, string>>>, params?: RequestMetricsParams): Promise<Record<Keys, MetricData>>;
|
||||
}
|
||||
export type RequestMetrics = ReturnType<typeof requestMetricsInjectable["instantiate"]>;
|
||||
|
||||
const requestMetricsInjectable = getInjectable({
|
||||
id: "request-metrics",
|
||||
instantiate: (di) => {
|
||||
const apiBase = di.inject(apiBaseInjectable);
|
||||
|
||||
return (async (query: object, params: RequestMetricsParams = {}) => {
|
||||
function requestMetrics(query: string, params?: RequestMetricsParams): Promise<MetricData>;
|
||||
function requestMetrics(query: string[], params?: RequestMetricsParams): Promise<MetricData[]>;
|
||||
function requestMetrics<Keys extends string>(query: Record<Keys, Partial<Record<string, string>>>, params?: RequestMetricsParams): Promise<Record<Keys, MetricData>>;
|
||||
async function requestMetrics(query: string | string[] | Partial<Record<string, Partial<Record<string, string>>>>, params: RequestMetricsParams = {}): Promise<MetricData | MetricData[] | Partial<Record<string, MetricData>>> {
|
||||
const { range = 3600, step = 60, namespace } = params;
|
||||
let { start, end } = params;
|
||||
|
||||
@@ -66,7 +65,9 @@ const requestMetricsInjectable = getInjectable({
|
||||
"kubernetes_namespace": namespace,
|
||||
},
|
||||
});
|
||||
}) as RequestMetrics;
|
||||
}
|
||||
|
||||
return requestMetrics;
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
@@ -38,6 +38,8 @@ import kubeEventApiInjectable from "../../common/k8s-api/endpoints/events.api.in
|
||||
import roleBindingApiInjectable from "../../common/k8s-api/endpoints/role-binding.api.injectable";
|
||||
import customResourceDefinitionApiInjectable from "../../common/k8s-api/endpoints/custom-resource-definition.api.injectable";
|
||||
import { shouldShowResourceInjectionToken } from "../../common/cluster-store/allowed-resources-injection-token";
|
||||
import { asLegacyGlobalFunctionForExtensionApi } from "../as-legacy-globals-for-extension-api/as-legacy-global-function-for-extension-api";
|
||||
import requestMetricsInjectable from "../../common/k8s-api/endpoints/metrics.api/request-metrics.injectable";
|
||||
|
||||
export function isAllowedResource(resources: KubeResource | KubeResource[]) {
|
||||
const di = getLegacyGlobalDiForExtensionApi();
|
||||
@@ -93,6 +95,17 @@ export const crdApi = asLegacyGlobalForExtensionApi(customResourceDefinitionApiI
|
||||
|
||||
export * from "../common-api/k8s-api";
|
||||
|
||||
export const requestMetrics = asLegacyGlobalFunctionForExtensionApi(requestMetricsInjectable);
|
||||
|
||||
export type {
|
||||
RequestMetrics,
|
||||
RequestMetricsParams,
|
||||
} from "../../common/k8s-api/endpoints/metrics.api/request-metrics.injectable";
|
||||
export type {
|
||||
MetricData,
|
||||
MetricResult,
|
||||
} from "../../common/k8s-api/endpoints/metrics.api";
|
||||
|
||||
export {
|
||||
KubeObjectStatusLevel,
|
||||
type KubeObjectStatus,
|
||||
|
||||
@@ -29,17 +29,9 @@ export async function bootstrap(di: DiContainer) {
|
||||
|
||||
assert(rootElem, "#app MUST exist");
|
||||
|
||||
const extensionLoader = di.inject(extensionLoaderInjectable);
|
||||
|
||||
extensionLoader.init();
|
||||
|
||||
const extensionDiscovery = di.inject(extensionDiscoveryInjectable);
|
||||
|
||||
extensionDiscovery.init();
|
||||
|
||||
const extensionInstallationStateStore = di.inject(extensionInstallationStateStoreInjectable);
|
||||
|
||||
extensionInstallationStateStore.bindIpcListeners();
|
||||
await di.inject(extensionLoaderInjectable).init();
|
||||
await di.inject(extensionDiscoveryInjectable).init();
|
||||
di.inject(extensionInstallationStateStoreInjectable).bindIpcListeners();
|
||||
|
||||
let App;
|
||||
let initializeApp;
|
||||
|
||||
@@ -7,10 +7,6 @@
|
||||
--overlay-bg: #8cc474b8;
|
||||
--overlay-active-bg: orange;
|
||||
|
||||
// fix for `this.logsElement.scrollTop = this.logsElement.scrollHeight`
|
||||
// `overflow: overlay` don't allow scroll to the last line
|
||||
overflow: auto;
|
||||
|
||||
position: relative;
|
||||
color: var(--logsForeground);
|
||||
background: var(--logsBackground);
|
||||
@@ -21,6 +17,7 @@
|
||||
|
||||
.list {
|
||||
overflow-x: scroll!important;
|
||||
overflow-y: auto!important;
|
||||
|
||||
.LogRow {
|
||||
padding: 2px 16px;
|
||||
|
||||
@@ -28,7 +28,7 @@ export interface InstantiateArgs {
|
||||
const logsViewModelInjectable = getInjectable({
|
||||
id: "logs-view-model",
|
||||
|
||||
instantiate: (di, { tabId }: InstantiateArgs) => new LogTabViewModel(tabId, {
|
||||
instantiate: (di, tabId) => new LogTabViewModel(tabId, {
|
||||
getLogs: di.inject(getLogsInjectable),
|
||||
getLogsWithoutTimestamps: di.inject(getLogsWithoutTimestampsInjectable),
|
||||
getTimestampSplitLogs: di.inject(getTimestampSplitLogsInjectable),
|
||||
@@ -45,7 +45,10 @@ const logsViewModelInjectable = getInjectable({
|
||||
downloadAllLogs: di.inject(downloadAllLogsInjectable),
|
||||
searchStore: di.inject(searchStoreInjectable),
|
||||
}),
|
||||
lifecycle: lifecycleEnum.transient,
|
||||
|
||||
lifecycle: lifecycleEnum.keyedSingleton({
|
||||
getInstanceKey: (di, tabId: TabId) => `log-tab-view-model-${tabId}}`,
|
||||
}),
|
||||
});
|
||||
|
||||
export default logsViewModelInjectable;
|
||||
@@ -101,9 +101,7 @@ const NonInjectedLogsDockTab = observer(({
|
||||
export const LogsDockTab = withInjectables<Dependencies, LogsDockTabProps>(NonInjectedLogsDockTab, {
|
||||
getProps: (di, props) => ({
|
||||
...props,
|
||||
model: di.inject(logsViewModelInjectable, {
|
||||
tabId: props.tab.id,
|
||||
}),
|
||||
model: di.inject(logsViewModelInjectable, props.tab.id),
|
||||
subscribeStores: di.inject(subscribeStoresInjectable),
|
||||
podStore: di.inject(podStoreInjectable),
|
||||
}),
|
||||
|
||||
Reference in new issue
Block a user