From 7f34ba07afc6bd48de17f3c4a7838626a1ade5e6 Mon Sep 17 00:00:00 2001 From: Abhishek Kumar Date: Fri, 7 Jan 2022 14:44:50 +0530 Subject: [PATCH 1/2] ui: fix create network/vpc offering form Fixes #5838 Signed-off-by: Abhishek Kumar --- ui/src/views/offering/AddNetworkOffering.vue | 27 +++++++------------ ui/src/views/offering/AddVpcOffering.vue | 28 +++++++------------- 2 files changed, 19 insertions(+), 36 deletions(-) diff --git a/ui/src/views/offering/AddNetworkOffering.vue b/ui/src/views/offering/AddNetworkOffering.vue index 3c38c5a64a24..2c85cb43c56e 100644 --- a/ui/src/views/offering/AddNetworkOffering.vue +++ b/ui/src/views/offering/AddNetworkOffering.vue @@ -756,23 +756,14 @@ export default { this.loading = true var params = {} - var self = this - var selectedServices = null var keys = Object.keys(values) const detailsKey = ['promiscuousmode', 'macaddresschanges', 'forgedtransmits', 'maclearning'] const ignoredKeys = [...detailsKey, 'state', 'status', 'allocationstate', 'forvpc', 'lbType', 'specifyvlan', 'ispublic', 'domainid', 'zoneid', 'egressdefaultpolicy', 'isolation', 'supportspublicaccess'] keys.forEach(function (key, keyIndex) { - if (self.isSupportedServiceObject(values[key])) { - if (selectedServices == null) { - selectedServices = {} - } - selectedServices[key] = values[key] - } else { - if (!ignoredKeys.includes(key) && - values[key] != null && values[key] !== undefined && - !(key === 'availability' && values[key] === 'Optional')) { - params[key] = values[key] - } + if (!ignoredKeys.includes(key) && + values[key] != null && values[key] !== undefined && + !(key === 'availability' && values[key] === 'Optional')) { + params[key] = values[key] } }) @@ -810,12 +801,12 @@ export default { params.conservemode = false } } - if (selectedServices != null) { - var supportedServices = Object.keys(selectedServices) + if (this.selectedServiceProviderMap != null) { + var supportedServices = Object.keys(this.selectedServiceProviderMap) params.supportedservices = supportedServices.join(',') for (var k in supportedServices) { params['serviceProviderList[' + k + '].service'] = supportedServices[k] - params['serviceProviderList[' + k + '].provider'] = selectedServices[supportedServices[k]].provider + params['serviceProviderList[' + k + '].provider'] = this.selectedServiceProviderMap[supportedServices[k]] } var serviceCapabilityIndex = 0 if (supportedServices.includes('Connectivity')) { @@ -871,7 +862,7 @@ export default { params['servicecapabilitylist[' + serviceCapabilityIndex + '].capabilityvalue'] = true serviceCapabilityIndex++ } - if (values.inlinemode === true && ((selectedServices.Lb.provider === 'F5BigIp') || (selectedServices.Lb.provider === 'Netscaler'))) { + if (values.inlinemode === true && ((this.selectedServiceProviderMap.Lb === 'F5BigIp') || (this.selectedServiceProviderMap.Lb === 'Netscaler'))) { params['servicecapabilitylist[' + serviceCapabilityIndex + '].service'] = 'lb' params['servicecapabilitylist[' + serviceCapabilityIndex + '].capabilitytype'] = 'InlineMode' params['servicecapabilitylist[' + serviceCapabilityIndex + '].capabilityvalue'] = values.inlinemode @@ -881,7 +872,7 @@ export default { params['servicecapabilitylist[' + serviceCapabilityIndex + '].capabilitytype'] = 'SupportedLbIsolation' params['servicecapabilitylist[' + serviceCapabilityIndex + '].capabilityvalue'] = values.isolation serviceCapabilityIndex++ - if (selectedServices.Lb.provider === 'InternalLbVm') { + if (this.selectedServiceProviderMap.Lb === 'InternalLbVm') { params['servicecapabilitylist[' + serviceCapabilityIndex + '].service'] = 'lb' params['servicecapabilitylist[' + serviceCapabilityIndex + '].capabilitytype'] = 'lbSchemes' params['servicecapabilitylist[' + serviceCapabilityIndex + '].capabilityvalue'] = 'internal' diff --git a/ui/src/views/offering/AddVpcOffering.vue b/ui/src/views/offering/AddVpcOffering.vue index 0eded9d9a362..51a406522924 100644 --- a/ui/src/views/offering/AddVpcOffering.vue +++ b/ui/src/views/offering/AddVpcOffering.vue @@ -166,7 +166,8 @@ export default { supportedServices: [], supportedServiceLoading: false, connectivityServiceChecked: false, - sourceNatServiceChecked: false + sourceNatServiceChecked: false, + selectedServiceProviderMap: {} } }, beforeCreate () { @@ -191,9 +192,6 @@ export default { isAdmin () { return isAdmin() }, - isSupportedServiceObject (obj) { - return (obj !== null && obj !== undefined && Object.keys(obj).length > 0 && obj.constructor === Object && 'provider' in obj) - }, fetchDomainData () { const params = {} params.listAll = true @@ -307,6 +305,11 @@ export default { if (service === 'SourceNat') { this.sourceNatServiceChecked = checked } + if (checked && provider != null & provider !== undefined) { + this.selectedServiceProviderMap[service] = provider + } else { + delete this.selectedServiceProviderMap[service] + } }, handleSubmit (e) { e.preventDefault() @@ -345,23 +348,12 @@ export default { if (zoneId) { params.zoneid = zoneId } - var selectedServices = null - var keys = Object.keys(values) - var self = this - keys.forEach(function (key, keyIndex) { - if (self.isSupportedServiceObject(values[key])) { - if (selectedServices == null) { - selectedServices = {} - } - selectedServices[key] = values[key] - } - }) - if (selectedServices != null) { - var supportedServices = Object.keys(selectedServices) + if (this.selectedServiceProviderMap != null) { + var supportedServices = Object.keys(this.selectedServiceProviderMap) params.supportedservices = supportedServices.join(',') for (var k in supportedServices) { params['serviceProviderList[' + k + '].service'] = supportedServices[k] - params['serviceProviderList[' + k + '].provider'] = selectedServices[supportedServices[k]].provider + params['serviceProviderList[' + k + '].provider'] = this.selectedServiceProviderMap[supportedServices[k]] } var serviceCapabilityIndex = 0 if (supportedServices.includes('Connectivity')) { From b299640c846df2a8f221104ec117ddad18dddf89 Mon Sep 17 00:00:00 2001 From: Abhishek Kumar Date: Fri, 7 Jan 2022 15:02:32 +0530 Subject: [PATCH 2/2] fix inlinemode Signed-off-by: Abhishek Kumar --- ui/src/views/offering/AddNetworkOffering.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/src/views/offering/AddNetworkOffering.vue b/ui/src/views/offering/AddNetworkOffering.vue index 2c85cb43c56e..d114ceb269fd 100644 --- a/ui/src/views/offering/AddNetworkOffering.vue +++ b/ui/src/views/offering/AddNetworkOffering.vue @@ -253,7 +253,7 @@ - +