From 01d9d3107572422cf28f49a25013aecbafaa7585 Mon Sep 17 00:00:00 2001 From: James Kerr Date: Tue, 14 Apr 2020 11:51:25 -0700 Subject: [PATCH] fix: Only update space once you've got a snapshot_count of >0 --- src/js/flows/ingestFiles.js | 24 +++++++++++++++--------- src/js/flows/ingestFiles.test.js | 1 + 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/src/js/flows/ingestFiles.js b/src/js/flows/ingestFiles.js index eafabcad09..c73ec686f3 100644 --- a/src/js/flows/ingestFiles.js +++ b/src/js/flows/ingestFiles.js @@ -117,6 +117,10 @@ const trackProgress = (client, dispatch, clusterId) => { dispatch(Spaces.setIngestProgress(clusterId, name, n)) } + async function updateSpaceDetails() { + dispatch(Spaces.setDetail(clusterId, await client.spaces.get(name))) + } + function toPercent(status): number { if (status.packet_total_size === 0) return 1 else return status.packet_read_size / status.packet_total_size @@ -124,15 +128,17 @@ const trackProgress = (client, dispatch, clusterId) => { setProgress(0) for await (let {type, ...status} of stream) { - if (type === "PacketPostStatus") { - setProgress(toPercent(status)) - dispatch(Spaces.setDetail(clusterId, await client.spaces.get(name))) - } - if (type === "LogPostStatus") { - dispatch(Spaces.setDetail(clusterId, await client.spaces.get(name))) - } - if (type === "TaskEnd" && status.error) { - throw errors.pcapIngest(status.error.error) + switch (type) { + case "PacketPostStatus": + setProgress(toPercent(status)) + if (status.snapshot_count > 0) updateSpaceDetails() + break + case "LogPostStatus": + updateSpaceDetails() + break + case "TaskEnd": + if (status.error) throw errors.pcapIngest(status.error.error) + break } } setProgress(1) diff --git a/src/js/flows/ingestFiles.test.js b/src/js/flows/ingestFiles.test.js index aa80638cab..dbd02f33c7 100644 --- a/src/js/flows/ingestFiles.test.js +++ b/src/js/flows/ingestFiles.test.js @@ -23,6 +23,7 @@ let mockClient = { yield {type: "TaskStart"} yield { type: "PacketPostStatus", + snapshot_count: 1, start_time: {sec: 0, ns: 0}, update_time: {sec: 1, ns: 1}, packet_total_size: 100,