Skip to content

Commit b672067

Browse files
committed
UI: refactor AddNetworkOffering.vue and AddVpcOffering.vue
1 parent 8cd6bb0 commit b672067

2 files changed

Lines changed: 41 additions & 14 deletions

File tree

ui/src/views/offering/AddNetworkOffering.vue

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -739,12 +739,22 @@ export default {
739739
isSupportedServiceObject (obj) {
740740
return (obj !== null && obj !== undefined && Object.keys(obj).length > 0 && obj.constructor === Object && 'provider' in obj)
741741
},
742-
isVpcCoreProvider (providerName) {
743-
return ['VpcVirtualRouter', 'Netscaler', 'BigSwitchBcf', 'ConfigDrive'].includes(providerName)
742+
isVpcCoreProvider (providerName, serviceName) {
743+
if (['VpcVirtualRouter', 'Netscaler', 'BigSwitchBcf', 'ConfigDrive'].includes(providerName)) {
744+
return true
745+
}
746+
return serviceName === 'Connectivity' && ['NiciraNvp', 'Ovs', 'JuniperContrailVpcRouter'].includes(providerName)
744747
},
745-
isDynamicExtensionProvider (providerName) {
746-
const knownProviders = ['VirtualRouter', 'VpcVirtualRouter', 'InternalLbVm', 'Netscaler', 'BigSwitchBcf', 'ConfigDrive', 'Nsx', 'Netris']
747-
return !knownProviders.includes(providerName)
748+
isBuiltInNetworkProvider (providerName) {
749+
const builtInProviders = [
750+
'VirtualRouter', 'JuniperContrailRouter', 'JuniperContrailVpcRouter', 'JuniperSRX', 'PaloAlto',
751+
'F5BigIp', 'Netscaler', 'ExternalDhcpServer', 'ExternalGateWay', 'ElasticLoadBalancerVm',
752+
'SecurityGroupProvider', 'VpcVirtualRouter', 'None', 'NiciraNvp', 'InternalLbVm', 'CiscoVnmc',
753+
'Ovs', 'Opendaylight', 'BrocadeVcs', 'GloboDns', 'BigSwitchBcf', 'ConfigDrive', 'Tungsten',
754+
'Nsx', 'Netris', 'BaremetalDhcpProvider', 'BaremetalPxeProvider', 'BaremetalUserdataProvider',
755+
'StratosphereSsp'
756+
]
757+
return builtInProviders.includes(providerName)
748758
},
749759
fetchDomainData () {
750760
const params = {}
@@ -861,6 +871,9 @@ export default {
861871
for (var j in this.supportedServices[i].provider) {
862872
var provider = this.supportedServices[i].provider[j]
863873
provider.description = provider.name
874+
provider.displaytext = this.isBuiltInNetworkProvider(provider.name)
875+
? provider.name
876+
: `${provider.name} (${this.$t('label.extension')})`
864877
provider.enabled = true
865878
if (provider.name === 'VpcVirtualRouter') {
866879
provider.enabled = false
@@ -924,12 +937,14 @@ export default {
924937
var providers = svc.provider
925938
providers.forEach(function (provider, providerIndex) {
926939
if (self.forVpc) { // *** vpc ***
927-
// Keep the known VPC-safe providers allowlisted and only additionally
928-
// enable dynamically discovered extension providers.
940+
// Keep the known VPC-safe providers allowlisted and only additionally enable
941+
// extension providers, which listSupportedNetworkServices() already only returns
942+
// for a service once the extension is confirmed to support it.
929943
if (provider.name === 'InternalLbVm') {
930944
provider.enabled = self.lbType === 'internalLb' && svc.name === 'Lb'
931945
} else {
932-
provider.enabled = self.isVpcCoreProvider(provider.name) || self.isDynamicExtensionProvider(provider.name)
946+
provider.enabled = self.isVpcCoreProvider(provider.name, svc.name) ||
947+
!self.isBuiltInNetworkProvider(provider.name)
933948
}
934949
} else { // *** non-vpc ***
935950
provider.enabled = !['InternalLbVm', 'VpcVirtualRouter', 'Nsx', 'Netris'].includes(provider.name)

ui/src/views/offering/AddVpcOffering.vue

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -431,12 +431,22 @@ export default {
431431
this.zoneLoading = false
432432
})
433433
},
434-
isVpcCoreProvider (providerName) {
435-
return ['VpcVirtualRouter', 'Netscaler', 'BigSwitchBcf', 'ConfigDrive'].includes(providerName)
434+
isVpcCoreProvider (providerName, serviceName) {
435+
if (['VpcVirtualRouter', 'Netscaler', 'BigSwitchBcf', 'ConfigDrive'].includes(providerName)) {
436+
return true
437+
}
438+
return serviceName === 'Connectivity' && ['NiciraNvp', 'Ovs', 'JuniperContrailVpcRouter'].includes(providerName)
436439
},
437-
isDynamicExtensionProvider (providerName) {
438-
const knownProviders = ['VirtualRouter', 'VpcVirtualRouter', 'InternalLbVm', 'Netscaler', 'BigSwitchBcf', 'ConfigDrive', 'Nsx', 'Netris']
439-
return !knownProviders.includes(providerName)
440+
isBuiltInNetworkProvider (providerName) {
441+
const builtInProviders = [
442+
'VirtualRouter', 'JuniperContrailRouter', 'JuniperContrailVpcRouter', 'JuniperSRX', 'PaloAlto',
443+
'F5BigIp', 'Netscaler', 'ExternalDhcpServer', 'ExternalGateWay', 'ElasticLoadBalancerVm',
444+
'SecurityGroupProvider', 'VpcVirtualRouter', 'None', 'NiciraNvp', 'InternalLbVm', 'CiscoVnmc',
445+
'Ovs', 'Opendaylight', 'BrocadeVcs', 'GloboDns', 'BigSwitchBcf', 'ConfigDrive', 'Tungsten',
446+
'Nsx', 'Netris', 'BaremetalDhcpProvider', 'BaremetalPxeProvider', 'BaremetalUserdataProvider',
447+
'StratosphereSsp'
448+
]
449+
return builtInProviders.includes(providerName)
440450
},
441451
fetchSupportedServiceData () {
442452
var services = []
@@ -538,12 +548,14 @@ export default {
538548
const providers = [...(service.provider || []), ...(service.name === 'Lb' ? [{ name: 'InternalLbVm' }] : [])]
539549
.map(provider => {
540550
const providerName = provider.name === 'VirtualRouter' ? 'VpcVirtualRouter' : provider.name
551+
const isExtension = !this.isBuiltInNetworkProvider(providerName)
541552
const enabled = providerName === 'InternalLbVm'
542553
? service.name === 'Lb'
543-
: this.isVpcCoreProvider(providerName) || this.isDynamicExtensionProvider(providerName)
554+
: this.isVpcCoreProvider(providerName, service.name) || isExtension
544555
return {
545556
name: providerName,
546557
description: providerName,
558+
displaytext: isExtension ? `${providerName} (${this.$t('label.extension')})` : providerName,
547559
enabled
548560
}
549561
})

0 commit comments

Comments
 (0)