summaryrefslogtreecommitdiff
path: root/src/store/modules/Health/EventLogStore.js
blob: 404a9639e6aca41afc6f7a6682a6cc4c8e9eb0c8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
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;