Virtual router elements: prepare nics only when VirtualRouter is a provider for at least one service in the network

This commit is contained in:
Alena Prokharchyk 2011-11-17 14:31:35 -08:00
parent ed176cf3c9
commit 5571afa471
11 changed files with 131 additions and 92 deletions

View File

@ -175,8 +175,6 @@ public interface NetworkManager extends NetworkService {
Nic getNicInNetwork(long vmId, long networkId);
Nic getNicInNetworkIncludingRemoved(long vmId, long networkId);
List<? extends Nic> 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<Long> 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<String> 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);
}

View File

@ -1414,7 +1414,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
List<Provider> 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<Provider> providersToImplement = getNetworkProviders(network.getId());
//get providers to shutdown
List<Provider> 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<Provider> 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<Provider> getNetworkProviders(long networkId) {
private List<Provider> getNetworkProviders(long networkId) {
List<String> providerNames = _ntwkSrvcDao.getDistinctProviders(networkId);
List<Provider> providers = new ArrayList<Provider>();
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;
}
}
}

View File

@ -14,9 +14,10 @@ import com.cloud.utils.db.GenericDao;
*/
public interface NetworkServiceMapDao extends GenericDao<NetworkServiceMapVO, Long>{
boolean areServicesSupportedInNetwork(long networkId, Service... services);
boolean isProviderSupportedInNetwork(long networkId, Service service, Provider provider);
boolean canProviderSupportServiceInNetwork(long networkId, Service service, Provider provider);
List<NetworkServiceMapVO> getServicesInNetwork(long networkId);
String getProviderForServiceInNetwork(long networkid, Service service);
void deleteByNetworkId(long networkId);
List<String> getDistinctProviders(long networkId);
String isProviderForNetwork(long networkId, Provider provider);
}

View File

@ -56,6 +56,7 @@ public class NetworkServiceMapDaoImpl extends GenericDaoBase<NetworkServiceMapVO
DistinctProvidersSearch = createSearchBuilder(String.class);
DistinctProvidersSearch.and("networkId", DistinctProvidersSearch.entity().getNetworkId(), SearchCriteria.Op.EQ);
DistinctProvidersSearch.and("provider", DistinctProvidersSearch.entity().getProvider(), SearchCriteria.Op.EQ);
DistinctProvidersSearch.select(null, Func.DISTINCT, DistinctProvidersSearch.entity().getProvider());
DistinctProvidersSearch.done();
@ -92,7 +93,7 @@ public class NetworkServiceMapDaoImpl extends GenericDaoBase<NetworkServiceMapVO
}
@Override
public boolean isProviderSupportedInNetwork(long networkId, Service service, Provider provider) {
public boolean canProviderSupportServiceInNetwork(long networkId, Service service, Provider provider) {
SearchCriteria<NetworkServiceMapVO> sc = AllFieldsSearch.create();
sc.setParameters("networkId", networkId);
sc.setParameters("service", service.getName());
@ -152,4 +153,17 @@ public class NetworkServiceMapDaoImpl extends GenericDaoBase<NetworkServiceMapVO
return results;
}
@Override
public String isProviderForNetwork(long networkId, Provider provider) {
SearchCriteria<String> sc = DistinctProvidersSearch.create();
sc.setParameters("networkId", networkId);
sc.setParameters("provider", provider.getName());
List<String> results = customSearch(sc, null);
if (results.isEmpty()) {
return null;
} else {
return results.get(0);
}
}
}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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<? extends VirtualMachine> 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<? extends VpnUser> users) throws ResourceUnavailableException{
Network network = _networksDao.findById(vpn.getNetworkId());
List<DomainRouterVO> 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<DomainRouterVO> 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<DomainRouterVO> 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<DomainRouterVO> 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<DomainRouterVO> 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<DomainRouterVO> 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<? extends PublicIpAddress> ipAddress) throws ResourceUnavailableException {
if (canHandle(network, Service.Firewall)) {
List<DomainRouterVO> 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<? extends VirtualMachine> vm) throws ResourceUnavailableException{
if (!canHandle(network, null)) {
return false;
}
List<DomainRouterVO> 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> uservm = (VirtualMachineProfile<UserVm>)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> uservm = (VirtualMachineProfile<UserVm>)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)) &&

View File

@ -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<LoadBalancerVO> lbs = _loadBalancerDao.listByNetworkId(networkId);
List<LoadBalancingRule> lbRules = new ArrayList<LoadBalancingRule>();
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<LbDestination> 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);

View File

@ -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);

View File

@ -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;
}