summaryrefslogtreecommitdiff
path: root/src/store/modules/Health/EventLogStore.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/store/modules/Health/EventLogStore.js')
-rw-r--r--src/store/modules/Health/EventLogStore.js72
1 files changed, 72 insertions, 0 deletions
diff --git a/src/store/modules/Health/EventLogStore.js b/src/store/modules/Health/EventLogStore.js
new file mode 100644
index 00000000..404a9639
--- /dev/null
+++ b/src/store/modules/Health/EventLogStore.js
@@ -0,0 +1,72 @@
+import api from '../../api';
+
+const severityToPriorityMap = {
+ Emergency: 'High',
+ Alert: 'High',
+ Critical: 'High',
+ Error: 'High',
+ Warning: 'Medium',
+ Notice: 'Low',
+ Debug: 'Low',
+ Informational: 'Low'
+};
+
+const EventLogStore = {
+ namespaced: true,
+ state: {
+ eventLogData: null
+ },
+ getters: {
+ eventLogData: state => state.eventLogData
+ },
+ mutations: {
+ setEventLogData: (state, eventLogData) =>
+ (state.eventLogData = eventLogData)
+ },
+ actions: {
+ getEventLogData({ commit }) {
+ api
+ .get('/xyz/openbmc_project/logging/enumerate')
+ .then(response => {
+ const eventLog = response.data.data;
+ const entryNumber = /[1-9]/;
+ const eventLogEntries = [];
+ /**
+ * Entry log endpoints:
+ * 'entry' + entry id contain event log entry information
+ * 'callout' contains part number and serial number for part affected
+ */
+ for (let key in eventLog) {
+ // Check for event log entry:
+ if (
+ key.includes('entry') &&
+ key.match(entryNumber) &&
+ !key.includes('callout')
+ ) {
+ const eventKey = eventLog[key];
+ const eventSeverity = eventKey.Severity.split('.').pop();
+ const eventPriority = severityToPriorityMap[eventSeverity];
+ eventLogEntries.push(
+ Object.assign(
+ {
+ logId: eventKey.Id,
+ priority: eventPriority,
+ timestamp: eventKey.Timestamp,
+ eventID: eventKey.EventID,
+ description: eventKey.Description
+ },
+ eventKey
+ )
+ );
+ commit('setEventLogData', eventLogEntries);
+ }
+ }
+ })
+ .catch(error => {
+ console.log('Event Log Data:', error);
+ });
+ }
+ }
+};
+
+export default EventLogStore;