mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
ui: fix for filtering network offering for VPC tiers (#4989)
This commit is contained in:
parent
d92022ee5c
commit
5b6ab3d248
@ -370,7 +370,13 @@ export default {
|
|||||||
publicIps: {},
|
publicIps: {},
|
||||||
snats: {},
|
snats: {},
|
||||||
vms: {}
|
vms: {}
|
||||||
|
},
|
||||||
|
lbProviderMap: {
|
||||||
|
publicLb: {
|
||||||
|
vpc: ['VpcVirtualRouter', 'Netscaler']
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
publicLBExists: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created () {
|
created () {
|
||||||
@ -399,6 +405,7 @@ export default {
|
|||||||
this.fetchLoadBalancers(network.id)
|
this.fetchLoadBalancers(network.id)
|
||||||
this.fetchVMs(network.id)
|
this.fetchVMs(network.id)
|
||||||
}
|
}
|
||||||
|
this.publicLBNetworkExists()
|
||||||
},
|
},
|
||||||
fetchNetworkAclList () {
|
fetchNetworkAclList () {
|
||||||
this.fetchLoading = true
|
this.fetchLoading = true
|
||||||
@ -417,6 +424,38 @@ export default {
|
|||||||
this.modalLoading = false
|
this.modalLoading = false
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
getNetworkOffering (networkId) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
api('listNetworkOfferings', {
|
||||||
|
id: networkId
|
||||||
|
}).then(json => {
|
||||||
|
var networkOffering = json.listnetworkofferingsresponse.networkoffering[0]
|
||||||
|
resolve(networkOffering)
|
||||||
|
}).catch(e => {
|
||||||
|
reject(e)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
publicLBNetworkExists () {
|
||||||
|
api('listNetworks', {
|
||||||
|
vpcid: this.resource.id,
|
||||||
|
supportedservices: 'LB'
|
||||||
|
}).then(async json => {
|
||||||
|
var lbNetworks = json.listnetworksresponse.network || []
|
||||||
|
if (lbNetworks.length > 0) {
|
||||||
|
this.publicLBExists = true
|
||||||
|
for (var idx = 0; idx < lbNetworks.length; idx++) {
|
||||||
|
const lbNetworkOffering = await this.getNetworkOffering(lbNetworks[idx].networkofferingid)
|
||||||
|
const index = lbNetworkOffering.service.map(svc => { return svc.name }).indexOf('Lb')
|
||||||
|
if (index !== -1 &&
|
||||||
|
this.lbProviderMap.publicLb.vpc.indexOf(lbNetworkOffering.service.map(svc => { return svc.provider[0].name })[index]) !== -1) {
|
||||||
|
this.publicLBExists = true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
fetchNetworkOfferings () {
|
fetchNetworkOfferings () {
|
||||||
this.fetchLoading = true
|
this.fetchLoading = true
|
||||||
this.modalLoading = true
|
this.modalLoading = true
|
||||||
@ -427,6 +466,17 @@ export default {
|
|||||||
state: 'Enabled'
|
state: 'Enabled'
|
||||||
}).then(json => {
|
}).then(json => {
|
||||||
this.networkOfferings = json.listnetworkofferingsresponse.networkoffering || []
|
this.networkOfferings = json.listnetworkofferingsresponse.networkoffering || []
|
||||||
|
var filteredOfferings = []
|
||||||
|
if (this.publicLBExists) {
|
||||||
|
for (var index in this.networkOfferings) {
|
||||||
|
const offering = this.networkOfferings[index]
|
||||||
|
const idx = offering.service.map(svc => { return svc.name }).indexOf('Lb')
|
||||||
|
if (idx === -1 || this.lbProviderMap.publicLb.vpc.indexOf(offering.service.map(svc => { return svc.provider[0].name })[idx]) === -1) {
|
||||||
|
filteredOfferings.push(offering)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.networkOfferings = filteredOfferings
|
||||||
|
}
|
||||||
this.$nextTick(function () {
|
this.$nextTick(function () {
|
||||||
this.form.setFieldsValue({
|
this.form.setFieldsValue({
|
||||||
networkOffering: this.networkOfferings[0].id
|
networkOffering: this.networkOfferings[0].id
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user