1f67f769fSSandeepa Singhimport api from '@/store/api'; 2f67f769fSSandeepa Singhimport i18n from '@/i18n'; 3f67f769fSSandeepa Singh 4f67f769fSSandeepa Singhconst NetworkStore = { 5f67f769fSSandeepa Singh namespaced: true, 6f67f769fSSandeepa Singh state: { 7f67f769fSSandeepa Singh ethernetData: [], 8c4b8757eSDixsie Wolmers firstInterfaceId: '', //used for setting global DHCP settings 9182b3f1fSDixsie Wolmers globalNetworkSettings: [], 10b34349d4SDixsie Wolmers selectedInterfaceId: '', // which tab is selected 11b34349d4SDixsie Wolmers selectedInterfaceIndex: 0, // which tab is selected 12f67f769fSSandeepa Singh }, 13f67f769fSSandeepa Singh getters: { 14f67f769fSSandeepa Singh ethernetData: (state) => state.ethernetData, 15c4b8757eSDixsie Wolmers firstInterfaceId: (state) => state.firstInterfaceId, 16182b3f1fSDixsie Wolmers globalNetworkSettings: (state) => state.globalNetworkSettings, 17b34349d4SDixsie Wolmers selectedInterfaceId: (state) => state.selectedInterfaceId, 18b34349d4SDixsie Wolmers selectedInterfaceIndex: (state) => state.selectedInterfaceIndex, 19f67f769fSSandeepa Singh }, 20f67f769fSSandeepa Singh mutations: { 21b34349d4SDixsie Wolmers setDomainNameState: (state, domainState) => 22b34349d4SDixsie Wolmers (state.domainState = domainState), 23b34349d4SDixsie Wolmers setDnsState: (state, dnsState) => (state.dnsState = dnsState), 24f67f769fSSandeepa Singh setEthernetData: (state, ethernetData) => 25f67f769fSSandeepa Singh (state.ethernetData = ethernetData), 26c4b8757eSDixsie Wolmers setFirstInterfaceId: (state, firstInterfaceId) => 27c4b8757eSDixsie Wolmers (state.firstInterfaceId = firstInterfaceId), 28182b3f1fSDixsie Wolmers setGlobalNetworkSettings: (state, data) => { 29182b3f1fSDixsie Wolmers state.globalNetworkSettings = data.map(({ data }) => { 30182b3f1fSDixsie Wolmers const { 31c4b8757eSDixsie Wolmers DHCPv4, 32db47b7e1SSean Zhang DHCPv6, 33182b3f1fSDixsie Wolmers HostName, 34182b3f1fSDixsie Wolmers IPv4Addresses, 35c4b8757eSDixsie Wolmers IPv4StaticAddresses, 36db47b7e1SSean Zhang IPv6Addresses, 37db47b7e1SSean Zhang IPv6StaticAddresses, 38c4b8757eSDixsie Wolmers LinkStatus, 3912dc20c3SDixsie Wolmers MACAddress, 40db47b7e1SSean Zhang IPv6DefaultGateway, 41182b3f1fSDixsie Wolmers } = data; 42182b3f1fSDixsie Wolmers return { 43b34349d4SDixsie Wolmers defaultGateway: IPv4StaticAddresses[0]?.Gateway, //First static gateway is the default gateway 44db47b7e1SSean Zhang ipv6DefaultGateway: IPv6DefaultGateway, 45182b3f1fSDixsie Wolmers dhcpAddress: IPv4Addresses.filter( 468132399cSEd Tanous (ipv4) => ipv4.AddressOrigin === 'DHCP', 47182b3f1fSDixsie Wolmers ), 48db47b7e1SSean Zhang dhcpv6Address: IPv6Addresses.filter( 49db47b7e1SSean Zhang (ipv6) => 50db47b7e1SSean Zhang ipv6.AddressOrigin === 'SLAAC' || ipv6.AddressOrigin === 'DHCPv6', 51db47b7e1SSean Zhang ), 52e8cb2c6aSNikhil Ashoka dhcpEnabled: DHCPv4.DHCPEnabled, 53db47b7e1SSean Zhang dhcp6Enabled: DHCPv6.OperatingMode, 54c4b8757eSDixsie Wolmers hostname: HostName, 5512dc20c3SDixsie Wolmers macAddress: MACAddress, 56c4b8757eSDixsie Wolmers linkStatus: LinkStatus, 57c4b8757eSDixsie Wolmers staticAddress: IPv4StaticAddresses[0]?.Address, // Display first static address on overview page 58db47b7e1SSean Zhang ipv6StaticAddress: IPv6StaticAddresses[0]?.Address, 59c4b8757eSDixsie Wolmers useDnsEnabled: DHCPv4.UseDNSServers, 60c4b8757eSDixsie Wolmers useDomainNameEnabled: DHCPv4.UseDomainName, 61c4b8757eSDixsie Wolmers useNtpEnabled: DHCPv4.UseNTPServers, 62db47b7e1SSean Zhang useDnsEnabledIpv6: DHCPv6.UseDNSServers, 63db47b7e1SSean Zhang useDomainNameEnabledIpv6: DHCPv6.UseDomainName, 64db47b7e1SSean Zhang useNtpEnabledIpv6: DHCPv6.UseNTPServers, 65182b3f1fSDixsie Wolmers }; 66182b3f1fSDixsie Wolmers }); 67182b3f1fSDixsie Wolmers }, 68b34349d4SDixsie Wolmers setNtpState: (state, ntpState) => (state.ntpState = ntpState), 69db47b7e1SSean Zhang setDomainNameStateIpv6: (state, domainState) => 70db47b7e1SSean Zhang (state.domainStateIpv6 = domainState), 71db47b7e1SSean Zhang setDnsStateIpv6: (state, dnsState) => (state.dnsStateIpv6 = dnsState), 72db47b7e1SSean Zhang setNtpStateIpv6: (state, ntpState) => (state.ntpStateIpv6 = ntpState), 73b34349d4SDixsie Wolmers setSelectedInterfaceId: (state, selectedInterfaceId) => 74b34349d4SDixsie Wolmers (state.selectedInterfaceId = selectedInterfaceId), 75b34349d4SDixsie Wolmers setSelectedInterfaceIndex: (state, selectedInterfaceIndex) => 76b34349d4SDixsie Wolmers (state.selectedInterfaceIndex = selectedInterfaceIndex), 77f67f769fSSandeepa Singh }, 78f67f769fSSandeepa Singh actions: { 79f67f769fSSandeepa Singh async getEthernetData({ commit }) { 80f67f769fSSandeepa Singh return await api 818841b7d4SSean Zhang .get(`${await this.dispatch('global/getBmcPath')}/EthernetInterfaces`) 82f67f769fSSandeepa Singh .then((response) => 83f67f769fSSandeepa Singh response.data.Members.map( 848132399cSEd Tanous (ethernetInterface) => ethernetInterface['@odata.id'], 858132399cSEd Tanous ), 86f67f769fSSandeepa Singh ) 87f67f769fSSandeepa Singh .then((ethernetInterfaceIds) => 88f67f769fSSandeepa Singh api.all( 89f67f769fSSandeepa Singh ethernetInterfaceIds.map((ethernetInterface) => 908132399cSEd Tanous api.get(ethernetInterface), 918132399cSEd Tanous ), 928132399cSEd Tanous ), 93f67f769fSSandeepa Singh ) 94f67f769fSSandeepa Singh .then((ethernetInterfaces) => { 95f67f769fSSandeepa Singh const ethernetData = ethernetInterfaces.map( 968132399cSEd Tanous (ethernetInterface) => ethernetInterface.data, 97f67f769fSSandeepa Singh ); 98c4b8757eSDixsie Wolmers const firstInterfaceId = ethernetData[0].Id; 99f67f769fSSandeepa Singh 100f67f769fSSandeepa Singh commit('setEthernetData', ethernetData); 101c4b8757eSDixsie Wolmers commit('setFirstInterfaceId', firstInterfaceId); 102b34349d4SDixsie Wolmers commit('setSelectedInterfaceId', firstInterfaceId); 103c4b8757eSDixsie Wolmers commit('setGlobalNetworkSettings', ethernetInterfaces); 104f67f769fSSandeepa Singh }) 105f67f769fSSandeepa Singh .catch((error) => { 106f67f769fSSandeepa Singh console.log('Network Data:', error); 107f67f769fSSandeepa Singh }); 108f67f769fSSandeepa Singh }, 109e8cb2c6aSNikhil Ashoka async saveDhcpEnabledState({ state, dispatch }, dhcpState) { 110e8cb2c6aSNikhil Ashoka const data = { 111e8cb2c6aSNikhil Ashoka DHCPv4: { 112e8cb2c6aSNikhil Ashoka DHCPEnabled: dhcpState, 113e8cb2c6aSNikhil Ashoka }, 114e8cb2c6aSNikhil Ashoka }; 115e8cb2c6aSNikhil Ashoka return api 116e8cb2c6aSNikhil Ashoka .patch( 1178841b7d4SSean Zhang `${await this.dispatch('global/getBmcPath')}/EthernetInterfaces/${state.selectedInterfaceId}`, 1188132399cSEd Tanous data, 119e8cb2c6aSNikhil Ashoka ) 120e8cb2c6aSNikhil Ashoka .then(dispatch('getEthernetData')) 121e8cb2c6aSNikhil Ashoka .then(() => { 122de23ea23SSurya V return i18n.global.t('pageNetwork.toast.successSaveNetworkSettings', { 123de23ea23SSurya V setting: i18n.global.t('pageNetwork.dhcp'), 124e8cb2c6aSNikhil Ashoka }); 125e8cb2c6aSNikhil Ashoka }) 126e8cb2c6aSNikhil Ashoka .catch((error) => { 127e8cb2c6aSNikhil Ashoka console.log(error); 128e8cb2c6aSNikhil Ashoka throw new Error( 129de23ea23SSurya V i18n.global.t('pageNetwork.toast.errorSaveNetworkSettings', { 130de23ea23SSurya V setting: i18n.global.t('pageNetwork.dhcp'), 1318132399cSEd Tanous }), 132e8cb2c6aSNikhil Ashoka ); 133e8cb2c6aSNikhil Ashoka }); 134e8cb2c6aSNikhil Ashoka }, 135db47b7e1SSean Zhang async saveDhcp6EnabledState({ state, dispatch }, dhcpState) { 136f67f769fSSandeepa Singh const data = { 137db47b7e1SSean Zhang DHCPv6: { 138db47b7e1SSean Zhang OperatingMode: dhcpState ? 'Enabled' : 'Disabled', 139db47b7e1SSean Zhang }, 140db47b7e1SSean Zhang }; 141db47b7e1SSean Zhang return api 142db47b7e1SSean Zhang .patch( 143db47b7e1SSean Zhang `${await this.dispatch('global/getBmcPath')}/EthernetInterfaces/${state.selectedInterfaceId}`, 144db47b7e1SSean Zhang data, 145db47b7e1SSean Zhang ) 146db47b7e1SSean Zhang .then(dispatch('getEthernetData')) 147db47b7e1SSean Zhang .then(() => { 148*4626aec4SSurya Venkatesan return i18n.global.t('pageNetwork.toast.successSaveNetworkSettings', { 149*4626aec4SSurya Venkatesan setting: i18n.global.t('pageNetwork.dhcp6'), 150db47b7e1SSean Zhang }); 151db47b7e1SSean Zhang }) 152db47b7e1SSean Zhang .catch((error) => { 153db47b7e1SSean Zhang console.log(error); 154db47b7e1SSean Zhang throw new Error( 155*4626aec4SSurya Venkatesan i18n.global.t('pageNetwork.toast.errorSaveNetworkSettings', { 156*4626aec4SSurya Venkatesan setting: i18n.global.t('pageNetwork.dhcp6'), 157db47b7e1SSean Zhang }), 158db47b7e1SSean Zhang ); 159db47b7e1SSean Zhang }); 160db47b7e1SSean Zhang }, 161db47b7e1SSean Zhang async saveDomainNameState({ commit, state }, { domainState, ipVersion }) { 162db47b7e1SSean Zhang var data; 163db47b7e1SSean Zhang if (ipVersion === 'IPv4') { 164db47b7e1SSean Zhang commit('setDomainNameState', domainState); 165db47b7e1SSean Zhang data = { 166f67f769fSSandeepa Singh DHCPv4: { 167c4b8757eSDixsie Wolmers UseDomainName: domainState, 168f67f769fSSandeepa Singh }, 169f67f769fSSandeepa Singh }; 170db47b7e1SSean Zhang } else if (ipVersion === 'IPv6') { 171db47b7e1SSean Zhang commit('setDomainNameStateIpv6', domainState); 172db47b7e1SSean Zhang data = { 173db47b7e1SSean Zhang DHCPv6: { 174db47b7e1SSean Zhang UseDomainName: domainState, 175db47b7e1SSean Zhang }, 176db47b7e1SSean Zhang }; 177db47b7e1SSean Zhang } 178c4b8757eSDixsie Wolmers // Saving to the first interface automatically updates DHCPv4 and DHCPv6 179c4b8757eSDixsie Wolmers // on all interfaces 180c4b8757eSDixsie Wolmers return api 181f67f769fSSandeepa Singh .patch( 1828841b7d4SSean Zhang `${await this.dispatch('global/getBmcPath')}/EthernetInterfaces/${state.firstInterfaceId}`, 1838132399cSEd Tanous data, 184f67f769fSSandeepa Singh ) 185f67f769fSSandeepa Singh .then(() => { 186de23ea23SSurya V return i18n.global.t('pageNetwork.toast.successSaveNetworkSettings', { 187de23ea23SSurya V setting: i18n.global.t('pageNetwork.domainName'), 188c4b8757eSDixsie Wolmers }); 189f67f769fSSandeepa Singh }) 190f67f769fSSandeepa Singh .catch((error) => { 191f67f769fSSandeepa Singh console.log(error); 192db47b7e1SSean Zhang if (ipVersion === 'IPv4') commit('setDomainNameState', !domainState); 193db47b7e1SSean Zhang else if (ipVersion === 'IPv6') 194db47b7e1SSean Zhang commit('setDomainNameStateIpv6', !domainState); 195c4b8757eSDixsie Wolmers throw new Error( 196de23ea23SSurya V i18n.global.t('pageNetwork.toast.errorSaveNetworkSettings', { 197de23ea23SSurya V setting: i18n.global.t('pageNetwork.domainName'), 1988132399cSEd Tanous }), 199c4b8757eSDixsie Wolmers ); 200c4b8757eSDixsie Wolmers }); 201c4b8757eSDixsie Wolmers }, 202db47b7e1SSean Zhang async saveDnsState({ commit, state }, { dnsState, ipVersion }) { 203db47b7e1SSean Zhang var data; 204db47b7e1SSean Zhang if (ipVersion === 'IPv4') { 205c4b8757eSDixsie Wolmers commit('setDnsState', dnsState); 206db47b7e1SSean Zhang data = { 207c4b8757eSDixsie Wolmers DHCPv4: { 208c4b8757eSDixsie Wolmers UseDNSServers: dnsState, 209c4b8757eSDixsie Wolmers }, 210c4b8757eSDixsie Wolmers }; 211db47b7e1SSean Zhang } else if (ipVersion === 'IPv6') { 212db47b7e1SSean Zhang commit('setDnsStateIpv6', dnsState); 213db47b7e1SSean Zhang data = { 214db47b7e1SSean Zhang DHCPv6: { 215db47b7e1SSean Zhang UseDNSServers: dnsState, 216db47b7e1SSean Zhang }, 217db47b7e1SSean Zhang }; 218db47b7e1SSean Zhang } 219c4b8757eSDixsie Wolmers // Saving to the first interface automatically updates DHCPv4 and DHCPv6 220c4b8757eSDixsie Wolmers // on all interfaces 221c4b8757eSDixsie Wolmers return api 222c4b8757eSDixsie Wolmers .patch( 2238841b7d4SSean Zhang `${await this.dispatch('global/getBmcPath')}/EthernetInterfaces/${state.firstInterfaceId}`, 2248132399cSEd Tanous data, 225c4b8757eSDixsie Wolmers ) 226c4b8757eSDixsie Wolmers .then(() => { 227de23ea23SSurya V return i18n.global.t('pageNetwork.toast.successSaveNetworkSettings', { 228de23ea23SSurya V setting: i18n.global.t('pageNetwork.dns'), 229c4b8757eSDixsie Wolmers }); 230c4b8757eSDixsie Wolmers }) 231c4b8757eSDixsie Wolmers .catch((error) => { 232c4b8757eSDixsie Wolmers console.log(error); 233db47b7e1SSean Zhang if (ipVersion === 'IPv4') commit('setDnsState', !dnsState); 234db47b7e1SSean Zhang else if (ipVersion === 'IPv6') commit('setDnsStateIpv6', !dnsState); 235c4b8757eSDixsie Wolmers throw new Error( 236de23ea23SSurya V i18n.global.t('pageNetwork.toast.errorSaveNetworkSettings', { 237de23ea23SSurya V setting: i18n.global.t('pageNetwork.dns'), 2388132399cSEd Tanous }), 239c4b8757eSDixsie Wolmers ); 240c4b8757eSDixsie Wolmers }); 241c4b8757eSDixsie Wolmers }, 242db47b7e1SSean Zhang async saveNtpState({ commit, state }, { ntpState, ipVersion }) { 243db47b7e1SSean Zhang var data; 244db47b7e1SSean Zhang if (ipVersion === 'IPv4') { 245c4b8757eSDixsie Wolmers commit('setNtpState', ntpState); 246db47b7e1SSean Zhang data = { 247c4b8757eSDixsie Wolmers DHCPv4: { 248e61534a4SKenneth Fullbright UseNTPServers: ntpState, 249c4b8757eSDixsie Wolmers }, 250c4b8757eSDixsie Wolmers }; 251db47b7e1SSean Zhang } else if (ipVersion === 'IPv6') { 252db47b7e1SSean Zhang commit('setNtpStateIpv6', ntpState); 253db47b7e1SSean Zhang data = { 254db47b7e1SSean Zhang DHCPv6: { 255db47b7e1SSean Zhang UseNTPServers: ntpState, 256db47b7e1SSean Zhang }, 257db47b7e1SSean Zhang }; 258db47b7e1SSean Zhang } 259c4b8757eSDixsie Wolmers // Saving to the first interface automatically updates DHCPv4 and DHCPv6 260c4b8757eSDixsie Wolmers // on all interfaces 261c4b8757eSDixsie Wolmers return api 262c4b8757eSDixsie Wolmers .patch( 2638841b7d4SSean Zhang `${await this.dispatch('global/getBmcPath')}/EthernetInterfaces/${state.firstInterfaceId}`, 2648132399cSEd Tanous data, 265c4b8757eSDixsie Wolmers ) 266c4b8757eSDixsie Wolmers .then(() => { 267de23ea23SSurya V return i18n.global.t('pageNetwork.toast.successSaveNetworkSettings', { 268de23ea23SSurya V setting: i18n.global.t('pageNetwork.ntp'), 269c4b8757eSDixsie Wolmers }); 270c4b8757eSDixsie Wolmers }) 271c4b8757eSDixsie Wolmers .catch((error) => { 272c4b8757eSDixsie Wolmers console.log(error); 273db47b7e1SSean Zhang if (ipVersion === 'IPv4') commit('setNtpState', !ntpState); 274db47b7e1SSean Zhang else if (ipVersion === 'IPv6') commit('setNtpStateIpv6', !ntpState); 275c4b8757eSDixsie Wolmers throw new Error( 276de23ea23SSurya V i18n.global.t('pageNetwork.toast.errorSaveNetworkSettings', { 277de23ea23SSurya V setting: i18n.global.t('pageNetwork.ntp'), 2788132399cSEd Tanous }), 279c4b8757eSDixsie Wolmers ); 280f67f769fSSandeepa Singh }); 281f67f769fSSandeepa Singh }, 282b34349d4SDixsie Wolmers async setSelectedTabIndex({ commit }, tabIndex) { 283b34349d4SDixsie Wolmers commit('setSelectedInterfaceIndex', tabIndex); 284b34349d4SDixsie Wolmers }, 285b34349d4SDixsie Wolmers async setSelectedTabId({ commit }, tabId) { 286b34349d4SDixsie Wolmers commit('setSelectedInterfaceId', tabId); 287b34349d4SDixsie Wolmers }, 288b34349d4SDixsie Wolmers async saveIpv4Address({ dispatch, state }, ipv4Form) { 289b34349d4SDixsie Wolmers const originalAddresses = state.ethernetData[ 290b34349d4SDixsie Wolmers state.selectedInterfaceIndex 291b34349d4SDixsie Wolmers ].IPv4StaticAddresses.map((ipv4) => { 292b34349d4SDixsie Wolmers const { Address, SubnetMask, Gateway } = ipv4; 293b34349d4SDixsie Wolmers return { 294b34349d4SDixsie Wolmers Address, 295b34349d4SDixsie Wolmers SubnetMask, 296b34349d4SDixsie Wolmers Gateway, 297b34349d4SDixsie Wolmers }; 298b34349d4SDixsie Wolmers }); 299b34349d4SDixsie Wolmers const newAddress = [ipv4Form]; 300b34349d4SDixsie Wolmers return api 301b34349d4SDixsie Wolmers .patch( 3028841b7d4SSean Zhang `${await this.dispatch('global/getBmcPath')}/EthernetInterfaces/${state.selectedInterfaceId}`, 3038132399cSEd Tanous { IPv4StaticAddresses: originalAddresses.concat(newAddress) }, 304b34349d4SDixsie Wolmers ) 305b34349d4SDixsie Wolmers .then(dispatch('getEthernetData')) 306b34349d4SDixsie Wolmers .then(() => { 307de23ea23SSurya V return i18n.global.t('pageNetwork.toast.successSaveNetworkSettings', { 308de23ea23SSurya V setting: i18n.global.t('pageNetwork.ipv4'), 309b34349d4SDixsie Wolmers }); 310b34349d4SDixsie Wolmers }) 311b34349d4SDixsie Wolmers .catch((error) => { 312b34349d4SDixsie Wolmers console.log(error); 313b34349d4SDixsie Wolmers throw new Error( 314de23ea23SSurya V i18n.global.t('pageNetwork.toast.errorSaveNetworkSettings', { 315de23ea23SSurya V setting: i18n.global.t('pageNetwork.ipv4'), 3168132399cSEd Tanous }), 317b34349d4SDixsie Wolmers ); 318b34349d4SDixsie Wolmers }); 319b34349d4SDixsie Wolmers }, 320db47b7e1SSean Zhang async saveIpv6Address({ dispatch, state }, ipv6Form) { 321db47b7e1SSean Zhang const originalAddresses = state.ethernetData[ 322db47b7e1SSean Zhang state.selectedInterfaceIndex 323db47b7e1SSean Zhang ].IPv6StaticAddresses.map((ipv6) => { 324db47b7e1SSean Zhang const { Address, PrefixLength } = ipv6; 325db47b7e1SSean Zhang return { 326db47b7e1SSean Zhang Address, 327db47b7e1SSean Zhang PrefixLength, 328db47b7e1SSean Zhang }; 329db47b7e1SSean Zhang }); 330db47b7e1SSean Zhang const newAddress = [ipv6Form]; 331db47b7e1SSean Zhang return api 332db47b7e1SSean Zhang .patch( 333db47b7e1SSean Zhang `${await this.dispatch('global/getBmcPath')}/EthernetInterfaces/${state.selectedInterfaceId}`, 334db47b7e1SSean Zhang { IPv6StaticAddresses: originalAddresses.concat(newAddress) }, 335db47b7e1SSean Zhang ) 336db47b7e1SSean Zhang .then(dispatch('getEthernetData')) 337db47b7e1SSean Zhang .then(() => { 338*4626aec4SSurya Venkatesan return i18n.global.t('pageNetwork.toast.successSaveNetworkSettings', { 339*4626aec4SSurya Venkatesan setting: i18n.global.t('pageNetwork.ipv6'), 340db47b7e1SSean Zhang }); 341db47b7e1SSean Zhang }) 342db47b7e1SSean Zhang .catch((error) => { 343db47b7e1SSean Zhang console.log(error); 344db47b7e1SSean Zhang throw new Error( 345*4626aec4SSurya Venkatesan i18n.global.t('pageNetwork.toast.errorSaveNetworkSettings', { 346*4626aec4SSurya Venkatesan setting: i18n.global.t('pageNetwork.ipv6'), 347db47b7e1SSean Zhang }), 348db47b7e1SSean Zhang ); 349db47b7e1SSean Zhang }); 350db47b7e1SSean Zhang }, 351b34349d4SDixsie Wolmers async editIpv4Address({ dispatch, state }, ipv4TableData) { 352b34349d4SDixsie Wolmers return api 353b34349d4SDixsie Wolmers .patch( 3548841b7d4SSean Zhang `${await this.dispatch('global/getBmcPath')}/EthernetInterfaces/${state.selectedInterfaceId}`, 3558132399cSEd Tanous { IPv4StaticAddresses: ipv4TableData }, 356b34349d4SDixsie Wolmers ) 357b34349d4SDixsie Wolmers .then(dispatch('getEthernetData')) 358b34349d4SDixsie Wolmers .then(() => { 359de23ea23SSurya V return i18n.global.t('pageNetwork.toast.successSaveNetworkSettings', { 360de23ea23SSurya V setting: i18n.global.t('pageNetwork.ipv4'), 361b34349d4SDixsie Wolmers }); 362b34349d4SDixsie Wolmers }) 363b34349d4SDixsie Wolmers .catch((error) => { 364b34349d4SDixsie Wolmers console.log(error); 365b34349d4SDixsie Wolmers throw new Error( 366de23ea23SSurya V i18n.global.t('pageNetwork.toast.errorSaveNetworkSettings', { 367de23ea23SSurya V setting: i18n.global.t('pageNetwork.ipv4'), 3688132399cSEd Tanous }), 369b34349d4SDixsie Wolmers ); 370b34349d4SDixsie Wolmers }); 371b34349d4SDixsie Wolmers }, 372db47b7e1SSean Zhang async editIpv6Address({ dispatch, state }, ipv6TableData) { 373db47b7e1SSean Zhang return api 374db47b7e1SSean Zhang .patch( 375db47b7e1SSean Zhang `${await this.dispatch('global/getBmcPath')}/EthernetInterfaces/${state.selectedInterfaceId}`, 376db47b7e1SSean Zhang { IPv6StaticAddresses: ipv6TableData }, 377db47b7e1SSean Zhang ) 378db47b7e1SSean Zhang .then(dispatch('getEthernetData')) 379db47b7e1SSean Zhang .then(() => { 380*4626aec4SSurya Venkatesan return i18n.global.t('pageNetwork.toast.successSaveNetworkSettings', { 381*4626aec4SSurya Venkatesan setting: i18n.global.t('pageNetwork.ipv6'), 382db47b7e1SSean Zhang }); 383db47b7e1SSean Zhang }) 384db47b7e1SSean Zhang .catch((error) => { 385db47b7e1SSean Zhang console.log(error); 386db47b7e1SSean Zhang throw new Error( 387*4626aec4SSurya Venkatesan i18n.global.t('pageNetwork.toast.errorSaveNetworkSettings', { 388*4626aec4SSurya Venkatesan setting: i18n.global.t('pageNetwork.ipv6'), 389db47b7e1SSean Zhang }), 390db47b7e1SSean Zhang ); 391db47b7e1SSean Zhang }); 392db47b7e1SSean Zhang }, 39312dc20c3SDixsie Wolmers async saveSettings({ state, dispatch }, interfaceSettingsForm) { 39412dc20c3SDixsie Wolmers return api 39512dc20c3SDixsie Wolmers .patch( 3968841b7d4SSean Zhang `${await this.dispatch('global/getBmcPath')}/EthernetInterfaces/${state.selectedInterfaceId}`, 3978132399cSEd Tanous interfaceSettingsForm, 39812dc20c3SDixsie Wolmers ) 39912dc20c3SDixsie Wolmers .then(dispatch('getEthernetData')) 40012dc20c3SDixsie Wolmers .then(() => { 401de23ea23SSurya V return i18n.global.t('pageNetwork.toast.successSaveNetworkSettings', { 402de23ea23SSurya V setting: i18n.global.t('pageNetwork.network'), 40312dc20c3SDixsie Wolmers }); 40412dc20c3SDixsie Wolmers }) 40512dc20c3SDixsie Wolmers .catch((error) => { 40612dc20c3SDixsie Wolmers console.log(error); 40712dc20c3SDixsie Wolmers throw new Error( 408de23ea23SSurya V i18n.global.t('pageNetwork.toast.errorSaveNetworkSettings', { 409de23ea23SSurya V setting: i18n.global.t('pageNetwork.network'), 4108132399cSEd Tanous }), 41112dc20c3SDixsie Wolmers ); 41212dc20c3SDixsie Wolmers }); 41312dc20c3SDixsie Wolmers }, 414b34349d4SDixsie Wolmers async saveDnsAddress({ dispatch, state }, dnsForm) { 415b34349d4SDixsie Wolmers const newAddress = dnsForm; 416b34349d4SDixsie Wolmers const originalAddresses = 417b34349d4SDixsie Wolmers state.ethernetData[state.selectedInterfaceIndex].StaticNameServers; 418b34349d4SDixsie Wolmers const newDnsArray = originalAddresses.concat(newAddress); 419b34349d4SDixsie Wolmers return api 420b34349d4SDixsie Wolmers .patch( 4218841b7d4SSean Zhang `${await this.dispatch('global/getBmcPath')}/EthernetInterfaces/${state.selectedInterfaceId}`, 4228132399cSEd Tanous { StaticNameServers: newDnsArray }, 423b34349d4SDixsie Wolmers ) 424b34349d4SDixsie Wolmers .then(dispatch('getEthernetData')) 425b34349d4SDixsie Wolmers .then(() => { 426de23ea23SSurya V return i18n.global.t('pageNetwork.toast.successSaveNetworkSettings', { 427de23ea23SSurya V setting: i18n.global.t('pageNetwork.dns'), 428b34349d4SDixsie Wolmers }); 429b34349d4SDixsie Wolmers }) 430b34349d4SDixsie Wolmers .catch((error) => { 431b34349d4SDixsie Wolmers console.log(error); 432b34349d4SDixsie Wolmers throw new Error( 433de23ea23SSurya V i18n.global.t('pageNetwork.toast.errorSaveNetworkSettings', { 434de23ea23SSurya V setting: i18n.global.t('pageNetwork.dns'), 4358132399cSEd Tanous }), 436b34349d4SDixsie Wolmers ); 437b34349d4SDixsie Wolmers }); 438b34349d4SDixsie Wolmers }, 439b34349d4SDixsie Wolmers async editDnsAddress({ dispatch, state }, dnsTableData) { 440b34349d4SDixsie Wolmers return api 441b34349d4SDixsie Wolmers .patch( 4428841b7d4SSean Zhang `${await this.dispatch('global/getBmcPath')}/EthernetInterfaces/${state.selectedInterfaceId}`, 4438132399cSEd Tanous { StaticNameServers: dnsTableData }, 444b34349d4SDixsie Wolmers ) 445b34349d4SDixsie Wolmers .then(dispatch('getEthernetData')) 446b34349d4SDixsie Wolmers .then(() => { 447de23ea23SSurya V return i18n.global.t('pageNetwork.toast.successSaveNetworkSettings', { 448de23ea23SSurya V setting: i18n.global.t('pageNetwork.dns'), 449b34349d4SDixsie Wolmers }); 450b34349d4SDixsie Wolmers }) 451b34349d4SDixsie Wolmers .catch((error) => { 452b34349d4SDixsie Wolmers console.log(error); 453b34349d4SDixsie Wolmers throw new Error( 454de23ea23SSurya V i18n.global.t('pageNetwork.toast.errorSaveNetworkSettings', { 455de23ea23SSurya V setting: i18n.global.t('pageNetwork.dns'), 4568132399cSEd Tanous }), 457b34349d4SDixsie Wolmers ); 458b34349d4SDixsie Wolmers }); 459b34349d4SDixsie Wolmers }, 460f67f769fSSandeepa Singh }, 461f67f769fSSandeepa Singh}; 462f67f769fSSandeepa Singh 463f67f769fSSandeepa Singhexport default NetworkStore; 464