From 8ae55e61354bfe09d95c80b7fc7408a908525d2f Mon Sep 17 00:00:00 2001 From: Sebastian Malton Date: Tue, 1 Dec 2020 16:28:10 -0500 Subject: [PATCH] store more than largest kube api request amount in the event store Signed-off-by: Sebastian Malton --- src/renderer/components/+events/event.store.ts | 1 + src/renderer/kube-object.store.ts | 14 +++++--------- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/src/renderer/components/+events/event.store.ts b/src/renderer/components/+events/event.store.ts index 39d4d5df83..3651ce1549 100644 --- a/src/renderer/components/+events/event.store.ts +++ b/src/renderer/components/+events/event.store.ts @@ -12,6 +12,7 @@ import { apiManager } from "../../api/api-manager"; export class EventStore extends KubeObjectStore { api = eventApi; limit = 1000; + saveLimit = 50000; protected bindWatchEventsUpdater() { return super.bindWatchEventsUpdater(5000); diff --git a/src/renderer/kube-object.store.ts b/src/renderer/kube-object.store.ts index 3de227c03b..2fd33b24b7 100644 --- a/src/renderer/kube-object.store.ts +++ b/src/renderer/kube-object.store.ts @@ -11,7 +11,8 @@ import { getHostedCluster } from "../common/cluster-store"; @autobind() export abstract class KubeObjectStore extends ItemStore { abstract api: KubeApi; - public limit: number; + public readonly abstract limit: number; + public readonly abstract saveLimit: number; constructor() { super(); @@ -179,9 +180,9 @@ export abstract class KubeObjectStore extends ItemSt return; } // create latest non-observable copy of items to apply updates in one action (==single render) - let items = this.items.toJS(); + const items = this.items.toJS(); - this.eventsBuffer.clear().forEach(({ type, object }) => { + for (const {type, object} of this.eventsBuffer.clear()) { const { uid, selfLink } = object.metadata; const index = items.findIndex(item => item.getId() === uid); const item = items[index]; @@ -204,14 +205,9 @@ export abstract class KubeObjectStore extends ItemSt } break; } - }); - - // slice to max allowed items - if (this.limit && items.length > this.limit) { - items = items.slice(-this.limit); } // update items - this.items.replace(this.sortItems(items)); + this.items.replace(this.sortItems(items.slice(-this.saveLimit))); } }