ui: fix create network/vpc offering form (#5840)

* ui: fix create network/vpc offering form

Fixes #5838

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* fix inlinemode

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
This commit is contained in:
Abhishek Kumar 2022-01-08 08:41:58 +05:30 committed by GitHub
parent 84b9b61b9b
commit feb4343abe
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 37 deletions

View File

@ -253,7 +253,7 @@
<a-form-item :label="$t('label.service.lb.elasticlbcheckbox')" v-if="guestType == 'shared' && lbServiceChecked && lbServiceProvider === 'Netscaler'">
<a-switch v-decorator="['elasticlb', {initialValue: false}]" />
</a-form-item>
<a-form-item :label="$t('label.service.lb.inlinemodedropdown')" v-if="(guestType === 'shared' || guestType === 'isolated') && lbServiceChecked && firewallServiceChecked && lbServiceProvider === 'F5BigIp' && firewallServiceProvider === 'JuniperSRX'">
<a-form-item :label="$t('label.service.lb.inlinemodedropdown')" v-if="['shared', 'isolated'].includes(guestType) && lbServiceChecked && firewallServiceChecked && ['F5BigIp', 'Netscaler'].includes(lbServiceProvider) && ['JuniperSRX'].includes(firewallServiceProvider)">
<a-radio-group
v-decorator="['inlinemode', {
initialValue: 'false'
@ -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'

View File

@ -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')) {