blob: 37ba9fc2800914a17ff46f689688eb145270a14e [file] [log] [blame]
Sukanya Pandey34efde22020-12-02 19:04:09 +05301import api, { getResponseCount } from '@/store/api';
2import i18n from '@/i18n';
3
Sandeepa Singhb4406162021-07-26 15:05:39 +05304const SessionsStore = {
Sukanya Pandey34efde22020-12-02 19:04:09 +05305 namespaced: true,
6 state: {
7 allConnections: [],
8 },
9 getters: {
10 allConnections: (state) => state.allConnections,
11 },
12 mutations: {
13 setAllConnections: (state, allConnections) =>
14 (state.allConnections = allConnections),
15 },
16 actions: {
Sandeepa Singhb4406162021-07-26 15:05:39 +053017 async getSessionsData({ commit }) {
Sukanya Pandey34efde22020-12-02 19:04:09 +053018 return await api
19 .get('/redfish/v1/SessionService/Sessions')
20 .then((response) =>
21 response.data.Members.map((sessionLogs) => sessionLogs['@odata.id'])
22 )
23 .then((sessionUris) =>
24 api.all(sessionUris.map((sessionUri) => api.get(sessionUri)))
25 )
26 .then((sessionUris) => {
27 const allConnectionsData = sessionUris.map((sessionUri) => {
Sandeepa Singhd902aa72022-02-01 18:54:33 +053028 //For filtering IP address to IPv4
29 let filteredIPAddress = sessionUri.data?.ClientOriginIPAddress.slice(
30 7
31 );
Sukanya Pandey34efde22020-12-02 19:04:09 +053032 return {
SurenNeware2ef11472021-02-04 19:15:06 +053033 clientID: sessionUri.data?.Oem?.OpenBMC.ClientID,
Sukanya Pandey34efde22020-12-02 19:04:09 +053034 username: sessionUri.data?.UserName,
Sandeepa Singhd902aa72022-02-01 18:54:33 +053035 ipAddress: filteredIPAddress,
Sukanya Pandey34efde22020-12-02 19:04:09 +053036 uri: sessionUri.data['@odata.id'],
37 };
38 });
39 commit('setAllConnections', allConnectionsData);
40 })
41 .catch((error) => {
42 console.log('Client Session Data:', error);
43 });
44 },
45 async disconnectSessions({ dispatch }, uris = []) {
46 const promises = uris.map((uri) =>
47 api.delete(uri).catch((error) => {
48 console.log(error);
49 return error;
50 })
51 );
52 return await api
53 .all(promises)
54 .then((response) => {
Sandeepa Singhb4406162021-07-26 15:05:39 +053055 dispatch('getSessionsData');
Sukanya Pandey34efde22020-12-02 19:04:09 +053056 return response;
57 })
58 .then(
59 api.spread((...responses) => {
60 const { successCount, errorCount } = getResponseCount(responses);
61 const toastMessages = [];
62
63 if (successCount) {
64 const message = i18n.tc(
Sandeepa Singhb4406162021-07-26 15:05:39 +053065 'pageSessions.toast.successDelete',
Sukanya Pandey34efde22020-12-02 19:04:09 +053066 successCount
67 );
68 toastMessages.push({ type: 'success', message });
69 }
70
71 if (errorCount) {
72 const message = i18n.tc(
Sandeepa Singhb4406162021-07-26 15:05:39 +053073 'pageSessions.toast.errorDelete',
Sukanya Pandey34efde22020-12-02 19:04:09 +053074 errorCount
75 );
76 toastMessages.push({ type: 'error', message });
77 }
78 return toastMessages;
79 })
80 );
81 },
82 },
83};
Sandeepa Singhb4406162021-07-26 15:05:39 +053084export default SessionsStore;