@@ -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 )
0 commit comments