diff --git a/server/src/com/cloud/network/NetworkManager.java b/server/src/com/cloud/network/NetworkManager.java index 9945125a07b..4b004b78529 100644 --- a/server/src/com/cloud/network/NetworkManager.java +++ b/server/src/com/cloud/network/NetworkManager.java @@ -175,8 +175,6 @@ public interface NetworkManager extends NetworkService { Nic getNicInNetwork(long vmId, long networkId); - Nic getNicInNetworkIncludingRemoved(long vmId, long networkId); - List getNicsForTraffic(long vmId, TrafficType type); Network getDefaultNetworkForVm(long vmId); @@ -217,19 +215,15 @@ public interface NetworkManager extends NetworkService { Long getPodIdForVlan(long vlanDbId); - boolean isProviderSupportedInNetwork(long networkId, Service service, Provider provider); - List listNetworkOfferingsForUpgrade(long networkId); PhysicalNetwork translateZoneIdToPhysicalNetwork(long zoneId); boolean isSecurityGroupSupportedInNetwork(Network network); - boolean isProviderEnabled(PhysicalNetworkServiceProvider provider); + boolean isProviderSupportServiceInNetwork(long networkId, Service service, Provider provider); - boolean isProviderExistAndEnabled(long physicalNetowrkId, String providerName); - - boolean isServiceEnabledInNetwork(long physicalNetworkId, long networkId, Service service); + boolean isProviderEnabledInPhysicalNetwork(long physicalNetowrkId, String providerName); List getNetworkTags(HypervisorType hType, Network network); @@ -251,4 +245,6 @@ public interface NetworkManager extends NetworkService { Long getPhysicalNetworkId(Network network); boolean getAllowSubdomainAccessGlobal(); + + boolean isProviderInNetwork(Provider provider, long networkId); } diff --git a/server/src/com/cloud/network/NetworkManagerImpl.java b/server/src/com/cloud/network/NetworkManagerImpl.java index 501362f14f4..6f74f24710f 100755 --- a/server/src/com/cloud/network/NetworkManagerImpl.java +++ b/server/src/com/cloud/network/NetworkManagerImpl.java @@ -1414,7 +1414,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag List providersToImplement = getNetworkProviders(network.getId()); for (NetworkElement element : _networkElements) { if (providersToImplement.contains(element.getProvider())) { - if (!isProviderExistAndEnabled(getPhysicalNetworkId(network), "VirtualRouter")) { + if (!isProviderEnabledInPhysicalNetwork(getPhysicalNetworkId(network), "VirtualRouter")) { throw new CloudRuntimeException("Service provider " + element.getProvider().getName() + " either doesn't exist or not enabled in physical network id=" + network.getPhysicalNetworkId()); } if (s_logger.isDebugEnabled()) { @@ -1440,13 +1440,13 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag element.prepare(network, profile, vmProfile, dest, context); if (vmProfile.getType() == Type.User && element.getProvider() != null) { if (areServicesSupportedInNetwork(network.getId(), Service.Dhcp) && - isProviderSupportedInNetwork(network.getId(), Service.Dhcp, element.getProvider()) && + isProviderSupportServiceInNetwork(network.getId(), Service.Dhcp, element.getProvider()) && (element instanceof DhcpServiceProvider)) { DhcpServiceProvider sp = (DhcpServiceProvider)element; sp.addDhcpEntry(network, profile, vmProfile, dest, context); } if (areServicesSupportedInNetwork(network.getId(), Service.UserData) && - isProviderSupportedInNetwork(network.getId(), Service.UserData, element.getProvider()) && + isProviderSupportServiceInNetwork(network.getId(), Service.UserData, element.getProvider()) && (element instanceof UserDataServiceProvider)) { UserDataServiceProvider sp = (UserDataServiceProvider)element; sp.addPasswordAndUserdata(network, profile, vmProfile, dest, context); @@ -2417,13 +2417,13 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag } //2) Shutdown all the network elements - //get providers to implement - List providersToImplement = getNetworkProviders(network.getId()); + //get providers to shutdown + List providersToShutdown = getNetworkProviders(network.getId()); boolean success = true; for (NetworkElement element : _networkElements) { - if (providersToImplement.contains(element.getProvider())) { + if (providersToShutdown.contains(element.getProvider())) { try { - if (!isProviderExistAndEnabled(getPhysicalNetworkId(network), "VirtualRouter")) { + if (!isProviderEnabledInPhysicalNetwork(getPhysicalNetworkId(network), "VirtualRouter")) { s_logger.warn("Unable to complete shutdown of the network elements due to element: " + element.getName() + " either doesn't exist or not enabled in the physical network " + getPhysicalNetworkId(network)); success = false; } @@ -2488,28 +2488,37 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag } boolean success = true; - if (!cleanupNetworkResources(networkId, callerAccount, context.getCaller().getId())) { s_logger.warn("Unable to delete network id=" + networkId + ": failed to cleanup network resources"); return false; } + //get providers to destroy + List providersToDestroy = getNetworkProviders(network.getId()); for (NetworkElement element : _networkElements) { - try { - if (s_logger.isDebugEnabled()) { - s_logger.debug("Sending destroy to " + element); - } - element.destroy(network); - } catch (ResourceUnavailableException e) { - s_logger.warn("Unable to complete destroy of the network due to element: " + element.getName(), e); - success = false; - } catch (ConcurrentOperationException e) { - s_logger.warn("Unable to complete destroy of the network due to element: " + element.getName(), e); - success = false; - } catch (Exception e) { - s_logger.warn("Unable to complete destroy of the network due to element: " + element.getName(), e); - success = false; - } + if (providersToDestroy.contains(element.getProvider())) { + try { + if (!isProviderEnabledInPhysicalNetwork(getPhysicalNetworkId(network), "VirtualRouter")) { + s_logger.warn("Unable to complete destroy of the network elements due to element: " + element.getName() + " either doesn't exist or not enabled in the physical network " + getPhysicalNetworkId(network)); + success = false; + } + + if (s_logger.isDebugEnabled()) { + s_logger.debug("Sending destroy to " + element); + } + + element.destroy(network); + } catch (ResourceUnavailableException e) { + s_logger.warn("Unable to complete destroy of the network due to element: " + element.getName(), e); + success = false; + } catch (ConcurrentOperationException e) { + s_logger.warn("Unable to complete destroy of the network due to element: " + element.getName(), e); + success = false; + } catch (Exception e) { + s_logger.warn("Unable to complete destroy of the network due to element: " + element.getName(), e); + success = false; + } + } } if (success) { @@ -2964,8 +2973,8 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag return guestNic.getIp4Address(); } - @Override - public Nic getNicInNetworkIncludingRemoved(long vmId, long networkId) { + + private Nic getNicInNetworkIncludingRemoved(long vmId, long networkId) { return _nicDao.findByInstanceIdAndNetworkIdIncludingRemoved(networkId, vmId); } @@ -3107,10 +3116,10 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag public boolean networkIsConfiguredForExternalNetworking(long zoneId, long networkId) { DataCenterVO zone = _dcDao.findById(zoneId); - boolean usesJuniperForGatewayService = _ntwkSrvcDao.isProviderSupportedInNetwork(networkId, Service.Gateway, Network.Provider.JuniperSRX); - boolean usesJuniperForFirewallService = _ntwkSrvcDao.isProviderSupportedInNetwork(networkId, Service.Firewall, Network.Provider.JuniperSRX); - boolean usesNetscalarForLBService = _ntwkSrvcDao.isProviderSupportedInNetwork(networkId, Service.Lb, Network.Provider.Netscaler); - boolean usesF5ForLBService = _ntwkSrvcDao.isProviderSupportedInNetwork(networkId, Service.Lb, Network.Provider.F5BigIp); + boolean usesJuniperForGatewayService = _ntwkSrvcDao.canProviderSupportServiceInNetwork(networkId, Service.Gateway, Network.Provider.JuniperSRX); + boolean usesJuniperForFirewallService = _ntwkSrvcDao.canProviderSupportServiceInNetwork(networkId, Service.Firewall, Network.Provider.JuniperSRX); + boolean usesNetscalarForLBService = _ntwkSrvcDao.canProviderSupportServiceInNetwork(networkId, Service.Lb, Network.Provider.Netscaler); + boolean usesF5ForLBService = _ntwkSrvcDao.canProviderSupportServiceInNetwork(networkId, Service.Lb, Network.Provider.F5BigIp); if (zone.getNetworkType() == NetworkType.Advanced) { if (usesJuniperForGatewayService && usesJuniperForFirewallService) { @@ -3639,8 +3648,8 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag } @Override - public boolean isProviderSupportedInNetwork(long networkId, Service service, Provider provider){ - return _ntwkSrvcDao.isProviderSupportedInNetwork(networkId, service, provider); + public boolean isProviderSupportServiceInNetwork(long networkId, Service service, Provider provider){ + return _ntwkSrvcDao.canProviderSupportServiceInNetwork(networkId, service, provider); } protected boolean canUpgrade(long oldNetworkOfferingId, long newNetworkOfferingId) { @@ -4864,9 +4873,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag return false; } - - @Override - public boolean isProviderEnabled(PhysicalNetworkServiceProvider provider) { + private boolean isProviderEnabled(PhysicalNetworkServiceProvider provider) { if (provider == null || provider.getState() != PhysicalNetworkServiceProvider.State.Enabled) { //TODO: check for other states: Shutdown? return false; } @@ -4874,7 +4881,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag } @Override - public boolean isProviderExistAndEnabled(long physicalNetowrkId, String providerName) { + public boolean isProviderEnabledInPhysicalNetwork(long physicalNetowrkId, String providerName) { PhysicalNetworkServiceProviderVO ntwkSvcProvider = _pNSPDao.findByServiceProvider(physicalNetowrkId, providerName); if (ntwkSvcProvider == null) { s_logger.warn("Unable to find provider " + providerName + " in physical network id=" + physicalNetowrkId); @@ -4883,8 +4890,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag return isProviderEnabled(ntwkSvcProvider); } - @Override - public boolean isServiceEnabledInNetwork(long physicalNetworkId, long networkId, Service service) { + private boolean isServiceEnabledInNetwork(long physicalNetworkId, long networkId, Service service) { //check if the service is supported in the network if (!areServicesSupportedInNetwork(networkId, service)) { s_logger.debug("Service " + service.getName() + " is not supported in the network id=" + networkId); @@ -4894,7 +4900,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag //get provider for the service and check if all of them are supported String provider = _ntwkSrvcDao.getProviderForServiceInNetwork(networkId, service); - if (!isProviderExistAndEnabled(physicalNetworkId, provider)) { + if (!isProviderEnabledInPhysicalNetwork(physicalNetworkId, provider)) { s_logger.debug("Provider " + provider + " is not enabled in physical network id=" + physicalNetworkId); return false; } @@ -5015,7 +5021,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag return _allowSubdomainNetworkAccess; } - public List getNetworkProviders(long networkId) { + private List getNetworkProviders(long networkId) { List providerNames = _ntwkSrvcDao.getDistinctProviders(networkId); List providers = new ArrayList(); for (String providerName : providerNames) { @@ -5024,4 +5030,15 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag return providers; } + + @Override + public boolean isProviderInNetwork(Provider provider, long networkId) { + if (_ntwkSrvcDao.isProviderForNetwork(networkId, provider) == null) { + return true; + } else { + return false; + } + } + + } diff --git a/server/src/com/cloud/network/dao/NetworkServiceMapDao.java b/server/src/com/cloud/network/dao/NetworkServiceMapDao.java index 565a43a3d50..f998a4f7dd9 100644 --- a/server/src/com/cloud/network/dao/NetworkServiceMapDao.java +++ b/server/src/com/cloud/network/dao/NetworkServiceMapDao.java @@ -14,9 +14,10 @@ import com.cloud.utils.db.GenericDao; */ public interface NetworkServiceMapDao extends GenericDao{ boolean areServicesSupportedInNetwork(long networkId, Service... services); - boolean isProviderSupportedInNetwork(long networkId, Service service, Provider provider); + boolean canProviderSupportServiceInNetwork(long networkId, Service service, Provider provider); List getServicesInNetwork(long networkId); String getProviderForServiceInNetwork(long networkid, Service service); void deleteByNetworkId(long networkId); List getDistinctProviders(long networkId); + String isProviderForNetwork(long networkId, Provider provider); } diff --git a/server/src/com/cloud/network/dao/NetworkServiceMapDaoImpl.java b/server/src/com/cloud/network/dao/NetworkServiceMapDaoImpl.java index e1112d07e02..e8d7d5664e4 100644 --- a/server/src/com/cloud/network/dao/NetworkServiceMapDaoImpl.java +++ b/server/src/com/cloud/network/dao/NetworkServiceMapDaoImpl.java @@ -56,6 +56,7 @@ public class NetworkServiceMapDaoImpl extends GenericDaoBase sc = AllFieldsSearch.create(); sc.setParameters("networkId", networkId); sc.setParameters("service", service.getName()); @@ -152,4 +153,17 @@ public class NetworkServiceMapDaoImpl extends GenericDaoBase sc = DistinctProvidersSearch.create(); + sc.setParameters("networkId", networkId); + sc.setParameters("provider", provider.getName()); + List results = customSearch(sc, null); + if (results.isEmpty()) { + return null; + } else { + return results.get(0); + } + } + } diff --git a/server/src/com/cloud/network/element/F5ExternalLoadBalancerElement.java b/server/src/com/cloud/network/element/F5ExternalLoadBalancerElement.java index 781997d399e..6a6e6f2521f 100644 --- a/server/src/com/cloud/network/element/F5ExternalLoadBalancerElement.java +++ b/server/src/com/cloud/network/element/F5ExternalLoadBalancerElement.java @@ -106,7 +106,7 @@ public class F5ExternalLoadBalancerElement extends ExternalLoadBalancerDeviceMan } return (_networkManager.networkIsConfiguredForExternalNetworking(zone.getId(), config.getId()) && - _ntwkSrvcDao.isProviderSupportedInNetwork(config.getId(), Service.Lb, Network.Provider.F5BigIp)); + _ntwkSrvcDao.canProviderSupportServiceInNetwork(config.getId(), Service.Lb, Network.Provider.F5BigIp)); } @Override diff --git a/server/src/com/cloud/network/element/JuniperSRXExternalFirewallElement.java b/server/src/com/cloud/network/element/JuniperSRXExternalFirewallElement.java index ab0cc8e81c8..0e8e994bab8 100644 --- a/server/src/com/cloud/network/element/JuniperSRXExternalFirewallElement.java +++ b/server/src/com/cloud/network/element/JuniperSRXExternalFirewallElement.java @@ -112,7 +112,7 @@ public class JuniperSRXExternalFirewallElement extends ExternalFirewallDeviceMan } return _networkManager.networkIsConfiguredForExternalNetworking(zone.getId(),config.getId())&& - _ntwkSrvcDao.isProviderSupportedInNetwork(config.getId(), Service.Lb, Network.Provider.JuniperSRX); + _ntwkSrvcDao.canProviderSupportServiceInNetwork(config.getId(), Service.Lb, Network.Provider.JuniperSRX); } @Override diff --git a/server/src/com/cloud/network/element/NetscalerExternalLoadBalancerElement.java b/server/src/com/cloud/network/element/NetscalerExternalLoadBalancerElement.java index c47587af63d..891eef7c402 100644 --- a/server/src/com/cloud/network/element/NetscalerExternalLoadBalancerElement.java +++ b/server/src/com/cloud/network/element/NetscalerExternalLoadBalancerElement.java @@ -99,7 +99,7 @@ public class NetscalerExternalLoadBalancerElement extends ExternalLoadBalancerDe } return (_networkManager.networkIsConfiguredForExternalNetworking(zone.getId(), config.getId()) && - _ntwkSrvcDao.isProviderSupportedInNetwork(config.getId(), Service.Lb, Network.Provider.Netscaler)); + _ntwkSrvcDao.canProviderSupportServiceInNetwork(config.getId(), Service.Lb, Network.Provider.Netscaler)); } @Override diff --git a/server/src/com/cloud/network/element/VirtualRouterElement.java b/server/src/com/cloud/network/element/VirtualRouterElement.java index 31d5f5e2c61..f36f6771425 100644 --- a/server/src/com/cloud/network/element/VirtualRouterElement.java +++ b/server/src/com/cloud/network/element/VirtualRouterElement.java @@ -104,14 +104,22 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl @Inject VirtualRouterProviderDao _vrProviderDao; protected boolean canHandle(Network network, Service service) { - if (!_networkMgr.isProviderExistAndEnabled(_networkMgr.getPhysicalNetworkId(network), "VirtualRouter")) { + if (!_networkMgr.isProviderEnabledInPhysicalNetwork(_networkMgr.getPhysicalNetworkId(network), "VirtualRouter")) { return false; } - if (!_networkMgr.isProviderSupportedInNetwork(network.getId(), service, getProvider())) { - return false; + if (service == null) { + if (!_networkMgr.isProviderInNetwork(getProvider(), network.getId())) { + s_logger.trace("Element " + getProvider().getName() + " is not a provider for the network " + network); + return false; + } + } else { + if (!_networkMgr.isProviderSupportServiceInNetwork(network.getId(), service, getProvider())) { + s_logger.trace("Element " + getProvider().getName() + " doesn't support service " + service.getName() + " in the network " + network); + return false; + } } - + return true; } @@ -132,11 +140,15 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl @Override public boolean prepare(Network network, NicProfile nic, VirtualMachineProfile vm, DeployDestination dest, ReservationContext context) throws ConcurrentOperationException, InsufficientCapacityException, ResourceUnavailableException { - NetworkOfferingVO offering = _networkOfferingDao.findById(network.getNetworkOfferingId()); + if (!canHandle(network, null)) { + return false; + } + + NetworkOfferingVO offering = _networkOfferingDao.findById(network.getNetworkOfferingId()); if (offering.isSystemOnly()) { return false; } - if (!_networkMgr.isProviderExistAndEnabled(_networkMgr.getPhysicalNetworkId(network), "VirtualRouter")) { + if (!_networkMgr.isProviderEnabledInPhysicalNetwork(_networkMgr.getPhysicalNetworkId(network), "VirtualRouter")) { return false; } @@ -195,13 +207,13 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl @Override public String[] applyVpnUsers(RemoteAccessVpn vpn, List users) throws ResourceUnavailableException{ Network network = _networksDao.findById(vpn.getNetworkId()); - List routers = _routerDao.listByNetworkAndRole(network.getId(), Role.VIRTUAL_ROUTER); - if (routers == null || routers.isEmpty()) { - s_logger.debug("Virtual router elemnt doesn't need to apply vpn users on the backend; virtual router doesn't exist in the network " + network.getId()); - return null; - } if (canHandle(network, Service.Vpn)) { + List routers = _routerDao.listByNetworkAndRole(network.getId(), Role.VIRTUAL_ROUTER); + if (routers == null || routers.isEmpty()) { + s_logger.debug("Virtual router elemnt doesn't need to apply vpn users on the backend; virtual router doesn't exist in the network " + network.getId()); + return null; + } return _routerMgr.applyVpnUsers(network, users, routers); } else { s_logger.debug("Element " + this.getName() + " doesn't handle applyVpnUsers command"); @@ -211,13 +223,12 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl @Override public boolean startVpn(Network network, RemoteAccessVpn vpn) throws ResourceUnavailableException { - List routers = _routerDao.listByNetworkAndRole(network.getId(), Role.VIRTUAL_ROUTER); - if (routers == null || routers.isEmpty()) { - s_logger.debug("Virtual router elemnt doesn't need stop vpn on the backend; virtual router doesn't exist in the network " + network.getId()); - return true; - } - if (canHandle(network, Service.Vpn)) { + List routers = _routerDao.listByNetworkAndRole(network.getId(), Role.VIRTUAL_ROUTER); + if (routers == null || routers.isEmpty()) { + s_logger.debug("Virtual router elemnt doesn't need stop vpn on the backend; virtual router doesn't exist in the network " + network.getId()); + return true; + } return _routerMgr.startRemoteAccessVpn(network, vpn, routers); } else { s_logger.debug("Element " + this.getName() + " doesn't handle createVpn command"); @@ -227,13 +238,12 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl @Override public boolean stopVpn(Network network, RemoteAccessVpn vpn) throws ResourceUnavailableException { - List routers = _routerDao.listByNetworkAndRole(network.getId(), Role.VIRTUAL_ROUTER); - if (routers == null || routers.isEmpty()) { - s_logger.debug("Virtual router elemnt doesn't need stop vpn on the backend; virtual router doesn't exist in the network " + network.getId()); - return true; - } - if (canHandle(network, Service.Vpn)) { + List routers = _routerDao.listByNetworkAndRole(network.getId(), Role.VIRTUAL_ROUTER); + if (routers == null || routers.isEmpty()) { + s_logger.debug("Virtual router elemnt doesn't need stop vpn on the backend; virtual router doesn't exist in the network " + network.getId()); + return true; + } return _routerMgr.deleteRemoteAccessVpn(network, vpn, routers); } else { s_logger.debug("Element " + this.getName() + " doesn't handle removeVpn command"); @@ -244,7 +254,6 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl @Override public boolean applyIps(Network network, List ipAddress) throws ResourceUnavailableException { if (canHandle(network, Service.Firewall)) { - List routers = _routerDao.listByNetworkAndRole(network.getId(), Role.VIRTUAL_ROUTER); if (routers == null || routers.isEmpty()) { s_logger.debug("Virtual router elemnt doesn't need to associate ip addresses on the backend; virtual router doesn't exist in the network " + network.getId()); @@ -364,7 +373,9 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl @Override public boolean savePassword(Network network, NicProfile nic, VirtualMachineProfile vm) throws ResourceUnavailableException{ - + if (!canHandle(network, null)) { + return false; + } List routers = _routerDao.listByNetworkAndRole(network.getId(), Role.VIRTUAL_ROUTER); if (routers == null || routers.isEmpty()) { s_logger.debug("Can't find virtual router element in network " + network.getId()); @@ -486,7 +497,7 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl VirtualMachineProfile uservm = (VirtualMachineProfile)vm; boolean publicNetwork = false; - if (_networkMgr.isProviderSupportedInNetwork(network.getId(), Service.SourceNat, getProvider())) { + if (_networkMgr.isProviderSupportServiceInNetwork(network.getId(), Service.SourceNat, getProvider())) { publicNetwork = true; } boolean isPodBased = (dest.getDataCenter().getNetworkType() == NetworkType.Basic || _networkMgr.isSecurityGroupSupportedInNetwork(network)) && @@ -534,7 +545,7 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl VirtualMachineProfile uservm = (VirtualMachineProfile)vm; boolean publicNetwork = false; - if (_networkMgr.isProviderSupportedInNetwork(network.getId(), Service.SourceNat, getProvider())) { + if (_networkMgr.isProviderSupportServiceInNetwork(network.getId(), Service.SourceNat, getProvider())) { publicNetwork = true; } boolean isPodBased = (dest.getDataCenter().getNetworkType() == NetworkType.Basic || _networkMgr.isSecurityGroupSupportedInNetwork(network)) && diff --git a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java index 5865973c95e..61b1c41a45a 100755 --- a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java +++ b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java @@ -1459,7 +1459,7 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian } boolean publicNetwork = false; - if (_networkMgr.isProviderSupportedInNetwork(network.getId(), Service.SourceNat, Provider.VirtualRouter)) { + if (_networkMgr.isProviderSupportServiceInNetwork(network.getId(), Service.SourceNat, Provider.VirtualRouter)) { publicNetwork = true; } if (!publicNetwork) { @@ -1696,7 +1696,7 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian if (!publicIps.isEmpty()) { // Re-apply public ip addresses - should come before PF/LB/VPN - if (_networkMgr.isProviderSupportedInNetwork(router.getNetworkId(), Service.Firewall, provider)) { + if (_networkMgr.isProviderSupportServiceInNetwork(router.getNetworkId(), Service.Firewall, provider)) { createAssociateIPCommands(router, publicIps, cmds, 0); } @@ -1708,24 +1708,24 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian //Get information about all the rules (StaticNats and StaticNatRules; PFVPN to reapply on domR start) for (PublicIpAddress ip : publicIps) { - if (_networkMgr.isProviderSupportedInNetwork(router.getNetworkId(), Service.PortForwarding, provider)) { + if (_networkMgr.isProviderSupportServiceInNetwork(router.getNetworkId(), Service.PortForwarding, provider)) { pfRules.addAll(_pfRulesDao.listForApplication(ip.getId())); } - if (_networkMgr.isProviderSupportedInNetwork(router.getNetworkId(), Service.StaticNat, provider)) { + if (_networkMgr.isProviderSupportServiceInNetwork(router.getNetworkId(), Service.StaticNat, provider)) { staticNatFirewallRules.addAll(_rulesDao.listByIpAndPurpose(ip.getId(), Purpose.StaticNat)); } - if (_networkMgr.isProviderSupportedInNetwork(router.getNetworkId(), Service.Firewall, provider)) { + if (_networkMgr.isProviderSupportServiceInNetwork(router.getNetworkId(), Service.Firewall, provider)) { firewallRules.addAll(_rulesDao.listByIpAndPurpose(ip.getId(), Purpose.Firewall)); } - if (_networkMgr.isProviderSupportedInNetwork(router.getNetworkId(), Service.Vpn, provider)) { + if (_networkMgr.isProviderSupportServiceInNetwork(router.getNetworkId(), Service.Vpn, provider)) { RemoteAccessVpn vpn = _vpnDao.findById(ip.getId()); if (vpn != null) { vpns.add(vpn); } } - if (_networkMgr.isProviderSupportedInNetwork(router.getNetworkId(), Service.StaticNat, provider)) { + if (_networkMgr.isProviderSupportServiceInNetwork(router.getNetworkId(), Service.StaticNat, provider)) { if (ip.isOneToOneNat()) { String dstIp = _networkMgr.getIpInNetwork(ip.getAssociatedWithVmId(), networkId); StaticNatImpl staticNat = new StaticNatImpl(ip.getAccountId(), ip.getDomainId(), networkId, ip.getId(), dstIp, false); @@ -1772,7 +1772,7 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian List lbs = _loadBalancerDao.listByNetworkId(networkId); List lbRules = new ArrayList(); - if (_networkMgr.isProviderSupportedInNetwork(router.getNetworkId(), Service.Lb, provider)) { + if (_networkMgr.isProviderSupportServiceInNetwork(router.getNetworkId(), Service.Lb, provider)) { // Re-apply load balancing rules for (LoadBalancerVO lb : lbs) { List dstList = _lbMgr.getExistingDestinations(lb.getId()); @@ -1788,13 +1788,13 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian } } - if (_networkMgr.isProviderSupportedInNetwork(router.getNetworkId(), Service.Dhcp, provider)) { + if (_networkMgr.isProviderSupportServiceInNetwork(router.getNetworkId(), Service.Dhcp, provider)) { // Resend dhcp s_logger.debug("Reapplying dhcp entries as a part of domR " + router + " start..."); createDhcpEntriesCommands(router, cmds); } - if (_networkMgr.isProviderSupportedInNetwork(router.getNetworkId(), Service.UserData, provider)) { + if (_networkMgr.isProviderSupportServiceInNetwork(router.getNetworkId(), Service.UserData, provider)) { // Resend user data s_logger.debug("Reapplying vm data (userData and metaData) entries as a part of domR " + router + " start..."); createVmDataCommands(router, cmds); diff --git a/server/src/com/cloud/vm/UserVmManagerImpl.java b/server/src/com/cloud/vm/UserVmManagerImpl.java index a1ebf27574c..5f93ca9055f 100755 --- a/server/src/com/cloud/vm/UserVmManagerImpl.java +++ b/server/src/com/cloud/vm/UserVmManagerImpl.java @@ -2761,7 +2761,7 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager DataCenterVO dc = _dcDao.findById(vm.getDataCenterIdToDeployIn()); UserVmVO userVm = profile.getVirtualMachine(); //dc.getDhcpProvider().equalsIgnoreCase(Provider.ExternalDhcpServer.getName()) - if (_ntwkSrvcDao.isProviderSupportedInNetwork(guestNetwork.getId(), Service.Dhcp, Provider.ExternalDhcpServer)){ + if (_ntwkSrvcDao.canProviderSupportServiceInNetwork(guestNetwork.getId(), Service.Dhcp, Provider.ExternalDhcpServer)){ _nicDao.update(guestNic.getId(), guestNic); userVm.setPrivateIpAddress(guestNic.getIp4Address()); _vmDao.update(userVm.getId(), userVm); diff --git a/server/test/com/cloud/network/MockNetworkManagerImpl.java b/server/test/com/cloud/network/MockNetworkManagerImpl.java index fd4a9919ebe..0940dae2f48 100755 --- a/server/test/com/cloud/network/MockNetworkManagerImpl.java +++ b/server/test/com/cloud/network/MockNetworkManagerImpl.java @@ -445,7 +445,7 @@ public class MockNetworkManagerImpl implements NetworkManager, Manager, NetworkS } @Override - public boolean isProviderSupportedInNetwork(long networkId, Service service, Provider provider) { + public boolean isProviderSupportServiceInNetwork(long networkId, Service service, Provider provider) { // TODO Auto-generated method stub return false; } @@ -626,7 +626,7 @@ public class MockNetworkManagerImpl implements NetworkManager, Manager, NetworkS } @Override - public boolean isProviderExistAndEnabled(long physicalNetowrkId, String providerName) { + public boolean isProviderEnabledInPhysicalNetwork(long physicalNetowrkId, String providerName) { // TODO Auto-generated method stub return false; }