This is an automated email from the ASF dual-hosted git repository.
pearl11594 pushed a commit to branch nsx-refactor-update-offering
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/nsx-refactor-update-offering
by this push:
new 4c4ecdb8a79 fix services and provider combination
4c4ecdb8a79 is described below
commit 4c4ecdb8a79d80a585b2c28dd99242b6eda789b5
Author: Pearl Dsilva <[email protected]>
AuthorDate: Wed Oct 18 23:40:35 2023 -0400
fix services and provider combination
---
.../java/com/cloud/offering/NetworkOffering.java | 4 +-
.../admin/network/CreateNetworkOfferingCmd.java | 78 +++---
.../command/admin/vpc/CreateVPCOfferingCmd.java | 82 ++++---
.../org/apache/cloudstack/service/NsxElement.java | 6 +-
.../configuration/ConfigurationManagerImpl.java | 2 +-
.../java/com/cloud/network/vpc/VpcManagerImpl.java | 4 +-
.../com/cloud/server/ConfigurationServerImpl.java | 4 +-
ui/public/locales/en.json | 2 +
ui/src/components/CheckBoxSelectPair.vue | 6 -
ui/src/components/view/DetailsTab.vue | 2 +-
ui/src/views/offering/AddNetworkOffering.vue | 10 +-
ui/src/views/offering/AddVpcOffering.vue | 273 ++++++++++-----------
12 files changed, 250 insertions(+), 223 deletions(-)
diff --git a/api/src/main/java/com/cloud/offering/NetworkOffering.java
b/api/src/main/java/com/cloud/offering/NetworkOffering.java
index d2fdb00309b..15bce42dd95 100644
--- a/api/src/main/java/com/cloud/offering/NetworkOffering.java
+++ b/api/src/main/java/com/cloud/offering/NetworkOffering.java
@@ -44,8 +44,8 @@ public interface NetworkOffering extends
InfrastructureEntity, InternalIdentity,
}
public enum Mode {
- NAT,
- Route
+ NATTED,
+ ROUTED
}
public final static String SystemPublicNetwork = "System-Public-Network";
diff --git
a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/CreateNetworkOfferingCmd.java
b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/CreateNetworkOfferingCmd.java
index 983c404854e..698bee50c08 100644
---
a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/CreateNetworkOfferingCmd.java
+++
b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/CreateNetworkOfferingCmd.java
@@ -50,6 +50,15 @@ import com.cloud.offering.NetworkOffering;
import com.cloud.offering.NetworkOffering.Availability;
import com.cloud.user.Account;
+import static com.cloud.network.Network.Service.Dhcp;
+import static com.cloud.network.Network.Service.Dns;
+import static com.cloud.network.Network.Service.Lb;
+import static com.cloud.network.Network.Service.StaticNat;
+import static com.cloud.network.Network.Service.SourceNat;
+import static com.cloud.network.Network.Service.PortForwarding;
+import static com.cloud.network.Network.Service.NetworkACL;
+import static com.cloud.network.Network.Service.UserData;
+
@APICommand(name = "createNetworkOffering", description = "Creates a network
offering.", responseObject = NetworkOfferingResponse.class, since = "3.0.0",
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
public class CreateNetworkOfferingCmd extends BaseCmd {
@@ -132,12 +141,14 @@ public class CreateNetworkOfferingCmd extends BaseCmd {
@Parameter(name = ApiConstants.FOR_NSX,
type = CommandType.BOOLEAN,
- description = "true if network offering is meant to be used for
NSX, false otherwise.")
+ description = "true if network offering is meant to be used for
NSX, false otherwise.",
+ since = "4.20.0")
private Boolean forNsx;
@Parameter(name = ApiConstants.MODE,
type = CommandType.STRING,
- description = "Indicates the mode with which the network will
operate. Valid option: NAT or Route")
+ description = "Indicates the mode with which the network will
operate. Valid option: NAT or Route",
+ since = "4.20.0")
private String mode;
@Parameter(name = ApiConstants.FOR_TUNGSTEN,
@@ -224,7 +235,24 @@ public class CreateNetworkOfferingCmd extends BaseCmd {
}
public List<String> getSupportedServices() {
- return supportedServices == null ? new ArrayList<String>() :
supportedServices;
+ if (!forNsx) {
+ return supportedServices == null ? new ArrayList<String>() :
supportedServices;
+ } else {
+ List<String> services = new ArrayList<>(List.of(
+ Dhcp.getName(),
+ Dns.getName(),
+ StaticNat.getName(),
+ SourceNat.getName(),
+ PortForwarding.getName(),
+ UserData.getName(),
+ Lb.getName()
+ ));
+ if (Boolean.TRUE.equals(forVpc)) {
+ services.add(NetworkACL.getName());
+ return services;
+ }
+ return services;
+ }
}
public String getGuestIpType() {
@@ -282,40 +310,34 @@ public class CreateNetworkOfferingCmd extends BaseCmd {
}
public Map<String, List<String>> getServiceProviders() {
- Map<String, List<String>> serviceProviderMap = null;
- if (serviceProviderList != null && !serviceProviderList.isEmpty()) {
- if (!getForNsx()) {
- serviceProviderMap = new HashMap<String, List<String>>();
- Collection servicesCollection = serviceProviderList.values();
- Iterator iter = servicesCollection.iterator();
- while (iter.hasNext()) {
- HashMap<String, String> services = (HashMap<String,
String>) iter.next();
- String service = services.get("service");
- String provider = services.get("provider");
- List<String> providerList = null;
- if (serviceProviderMap.containsKey(service)) {
- providerList = serviceProviderMap.get(service);
- } else {
- providerList = new ArrayList<String>();
- }
- providerList.add(provider);
- serviceProviderMap.put(service, providerList);
+ Map<String, List<String>> serviceProviderMap = new HashMap<String,
List<String>>();
+ if (serviceProviderList != null && !serviceProviderList.isEmpty() &&
!getForNsx()) {
+ Collection servicesCollection = serviceProviderList.values();
+ Iterator iter = servicesCollection.iterator();
+ while (iter.hasNext()) {
+ HashMap<String, String> services = (HashMap<String, String>)
iter.next();
+ String service = services.get("service");
+ String provider = services.get("provider");
+ List<String> providerList = null;
+ if (serviceProviderMap.containsKey(service)) {
+ providerList = serviceProviderMap.get(service);
+ } else {
+ providerList = new ArrayList<String>();
}
+ providerList.add(provider);
+ serviceProviderMap.put(service, providerList);
}
- else {
- getServiceProviderMapForNsx(serviceProviderMap);
- }
+ } else {
+ getServiceProviderMapForNsx(serviceProviderMap);
}
-
return serviceProviderMap;
}
private void getServiceProviderMapForNsx(Map<String, List<String>>
serviceProviderMap) {
- String routerProvider = getForVpc() ?
VirtualRouterProvider.Type.VPCVirtualRouter.name() :
+ String routerProvider = Boolean.TRUE.equals(getForVpc()) ?
VirtualRouterProvider.Type.VPCVirtualRouter.name() :
VirtualRouterProvider.Type.VirtualRouter.name();
List<String> unsupportedServices = List.of("Vpn", "SecurityGroup",
"Connectivity",
- "Gateway", "Firewall", "StaticNat",
- "PortForwarding", "NetworkACL");
+ "Gateway", "Firewall", "BaremetalPxeService");
List<String> routerSupported = List.of("Dhcp", "Dns", "UserData");
List<String> allServices =
Service.listAllServices().stream().map(Service::getName).collect(Collectors.toList());
for (String service : allServices) {
diff --git
a/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/CreateVPCOfferingCmd.java
b/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/CreateVPCOfferingCmd.java
index 6b028cfafb4..2e73e6b9b14 100644
---
a/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/CreateVPCOfferingCmd.java
+++
b/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/CreateVPCOfferingCmd.java
@@ -27,6 +27,7 @@ import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
+import com.cloud.exception.InvalidParameterValueException;
import com.cloud.network.Network;
import com.cloud.network.VirtualRouterProvider;
import org.apache.cloudstack.api.response.DomainResponse;
@@ -49,6 +50,15 @@ import com.cloud.exception.ResourceAllocationException;
import com.cloud.network.vpc.VpcOffering;
import com.cloud.user.Account;
+import static com.cloud.network.Network.Service.Dhcp;
+import static com.cloud.network.Network.Service.Dns;
+import static com.cloud.network.Network.Service.Lb;
+import static com.cloud.network.Network.Service.StaticNat;
+import static com.cloud.network.Network.Service.SourceNat;
+import static com.cloud.network.Network.Service.PortForwarding;
+import static com.cloud.network.Network.Service.NetworkACL;
+import static com.cloud.network.Network.Service.UserData;
+
@APICommand(name = "createVPCOffering", description = "Creates VPC offering",
responseObject = VpcOfferingResponse.class,
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
public class CreateVPCOfferingCmd extends BaseAsyncCreateCmd {
@@ -66,7 +76,6 @@ public class CreateVPCOfferingCmd extends BaseAsyncCreateCmd {
@Parameter(name = ApiConstants.SUPPORTED_SERVICES,
type = CommandType.LIST,
- required = true,
collectionType = CommandType.STRING,
description = "services supported by the vpc offering")
private List<String> supportedServices;
@@ -107,12 +116,14 @@ public class CreateVPCOfferingCmd extends
BaseAsyncCreateCmd {
@Parameter(name = ApiConstants.FOR_NSX,
type = CommandType.BOOLEAN,
- description = "true if network offering is meant to be used for
NSX, false otherwise.")
+ description = "true if network offering is meant to be used for
NSX, false otherwise.",
+ since = "4.20.0")
private Boolean forNsx;
@Parameter(name = ApiConstants.MODE,
type = CommandType.STRING,
- description = "Indicates the mode with which the network will
operate. Valid option: NAT or Route")
+ description = "Indicates the mode with which the network will
operate. Valid option: NAT or Route",
+ since = "4.20.0")
private String mode;
@Parameter(name = ApiConstants.ENABLE,
@@ -134,6 +145,21 @@ public class CreateVPCOfferingCmd extends
BaseAsyncCreateCmd {
}
public List<String> getSupportedServices() {
+ if (!forNsx && CollectionUtils.isEmpty(supportedServices)) {
+ throw new InvalidParameterValueException("Supported services needs
to be provided");
+ }
+ if (forNsx) {
+ return List.of(
+ Dhcp.getName(),
+ Dns.getName(),
+ Lb.getName(),
+ StaticNat.getName(),
+ SourceNat.getName(),
+ NetworkACL.getName(),
+ PortForwarding.getName(),
+ UserData.getName()
+ );
+ }
return supportedServices;
}
@@ -146,41 +172,37 @@ public class CreateVPCOfferingCmd extends
BaseAsyncCreateCmd {
}
public Map<String, List<String>> getServiceProviders() {
- Map<String, List<String>> serviceProviderMap = null;
- if (serviceProviderList != null && !serviceProviderList.isEmpty()) {
- if (!getForNsx()) {
- serviceProviderMap = new HashMap<String, List<String>>();
- Collection<? extends Map<String, String>> servicesCollection =
serviceProviderList.values();
- Iterator<? extends Map<String, String>> iter =
servicesCollection.iterator();
- while (iter.hasNext()) {
- Map<String, String> obj = iter.next();
- if (s_logger.isTraceEnabled()) {
- s_logger.trace("service provider entry specified: " +
obj);
- }
- HashMap<String, String> services = (HashMap<String,
String>) obj;
- String service = services.get("service");
- String provider = services.get("provider");
- List<String> providerList = null;
- if (serviceProviderMap.containsKey(service)) {
- providerList = serviceProviderMap.get(service);
- } else {
- providerList = new ArrayList<String>();
- }
- providerList.add(provider);
- serviceProviderMap.put(service, providerList);
+ Map<String, List<String>> serviceProviderMap = new HashMap<String,
List<String>>();;
+ if (serviceProviderList != null && !serviceProviderList.isEmpty() &&
!getForNsx()) {
+ Collection<? extends Map<String, String>> servicesCollection =
serviceProviderList.values();
+ Iterator<? extends Map<String, String>> iter =
servicesCollection.iterator();
+ while (iter.hasNext()) {
+ Map<String, String> obj = iter.next();
+ if (s_logger.isTraceEnabled()) {
+ s_logger.trace("service provider entry specified: " + obj);
}
- } else {
- getServiceProviderMapForNsx(serviceProviderMap);
+ HashMap<String, String> services = (HashMap<String, String>)
obj;
+ String service = services.get("service");
+ String provider = services.get("provider");
+ List<String> providerList = null;
+ if (serviceProviderMap.containsKey(service)) {
+ providerList = serviceProviderMap.get(service);
+ } else {
+ providerList = new ArrayList<String>();
+ }
+ providerList.add(provider);
+ serviceProviderMap.put(service, providerList);
}
+ } else {
+ getServiceProviderMapForNsx(serviceProviderMap);
}
return serviceProviderMap;
}
private void getServiceProviderMapForNsx(Map<String, List<String>>
serviceProviderMap) {
- List<String> unsupportedServices = List.of("Vpn", "SecurityGroup",
"Connectivity",
- "Gateway", "Firewall", "StaticNat",
- "PortForwarding", "NetworkACL");
+ List<String> unsupportedServices = List.of("Vpn",
"BaremetalPxeService", "SecurityGroup", "Connectivity",
+ "Gateway", "Firewall");
List<String> routerSupported = List.of("Dhcp", "Dns", "UserData");
List<String> allServices =
Network.Service.listAllServices().stream().map(Network.Service::getName).collect(Collectors.toList());
for (String service : allServices) {
diff --git
a/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/service/NsxElement.java
b/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/service/NsxElement.java
index 5c5ba1ac35c..4190338ee0d 100644
---
a/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/service/NsxElement.java
+++
b/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/service/NsxElement.java
@@ -118,7 +118,9 @@ public class NsxElement extends AdapterBase implements
DhcpServiceProvider, DnsS
capabilities.put(Network.Service.Dns, dnsCapabilities);
capabilities.put(Network.Service.StaticNat, null);
-
+ capabilities.put(Network.Service.Lb, null);
+ capabilities.put(Network.Service.PortForwarding, null);
+ capabilities.put(Network.Service.NetworkACL, null);
Map<Network.Capability, String> sourceNatCapabilities = new
HashMap<>();
sourceNatCapabilities.put(Network.Capability.RedundantRouter, "true");
sourceNatCapabilities.put(Network.Capability.SupportedSourceNatTypes,
"peraccount");
@@ -226,7 +228,7 @@ public class NsxElement extends AdapterBase implements
DhcpServiceProvider, DnsS
@Override
public boolean verifyServicesCombination(Set<Network.Service> services) {
- return false;
+ return true;
}
@Override
diff --git
a/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java
b/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java
index 0406ae3f3ab..4f68ea1f6e9 100644
--- a/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java
+++ b/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java
@@ -6611,7 +6611,7 @@ public class ConfigurationManagerImpl extends ManagerBase
implements Configurati
s_logger.trace("Added service for the network
offering: " + offService + " with provider " + provider.getName());
}
- if (vpcOff) {
+ if (vpcOff && !forNsx) {
final List<Service> supportedSvcs = new
ArrayList<Service>();
supportedSvcs.addAll(serviceProviderMap.keySet());
_vpcMgr.validateNtwkOffForVpc(offering,
supportedSvcs);
diff --git a/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java
b/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java
index 2aec0ae7158..9527117c861 100644
--- a/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java
+++ b/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java
@@ -385,7 +385,7 @@ public class VpcManagerImpl extends ManagerBase implements
VpcManager, VpcProvis
}
}
createVpcOffering(VpcOffering.DEFAULT_VPC_NAT_NSX_OFFERING_NAME,
VpcOffering.DEFAULT_VPC_NAT_NSX_OFFERING_NAME, svcProviderMap, false,
- State.Enabled, null, false, false, false, true,
NetworkOffering.Mode.NAT.name());
+ State.Enabled, null, false, false, false, true,
NetworkOffering.Mode.NATTED.name());
}
@@ -403,7 +403,7 @@ public class VpcManagerImpl extends ManagerBase implements
VpcManager, VpcProvis
}
}
createVpcOffering(VpcOffering.DEFAULT_VPC_ROUTE_NSX_OFFERING_NAME,
VpcOffering.DEFAULT_VPC_ROUTE_NSX_OFFERING_NAME, svcProviderMap, false,
- State.Enabled, null, false, false, false, true,
NetworkOffering.Mode.Route.name());
+ State.Enabled, null, false, false, false, true,
NetworkOffering.Mode.ROUTED.name());
}
}
diff --git a/server/src/main/java/com/cloud/server/ConfigurationServerImpl.java
b/server/src/main/java/com/cloud/server/ConfigurationServerImpl.java
index 1d6bf698374..415617e7262 100644
--- a/server/src/main/java/com/cloud/server/ConfigurationServerImpl.java
+++ b/server/src/main/java/com/cloud/server/ConfigurationServerImpl.java
@@ -1211,7 +1211,7 @@ public class ConfigurationServerImpl extends ManagerBase
implements Configuratio
new
NetworkOfferingVO(NetworkOffering.DEFAULT_NAT_NSX_OFFERING, "Offering for NSX
enabled networks - NAT mode",
TrafficType.Guest, false, false, null, null,
true, Availability.Optional, null, GuestType.Isolated, false, false, false,
false, false, true);
defaultNatNSXNetworkOffering.setForNsx(true);
-
defaultNatNSXNetworkOffering.setMode(NetworkOffering.Mode.NAT.name());
+
defaultNatNSXNetworkOffering.setMode(NetworkOffering.Mode.NATTED.name());
defaultNatNSXNetworkOffering.setState(NetworkOffering.State.Enabled);
defaultNatNSXNetworkOffering =
_networkOfferingDao.persistDefaultNetworkOffering(defaultNatNSXNetworkOffering);
@@ -1227,7 +1227,7 @@ public class ConfigurationServerImpl extends ManagerBase
implements Configuratio
new
NetworkOfferingVO(NetworkOffering.DEFAULT_NAT_NSX_OFFERING, "Offering for NSX
enabled networks - NAT mode",
TrafficType.Guest, false, false, null, null,
true, Availability.Optional, null, GuestType.Isolated, false, false, false,
false, false, true);
defaultRouteNSXNetworkOffering.setForNsx(true);
-
defaultRouteNSXNetworkOffering.setMode(NetworkOffering.Mode.Route.name());
+
defaultRouteNSXNetworkOffering.setMode(NetworkOffering.Mode.ROUTED.name());
defaultRouteNSXNetworkOffering.setState(NetworkOffering.State.Enabled);
defaultRouteNSXNetworkOffering =
_networkOfferingDao.persistDefaultNetworkOffering(defaultRouteNSXNetworkOffering);
diff --git a/ui/public/locales/en.json b/ui/public/locales/en.json
index 491b2cca763..205128d58f4 100644
--- a/ui/public/locales/en.json
+++ b/ui/public/locales/en.json
@@ -871,6 +871,7 @@
"label.forceencap": "Force UDP encapsulation of ESP packets",
"label.forgedtransmits": "Forged transmits",
"label.format": "Format",
+"label.fornsx": "NSX",
"label.free": "Free",
"label.french.azerty.keyboard": "French AZERTY keyboard",
"label.friday": "Friday",
@@ -1557,6 +1558,7 @@
"label.public.ips": "Public IP addresses",
"label.public.lb": "Public LB",
"label.public.traffic": "Public traffic",
+"label.public.traffic.nsx": "NSX Public traffic",
"label.publicinterface": "Public interface",
"label.publicip": "IP address",
"label.publicipid": "IP address ID",
diff --git a/ui/src/components/CheckBoxSelectPair.vue
b/ui/src/components/CheckBoxSelectPair.vue
index 80380a490d9..4fba1da2556 100644
--- a/ui/src/components/CheckBoxSelectPair.vue
+++ b/ui/src/components/CheckBoxSelectPair.vue
@@ -92,7 +92,6 @@ export default {
}
},
data () {
- console.log(this.forNsx)
return {
checked: false,
selectedOption: null,
@@ -100,7 +99,6 @@ export default {
}
},
created () {
- console.log(this.defaultCheckBoxValue)
this.checked = this.defaultCheckBoxValue
},
watch: {
@@ -125,14 +123,10 @@ export default {
return this.option || this.selectedOption
},
option () {
- console.log('option')
if (this.forNsx) {
return this.selectOptions[0]?.name || null
}
return null
- // else {
- // return this.handleCheckChange({ target: { checked: true } })
- // }
}
},
methods: {
diff --git a/ui/src/components/view/DetailsTab.vue
b/ui/src/components/view/DetailsTab.vue
index 301686c3433..dcd4f1e3e50 100644
--- a/ui/src/components/view/DetailsTab.vue
+++ b/ui/src/components/view/DetailsTab.vue
@@ -38,7 +38,7 @@
<br/>
<div v-if="Array.isArray(dataResource[item]) && item === 'service'">
<div v-for="(service, idx) in dataResource[item]" :key="idx">
- {{ service.name }} : {{ service.provider[0].name }}
+ {{ service.name }} : {{ service.provider?.[0]?.name }}
</div>
</div>
<div v-else-if="$route.meta.name === 'backup' && item === 'volumes'">
diff --git a/ui/src/views/offering/AddNetworkOffering.vue
b/ui/src/views/offering/AddNetworkOffering.vue
index 4bc3051a267..cc69854ddd3 100644
--- a/ui/src/views/offering/AddNetworkOffering.vue
+++ b/ui/src/views/offering/AddNetworkOffering.vue
@@ -575,11 +575,11 @@ export default {
modes: [
{
id: 0,
- name: 'NAT'
+ name: 'NATTED'
},
{
id: 1,
- name: 'Route'
+ name: 'ROUTED'
}
],
VPCVR: {
@@ -845,19 +845,13 @@ export default {
self.supportedServiceLoading = false
}, 50)
} else {
- console.log(supportedServices)
supportedServices = supportedServices.filter(svc => {
- console.log(self.nsxSupportedServicesMap)
- console.log(Object.keys(self.nsxSupportedServicesMap))
- console.log(svc.name)
return Object.keys(this.nsxSupportedServicesMap).includes(svc.name)
})
- console.log(supportedServices)
supportedServices.forEach(function (svc, index) {
svc.provider = [self.nsxSupportedServicesMap[svc.name]]
supportedServices[index] = svc
})
- console.log(supportedServices)
self.supportedServices = supportedServices
self.supportedServiceLoading = false
}
diff --git a/ui/src/views/offering/AddVpcOffering.vue
b/ui/src/views/offering/AddVpcOffering.vue
index b2f3ddd7b37..3cb4d5d362e 100644
--- a/ui/src/views/offering/AddVpcOffering.vue
+++ b/ui/src/views/offering/AddVpcOffering.vue
@@ -253,11 +253,11 @@ export default {
modes: [
{
id: 0,
- name: 'NAT'
+ name: 'NATTED'
},
{
id: 1,
- name: 'Route'
+ name: 'ROUTED'
}
],
VPCVR: {
@@ -310,7 +310,6 @@ export default {
})
},
fetchData () {
- console.log('fetch data')
this.fetchDomainData()
this.fetchZoneData()
this.fetchSupportedServiceData()
@@ -352,149 +351,138 @@ export default {
})
},
fetchSupportedServiceData () {
- console.log('supported services')
- this.supportedServices = []
- this.supportedServices.push({
- name: 'Dhcp',
- provider: [
- { name: 'VpcVirtualRouter' }
- ]
- })
- this.supportedServices.push({
- name: 'Dns',
- provider: [{ name: 'VpcVirtualRouter' }]
- })
- this.supportedServices.push({
- name: 'Lb',
- provider: [
- { name: 'VpcVirtualRouter' },
- { name: 'InternalLbVm' }
- ]
- })
- this.supportedServices.push({
- name: 'Gateway',
- provider: [
- { name: 'VpcVirtualRouter' },
- { name: 'BigSwitchBcf' }
- ]
- })
- this.supportedServices.push({
- name: 'StaticNat',
- provider: [
- { name: 'VpcVirtualRouter' },
- { name: 'BigSwitchBcf' }
- ]
- })
- this.supportedServices.push({
- name: 'SourceNat',
- provider: [
- { name: 'VpcVirtualRouter' },
- { name: 'BigSwitchBcf' }
- ]
- })
- this.supportedServices.push({
- name: 'NetworkACL',
- provider: [
- { name: 'VpcVirtualRouter' },
- { name: 'BigSwitchBcf' }
- ]
- })
- this.supportedServices.push({
- name: 'PortForwarding',
- provider: [{ name: 'VpcVirtualRouter' }]
- })
- this.supportedServices.push({
- name: 'UserData',
- provider: [
- { name: 'VpcVirtualRouter' },
- { name: 'ConfigDrive' }
- ]
- })
- this.supportedServices.push({
- name: 'Vpn',
- provider: [
- { name: 'VpcVirtualRouter' },
- { name: 'BigSwitchBcf' }
- ]
- })
- this.supportedServices.push({
- name: 'Connectivity',
- provider: [
- { name: 'BigSwitchBcf' },
- { name: 'NiciraNvp' },
- { name: 'Ovs' },
- { name: 'JuniperContrailVpcRouter' }
- ]
- })
- for (var i in this.supportedServices) {
- var serviceName = this.supportedServices[i].name
- var serviceDisplayName = serviceName
- // Sanitize names
- this.supportedServices[i].description = serviceDisplayName
+ var services = []
+ if (this.forNsx) {
+ services.push({
+ name: 'Dhcp',
+ enabled: true,
+ provider: [
+ { name: 'VpcVirtualRouter' }
+ ]
+ })
+ services.push({
+ name: 'Dns',
+ enabled: true,
+ provider: [{ name: 'VpcVirtualRouter' }]
+ })
+ services.push({
+ name: 'Lb',
+ enabled: true,
+ provider: [{ name: 'Nsx' }]
+ })
+ services.push({
+ name: 'StaticNat',
+ enabled: true,
+ provider: [{ name: 'Nsx' }]
+ })
+ services.push({
+ name: 'SourceNat',
+ enabled: true,
+ provider: [{ name: 'Nsx' }]
+ })
+ services.push({
+ name: 'NetworkACL',
+ enabled: true,
+ provider: [{ name: 'Nsx' }]
+ })
+ services.push({
+ name: 'PortForwarding',
+ enabled: true,
+ provider: [{ name: 'Nsx' }]
+ })
+ services.push({
+ name: 'UserData',
+ enabled: true,
+ provider: [{ name: 'VpcVirtualRouter' }]
+ })
+ } else {
+ services.push({
+ name: 'Dhcp',
+ provider: [
+ { name: 'VpcVirtualRouter' }
+ ]
+ })
+ services.push({
+ name: 'Dns',
+ provider: [{ name: 'VpcVirtualRouter' }]
+ })
+ services.push({
+ name: 'Lb',
+ provider: [
+ { name: 'VpcVirtualRouter' },
+ { name: 'InternalLbVm' }
+ ]
+ })
+ services.push({
+ name: 'Gateway',
+ provider: [
+ { name: 'VpcVirtualRouter' },
+ { name: 'BigSwitchBcf' }
+ ]
+ })
+ services.push({
+ name: 'StaticNat',
+ provider: [
+ { name: 'VpcVirtualRouter' },
+ { name: 'BigSwitchBcf' }
+ ]
+ })
+ services.push({
+ name: 'SourceNat',
+ provider: [
+ { name: 'VpcVirtualRouter' },
+ { name: 'BigSwitchBcf' }
+ ]
+ })
+ services.push({
+ name: 'NetworkACL',
+ provider: [
+ { name: 'VpcVirtualRouter' },
+ { name: 'BigSwitchBcf' }
+ ]
+ })
+ services.push({
+ name: 'PortForwarding',
+ provider: [{ name: 'VpcVirtualRouter' }]
+ })
+ services.push({
+ name: 'UserData',
+ provider: [
+ { name: 'VpcVirtualRouter' },
+ { name: 'ConfigDrive' }
+ ]
+ })
+ services.push({
+ name: 'Vpn',
+ provider: [
+ { name: 'VpcVirtualRouter' },
+ { name: 'BigSwitchBcf' }
+ ]
+ })
+ services.push({
+ name: 'Connectivity',
+ provider: [
+ { name: 'BigSwitchBcf' },
+ { name: 'NiciraNvp' },
+ { name: 'Ovs' },
+ { name: 'JuniperContrailVpcRouter' }
+ ]
+ })
}
- console.log(this.supportedServices)
- },
- updateNsxSupportedServices () {
- console.log('update nsx services')
this.supportedServices = []
- this.supportedServices.push({
- name: 'Dhcp',
- enabled: true,
- provider: [
- { name: 'VpcVirtualRouter' }
- ]
- })
- this.supportedServices.push({
- name: 'Dns',
- enabled: true,
- provider: [{ name: 'VpcVirtualRouter' }]
- })
- this.supportedServices.push({
- name: 'Lb',
- enabled: true,
- provider: [{ name: 'Nsx' }]
- })
- this.supportedServices.push({
- name: 'StaticNat',
- enabled: true,
- provider: [{ name: 'Nsx' }]
- })
- this.supportedServices.push({
- name: 'SourceNat',
- enabled: true,
- provider: [{ name: 'Nsx' }]
- })
- this.supportedServices.push({
- name: 'NetworkACL',
- enabled: true,
- provider: [{ name: 'Nsx' }]
- })
- this.supportedServices.push({
- name: 'PortForwarding',
- enabled: true,
- provider: [{ name: 'Nsx' }]
- })
- this.supportedServices.push({
- name: 'UserData',
- enabled: true,
- provider: [{ name: 'VpcVirtualRouter' }]
- })
- for (var i in this.supportedServices) {
- var serviceName = this.supportedServices[i].name
- var serviceDisplayName = serviceName
- console.log(serviceDisplayName)
- // Sanitize names
- this.supportedServices[i].description = serviceDisplayName
+ for (var i in services) {
+ services[i].description = services[i].name
}
+ var self = this
+ setTimeout(() => {
+ self.supportedServices = services
+ self.supportedServiceLoading = false
+ }, 50)
},
async handleForNsxChange (forNsx) {
this.forNsx = forNsx
this.showMode = forNsx
- if (this.forNsx === true) {
- this.updateNsxSupportedServices()
- } else {
- this.fetchSupportedServiceData()
- }
+ this.fetchSupportedServiceData()
},
handleSupportedServiceChange (service, checked, provider) {
if (service === 'Connectivity') {
@@ -576,7 +564,10 @@ export default {
}
if (this.selectedServiceProviderMap != null) {
var supportedServices = Object.keys(this.selectedServiceProviderMap)
- params.supportedservices = supportedServices.join(',')
+ params.supportedservices = []
+ if (!this.forNsx) {
+ params.supportedservices = supportedServices.join(',')
+ }
for (var k in supportedServices) {
params['serviceProviderList[' + k + '].service'] =
supportedServices[k]
params['serviceProviderList[' + k + '].provider'] =
this.selectedServiceProviderMap[supportedServices[k]]
@@ -606,7 +597,7 @@ export default {
params.serviceofferingid = values.serviceofferingid
}
} else {
- params.supportedservices = ''
+ params.supportedservices = []
}
if (values.enable) {
params.enable = values.enable