diff --git a/server/src/com/cloud/dc/DataCenterVO.java b/server/src/com/cloud/dc/DataCenterVO.java index c28c6c67cf7..e26802b515b 100644 --- a/server/src/com/cloud/dc/DataCenterVO.java +++ b/server/src/com/cloud/dc/DataCenterVO.java @@ -77,13 +77,13 @@ public class DataCenterVO implements DataCenter { NetworkType networkType; @Column(name="dns_provider") - private String dnsProvider = Provider.VirtualRouter.getName(); + private String dnsProvider; @Column(name="dhcp_provider") - private String dhcpProvider = Provider.VirtualRouter.getName(); + private String dhcpProvider; @Column(name="gateway_provider") - private String gatewayProvider = Provider.VirtualRouter.getName(); + private String gatewayProvider; @Column(name="vpn_provider") private String vpnProvider; @@ -166,14 +166,23 @@ public class DataCenterVO implements DataCenter { this.domain = domain; this.domainId = domainId; this.networkType = zoneType; + this.securityGroupEnabled = securityGroupEnabled; - loadBalancerProvider = Provider.VirtualRouter.getName(); - firewallProvider = Provider.VirtualRouter.getName(); - dhcpProvider = Provider.VirtualRouter.getName(); - dnsProvider = Provider.VirtualRouter.getName(); - gatewayProvider = Provider.VirtualRouter.getName(); - vpnProvider = Provider.VirtualRouter.getName(); - userDataProvider = Provider.VirtualRouter.getName(); + + if (zoneType == NetworkType.Advanced) { + loadBalancerProvider = Provider.VirtualRouter.getName(); + firewallProvider = Provider.VirtualRouter.getName(); + dhcpProvider = Provider.VirtualRouter.getName(); + dnsProvider = Provider.VirtualRouter.getName(); + gatewayProvider = Provider.VirtualRouter.getName(); + vpnProvider = Provider.VirtualRouter.getName(); + userDataProvider = Provider.VirtualRouter.getName(); + } else if (zoneType == NetworkType.Basic){ + dhcpProvider = Provider.DhcpServer.getName(); + dnsProvider = Provider.DhcpServer.getName(); + userDataProvider = Provider.DhcpServer.getName(); + } + } @Override diff --git a/server/src/com/cloud/network/NetworkManagerImpl.java b/server/src/com/cloud/network/NetworkManagerImpl.java index 8b68f36c88c..4ff1f00ee7a 100755 --- a/server/src/com/cloud/network/NetworkManagerImpl.java +++ b/server/src/com/cloud/network/NetworkManagerImpl.java @@ -2515,7 +2515,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag public boolean zoneIsConfiguredForExternalNetworking(long zoneId) { DataCenterVO zone = _dcDao.findById(zoneId); - return (zone.getGatewayProvider().equals(Network.Provider.JuniperSRX.getName()) && zone.getFirewallProvider().equals(Network.Provider.JuniperSRX.getName()) && zone.getLoadBalancerProvider().equals( + return (zone.getGatewayProvider() != null && zone.getGatewayProvider().equals(Network.Provider.JuniperSRX.getName()) && zone.getFirewallProvider().equals(Network.Provider.JuniperSRX.getName()) && zone.getLoadBalancerProvider().equals( Network.Provider.F5BigIp.getName())); } diff --git a/server/src/com/cloud/network/element/DhcpElement.java b/server/src/com/cloud/network/element/DhcpElement.java index e51304ee0e2..f73de949ddd 100644 --- a/server/src/com/cloud/network/element/DhcpElement.java +++ b/server/src/com/cloud/network/element/DhcpElement.java @@ -78,7 +78,7 @@ public class DhcpElement extends AdapterBase implements NetworkElement, Password DataCenter dc = dest.getDataCenter(); String provider = dc.getGatewayProvider(); - if (provider.equalsIgnoreCase(Provider.JuniperSRX.getName()) && ipType == GuestIpType.Virtual) { + if (provider != null && provider.equalsIgnoreCase(Provider.JuniperSRX.getName()) && ipType == GuestIpType.Virtual) { return true; } else { if (dc.getNetworkType() == NetworkType.Basic) { diff --git a/server/src/com/cloud/network/element/VirtualRouterElement.java b/server/src/com/cloud/network/element/VirtualRouterElement.java index 1197bc56f25..e1c37dab04d 100644 --- a/server/src/com/cloud/network/element/VirtualRouterElement.java +++ b/server/src/com/cloud/network/element/VirtualRouterElement.java @@ -85,7 +85,7 @@ public class VirtualRouterElement extends DhcpElement implements NetworkElement, private boolean canHandle(GuestIpType ipType, DataCenter dc) { String provider = dc.getGatewayProvider(); - boolean result = (ipType == GuestIpType.Virtual && provider.equals(Provider.VirtualRouter.getName())); + boolean result = (provider != null && ipType == GuestIpType.Virtual && provider.equals(Provider.VirtualRouter.getName())); if (!result) { s_logger.trace("Virtual router element only takes care of guest ip type " + GuestIpType.Virtual + " for provider " + Provider.VirtualRouter.getName()); }