Kaynağa Gözat

Sort events by time and fix sub events list not showing anything

jnfrati 4 yıl önce
ebeveyn
işleme
91b73cdb71

+ 24 - 22
dashboard/src/components/events/SubEventsList.tsx

@@ -19,39 +19,41 @@ const SubEventsList: React.FC<{
     const project_id = currentProject?.id;
     const project_id = currentProject?.id;
     const cluster_id = currentCluster?.id;
     const cluster_id = currentCluster?.id;
     const kube_event_id = event?.id;
     const kube_event_id = event?.id;
-
+    let updatedEvent: any = null;
     try {
     try {
-      const updatedEvent = await api
+      updatedEvent = await api
         .getKubeEvent("<token>", {}, { project_id, cluster_id, kube_event_id })
         .getKubeEvent("<token>", {}, { project_id, cluster_id, kube_event_id })
         .then((res) => res?.data);
         .then((res) => res?.data);
+    } catch (error) {
+      console.error(error);
+    }
 
 
+    let logBucketsParsed = [];
+    try {
       const logBucketsData = await api
       const logBucketsData = await api
         .getLogBuckets("token", {}, { project_id, cluster_id, kube_event_id })
         .getLogBuckets("token", {}, { project_id, cluster_id, kube_event_id })
         .then((res) => res?.data);
         .then((res) => res?.data);
 
 
-      const logBucketsParsed = logBucketsData.log_buckets.map(
-        (bucket: string) => {
-          const [
-            _resourceType,
-            _namespace,
-            resource_name,
-            timestamp,
-          ] = bucket.split(":");
-          return {
-            event_type: "log_bucket",
-            resource_name,
-            timestamp: new Date(timestamp).toUTCString(),
-            parent_id: updatedEvent?.id,
-          };
-        }
-      );
-
-      setSubEvents([...updatedEvent.sub_events, ...logBucketsParsed]);
+      logBucketsParsed = logBucketsData.log_buckets.map((bucket: string) => {
+        const [
+          _resourceType,
+          _namespace,
+          resource_name,
+          timestamp,
+        ] = bucket.split(":");
+        return {
+          event_type: "log_bucket",
+          resource_name,
+          timestamp: new Date(timestamp).toUTCString(),
+          parent_id: updatedEvent?.id,
+        };
+      });
     } catch (error) {
     } catch (error) {
       console.error(error);
       console.error(error);
-    } finally {
-      setIsLoading(false);
     }
     }
+
+    setSubEvents([...updatedEvent.sub_events, ...logBucketsParsed]);
+    setIsLoading(false);
   };
   };
 
 
   useEffect(() => {
   useEffect(() => {

+ 17 - 11
dashboard/src/components/events/useEvents.ts

@@ -153,23 +153,29 @@ export const useKubeEvents = (
           timestamp: new Date(s.timestamp).getTime(),
           timestamp: new Date(s.timestamp).getTime(),
         };
         };
       })
       })
-      .sort((prev, next) => prev.timestamp - next.timestamp);
+      .sort((prev, next) => next.timestamp - prev.timestamp);
 
 
     return sortedEvents[0];
     return sortedEvents[0];
   };
   };
 
 
   // Fill up the data missing on events with the subevents
   // Fill up the data missing on events with the subevents
   const processedKubeEvents = useMemo(() => {
   const processedKubeEvents = useMemo(() => {
-    return kubeEvents.map((e: any) => {
-      const lastSubEvent = getLastSubEvent(e.sub_events);
-
-      return {
-        ...e,
-        event_type: lastSubEvent.event_type,
-        timestamp: new Date(lastSubEvent.timestamp).toISOString(),
-        last_message: lastSubEvent.message,
-      };
-    });
+    return kubeEvents
+      .map((e: any) => {
+        const lastSubEvent = getLastSubEvent(e.sub_events);
+
+        return {
+          ...e,
+          event_type: lastSubEvent.event_type,
+          timestamp: new Date(lastSubEvent.timestamp).getTime(),
+          last_message: lastSubEvent.message,
+        };
+      })
+      .sort((prev, next) => next.timestamp - prev.timestamp)
+      .map((s) => ({
+        ...s,
+        timestamp: new Date(s.timestamp).toUTCString(),
+      }));
   }, [kubeEvents]);
   }, [kubeEvents]);
 
 
   return {
   return {