Divided NetworkManagerImpl into two files: NetworkManagerImpl and IpAddressManagerImpl

This commit is contained in:
Alex Huang 2013-08-15 17:06:17 -07:00
parent 564502abd7
commit 092e20204a
28 changed files with 502 additions and 2417 deletions

View File

@ -1,41 +0,0 @@
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
package org.apache.cloudstack.engine.cloud.entity.api;
import com.cloud.utils.component.ComponentContext;
import org.springframework.beans.factory.FactoryBean;
import org.springframework.stereotype.Component;
@Component
public class VirtualMachineEntityFactory implements FactoryBean<VirtualMachineEntityImpl>{
@Override
public VirtualMachineEntityImpl getObject() throws Exception {
return ComponentContext.inject(VirtualMachineEntityImpl.class.newInstance());
}
@Override
public Class<?> getObjectType() {
return VirtualMachineEntityImpl.class;
}
@Override
public boolean isSingleton() {
return false;
}
}

View File

@ -23,9 +23,10 @@ import java.net.URI;
import javax.ejb.Local;
import javax.inject.Inject;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.ApiConstants;
import com.cloud.dc.DataCenter;
import com.cloud.dc.Pod;
import com.cloud.dc.PodVlanMapVO;
@ -41,6 +42,7 @@ import com.cloud.exception.InsufficientVirtualNetworkCapcityException;
import com.cloud.host.HostVO;
import com.cloud.host.dao.HostDao;
import com.cloud.hypervisor.Hypervisor.HypervisorType;
import com.cloud.network.IpAddressManager;
import com.cloud.network.Network;
import com.cloud.network.NetworkManager;
import com.cloud.network.Networks.AddressFormat;
@ -54,7 +56,6 @@ import com.cloud.offerings.dao.NetworkOfferingDao;
import com.cloud.utils.db.Transaction;
import com.cloud.vm.NicProfile;
import com.cloud.vm.ReservationContext;
import com.cloud.vm.VirtualMachine;
import com.cloud.vm.VirtualMachineProfile;
@Local(value = { NetworkGuru.class })
@ -74,6 +75,8 @@ public class BaremetaNetworkGuru extends DirectPodBasedNetworkGuru {
NetworkOfferingDao _networkOfferingDao;
@Inject
PodVlanMapDao _podVlanDao;
@Inject
IpAddressManager _ipAddrMgr;
@Override
public void reserve(NicProfile nic, Network network, VirtualMachineProfile vm, DeployDestination dest, ReservationContext context)
@ -106,7 +109,7 @@ public class BaremetaNetworkGuru extends DirectPodBasedNetworkGuru {
txn.start();
// release the old ip here
_networkMgr.markIpAsUnavailable(ipVO.getId());
_ipAddrMgr.markIpAsUnavailable(ipVO.getId());
_ipAddressDao.unassignIpAddress(ipVO.getId());
txn.commit();
@ -154,7 +157,7 @@ public class BaremetaNetworkGuru extends DirectPodBasedNetworkGuru {
DataCenter dc = _dcDao.findById(pod.getDataCenterId());
if (nic.getIp4Address() == null) {
s_logger.debug(String.format("Requiring ip address: %s", nic.getIp4Address()));
PublicIp ip = _networkMgr.assignPublicIpAddress(dc.getId(), pod.getId(), vm.getOwner(), VlanType.DirectAttached, network.getId(), requiredIp, false);
PublicIp ip = _ipAddrMgr.assignPublicIpAddress(dc.getId(), pod.getId(), vm.getOwner(), VlanType.DirectAttached, network.getId(), requiredIp, false);
nic.setIp4Address(ip.getAddress().toString());
nic.setFormat(AddressFormat.Ip4);
nic.setGateway(ip.getGateway());

View File

@ -28,11 +28,11 @@ import javax.ejb.Local;
import javax.inject.Inject;
import javax.naming.ConfigurationException;
import org.apache.log4j.Logger;
import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.network.ExternalNetworkDeviceManager.NetworkDevice;
import org.apache.log4j.Logger;
import com.cloud.agent.AgentManager;
import com.cloud.agent.api.Answer;
import com.cloud.agent.api.AssociateAsaWithLogicalEdgeFirewallCommand;
@ -62,8 +62,8 @@ import com.cloud.configuration.ConfigurationManager;
import com.cloud.dc.ClusterVO;
import com.cloud.dc.ClusterVSMMapVO;
import com.cloud.dc.DataCenter;
import com.cloud.dc.Vlan;
import com.cloud.dc.DataCenter.NetworkType;
import com.cloud.dc.Vlan;
import com.cloud.dc.VlanVO;
import com.cloud.dc.dao.ClusterDao;
import com.cloud.dc.dao.ClusterVSMMapDao;
@ -81,15 +81,15 @@ import com.cloud.host.dao.HostDao;
import com.cloud.host.dao.HostDetailsDao;
import com.cloud.network.CiscoNexusVSMDeviceVO;
import com.cloud.network.IpAddress;
import com.cloud.network.IpAddressManager;
import com.cloud.network.Network;
import com.cloud.network.NetworkManager;
import com.cloud.network.NetworkModel;
import com.cloud.network.PhysicalNetworkServiceProvider;
import com.cloud.network.dao.PhysicalNetworkVO;
import com.cloud.network.Network.Capability;
import com.cloud.network.Network.Provider;
import com.cloud.network.Network.Service;
import com.cloud.network.NetworkManager;
import com.cloud.network.NetworkModel;
import com.cloud.network.Networks.BroadcastDomainType;
import com.cloud.network.PhysicalNetworkServiceProvider;
import com.cloud.network.PublicIpAddress;
import com.cloud.network.addr.PublicIp;
import com.cloud.network.cisco.CiscoAsa1000vDevice;
@ -107,6 +107,7 @@ import com.cloud.network.dao.NetworkDao;
import com.cloud.network.dao.PhysicalNetworkDao;
import com.cloud.network.dao.PhysicalNetworkServiceProviderDao;
import com.cloud.network.dao.PhysicalNetworkServiceProviderVO;
import com.cloud.network.dao.PhysicalNetworkVO;
import com.cloud.network.resource.CiscoVnmcResource;
import com.cloud.network.rules.FirewallRule;
import com.cloud.network.rules.FirewallRule.TrafficType;
@ -125,7 +126,6 @@ import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.utils.net.NetUtils;
import com.cloud.vm.NicProfile;
import com.cloud.vm.ReservationContext;
import com.cloud.vm.VirtualMachine;
import com.cloud.vm.VirtualMachine.Type;
import com.cloud.vm.VirtualMachineProfile;
@ -146,6 +146,8 @@ public class CiscoVnmcElement extends AdapterBase implements SourceNatServicePro
NetworkManager _networkMgr;
@Inject
NetworkModel _networkModel;
@Inject
IpAddressManager _ipAddrMgr;
@Inject
PhysicalNetworkDao _physicalNetworkDao;
@ -336,7 +338,7 @@ public class CiscoVnmcElement extends AdapterBase implements SourceNatServicePro
HostVO ciscoVnmcHost = _hostDao.findById(ciscoVnmcDevice.getHostId());
_hostDao.loadDetails(ciscoVnmcHost);
Account owner = context.getAccount();
PublicIp sourceNatIp = _networkMgr.assignSourceNatIpAddressToGuestNetwork(owner, network);
PublicIp sourceNatIp = _ipAddrMgr.assignSourceNatIpAddressToGuestNetwork(owner, network);
String vlan = network.getBroadcastUri().getHost();
long vlanId = Long.parseLong(vlan);
@ -362,14 +364,14 @@ public class CiscoVnmcElement extends AdapterBase implements SourceNatServicePro
try {
Account caller = CallContext.current().getCallingAccount();
long callerUserId = CallContext.current().getCallingUserId();
outsideIp = _networkMgr.allocateIp(owner, false, caller, callerUserId, zone);
outsideIp = _ipAddrMgr.allocateIp(owner, false, caller, callerUserId, zone);
} catch (ResourceAllocationException e) {
s_logger.error("Unable to allocate additional public Ip address. Exception details " + e);
return false;
}
try {
outsideIp = _networkMgr.associateIPToGuestNetwork(outsideIp.getId(), network.getId(), true);
outsideIp = _ipAddrMgr.associateIPToGuestNetwork(outsideIp.getId(), network.getId(), true);
} catch (ResourceAllocationException e) {
s_logger.error("Unable to assign allocated additional public Ip " + outsideIp.getAddress().addr() + " to network with vlan " + vlanId + ". Exception details " + e);
return false;

View File

@ -16,6 +16,13 @@
// under the License.
package com.cloud.network.element;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyLong;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import java.net.URI;
import java.util.ArrayList;
import java.util.Collections;
@ -25,7 +32,6 @@ import javax.naming.ConfigurationException;
import org.junit.Before;
import org.junit.Test;
import org.mockito.internal.matchers.Any;
import com.cloud.agent.AgentManager;
import com.cloud.agent.api.Answer;
@ -40,8 +46,8 @@ import com.cloud.agent.api.routing.SetStaticNatRulesCommand;
import com.cloud.configuration.ConfigurationManager;
import com.cloud.dc.ClusterVSMMapVO;
import com.cloud.dc.DataCenter;
import com.cloud.dc.VlanVO;
import com.cloud.dc.DataCenter.NetworkType;
import com.cloud.dc.VlanVO;
import com.cloud.dc.dao.ClusterVSMMapDao;
import com.cloud.dc.dao.VlanDao;
import com.cloud.deploy.DeployDestination;
@ -51,12 +57,13 @@ import com.cloud.exception.InsufficientCapacityException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.host.HostVO;
import com.cloud.host.dao.HostDao;
import com.cloud.network.CiscoNexusVSMDeviceVO;
import com.cloud.network.IpAddress;
import com.cloud.network.IpAddressManager;
import com.cloud.network.Network;
import com.cloud.network.Network.GuestType;
import com.cloud.network.Network.Provider;
import com.cloud.network.Network.Service;
import com.cloud.network.CiscoNexusVSMDeviceVO;
import com.cloud.network.IpAddress;
import com.cloud.network.NetworkManager;
import com.cloud.network.NetworkModel;
import com.cloud.network.Networks.BroadcastDomainType;
@ -73,16 +80,12 @@ import com.cloud.network.dao.NetworkServiceMapDao;
import com.cloud.network.rules.FirewallRule;
import com.cloud.network.rules.PortForwardingRule;
import com.cloud.network.rules.StaticNat;
import com.cloud.network.rules.StaticNatRule;
import com.cloud.offering.NetworkOffering;
import com.cloud.resource.ResourceManager;
import com.cloud.user.Account;
import com.cloud.utils.net.Ip;
import com.cloud.vm.ReservationContext;
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
public class CiscoVnmcElementTest {
CiscoVnmcElement _element = new CiscoVnmcElement();
@ -98,6 +101,7 @@ public class CiscoVnmcElementTest {
ClusterVSMMapDao _clusterVsmMapDao = mock(ClusterVSMMapDao.class);
CiscoNexusVSMDeviceDao _vsmDeviceDao = mock(CiscoNexusVSMDeviceDao.class);
VlanDao _vlanDao = mock(VlanDao.class);
IpAddressManager _ipAddrMgr = mock(IpAddressManager.class);
@Before
public void setUp() throws ConfigurationException {
@ -206,7 +210,7 @@ public class CiscoVnmcElementTest {
when(publicIp.getNetmask()).thenReturn("1.1.1.1");
when(publicIp.getMacAddress()).thenReturn(null);
when(publicIp.isOneToOneNat()).thenReturn(true);
when(_networkMgr.assignSourceNatIpAddressToGuestNetwork(acc, network)).thenReturn(publicIp);
when(_ipAddrMgr.assignSourceNatIpAddressToGuestNetwork(acc, network)).thenReturn(publicIp);
VlanVO vlanVO = mock(VlanVO.class);
when(vlanVO.getVlanGateway()).thenReturn("1.1.1.1");

View File

@ -75,6 +75,7 @@ import com.cloud.exception.ResourceUnavailableException;
import com.cloud.exception.StorageUnavailableException;
import com.cloud.hypervisor.Hypervisor.HypervisorType;
import com.cloud.network.ElasticLbVmMapVO;
import com.cloud.network.IpAddressManager;
import com.cloud.network.Network;
import com.cloud.network.Network.Provider;
import com.cloud.network.Network.Service;
@ -164,6 +165,8 @@ public class ElasticLoadBalancerManagerImpl extends ManagerBase implements Elast
@Inject
DataCenterDao _dcDao = null;
@Inject
IpAddressManager _ipAddrMgr;
@Inject
protected NetworkDao _networkDao;
@Inject
protected NetworkOfferingDao _networkOfferingDao;
@ -585,7 +588,7 @@ public class ElasticLoadBalancerManagerImpl extends ManagerBase implements Elast
Transaction txn = Transaction.currentTxn();
txn.start();
PublicIp ip = _networkMgr.assignPublicIpAddress(frontEndNetwork.getDataCenterId(), null, account, VlanType.DirectAttached, frontEndNetwork.getId(), null, true);
PublicIp ip = _ipAddrMgr.assignPublicIpAddress(frontEndNetwork.getDataCenterId(), null, account, VlanType.DirectAttached, frontEndNetwork.getId(), null, true);
IPAddressVO ipvo = _ipAddressDao.findById(ip.getId());
ipvo.setAssociatedWithNetworkId(frontEndNetwork.getId());
_ipAddressDao.update(ipvo.getId(), ipvo);
@ -600,7 +603,7 @@ public class ElasticLoadBalancerManagerImpl extends ManagerBase implements Elast
IPAddressVO ipvo = _ipAddressDao.findById(ipId);
ipvo.setAssociatedWithNetworkId(null);
_ipAddressDao.update(ipvo.getId(), ipvo);
_networkMgr.disassociatePublicIpAddress(ipId, userId, caller);
_ipAddrMgr.disassociatePublicIpAddress(ipId, userId, caller);
_ipAddressDao.unassignIpAddress(ipId);
}

View File

@ -61,6 +61,7 @@ import com.cloud.exception.OperationTimedoutException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.exception.StorageUnavailableException;
import com.cloud.hypervisor.Hypervisor.HypervisorType;
import com.cloud.network.IpAddressManager;
import com.cloud.network.Network;
import com.cloud.network.Network.Provider;
import com.cloud.network.Network.Service;
@ -130,6 +131,8 @@ public class InternalLoadBalancerVMManagerImpl extends ManagerBase implements
private String _mgmtCidr;
private long _internalLbVmOfferingId = 0L;
@Inject
IpAddressManager _ipAddrMgr;
@Inject VirtualMachineManager _itMgr;
@Inject DomainRouterDao _internalLbVmDao;
@Inject ConfigurationDao _configDao;
@ -661,7 +664,7 @@ public class InternalLoadBalancerVMManagerImpl extends ManagerBase implements
if (guestIp != null) {
guestNic.setIp4Address(guestIp.addr());
} else {
guestNic.setIp4Address(_ntwkMgr.acquireGuestIpAddress(guestNetwork, null));
guestNic.setIp4Address(_ipAddrMgr.acquireGuestIpAddress(guestNetwork, null));
}
guestNic.setGateway(guestNetwork.getGateway());
guestNic.setBroadcastUri(guestNetwork.getBroadcastUri());

View File

@ -18,6 +18,13 @@
*/
package com.cloud.network.guru;
import java.net.URI;
import javax.ejb.Local;
import javax.inject.Inject;
import org.apache.log4j.Logger;
import com.cloud.dc.DataCenter;
import com.cloud.dc.Vlan;
import com.cloud.deploy.DeployDestination;
@ -25,25 +32,26 @@ import com.cloud.deploy.DeploymentPlan;
import com.cloud.exception.ConcurrentOperationException;
import com.cloud.exception.InsufficientAddressCapacityException;
import com.cloud.exception.InsufficientVirtualNetworkCapcityException;
import com.cloud.network.*;
import com.cloud.network.IpAddressManager;
import com.cloud.network.Network;
import com.cloud.network.NetworkModel;
import com.cloud.network.NetworkProfile;
import com.cloud.network.Networks;
import com.cloud.network.addr.PublicIp;
import com.cloud.network.dao.IPAddressVO;
import com.cloud.network.dao.NetworkVO;
import com.cloud.offering.NetworkOffering;
import com.cloud.user.Account;
import com.cloud.user.AccountVO;
import com.cloud.user.dao.AccountDao;
import com.cloud.utils.db.DB;
import com.cloud.utils.db.Transaction;
import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.utils.net.NetUtils;
import com.cloud.user.AccountVO;
import com.cloud.user.dao.AccountDao;
import com.cloud.network.dao.NetworkVO;
import com.cloud.network.dao.IPAddressVO;
import com.cloud.vm.*;
import org.apache.log4j.Logger;
import java.net.URI;
import javax.ejb.Local;
import javax.inject.Inject;
import com.cloud.vm.Nic;
import com.cloud.vm.NicProfile;
import com.cloud.vm.ReservationContext;
import com.cloud.vm.VirtualMachine;
import com.cloud.vm.VirtualMachineProfile;
@Local(value = NetworkGuru.class)
public class MidoNetPublicNetworkGuru extends PublicNetworkGuru {
@ -54,6 +62,8 @@ public class MidoNetPublicNetworkGuru extends PublicNetworkGuru {
NetworkModel _networkModel;
@Inject
AccountDao _accountDao;
@Inject
IpAddressManager _ipAddrMgr;
// Don't need to change traffic type stuff, public is fine
@ -78,10 +88,11 @@ public class MidoNetPublicNetworkGuru extends PublicNetworkGuru {
super();
}
@Override
protected void getIp(NicProfile nic, DataCenter dc, VirtualMachineProfile vm, Network network) throws InsufficientVirtualNetworkCapcityException,
InsufficientAddressCapacityException, ConcurrentOperationException {
if (nic.getIp4Address() == null) {
PublicIp ip = _networkMgr.assignPublicIpAddress(dc.getId(), null, vm.getOwner(), Vlan.VlanType.VirtualNetwork, null, null, false);
PublicIp ip = _ipAddrMgr.assignPublicIpAddress(dc.getId(), null, vm.getOwner(), Vlan.VlanType.VirtualNetwork, null, null, false);
nic.setIp4Address(ip.getAddress().toString());
nic.setGateway(ip.getGateway());
@ -201,7 +212,7 @@ public class MidoNetPublicNetworkGuru extends PublicNetworkGuru {
Transaction txn = Transaction.currentTxn();
txn.start();
_networkMgr.markIpAsUnavailable(ip.getId());
_ipAddrMgr.markIpAsUnavailable(ip.getId());
_ipAddressDao.unassignIpAddress(ip.getId());
txn.commit();

View File

@ -28,10 +28,11 @@ import javax.ejb.Local;
import javax.inject.Inject;
import javax.naming.ConfigurationException;
import org.apache.cloudstack.network.ExternalNetworkDeviceManager.NetworkDevice;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
import org.apache.cloudstack.network.ExternalNetworkDeviceManager.NetworkDevice;
import com.cloud.agent.AgentManager;
import com.cloud.agent.api.ConfigurePortForwardingRulesOnLogicalRouterAnswer;
import com.cloud.agent.api.ConfigurePortForwardingRulesOnLogicalRouterCommand;
@ -74,6 +75,7 @@ import com.cloud.host.HostVO;
import com.cloud.host.dao.HostDao;
import com.cloud.host.dao.HostDetailsDao;
import com.cloud.network.IpAddress;
import com.cloud.network.IpAddressManager;
import com.cloud.network.Network;
import com.cloud.network.Network.Capability;
import com.cloud.network.Network.Provider;
@ -117,7 +119,6 @@ import com.cloud.utils.net.NetUtils;
import com.cloud.vm.NicProfile;
import com.cloud.vm.NicVO;
import com.cloud.vm.ReservationContext;
import com.cloud.vm.VirtualMachine;
import com.cloud.vm.VirtualMachineProfile;
import com.cloud.vm.dao.NicDao;
@ -166,6 +167,8 @@ NiciraNvpElementService, ResourceStateAdapter, IpDeployer {
NetworkServiceMapDao _ntwkSrvcDao;
@Inject
VlanDao _vlanDao;
@Inject
IpAddressManager _ipAddrMgr;
@Override
public Map<Service, Map<Capability, String>> getCapabilities() {
@ -259,7 +262,7 @@ NiciraNvpElementService, ResourceStateAdapter, IpDeployer {
network.getId(), Service.SourceNat, Provider.NiciraNvp)) {
s_logger.debug("Apparently we are supposed to provide SourceNat on this network");
PublicIp sourceNatIp = _networkManager
PublicIp sourceNatIp = _ipAddrMgr
.assignSourceNatIpAddressToGuestNetwork(owner, network);
String publicCidr = sourceNatIp.getAddress().addr() + "/"
+ NetUtils.getCidrSize(sourceNatIp.getVlanNetmask());

View File

@ -21,6 +21,7 @@ import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
@ -132,6 +133,7 @@ import com.cloud.exception.PermissionDeniedException;
import com.cloud.exception.ResourceAllocationException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.hypervisor.Hypervisor.HypervisorType;
import com.cloud.network.IpAddressManager;
import com.cloud.network.Network;
import com.cloud.network.Network.Capability;
import com.cloud.network.Network.GuestType;
@ -203,8 +205,6 @@ import com.cloud.vm.dao.NicIpAliasDao;
import com.cloud.vm.dao.NicIpAliasVO;
import com.cloud.vm.dao.NicSecondaryIpDao;
import java.util.Arrays;
@Local(value = { ConfigurationManager.class, ConfigurationService.class })
public class ConfigurationManagerImpl extends ManagerBase implements ConfigurationManager, ConfigurationService {
public static final Logger s_logger = Logger.getLogger(ConfigurationManagerImpl.class.getName());
@ -303,6 +303,8 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
public ManagementService _mgr;
@Inject
DedicatedResourceDao _dedicatedDao;
@Inject
IpAddressManager _ipAddrMgr;
// FIXME - why don't we have interface for DataCenterLinkLocalIpAddressDao?
@Inject
@ -3208,7 +3210,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
+ " belonging to the range has firewall rules applied. Cleanup the rules first");
}
// release public ip address here
success = success && _networkMgr.disassociatePublicIpAddress(ip.getId(), userId, caller);
success = success && _ipAddrMgr.disassociatePublicIpAddress(ip.getId(), userId, caller);
}
if (!success) {
s_logger.warn("Some ip addresses failed to be released as a part of vlan " + vlanDbId
@ -3391,7 +3393,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
s_logger.debug("Releasing Public IP addresses" + ip + " of vlan " + vlanDbId
+ " as part of Public IP" + " range release to the system pool");
}
success = success && _networkMgr.disassociatePublicIpAddress(ip.getId(), userId, caller);
success = success && _ipAddrMgr.disassociatePublicIpAddress(ip.getId(), userId, caller);
} else {
ipsInUse.add(ip);
}

View File

@ -26,13 +26,13 @@ import java.util.UUID;
import javax.inject.Inject;
import javax.naming.ConfigurationException;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.response.ExternalLoadBalancerResponse;
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
import org.apache.cloudstack.network.ExternalNetworkDeviceManager.NetworkDevice;
import org.apache.log4j.Logger;
import com.cloud.agent.AgentManager;
import com.cloud.agent.api.Answer;
import com.cloud.agent.api.StartupCommand;
@ -184,6 +184,8 @@ public abstract class ExternalLoadBalancerDeviceManagerImpl extends AdapterBase
ExternalFirewallDeviceDao _externalFirewallDeviceDao;
@Inject
protected HostPodDao _podDao = null;
@Inject
IpAddressManager _ipAddrMgr;
private long _defaultLbCapacity;
private static final org.apache.log4j.Logger s_logger = Logger.getLogger(ExternalLoadBalancerDeviceManagerImpl.class);
@ -507,7 +509,13 @@ public abstract class ExternalLoadBalancerDeviceManagerImpl extends AdapterBase
// acquire a public IP to associate with lb appliance (used as subnet IP to make the
// appliance part of private network)
PublicIp publicIp = _networkMgr.assignPublicIpAddress(guestConfig.getDataCenterId(), null, _accountMgr.getSystemAccount(), VlanType.VirtualNetwork, null, null, false);
PublicIp publicIp = _ipAddrMgr.assignPublicIpAddress(guestConfig.getDataCenterId(),
null,
_accountMgr.getSystemAccount(),
VlanType.VirtualNetwork,
null,
null,
false);
String publicIPNetmask = publicIp.getVlanNetmask();
String publicIPgateway = publicIp.getVlanGateway();
String publicIPVlanTag = publicIp.getVlanTag();
@ -544,7 +552,7 @@ public abstract class ExternalLoadBalancerDeviceManagerImpl extends AdapterBase
// release the public & private IP back to dc pool, as the load balancer
// appliance is now destroyed
_dcDao.releasePrivateIpAddress(lbIP, guestConfig.getDataCenterId(), null);
_networkMgr.disassociatePublicIpAddress(publicIp.getId(), _accountMgr.getSystemUser().getId(), _accountMgr.getSystemAccount());
_ipAddrMgr.disassociatePublicIpAddress(publicIp.getId(), _accountMgr.getSystemUser().getId(), _accountMgr.getSystemAccount());
}
} catch (Exception e) {
s_logger.warn("Failed to destroy load balancer appliance created for the network" + guestConfig.getId() + " due to " + e.getMessage());
@ -696,7 +704,7 @@ public abstract class ExternalLoadBalancerDeviceManagerImpl extends AdapterBase
// release the public IP allocated for this LB appliance
DetailVO publicIpDetail = _hostDetailDao.findDetail(lbHost.getId(), "publicip");
IPAddressVO ipVo = _ipAddressDao.findByIpAndDcId(guestConfig.getDataCenterId(), publicIpDetail.toString());
_networkMgr.disassociatePublicIpAddress(ipVo.getId(), _accountMgr.getSystemUser().getId(), _accountMgr.getSystemAccount());
_ipAddrMgr.disassociatePublicIpAddress(ipVo.getId(), _accountMgr.getSystemUser().getId(), _accountMgr.getSystemAccount());
} else {
deviceMapLock.unlock();
}
@ -763,7 +771,7 @@ public abstract class ExternalLoadBalancerDeviceManagerImpl extends AdapterBase
String loadBalancingIpAddress = existedGuestIp;
if (loadBalancingIpAddress == null) {
loadBalancingIpAddress = _networkMgr.acquireGuestIpAddress(network, null);
loadBalancingIpAddress = _ipAddrMgr.acquireGuestIpAddress(network, null);
}
if (loadBalancingIpAddress == null) {
@ -803,7 +811,7 @@ public abstract class ExternalLoadBalancerDeviceManagerImpl extends AdapterBase
// Find the NIC that the mapping refers to
loadBalancingIpNic = _nicDao.findById(mapping.getNicId());
int count = _networkMgr.getRuleCountForIp(sourceIpId, Purpose.LoadBalancing, FirewallRule.State.Active);
int count = _ipAddrMgr.getRuleCountForIp(sourceIpId, Purpose.LoadBalancing, FirewallRule.State.Active);
if (count == 0) {
// On the firewall provider for the network, delete the static NAT rule between the source IP
// address and the load balancing IP address
@ -984,7 +992,7 @@ public abstract class ExternalLoadBalancerDeviceManagerImpl extends AdapterBase
}
// Acquire a self-ip address from the guest network IP address range
selfIp = _networkMgr.acquireGuestIpAddress(guestConfig, null);
selfIp = _ipAddrMgr.acquireGuestIpAddress(guestConfig, null);
if (selfIp == null) {
String msg = "failed to acquire guest IP address so not implementing the network on the external load balancer ";
s_logger.error(msg);

View File

@ -22,9 +22,6 @@ import java.util.Map;
import org.apache.cloudstack.acl.ControlledEntity.ACLType;
import com.cloud.dc.DataCenter;
import com.cloud.dc.Pod;
import com.cloud.dc.Vlan.VlanType;
import com.cloud.deploy.DataCenterDeployment;
import com.cloud.deploy.DeployDestination;
import com.cloud.deploy.DeploymentPlan;
@ -36,17 +33,13 @@ import com.cloud.exception.ResourceAllocationException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.Network.Provider;
import com.cloud.network.Network.Service;
import com.cloud.network.addr.PublicIp;
import com.cloud.network.dao.IPAddressVO;
import com.cloud.network.dao.NetworkVO;
import com.cloud.network.element.DhcpServiceProvider;
import com.cloud.network.element.LoadBalancingServiceProvider;
import com.cloud.network.element.StaticNatServiceProvider;
import com.cloud.network.element.UserDataServiceProvider;
import com.cloud.network.guru.NetworkGuru;
import com.cloud.network.rules.FirewallRule;
import com.cloud.network.rules.LoadBalancerContainer.Scheme;
import com.cloud.network.rules.StaticNat;
import com.cloud.offering.NetworkOffering;
import com.cloud.offerings.NetworkOfferingVO;
import com.cloud.user.Account;
@ -65,37 +58,7 @@ import com.cloud.vm.VirtualMachineProfile;
*
*/
public interface NetworkManager {
/**
* Assigns a new public ip address.
*
* @param dcId
* @param podId
* TODO
* @param owner
* @param type
* @param networkId
* @param requestedIp
* TODO
* @param allocatedBy
* TODO
* @return
* @throws InsufficientAddressCapacityException
*/
PublicIp assignPublicIpAddress(long dcId, Long podId, Account owner, VlanType type, Long networkId, String requestedIp,
boolean isSystem) throws InsufficientAddressCapacityException;
/**
* Do all of the work of releasing public ip addresses. Note that if this method fails, there can be side effects.
*
* @param userId
* @param caller
* TODO
* @param IpAddress
* @return true if it did; false if it didn't
*/
public boolean disassociatePublicIpAddress(long id, long userId, Account caller);
List<NetworkVO> setupNetwork(Account owner, NetworkOffering offering, DeploymentPlan plan, String name, String displayText, boolean isDefault)
throws ConcurrentOperationException;
@ -117,8 +80,6 @@ public interface NetworkManager {
List<NicProfile> getNicProfiles(VirtualMachine vm);
boolean applyRules(List<? extends FirewallRule> rules, FirewallRule.Purpose purpose, NetworkRuleApplier applier, boolean continueOnError) throws ResourceUnavailableException;
Pair<NetworkGuru, NetworkVO> implementNetwork(long networkId, DeployDestination dest, ReservationContext context) throws ConcurrentOperationException, ResourceUnavailableException,
InsufficientCapacityException;
@ -161,62 +122,14 @@ public interface NetworkManager {
Boolean displayNetworkEnabled, String isolatedPvlan)
throws ConcurrentOperationException, InsufficientCapacityException, ResourceAllocationException;
/**
* @throws ResourceAllocationException TODO
* @throws InsufficientCapacityException
* Associates an ip address list to an account. The list of ip addresses are all addresses associated
* with the
* given vlan id.
* @param userId
* @param accountId
* @param zoneId
* @param vlanId
* @throws InsufficientAddressCapacityException
* @throws
*/
boolean associateIpAddressListToAccount(long userId, long accountId, long zoneId, Long vlanId, Network guestNetwork) throws InsufficientCapacityException, ConcurrentOperationException,
ResourceUnavailableException, ResourceAllocationException;
UserDataServiceProvider getPasswordResetProvider(Network network);
UserDataServiceProvider getSSHKeyResetProvider(Network network);
boolean applyIpAssociations(Network network, boolean continueOnError) throws ResourceUnavailableException;
boolean applyIpAssociations(Network network, boolean rulesRevoked, boolean continueOnError, List<? extends PublicIpAddress> publicIps) throws ResourceUnavailableException;
boolean startNetwork(long networkId, DeployDestination dest, ReservationContext context) throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException;
IPAddressVO markIpAsUnavailable(long addrId);
public String acquireGuestIpAddress(Network network, String requestedIp);
boolean applyStaticNats(List<? extends StaticNat> staticNats, boolean continueOnError, boolean forRevoke) throws ResourceUnavailableException;
boolean reallocate(VirtualMachineProfile vm, DataCenterDeployment dest) throws InsufficientCapacityException, ConcurrentOperationException;
IpAddress assignSystemIp(long networkId, Account owner,
boolean forElasticLb, boolean forElasticIp)
throws InsufficientAddressCapacityException;
boolean handleSystemIpRelease(IpAddress ip);
void allocateDirectIp(NicProfile nic, DataCenter dc,
VirtualMachineProfile vm,
Network network, String requestedIpv4, String requestedIpv6)
throws InsufficientVirtualNetworkCapcityException,
InsufficientAddressCapacityException;
/**
* @param owner
* @param guestNetwork
* @return
* @throws ConcurrentOperationException
* @throws InsufficientAddressCapacityException
*/
PublicIp assignSourceNatIpAddressToGuestNetwork(Account owner, Network guestNetwork) throws InsufficientAddressCapacityException, ConcurrentOperationException;
/**
* @param requested
* @param network
@ -258,30 +171,6 @@ public interface NetworkManager {
void removeNic(VirtualMachineProfile vm, Nic nic);
/**
* @param ipAddrId
* @param networkId
* @param releaseOnFailure TODO
*/
IPAddressVO associateIPToGuestNetwork(long ipAddrId, long networkId, boolean releaseOnFailure) throws ResourceAllocationException, ResourceUnavailableException,
InsufficientAddressCapacityException, ConcurrentOperationException;
IpAddress allocatePortableIp(Account ipOwner, Account caller, long dcId, Long networkId, Long vpcID)
throws ConcurrentOperationException, ResourceAllocationException, InsufficientAddressCapacityException;
boolean releasePortableIpAddress(long addrId);
IPAddressVO associatePortableIPToGuestNetwork(long ipAddrId, long networkId, boolean releaseOnFailure) throws ResourceAllocationException, ResourceUnavailableException,
InsufficientAddressCapacityException, ConcurrentOperationException;
IPAddressVO disassociatePortableIPToGuestNetwork(long ipAddrId, long networkId) throws ResourceAllocationException, ResourceUnavailableException,
InsufficientAddressCapacityException, ConcurrentOperationException;
boolean isPortableIpTransferableFromNetwork(long ipAddrId, long networkId);
void transferPortableIP(long ipAddrId, long currentNetworkId, long newNetworkId) throws ResourceAllocationException, ResourceUnavailableException,
InsufficientAddressCapacityException, ConcurrentOperationException;;
/**
* @param network
* @param provider
@ -318,24 +207,6 @@ public interface NetworkManager {
InsufficientAddressCapacityException, ConcurrentOperationException, InsufficientCapacityException, ResourceUnavailableException;
/**
* @param addr
*/
void markPublicIpAsAllocated(IPAddressVO addr);
/**
* @param owner
* @param guestNtwkId
* @param vpcId
* @param dcId
* @param isSourceNat
* @return
* @throws ConcurrentOperationException
* @throws InsufficientAddressCapacityException
*/
PublicIp assignDedicateIpAddress(Account owner, Long guestNtwkId, Long vpcId, long dcId, boolean isSourceNat) throws ConcurrentOperationException, InsufficientAddressCapacityException;
NetworkProfile convertNetworkToNetworkProfile(long networkId);
/**
@ -357,9 +228,6 @@ public interface NetworkManager {
NetworkOfferingVO findById) throws ConcurrentOperationException, InsufficientAddressCapacityException, ResourceUnavailableException, InsufficientCapacityException;
IpAddress allocateIp(Account ipOwner, boolean isSystem, Account caller, long callerId,
DataCenter zone) throws ConcurrentOperationException, ResourceAllocationException, InsufficientAddressCapacityException;
Map<String, String> finalizeServicesAndProvidersForNetwork(NetworkOffering offering,
Long physicalNetworkId);
@ -369,23 +237,14 @@ public interface NetworkManager {
boolean isNetworkInlineMode(Network network);
int getRuleCountForIp(Long addressId, FirewallRule.Purpose purpose, FirewallRule.State state);
LoadBalancingServiceProvider getLoadBalancingProviderForNetwork(Network network, Scheme lbScheme);
boolean isSecondaryIpSetForNic(long nicId);
public String allocateGuestIP(Account ipOwner, boolean isSystem, long zoneId, Long networkId, String requestedIp) throws InsufficientAddressCapacityException;
List<? extends Nic> listVmNics(Long vmId, Long nicId);
String allocatePublicIpForGuestNic(Long networkId, DataCenter dc, Pod pod, Account caller, String requestedIp) throws InsufficientAddressCapacityException;
NicVO savePlaceholderNic(Network network, String ip4Address, String ip6Address, Type vmType);
DhcpServiceProvider getDhcpServiceProvider(Network network);
PublicIp assignPublicIpAddressFromVlans(long dcId, Long podId, Account owner, VlanType type, List<Long> vlanDbIds, Long networkId, String requestedIp, boolean isSystem) throws InsufficientAddressCapacityException;
void removeDhcpServiceInSubnet(NicVO nic);
}

File diff suppressed because it is too large Load Diff

View File

@ -40,7 +40,6 @@ import javax.inject.Inject;
import javax.naming.ConfigurationException;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
import org.apache.cloudstack.acl.ControlledEntity.ACLType;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
@ -180,7 +179,6 @@ import com.cloud.vm.dao.VMInstanceDao;
/**
* NetworkServiceImpl implements NetworkService.
*/
@Component
@Local(value = { NetworkService.class })
public class NetworkServiceImpl extends ManagerBase implements NetworkService {
private static final Logger s_logger = Logger.getLogger(NetworkServiceImpl.class);
@ -289,6 +287,8 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
VpcDao _vpcDao;
@Inject
NetworkACLDao _networkACLDao;
@Inject
IpAddressManager _ipAddrMgr;
int _cidrLimit;
boolean _allowSubdomainNetworkAccess;
@ -526,7 +526,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
if (s_logger.isDebugEnabled()) {
s_logger.debug("Associate IP address called by the user " + callerUserId + " account " + ipOwner.getId());
}
return _networkMgr.allocateIp(ipOwner, false, caller, callerUserId, zone);
return _ipAddrMgr.allocateIp(ipOwner, false, caller, callerUserId, zone);
} else {
throw new InvalidParameterValueException("Associate IP address can only be called on the shared networks in the advanced zone" +
" with Firewall/Source Nat/Static Nat/Port Forwarding/Load balancing services enabled");
@ -537,7 +537,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
_accountMgr.checkAccess(caller, null, false, ipOwner);
}
return _networkMgr.allocateIp(ipOwner, false, caller, callerUserId, zone);
return _ipAddrMgr.allocateIp(ipOwner, false, caller, callerUserId, zone);
}
@Override
@ -569,7 +569,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
if (s_logger.isDebugEnabled()) {
s_logger.debug("Associate IP address called by the user " + callerUserId + " account " + ipOwner.getId());
}
return _networkMgr.allocatePortableIp(ipOwner, caller, zoneId, networkId, null);
return _ipAddrMgr.allocatePortableIp(ipOwner, caller, zoneId, networkId, null);
} else {
throw new InvalidParameterValueException("Associate IP address can only be called on the shared networks in the advanced zone" +
" with Firewall/Source Nat/Static Nat/Port Forwarding/Load balancing services enabled");
@ -587,7 +587,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
_accountMgr.checkAccess(caller, null, false, ipOwner);
return _networkMgr.allocatePortableIp(ipOwner, caller, zoneId, null, null);
return _ipAddrMgr.allocatePortableIp(ipOwner, caller, zoneId, null, null);
}
@Override
@ -680,7 +680,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
s_logger.debug("Calling the ip allocation ...");
if (dc.getNetworkType() == NetworkType.Advanced && network.getGuestType() == Network.GuestType.Isolated) {
try {
ipaddr = _networkMgr.allocateGuestIP(ipOwner, false, zoneId, networkId, requestedIp);
ipaddr = _ipAddrMgr.allocateGuestIP(ipOwner, false, zoneId, networkId, requestedIp);
} catch (InsufficientAddressCapacityException e) {
throw new InvalidParameterValueException("Allocating guest ip for nic failed");
}
@ -697,7 +697,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
}
try {
ipaddr = _networkMgr.allocatePublicIpForGuestNic(networkId, dc, pod, caller, requestedIp);
ipaddr = _ipAddrMgr.allocatePublicIpForGuestNic(networkId, dc, pod, caller, requestedIp);
if (ipaddr == null) {
throw new InvalidParameterValueException("Allocating ip to guest nic " + nicId + " failed");
}
@ -803,7 +803,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
if (ip != null) {
Transaction txn = Transaction.currentTxn();
txn.start();
_networkMgr.markIpAsUnavailable(ip.getId());
_ipAddrMgr.markIpAsUnavailable(ip.getId());
_ipAddressDao.unassignIpAddress(ip.getId());
txn.commit();
}
@ -885,7 +885,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
throw ex;
}
boolean success = _networkMgr.disassociatePublicIpAddress(ipAddressId, userId, caller);
boolean success = _ipAddrMgr.disassociatePublicIpAddress(ipAddressId, userId, caller);
if (success) {
Long networkId = ipVO.getAssociatedWithNetworkId();
@ -2681,6 +2681,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
public String generateVnetString(List<String> vnetList) {
Collections.sort(vnetList, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
return Integer.valueOf(s1).compareTo(Integer.valueOf(s2));
}
@ -3794,7 +3795,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
throw new InvalidParameterValueException("Can't assign ip to the network directly when network belongs" +
" to VPC.Specify vpcId to associate ip address to VPC");
}
return _networkMgr.associateIPToGuestNetwork(ipId, networkId, true);
return _ipAddrMgr.associateIPToGuestNetwork(ipId, networkId, true);
}

View File

@ -27,17 +27,14 @@ import javax.ejb.Local;
import javax.inject.Inject;
import javax.naming.ConfigurationException;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
import org.apache.cloudstack.api.command.user.firewall.ListEgressFirewallRulesCmd;
import com.cloud.network.dao.*;
import org.apache.cloudstack.api.command.user.firewall.ListFirewallRulesCmd;
import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
import com.cloud.configuration.Config;
import com.cloud.domain.dao.DomainDao;
import com.cloud.event.ActionEvent;
@ -49,12 +46,19 @@ import com.cloud.exception.InvalidParameterValueException;
import com.cloud.exception.NetworkRuleConflictException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.IpAddress;
import com.cloud.network.IpAddressManager;
import com.cloud.network.Network;
import com.cloud.network.Network.Capability;
import com.cloud.network.Network.Service;
import com.cloud.network.NetworkManager;
import com.cloud.network.NetworkModel;
import com.cloud.network.NetworkRuleApplier;
import com.cloud.network.dao.FirewallRulesCidrsDao;
import com.cloud.network.dao.FirewallRulesDao;
import com.cloud.network.dao.IPAddressDao;
import com.cloud.network.dao.IPAddressVO;
import com.cloud.network.dao.NetworkDao;
import com.cloud.network.dao.NetworkVO;
import com.cloud.network.element.FirewallServiceProvider;
import com.cloud.network.element.NetworkACLServiceProvider;
import com.cloud.network.element.PortForwardingServiceProvider;
@ -136,6 +140,8 @@ public class FirewallManagerImpl extends ManagerBase implements FirewallService,
@Inject List<StaticNatServiceProvider> _staticNatElements;
@Inject List<NetworkACLServiceProvider> _networkAclElements;
@Inject
IpAddressManager _ipAddrMgr;
private boolean _elbEnabled = false;
@ -510,7 +516,7 @@ public class FirewallManagerImpl extends ManagerBase implements FirewallService,
return true;
}
Purpose purpose = rules.get(0).getPurpose();
if (!_networkMgr.applyRules(rules, purpose, this, continueOnError)) {
if (!_ipAddrMgr.applyRules(rules, purpose, this, continueOnError)) {
s_logger.warn("Rules are not completely applied");
return false;
} else {
@ -917,7 +923,7 @@ public class FirewallManagerImpl extends ManagerBase implements FirewallService,
if (rule.getSourceCidrList() == null && (rule.getPurpose() == Purpose.Firewall || rule.getPurpose() == Purpose.NetworkACL)) {
_firewallDao.loadSourceCidrs(rule);
}
this.createFirewallRule(ip.getId(), acct, rule.getXid(), rule.getSourcePortStart(), rule.getSourcePortEnd(), rule.getProtocol(),
createFirewallRule(ip.getId(), acct, rule.getXid(), rule.getSourcePortStart(), rule.getSourcePortEnd(), rule.getProtocol(),
rule.getSourceCidrList(), rule.getIcmpCode(), rule.getIcmpType(), rule.getRelated(), FirewallRuleType.System, rule.getNetworkId(), rule.getTrafficType());
} catch (Exception e) {
s_logger.debug("Failed to add system wide firewall rule, due to:" + e.toString());

View File

@ -33,6 +33,7 @@ import com.cloud.exception.ConcurrentOperationException;
import com.cloud.exception.InsufficientAddressCapacityException;
import com.cloud.exception.InsufficientVirtualNetworkCapcityException;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.network.IpAddressManager;
import com.cloud.network.Ipv6AddressManager;
import com.cloud.network.Network;
import com.cloud.network.Network.GuestType;
@ -88,6 +89,8 @@ public class DirectNetworkGuru extends AdapterBase implements NetworkGuru {
NicSecondaryIpDao _nicSecondaryIpDao;
@Inject
NicDao _nicDao;
@Inject
IpAddressManager _ipAddrMgr;
private static final TrafficType[] _trafficTypes = {TrafficType.Guest};
@ -223,7 +226,7 @@ public class DirectNetworkGuru extends AdapterBase implements NetworkGuru {
Transaction txn = Transaction.currentTxn();
txn.start();
_networkMgr.allocateDirectIp(nic, dc, vm, network, requestedIp4Addr, requestedIp6Addr);
_ipAddrMgr.allocateDirectIp(nic, dc, vm, network, requestedIp4Addr, requestedIp6Addr);
//save the placeholder nic if the vm is the Virtual router
if (vm.getType() == VirtualMachine.Type.DomainRouter) {
Nic placeholderNic = _networkModel.getPlaceholderNicForRouter(network, null);
@ -262,7 +265,7 @@ public class DirectNetworkGuru extends AdapterBase implements NetworkGuru {
if (placeholderNic != null && placeholderNic.getIp4Address().equalsIgnoreCase(ip.getAddress().addr())) {
s_logger.debug("Not releasing direct ip " + ip.getId() +" yet as its ip is saved in the placeholder");
} else {
_networkMgr.markIpAsUnavailable(ip.getId());
_ipAddrMgr.markIpAsUnavailable(ip.getId());
_ipAddressDao.unassignIpAddress(ip.getId());
}
@ -272,7 +275,7 @@ public class DirectNetworkGuru extends AdapterBase implements NetworkGuru {
nicSecIps = _nicSecondaryIpDao.getSecondaryIpAddressesForNic(nic.getId());
for (String secIp: nicSecIps) {
IPAddressVO pubIp = _ipAddressDao.findByIpAndSourceNetworkId(nic.getNetworkId(), secIp);
_networkMgr.markIpAsUnavailable(pubIp.getId());
_ipAddrMgr.markIpAsUnavailable(pubIp.getId());
_ipAddressDao.unassignIpAddress(pubIp.getId());
}
@ -301,7 +304,7 @@ public class DirectNetworkGuru extends AdapterBase implements NetworkGuru {
if (nic.getIp4Address() != null) {
s_logger.debug("Releasing ip " + nic.getIp4Address() + " of placeholder nic " + nic);
IPAddressVO ip = _ipAddressDao.findByIpAndSourceNetworkId(nic.getNetworkId(), nic.getIp4Address());
_networkMgr.markIpAsUnavailable(ip.getId());
_ipAddrMgr.markIpAsUnavailable(ip.getId());
_ipAddressDao.unassignIpAddress(ip.getId());
s_logger.debug("Removing placeholder nic " + nic);
_nicDao.remove(nic.getId());

View File

@ -40,6 +40,7 @@ import com.cloud.deploy.DeployDestination;
import com.cloud.exception.ConcurrentOperationException;
import com.cloud.exception.InsufficientAddressCapacityException;
import com.cloud.exception.InsufficientVirtualNetworkCapcityException;
import com.cloud.network.IpAddressManager;
import com.cloud.network.Network;
import com.cloud.network.NetworkManager;
import com.cloud.network.Networks.AddressFormat;
@ -75,6 +76,8 @@ public class DirectPodBasedNetworkGuru extends DirectNetworkGuru {
NetworkOfferingDao _networkOfferingDao;
@Inject
PodVlanMapDao _podVlanDao;
@Inject
IpAddressManager _ipAddrMgr;
@Override
protected boolean canHandle(NetworkOffering offering, DataCenter dc) {
@ -137,7 +140,7 @@ public class DirectPodBasedNetworkGuru extends DirectNetworkGuru {
txn.start();
//release the old ip here
_networkMgr.markIpAsUnavailable(ipVO.getId());
_ipAddrMgr.markIpAsUnavailable(ipVO.getId());
_ipAddressDao.unassignIpAddress(ipVO.getId());
txn.commit();
@ -183,7 +186,7 @@ public class DirectPodBasedNetworkGuru extends DirectNetworkGuru {
}
if (ip == null) {
ip = _networkMgr.assignPublicIpAddress(dc.getId(), pod.getId(), vm.getOwner(), VlanType.DirectAttached, network.getId(), null, false);
ip = _ipAddrMgr.assignPublicIpAddress(dc.getId(), pod.getId(), vm.getOwner(), VlanType.DirectAttached, network.getId(), null, false);
}
nic.setIp4Address(ip.getAddress().toString());

View File

@ -21,10 +21,6 @@ import java.util.List;
import javax.ejb.Local;
import javax.inject.Inject;
import com.cloud.event.ActionEventUtils;
import com.cloud.network.dao.IPAddressDao;
import com.cloud.network.dao.IPAddressVO;
import org.apache.log4j.Logger;
import org.apache.cloudstack.context.CallContext;
@ -35,10 +31,12 @@ import com.cloud.dc.DataCenter.NetworkType;
import com.cloud.dc.dao.DataCenterDao;
import com.cloud.deploy.DeployDestination;
import com.cloud.deploy.DeploymentPlan;
import com.cloud.event.ActionEventUtils;
import com.cloud.event.EventTypes;
import com.cloud.event.EventVO;
import com.cloud.exception.InsufficientAddressCapacityException;
import com.cloud.exception.InsufficientVirtualNetworkCapcityException;
import com.cloud.network.IpAddressManager;
import com.cloud.network.Network;
import com.cloud.network.Network.GuestType;
import com.cloud.network.Network.State;
@ -46,6 +44,8 @@ import com.cloud.network.NetworkManager;
import com.cloud.network.Networks.BroadcastDomainType;
import com.cloud.network.PhysicalNetwork;
import com.cloud.network.PhysicalNetwork.IsolationMethod;
import com.cloud.network.dao.IPAddressDao;
import com.cloud.network.dao.IPAddressVO;
import com.cloud.network.dao.NetworkDao;
import com.cloud.network.dao.NetworkVO;
import com.cloud.network.rules.PortForwardingRuleVO;
@ -60,7 +60,6 @@ import com.cloud.vm.Nic.ReservationStrategy;
import com.cloud.vm.NicProfile;
import com.cloud.vm.NicVO;
import com.cloud.vm.ReservationContext;
import com.cloud.vm.VirtualMachine;
import com.cloud.vm.VirtualMachineProfile;
@Local(value = NetworkGuru.class)
@ -76,6 +75,8 @@ public class ExternalGuestNetworkGuru extends GuestNetworkGuru {
PortForwardingRulesDao _pfRulesDao;
@Inject
IPAddressDao _ipAddressDao;
@Inject
IpAddressManager _ipAddrMgr;
public ExternalGuestNetworkGuru() {
@ -83,6 +84,7 @@ public class ExternalGuestNetworkGuru extends GuestNetworkGuru {
_isolationMethods = new IsolationMethod[] { IsolationMethod.GRE, IsolationMethod.L3, IsolationMethod.VLAN };
}
@Override
protected boolean canHandle(NetworkOffering offering,
final NetworkType networkType, final PhysicalNetwork physicalNetwork) {
// This guru handles only Guest Isolated network that supports Source
@ -278,7 +280,7 @@ public class ExternalGuestNetworkGuru extends GuestNetworkGuru {
nic.setGateway(config.getGateway());
if (nic.getIp4Address() == null) {
String guestIp = _networkMgr.acquireGuestIpAddress(config, null);
String guestIp = _ipAddrMgr.acquireGuestIpAddress(config, null);
if (guestIp == null) {
throw new InsufficientVirtualNetworkCapcityException("Unable to acquire guest IP address for network " + config, DataCenter.class, dc.getId());
}

View File

@ -19,16 +19,10 @@ package com.cloud.network.guru;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.SortedSet;
import java.util.TreeSet;
import javax.ejb.Local;
import javax.inject.Inject;
import com.cloud.event.ActionEventUtils;
import com.cloud.server.ConfigurationServer;
import com.cloud.utils.Pair;
import org.apache.log4j.Logger;
import org.apache.cloudstack.context.CallContext;
@ -41,12 +35,16 @@ import com.cloud.dc.dao.DataCenterDao;
import com.cloud.dc.dao.VlanDao;
import com.cloud.deploy.DeployDestination;
import com.cloud.deploy.DeploymentPlan;
import com.cloud.event.ActionEventUtils;
import com.cloud.event.EventTypes;
import com.cloud.event.EventVO;
import com.cloud.exception.InsufficientAddressCapacityException;
import com.cloud.exception.InsufficientVirtualNetworkCapcityException;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.network.IpAddressManager;
import com.cloud.network.Network;
import com.cloud.network.Network.Provider;
import com.cloud.network.Network.Service;
import com.cloud.network.Network.State;
import com.cloud.network.NetworkManager;
import com.cloud.network.NetworkModel;
@ -64,12 +62,13 @@ import com.cloud.network.dao.NetworkVO;
import com.cloud.network.dao.PhysicalNetworkDao;
import com.cloud.network.dao.PhysicalNetworkVO;
import com.cloud.offering.NetworkOffering;
import com.cloud.server.ConfigurationServer;
import com.cloud.user.Account;
import com.cloud.utils.Pair;
import com.cloud.utils.component.AdapterBase;
import com.cloud.utils.db.DB;
import com.cloud.utils.db.Transaction;
import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.utils.net.Ip4Address;
import com.cloud.utils.net.NetUtils;
import com.cloud.vm.Nic.ReservationStrategy;
import com.cloud.vm.NicProfile;
@ -77,8 +76,6 @@ import com.cloud.vm.ReservationContext;
import com.cloud.vm.VirtualMachine;
import com.cloud.vm.VirtualMachineProfile;
import com.cloud.vm.dao.NicDao;
import com.cloud.network.Network.Provider;
import com.cloud.network.Network.Service;
@Local(value = NetworkGuru.class)
public abstract class GuestNetworkGuru extends AdapterBase implements NetworkGuru {
@ -103,6 +100,8 @@ public abstract class GuestNetworkGuru extends AdapterBase implements NetworkGur
protected PhysicalNetworkDao _physicalNetworkDao;
@Inject
ConfigurationServer _configServer;
@Inject
IpAddressManager _ipAddrMgr;
Random _rand = new Random(System.currentTimeMillis());
private static final TrafficType[] _trafficTypes = {TrafficType.Guest};
@ -226,7 +225,7 @@ public abstract class GuestNetworkGuru extends AdapterBase implements NetworkGur
if (ip != null) {
Transaction txn = Transaction.currentTxn();
txn.start();
_networkMgr.markIpAsUnavailable(ip.getId());
_ipAddrMgr.markIpAsUnavailable(ip.getId());
_ipAddressDao.unassignIpAddress(ip.getId());
txn.commit();
}
@ -336,7 +335,7 @@ public abstract class GuestNetworkGuru extends AdapterBase implements NetworkGur
String guestIp = null;
if (network.getSpecifyIpRanges()) {
_networkMgr.allocateDirectIp(nic, dc, vm, network, nic.getRequestedIpv4(), null);
_ipAddrMgr.allocateDirectIp(nic, dc, vm, network, nic.getRequestedIpv4(), null);
} else {
//if Vm is router vm and source nat is enabled in the network, set ip4 to the network gateway
boolean isGateway = false;
@ -355,7 +354,7 @@ public abstract class GuestNetworkGuru extends AdapterBase implements NetworkGur
if (isGateway) {
guestIp = network.getGateway();
} else {
guestIp = _networkMgr.acquireGuestIpAddress(network, nic.getRequestedIpv4());
guestIp = _ipAddrMgr.acquireGuestIpAddress(network, nic.getRequestedIpv4());
if (guestIp == null) {
throw new InsufficientVirtualNetworkCapcityException("Unable to acquire Guest IP" +
" address for network " + network, DataCenter.class, dc.getId());

View File

@ -30,6 +30,7 @@ import com.cloud.deploy.DeploymentPlan;
import com.cloud.exception.ConcurrentOperationException;
import com.cloud.exception.InsufficientAddressCapacityException;
import com.cloud.exception.InsufficientVirtualNetworkCapcityException;
import com.cloud.network.IpAddressManager;
import com.cloud.network.Network;
import com.cloud.network.Network.State;
import com.cloud.network.NetworkManager;
@ -67,6 +68,8 @@ public class PublicNetworkGuru extends AdapterBase implements NetworkGuru {
NetworkManager _networkMgr;
@Inject
IPAddressDao _ipAddressDao;
@Inject
IpAddressManager _ipAddrMgr;
private static final TrafficType[] _trafficTypes = {TrafficType.Public};
@ -110,7 +113,7 @@ public class PublicNetworkGuru extends AdapterBase implements NetworkGuru {
protected void getIp(NicProfile nic, DataCenter dc, VirtualMachineProfile vm, Network network) throws InsufficientVirtualNetworkCapcityException,
InsufficientAddressCapacityException, ConcurrentOperationException {
if (nic.getIp4Address() == null) {
PublicIp ip = _networkMgr.assignPublicIpAddress(dc.getId(), null, vm.getOwner(), VlanType.VirtualNetwork, null, null, false);
PublicIp ip = _ipAddrMgr.assignPublicIpAddress(dc.getId(), null, vm.getOwner(), VlanType.VirtualNetwork, null, null, false);
nic.setIp4Address(ip.getAddress().toString());
nic.setGateway(ip.getGateway());
nic.setNetmask(ip.getNetmask());
@ -194,7 +197,7 @@ public class PublicNetworkGuru extends AdapterBase implements NetworkGuru {
Transaction txn = Transaction.currentTxn();
txn.start();
_networkMgr.markIpAsUnavailable(ip.getId());
_ipAddrMgr.markIpAsUnavailable(ip.getId());
_ipAddressDao.unassignIpAddress(ip.getId());
txn.commit();

View File

@ -30,12 +30,11 @@ import java.util.Set;
import javax.ejb.Local;
import javax.inject.Inject;
import com.cloud.network.ExternalDeviceUsageManager;
import com.cloud.network.IpAddress;
import com.cloud.network.LBHealthCheckPolicyVO;
import com.cloud.network.Network;
import com.cloud.network.NetworkManager;
import com.cloud.network.NetworkModel;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.command.user.loadbalancer.CreateLBHealthCheckPolicyCmd;
@ -51,9 +50,6 @@ import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
import org.apache.cloudstack.lb.ApplicationLoadBalancerRuleVO;
import org.apache.cloudstack.lb.dao.ApplicationLoadBalancerRuleDao;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
import com.cloud.agent.api.to.LoadBalancerTO;
import com.cloud.configuration.Config;
import com.cloud.configuration.ConfigurationManager;
@ -72,9 +68,16 @@ import com.cloud.exception.InvalidParameterValueException;
import com.cloud.exception.NetworkRuleConflictException;
import com.cloud.exception.PermissionDeniedException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.ExternalDeviceUsageManager;
import com.cloud.network.IpAddress;
import com.cloud.network.IpAddressManager;
import com.cloud.network.LBHealthCheckPolicyVO;
import com.cloud.network.Network;
import com.cloud.network.Network.Capability;
import com.cloud.network.Network.Provider;
import com.cloud.network.Network.Service;
import com.cloud.network.NetworkManager;
import com.cloud.network.NetworkModel;
import com.cloud.network.addr.PublicIp;
import com.cloud.network.as.AutoScalePolicy;
import com.cloud.network.as.AutoScalePolicyConditionMapVO;
@ -158,9 +161,6 @@ import com.cloud.vm.VirtualMachine.State;
import com.cloud.vm.dao.NicDao;
import com.cloud.vm.dao.UserVmDao;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
@Component
@Local(value = { LoadBalancingRulesManager.class, LoadBalancingRulesService.class })
public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements LoadBalancingRulesManager,
@ -247,6 +247,8 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
@Inject
List<LoadBalancingServiceProvider> _lbProviders;
@Inject ApplicationLoadBalancerRuleDao _appLbRuleDao;
@Inject
IpAddressManager _ipAddrMgr;
// Will return a string. For LB Stickiness this will be a json, for
// autoscale this will be "," separated values
@ -901,7 +903,7 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
if (lbrules.size() > 0) {
isHandled = false;
for (LoadBalancingServiceProvider lbElement : _lbProviders) {
stateRules = lbElement.updateHealthChecks(network, (List<LoadBalancingRule>) lbrules);
stateRules = lbElement.updateHealthChecks(network, lbrules);
if (stateRules != null && stateRules.size() > 0) {
for (LoadBalancerTO lbto : stateRules) {
LoadBalancerVO ulb = _lbDao.findByUuid(lbto.getUuid());
@ -1325,7 +1327,7 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
IpAddress systemIp = null;
NetworkOffering off = _configMgr.getNetworkOffering(network.getNetworkOfferingId());
if (off.getElasticLb() && ipVO == null && network.getVpcId() == null) {
systemIp = _networkMgr.assignSystemIp(networkId, lbOwner, true, false);
systemIp = _ipAddrMgr.assignSystemIp(networkId, lbOwner, true, false);
ipVO = _ipAddressDao.findById(systemIp.getId());
}
@ -1348,7 +1350,7 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
s_logger.debug("The ip is not associated with the VPC network id=" + networkId
+ " so assigning");
ipVO = _networkMgr.associateIPToGuestNetwork(ipAddrId, networkId, false);
ipVO = _ipAddrMgr.associateIPToGuestNetwork(ipAddrId, networkId, false);
performedIpAssoc = true;
}
} else {
@ -1370,7 +1372,7 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
if (result == null && systemIp != null) {
s_logger.debug("Releasing system IP address " + systemIp
+ " as corresponding lb rule failed to create");
_networkMgr.handleSystemIpRelease(systemIp);
_ipAddrMgr.handleSystemIpRelease(systemIp);
}
// release ip address if ipassoc was perfored
if (performedIpAssoc) {
@ -1677,7 +1679,7 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
boolean success = true;
if (ip.getSystem()) {
s_logger.debug("Releasing system ip address " + lb.getSourceIpAddressId() + " as a part of delete lb rule");
if (!_networkMgr.disassociatePublicIpAddress(lb.getSourceIpAddressId(), CallContext.current()
if (!_ipAddrMgr.disassociatePublicIpAddress(lb.getSourceIpAddressId(), CallContext.current()
.getCallingUserId(), CallContext.current().getCallingAccount())) {
s_logger.warn("Unable to release system ip address id=" + lb.getSourceIpAddressId()
+ " as a part of delete lb rule");
@ -2085,7 +2087,7 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
// service provider, so run IP assoication for
// the network so as to ensure IP is associated before applying
// rules (in add state)
_networkMgr.applyIpAssociations(network, false, continueOnError, publicIps);
_ipAddrMgr.applyIpAssociations(network, false, continueOnError, publicIps);
try {
@ -2100,7 +2102,7 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
// if all the rules configured on public IP are revoked then
// dis-associate IP with network service provider
_networkMgr.applyIpAssociations(network, true, continueOnError, publicIps);
_ipAddrMgr.applyIpAssociations(network, true, continueOnError, publicIps);
return success;
}

View File

@ -134,6 +134,7 @@ import com.cloud.host.Status;
import com.cloud.host.dao.HostDao;
import com.cloud.hypervisor.Hypervisor.HypervisorType;
import com.cloud.network.IpAddress;
import com.cloud.network.IpAddressManager;
import com.cloud.network.Network;
import com.cloud.network.Network.GuestType;
import com.cloud.network.Network.Provider;
@ -359,6 +360,8 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
UserIpv6AddressDao _ipv6Dao;
@Inject
NetworkService _networkSvc;
@Inject
IpAddressManager _ipAddrMgr;
int _routerRamSize;
@ -1530,7 +1533,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
PublicIp sourceNatIp = null;
if (publicNetwork) {
sourceNatIp = _networkMgr.assignSourceNatIpAddressToGuestNetwork(owner, guestNetwork);
sourceNatIp = _ipAddrMgr.assignSourceNatIpAddressToGuestNetwork(owner, guestNetwork);
}
// 3) deploy virtual router(s)
@ -1791,7 +1794,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
NicProfile gatewayNic = new NicProfile(defaultNetworkStartIp, defaultNetworkStartIpv6);
if (setupPublicNetwork) {
if (isRedundant) {
gatewayNic.setIp4Address(_networkMgr.acquireGuestIpAddress(guestNetwork, null));
gatewayNic.setIp4Address(_ipAddrMgr.acquireGuestIpAddress(guestNetwork, null));
} else {
gatewayNic.setIp4Address(guestNetwork.getGateway());
}
@ -2817,10 +2820,24 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
vlanDbIdList.add(vlan.getId());
}
if (dc.getNetworkType() == NetworkType.Basic) {
routerPublicIP = _networkMgr.assignPublicIpAddressFromVlans(router.getDataCenterId(), vm.getPodIdToDeployIn(), caller, Vlan.VlanType.DirectAttached, vlanDbIdList, nic.getNetworkId(), null, false);
routerPublicIP = _ipAddrMgr.assignPublicIpAddressFromVlans(router.getDataCenterId(),
vm.getPodIdToDeployIn(),
caller,
Vlan.VlanType.DirectAttached,
vlanDbIdList,
nic.getNetworkId(),
null,
false);
}
else {
routerPublicIP = _networkMgr.assignPublicIpAddressFromVlans(router.getDataCenterId(), null, caller, Vlan.VlanType.DirectAttached, vlanDbIdList, nic.getNetworkId(), null, false);
routerPublicIP = _ipAddrMgr.assignPublicIpAddressFromVlans(router.getDataCenterId(),
null,
caller,
Vlan.VlanType.DirectAttached,
vlanDbIdList,
nic.getNetworkId(),
null,
false);
}
routerAliasIp = routerPublicIP.getAddress().addr();

View File

@ -25,12 +25,12 @@ import java.util.Set;
import javax.ejb.Local;
import javax.inject.Inject;
import org.apache.cloudstack.api.command.user.firewall.ListPortForwardingRulesCmd;
import org.apache.cloudstack.context.CallContext;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
import org.apache.cloudstack.api.command.user.firewall.ListPortForwardingRulesCmd;
import org.apache.cloudstack.context.CallContext;
import com.cloud.configuration.ConfigurationManager;
import com.cloud.domain.dao.DomainDao;
import com.cloud.event.ActionEvent;
@ -43,6 +43,7 @@ import com.cloud.exception.InvalidParameterValueException;
import com.cloud.exception.NetworkRuleConflictException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.IpAddress;
import com.cloud.network.IpAddressManager;
import com.cloud.network.Network;
import com.cloud.network.Network.Service;
import com.cloud.network.NetworkManager;
@ -96,6 +97,9 @@ import com.cloud.vm.dao.VMInstanceDao;
public class RulesManagerImpl extends ManagerBase implements RulesManager, RulesService {
private static final Logger s_logger = Logger.getLogger(RulesManagerImpl.class);
@Inject
IpAddressManager _ipAddrMgr;
@Inject
PortForwardingRulesDao _portForwardingDao;
@Inject
@ -219,7 +223,7 @@ public class RulesManagerImpl extends ManagerBase implements RulesManager, Rules
s_logger.debug("The ip is not associated with the VPC network id="+ networkId + ", so assigning");
try {
ipAddress = _networkMgr.associateIPToGuestNetwork(ipAddrId, networkId, false);
ipAddress = _ipAddrMgr.associateIPToGuestNetwork(ipAddrId, networkId, false);
performedIpAssoc = true;
} catch (Exception ex) {
throw new CloudRuntimeException("Failed to associate ip to VPC network as " +
@ -487,7 +491,7 @@ public class RulesManagerImpl extends ManagerBase implements RulesManager, Rules
s_logger.debug("The ip is not associated with the VPC network id="+ networkId + ", so assigning");
try {
ipAddress = _networkMgr.associateIPToGuestNetwork(ipId, networkId, false);
ipAddress = _ipAddrMgr.associateIPToGuestNetwork(ipId, networkId, false);
} catch (Exception ex) {
s_logger.warn("Failed to associate ip id=" + ipId + " to VPC network id=" + networkId + " as " +
"a part of enable static nat");
@ -506,7 +510,7 @@ public class RulesManagerImpl extends ManagerBase implements RulesManager, Rules
}
// associate portable IP with guest network
ipAddress = _networkMgr.associatePortableIPToGuestNetwork(ipId, networkId, false);
ipAddress = _ipAddrMgr.associatePortableIPToGuestNetwork(ipId, networkId, false);
} catch (Exception e) {
s_logger.warn("Failed to associate portable id=" + ipId + " to network id=" + networkId + " as " +
"a part of enable static nat");
@ -519,10 +523,10 @@ public class RulesManagerImpl extends ManagerBase implements RulesManager, Rules
_networkModel.checkIpForService(ipAddress, Service.StaticNat, networkId);
// check if portable IP can be transferred across the networks
if (_networkMgr.isPortableIpTransferableFromNetwork(ipId, ipAddress.getAssociatedWithNetworkId() )) {
if (_ipAddrMgr.isPortableIpTransferableFromNetwork(ipId, ipAddress.getAssociatedWithNetworkId())) {
try {
// transfer the portable IP and refresh IP details
_networkMgr.transferPortableIP(ipId, ipAddress.getAssociatedWithNetworkId(), networkId);
_ipAddrMgr.transferPortableIP(ipId, ipAddress.getAssociatedWithNetworkId(), networkId);
ipAddress = _ipAddressDao.findById(ipId);
} catch (Exception e) {
s_logger.warn("Failed to associate portable id=" + ipId + " to network id=" + networkId + " as " +
@ -972,7 +976,7 @@ public class RulesManagerImpl extends ManagerBase implements RulesManager, Rules
}
try {
if (!_networkMgr.applyStaticNats(staticNats, continueOnError, false)) {
if (!_ipAddrMgr.applyStaticNats(staticNats, continueOnError, false)) {
return false;
}
} catch (ResourceUnavailableException ex) {
@ -1264,7 +1268,7 @@ public class RulesManagerImpl extends ManagerBase implements RulesManager, Rules
_ipAddressDao.update(ipAddress.getId(), ipAddress);
_vpcMgr.unassignIPFromVpcNetwork(ipAddress.getId(), networkId);
if (isIpSystem && releaseIpIfElastic && !_networkMgr.handleSystemIpRelease(ipAddress)) {
if (isIpSystem && releaseIpIfElastic && !_ipAddrMgr.handleSystemIpRelease(ipAddress)) {
s_logger.warn("Failed to release system ip address " + ipAddress);
success = false;
}
@ -1315,7 +1319,7 @@ public class RulesManagerImpl extends ManagerBase implements RulesManager, Rules
if (staticNats != null && !staticNats.isEmpty()) {
try {
if (!_networkMgr.applyStaticNats(staticNats, continueOnError, forRevoke)) {
if (!_ipAddrMgr.applyStaticNats(staticNats, continueOnError, forRevoke)) {
return false;
}
} catch (ResourceUnavailableException ex) {
@ -1342,7 +1346,7 @@ public class RulesManagerImpl extends ManagerBase implements RulesManager, Rules
s_logger.debug("Found " + staticNats.size() + " static nats to disable for network id " + networkId);
}
try {
if (!_networkMgr.applyStaticNats(staticNats, continueOnError, forRevoke)) {
if (!_ipAddrMgr.applyStaticNats(staticNats, continueOnError, forRevoke)) {
return false;
}
} catch (ResourceUnavailableException ex) {
@ -1422,7 +1426,7 @@ public class RulesManagerImpl extends ManagerBase implements RulesManager, Rules
}
s_logger.debug("Allocating system ip and enabling static nat for it for the vm " + vm + " in guest network " + guestNetwork);
IpAddress ip = _networkMgr.assignSystemIp(guestNetwork.getId(), _accountMgr.getAccount(vm.getAccountId()), false, true);
IpAddress ip = _ipAddrMgr.assignSystemIp(guestNetwork.getId(), _accountMgr.getAccount(vm.getAccountId()), false, true);
if (ip == null) {
throw new CloudRuntimeException("Failed to allocate system ip for vm " + vm + " in guest network " + guestNetwork);
}
@ -1443,7 +1447,7 @@ public class RulesManagerImpl extends ManagerBase implements RulesManager, Rules
if (!success) {
s_logger.warn("Failed to enable static nat on system ip " + ip + " for the vm " + vm + ", releasing the ip...");
_networkMgr.handleSystemIpRelease(ip);
_ipAddrMgr.handleSystemIpRelease(ip);
throw new CloudRuntimeException("Failed to enable static nat on system ip for the vm " + vm);
} else {
s_logger.warn("Succesfully enabled static nat on system ip " + ip + " for the vm " + vm);

View File

@ -16,6 +16,30 @@
// under the License.
package com.cloud.network.vpc;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import javax.ejb.Local;
import javax.inject.Inject;
import javax.naming.ConfigurationException;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
import org.apache.cloudstack.acl.ControlledEntity.ACLType;
import org.apache.cloudstack.api.command.user.vpc.ListPrivateGatewaysCmd;
import org.apache.cloudstack.api.command.user.vpc.ListStaticRoutesCmd;
import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
import com.cloud.configuration.Config;
import com.cloud.configuration.ConfigurationManager;
import com.cloud.configuration.Resource.ResourceType;
@ -37,6 +61,7 @@ import com.cloud.exception.ResourceAllocationException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.hypervisor.Hypervisor.HypervisorType;
import com.cloud.network.IpAddress;
import com.cloud.network.IpAddressManager;
import com.cloud.network.Network;
import com.cloud.network.Network.GuestType;
import com.cloud.network.Network.Provider;
@ -99,30 +124,6 @@ import com.cloud.vm.ReservationContext;
import com.cloud.vm.ReservationContextImpl;
import com.cloud.vm.dao.DomainRouterDao;
import org.apache.cloudstack.acl.ControlledEntity.ACLType;
import org.apache.cloudstack.api.command.user.vpc.ListPrivateGatewaysCmd;
import org.apache.cloudstack.api.command.user.vpc.ListStaticRoutesCmd;
import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
import javax.ejb.Local;
import javax.inject.Inject;
import javax.naming.ConfigurationException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
@Component
@Local(value = { VpcManager.class, VpcService.class, VpcProvisioningService.class })
@ -184,6 +185,8 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
ConfigurationServer _configServer;
@Inject
NetworkACLDao _networkAclDao;
@Inject
IpAddressManager _ipAddrMgr;
private final ScheduledExecutorService _executor = Executors.newScheduledThreadPool(1, new NamedThreadFactory("VpcChecker"));
private List<VpcProvider> vpcElements = null;
@ -1239,7 +1242,7 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
_ipAddressDao.update(ipToRelease.getId(), ipToRelease);
s_logger.debug("Portable IP address " + ipToRelease + " is no longer associated with any VPC");
} else {
success = success && _ntwkMgr.disassociatePublicIpAddress(ipToRelease.getId(), callerUserId, caller);
success = success && _ipAddrMgr.disassociatePublicIpAddress(ipToRelease.getId(), callerUserId, caller);
if (!success) {
s_logger.warn("Failed to cleanup ip " + ipToRelease + " as a part of vpc id=" + vpcId + " cleanup");
}
@ -1977,7 +1980,7 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
_ipAddressDao.update(ipId, ip);
//mark ip as allocated
_ntwkMgr.markPublicIpAsAllocated(ip);
_ipAddrMgr.markPublicIpAsAllocated(ip);
txn.commit();
s_logger.debug("Successfully assigned ip " + ipToAssoc + " to vpc " + vpc);
@ -2003,7 +2006,7 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
boolean success = false;
try {
//unassign ip from the VPC router
success = _ntwkMgr.applyIpAssociations(_ntwkModel.getNetwork(networkId), true);
success = _ipAddrMgr.applyIpAssociations(_ntwkModel.getNetwork(networkId), true);
} catch (ResourceUnavailableException ex) {
throw new CloudRuntimeException("Failed to apply ip associations for network id=" + networkId +
" as a part of unassigning ip " + ipId + " from vpc", ex);
@ -2113,7 +2116,7 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
if (sourceNatIp != null) {
ipToReturn = PublicIp.createFromAddrAndVlan(sourceNatIp, _vlanDao.findById(sourceNatIp.getVlanId()));
} else {
ipToReturn = _ntwkMgr.assignDedicateIpAddress(owner, null, vpc.getId(), dcId, true);
ipToReturn = _ipAddrMgr.assignDedicateIpAddress(owner, null, vpc.getId(), dcId, true);
}
return ipToReturn;

View File

@ -82,6 +82,7 @@ import com.cloud.exception.OperationTimedoutException;
import com.cloud.exception.PermissionDeniedException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.IpAddress;
import com.cloud.network.IpAddressManager;
import com.cloud.network.NetworkManager;
import com.cloud.network.VpnUserVO;
import com.cloud.network.as.AutoScaleManager;
@ -248,6 +249,8 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
private List<UserAuthenticator> _userAuthenticators;
List<UserAuthenticator> _userPasswordEncoders;
protected IpAddressManager _ipAddrMgr;
private final ScheduledExecutorService _executor = Executors.newScheduledThreadPool(1, new NamedThreadFactory("AccountChecker"));
int _allowedLoginAttempts;
@ -696,7 +699,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
List<? extends IpAddress> ipsToRelease = _ipAddressDao.listByAccount(accountId);
for (IpAddress ip : ipsToRelease) {
s_logger.debug("Releasing ip " + ip + " as a part of account id=" + accountId + " cleanup");
if (!_networkMgr.disassociatePublicIpAddress(ip.getId(), callerUserId, caller)) {
if (!_ipAddrMgr.disassociatePublicIpAddress(ip.getId(), callerUserId, caller)) {
s_logger.warn("Failed to release ip address " + ip + " as a part of account id=" + accountId + " clenaup");
accountCleanupNeeded = true;
}
@ -740,7 +743,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
List<? extends IpAddress> portableIpsToRelease = _ipAddressDao.listByAccount(accountId);
for (IpAddress ip : portableIpsToRelease) {
s_logger.debug("Releasing portable ip " + ip + " as a part of account id=" + accountId + " cleanup");
_networkMgr.releasePortableIpAddress(ip.getId());
_ipAddrMgr.releasePortableIpAddress(ip.getId());
}
//release dedication if any
List<DedicatedResourceVO> dedicatedResources = _dedicatedDao.listByAccountId(accountId);

View File

@ -24,15 +24,15 @@ import java.util.Map;
import javax.ejb.Local;
import javax.inject.Inject;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.api.command.user.loadbalancer.ListApplicationLoadBalancersCmd;
import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.lb.ApplicationLoadBalancerRuleVO;
import org.apache.cloudstack.lb.dao.ApplicationLoadBalancerRuleDao;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
import com.cloud.event.ActionEvent;
import com.cloud.event.EventTypes;
import com.cloud.event.UsageEventUtils;
@ -41,6 +41,7 @@ import com.cloud.exception.InsufficientVirtualNetworkCapcityException;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.exception.NetworkRuleConflictException;
import com.cloud.exception.UnsupportedServiceException;
import com.cloud.network.IpAddressManager;
import com.cloud.network.Network;
import com.cloud.network.Network.Capability;
import com.cloud.network.Network.Service;
@ -86,6 +87,8 @@ public class ApplicationLoadBalancerManagerImpl extends ManagerBase implements A
@Inject FirewallRulesDao _firewallDao;
@Inject ResourceTagDao _resourceTagDao;
@Inject NetworkManager _ntwkMgr;
@Inject
IpAddressManager _ipAddrMgr;
@Override
@ -284,7 +287,7 @@ public class ApplicationLoadBalancerManagerImpl extends ManagerBase implements A
* @return
*/
protected String allocateSourceIpForInternalLbRule(Network sourceIpNtwk, String requestedIp) {
return _ntwkMgr.acquireGuestIpAddress(sourceIpNtwk, requestedIp);
return _ipAddrMgr.acquireGuestIpAddress(sourceIpNtwk, requestedIp);
}

View File

@ -52,6 +52,7 @@ import com.cloud.dc.VlanVO;
import com.cloud.dc.dao.AccountVlanMapDao;
import com.cloud.dc.dao.DataCenterDao;
import com.cloud.dc.dao.VlanDao;
import com.cloud.network.IpAddressManager;
import com.cloud.network.NetworkManager;
import com.cloud.network.dao.FirewallRulesDao;
import com.cloud.network.dao.IPAddressDao;
@ -88,6 +89,8 @@ public class ConfigurationManagerTest {
@Mock IPAddressDao _publicIpAddressDao;
@Mock DataCenterDao _zoneDao;
@Mock FirewallRulesDao _firewallDao;
@Mock
IpAddressManager _ipAddrMgr;
VlanVO vlan = new VlanVO(Vlan.VlanType.VirtualNetwork, "vlantag", "vlangateway","vlannetmask", 1L, "iprange", 1L, 1L, null, null, null);
@ -368,7 +371,7 @@ public class ConfigurationManagerTest {
when(configurationMgr._firewallDao.countRulesByIpId(anyLong())).thenReturn(0L);
when(configurationMgr._networkMgr.disassociatePublicIpAddress(anyLong(), anyLong(), any(Account.class))).thenReturn(true);
when(configurationMgr._ipAddrMgr.disassociatePublicIpAddress(anyLong(), anyLong(), any(Account.class))).thenReturn(true);
when(configurationMgr._vlanDao.releaseFromLockTable(anyLong())).thenReturn(true);

View File

@ -39,6 +39,7 @@ import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.IpAddressManager;
import com.cloud.network.Network;
import com.cloud.network.NetworkManager;
import com.cloud.network.NetworkRuleApplier;
@ -113,11 +114,12 @@ public class FirewallManagerTest {
FirewallManagerImpl firewallMgr = (FirewallManagerImpl)_firewallMgr;
NetworkManager netMgr = mock(NetworkManager.class);
IpAddressManager addrMgr = mock(IpAddressManager.class);
firewallMgr._networkMgr = netMgr;
try {
firewallMgr.applyRules(ruleList, false, false);
verify(netMgr)
verify(addrMgr)
.applyRules(any(List.class),
any(FirewallRule.Purpose.class),
any(NetworkRuleApplier.class),

View File

@ -37,9 +37,6 @@ import org.apache.cloudstack.api.command.user.network.ListNetworksCmd;
import org.apache.cloudstack.api.command.user.network.RestartNetworkCmd;
import org.apache.cloudstack.api.command.user.vm.ListNicsCmd;
import com.cloud.dc.DataCenter;
import com.cloud.dc.Pod;
import com.cloud.dc.Vlan.VlanType;
import com.cloud.deploy.DataCenterDeployment;
import com.cloud.deploy.DeployDestination;
import com.cloud.deploy.DeploymentPlan;
@ -56,15 +53,11 @@ import com.cloud.network.Network.Provider;
import com.cloud.network.Network.Service;
import com.cloud.network.NetworkManager;
import com.cloud.network.NetworkProfile;
import com.cloud.network.NetworkRuleApplier;
import com.cloud.network.NetworkService;
import com.cloud.network.Networks.TrafficType;
import com.cloud.network.PhysicalNetwork;
import com.cloud.network.PhysicalNetworkServiceProvider;
import com.cloud.network.PhysicalNetworkTrafficType;
import com.cloud.network.PublicIpAddress;
import com.cloud.network.addr.PublicIp;
import com.cloud.network.dao.IPAddressVO;
import com.cloud.network.dao.NetworkServiceMapDao;
import com.cloud.network.dao.NetworkVO;
import com.cloud.network.element.DhcpServiceProvider;
@ -73,11 +66,7 @@ import com.cloud.network.element.NetworkElement;
import com.cloud.network.element.StaticNatServiceProvider;
import com.cloud.network.element.UserDataServiceProvider;
import com.cloud.network.guru.NetworkGuru;
import com.cloud.network.rules.FirewallRule;
import com.cloud.network.rules.FirewallRule.Purpose;
import com.cloud.network.rules.FirewallRule.State;
import com.cloud.network.rules.LoadBalancerContainer.Scheme;
import com.cloud.network.rules.StaticNat;
import com.cloud.offering.NetworkOffering;
import com.cloud.offerings.NetworkOfferingVO;
import com.cloud.offerings.dao.NetworkOfferingServiceMapDao;
@ -198,12 +187,6 @@ public class MockNetworkManagerImpl extends ManagerBase implements NetworkManage
return null;
}
@Override
public IpAddress allocatePortableIp(Account ipOwner, Account caller, long dcId, Long networkId, Long vpcID)
throws ConcurrentOperationException, ResourceAllocationException, InsufficientAddressCapacityException {
return null;// TODO Auto-generated method stub
}
@Override
public IpAddress allocatePortableIP(Account ipOwner, int regionId, Long zoneId, Long networkId, Long vpcId) throws ResourceAllocationException,
InsufficientAddressCapacityException, ConcurrentOperationException {
@ -214,17 +197,6 @@ public class MockNetworkManagerImpl extends ManagerBase implements NetworkManage
public boolean releasePortableIpAddress(long ipAddressId) {
return false;// TODO Auto-generated method stub
}
@Override
public boolean isPortableIpTransferableFromNetwork(long ipAddrId, long networkId) {
return false;
}
@Override
public void transferPortableIP(long ipAddrId, long currentNetworkId, long newNetworkId) throws ResourceAllocationException, ResourceUnavailableException,
InsufficientAddressCapacityException, ConcurrentOperationException {
}
/* (non-Javadoc)
* @see com.cloud.network.NetworkService#releaseIpAddress(long)
*/
@ -679,33 +651,6 @@ public class MockNetworkManagerImpl extends ManagerBase implements NetworkManage
/* (non-Javadoc)
* @see com.cloud.network.NetworkManager#assignPublicIpAddress(long, java.lang.Long, com.cloud.user.Account, com.cloud.dc.Vlan.VlanType, java.lang.Long, java.lang.String, boolean)
*/
@Override
public PublicIp assignPublicIpAddress(long dcId, Long podId, Account owner, VlanType type, Long networkId,
String requestedIp, boolean isSystem) throws InsufficientAddressCapacityException {
// TODO Auto-generated method stub
return null;
}
/* (non-Javadoc)
* @see com.cloud.network.NetworkManager#disassociatePublicIpAddress(long, long, com.cloud.user.Account)
*/
@Override
public boolean disassociatePublicIpAddress(long id, long userId, Account caller) {
// TODO Auto-generated method stub
return false;
}
/* (non-Javadoc)
* @see com.cloud.network.NetworkManager#setupNetwork(com.cloud.user.Account, com.cloud.offerings.NetworkOfferingVO, com.cloud.deploy.DeploymentPlan, java.lang.String, java.lang.String, boolean)
*/
@ -816,21 +761,6 @@ public class MockNetworkManagerImpl extends ManagerBase implements NetworkManage
/* (non-Javadoc)
* @see com.cloud.network.NetworkManager#applyRules(java.util.List, com.cloud.network.rules.FirewallRule.Purpose, com.cloud.network.NetworkRuleApplier, boolean)
*/
@Override
public boolean applyRules(List<? extends FirewallRule> rules, Purpose purpose, NetworkRuleApplier applier,
boolean continueOnError) throws ResourceUnavailableException {
// TODO Auto-generated method stub
return false;
}
/* (non-Javadoc)
* @see com.cloud.network.NetworkManager#implementNetwork(long, com.cloud.deploy.DeployDestination, com.cloud.vm.ReservationContext)
*/
@ -886,21 +816,6 @@ public class MockNetworkManagerImpl extends ManagerBase implements NetworkManage
return null;
}
/* (non-Javadoc)
* @see com.cloud.network.NetworkManager#associateIpAddressListToAccount(long, long, long, java.lang.Long, com.cloud.network.Network)
*/
@Override
public boolean associateIpAddressListToAccount(long userId, long accountId, long zoneId, Long vlanId,
Network guestNetwork) throws InsufficientCapacityException, ConcurrentOperationException,
ResourceUnavailableException, ResourceAllocationException {
// TODO Auto-generated method stub
return false;
}
/* (non-Javadoc)
* @see com.cloud.network.NetworkManager#getPasswordResetProvider(com.cloud.network.Network)
*/
@ -917,30 +832,6 @@ public class MockNetworkManagerImpl extends ManagerBase implements NetworkManage
}
/* (non-Javadoc)
* @see com.cloud.network.NetworkManager#applyIpAssociations(com.cloud.network.Network, boolean)
*/
@Override
public boolean applyIpAssociations(Network network, boolean continueOnError) throws ResourceUnavailableException {
// TODO Auto-generated method stub
return false;
}
/* (non-Javadoc)
* @see com.cloud.network.NetworkManager#applyIpAssociations(com.cloud.network.Network, boolean, boolean, java.util.List)
*/
@Override
public boolean applyIpAssociations(Network network, boolean rulesRevoked, boolean continueOnError,
List<? extends PublicIpAddress> publicIps) throws ResourceUnavailableException {
// TODO Auto-generated method stub
return false;
}
@ -958,46 +849,6 @@ public class MockNetworkManagerImpl extends ManagerBase implements NetworkManage
/* (non-Javadoc)
* @see com.cloud.network.NetworkManager#markIpAsUnavailable(long)
*/
@Override
public IPAddressVO markIpAsUnavailable(long addrId) {
// TODO Auto-generated method stub
return null;
}
/* (non-Javadoc)
* @see com.cloud.network.NetworkManager#acquireGuestIpAddress(com.cloud.network.Network, java.lang.String)
*/
@Override
public String acquireGuestIpAddress(Network network, String requestedIp) {
// TODO Auto-generated method stub
return null;
}
/* (non-Javadoc)
* @see com.cloud.network.NetworkManager#applyStaticNats(java.util.List, boolean)
*/
@Override
public boolean applyStaticNats(List<? extends StaticNat> staticNats, boolean continueOnError, boolean forRevoke)
throws ResourceUnavailableException {
// TODO Auto-generated method stub
return false;
}
/* (non-Javadoc)
* @see com.cloud.network.NetworkManager#reallocate(com.cloud.vm.VirtualMachineProfile, com.cloud.deploy.DataCenterDeployment)
*/
@ -1007,66 +858,6 @@ public class MockNetworkManagerImpl extends ManagerBase implements NetworkManage
// TODO Auto-generated method stub
return false;
}
/* (non-Javadoc)
* @see com.cloud.network.NetworkManager#assignSystemIp(long, com.cloud.user.Account, boolean, boolean)
*/
@Override
public IpAddress assignSystemIp(long networkId, Account owner, boolean forElasticLb, boolean forElasticIp)
throws InsufficientAddressCapacityException {
// TODO Auto-generated method stub
return null;
}
/* (non-Javadoc)
* @see com.cloud.network.NetworkManager#handleSystemIpRelease(com.cloud.network.IpAddress)
*/
@Override
public boolean handleSystemIpRelease(IpAddress ip) {
// TODO Auto-generated method stub
return false;
}
/* (non-Javadoc)
* @see com.cloud.network.NetworkManager#allocateDirectIp(com.cloud.vm.NicProfile, com.cloud.dc.DataCenter, com.cloud.vm.VirtualMachineProfile, com.cloud.network.Network, java.lang.String)
*/
@Override
public void allocateDirectIp(NicProfile nic, DataCenter dc, VirtualMachineProfile vm,
Network network, String requestedIpv4, String requestedIpv6) throws InsufficientVirtualNetworkCapcityException,
InsufficientAddressCapacityException {
// TODO Auto-generated method stub
}
/* (non-Javadoc)
* @see com.cloud.network.NetworkManager#assignSourceNatIpAddressToGuestNetwork(com.cloud.user.Account, com.cloud.network.Network)
*/
@Override
public PublicIp assignSourceNatIpAddressToGuestNetwork(Account owner, Network guestNetwork)
throws InsufficientAddressCapacityException, ConcurrentOperationException {
// TODO Auto-generated method stub
return null;
}
/* (non-Javadoc)
* @see com.cloud.network.NetworkManager#allocateNic(com.cloud.vm.NicProfile, com.cloud.network.Network, java.lang.Boolean, int, com.cloud.vm.VirtualMachineProfile)
*/
@ -1107,33 +898,6 @@ public class MockNetworkManagerImpl extends ManagerBase implements NetworkManage
// TODO Auto-generated method stub
}
/* (non-Javadoc)
* @see com.cloud.network.NetworkManager#associateIPToGuestNetwork(long, long, boolean)
*/
@Override
public IPAddressVO associateIPToGuestNetwork(long ipAddrId, long networkId, boolean releaseOnFailure)
throws ResourceAllocationException, ResourceUnavailableException, InsufficientAddressCapacityException,
ConcurrentOperationException {
// TODO Auto-generated method stub
return null;
}
@Override
public IPAddressVO associatePortableIPToGuestNetwork(long ipAddrId, long networkId, boolean releaseOnFailure) throws ResourceAllocationException, ResourceUnavailableException {
return null;// TODO Auto-generated method stub
}
@Override
public IPAddressVO disassociatePortableIPToGuestNetwork(long ipAddrId, long networkId) throws ResourceAllocationException, ResourceUnavailableException, InsufficientAddressCapacityException, ConcurrentOperationException {
return null;// TODO Auto-generated method stub
}
/* (non-Javadoc)
* @see com.cloud.network.NetworkManager#setupDns(com.cloud.network.Network, com.cloud.network.Network.Provider)
*/
@ -1166,31 +930,6 @@ public class MockNetworkManagerImpl extends ManagerBase implements NetworkManage
return null;
}
/* (non-Javadoc)
* @see com.cloud.network.NetworkManager#markPublicIpAsAllocated(com.cloud.network.IPAddressVO)
*/
@Override
public void markPublicIpAsAllocated(IPAddressVO addr) {
// TODO Auto-generated method stub
}
/* (non-Javadoc)
* @see com.cloud.network.NetworkManager#assignDedicateIpAddress(com.cloud.user.Account, java.lang.Long, java.lang.Long, long, boolean)
*/
@Override
public PublicIp assignDedicateIpAddress(Account owner, Long guestNtwkId, Long vpcId, long dcId, boolean isSourceNat)
throws ConcurrentOperationException, InsufficientAddressCapacityException {
// TODO Auto-generated method stub
return null;
}
/* (non-Javadoc)
* @see com.cloud.network.NetworkManager#convertNetworkToNetworkProfile(long)
*/
@ -1256,20 +995,6 @@ public class MockNetworkManagerImpl extends ManagerBase implements NetworkManage
/* (non-Javadoc)
* @see com.cloud.network.NetworkManager#allocateIp(com.cloud.user.Account, boolean, com.cloud.user.Account, com.cloud.dc.DataCenter)
*/
@Override
public IpAddress allocateIp(Account ipOwner, boolean isSystem, Account caller, long callerId, DataCenter zone)
throws ConcurrentOperationException, ResourceAllocationException, InsufficientAddressCapacityException {
// TODO Auto-generated method stub
return null;
}
/* (non-Javadoc)
* @see com.cloud.network.NetworkManager#finalizeServicesAndProvidersForNetwork(com.cloud.offering.NetworkOffering, java.lang.Long)
*/
@ -1296,13 +1021,6 @@ public class MockNetworkManagerImpl extends ManagerBase implements NetworkManage
// TODO Auto-generated method stub
return null;
}
@Override
public int getRuleCountForIp(Long addressId, Purpose purpose, State state) {
// TODO Auto-generated method stub
return 0;
}
@Override
public LoadBalancingServiceProvider getLoadBalancingProviderForNetwork(Network network, Scheme lbScheme) {
// TODO Auto-generated method stub
@ -1351,22 +1069,6 @@ public class MockNetworkManagerImpl extends ManagerBase implements NetworkManage
@Override
public String allocateGuestIP(Account ipOwner, boolean isSystem,
long zoneId, Long networkId, String requestedIp)
throws InsufficientAddressCapacityException {
// TODO Auto-generated method stub
return null;
}
@Override
public List<? extends Nic> listVmNics(Long vmId, Long nicId) {
// TODO Auto-generated method stub
@ -1389,15 +1091,6 @@ public class MockNetworkManagerImpl extends ManagerBase implements NetworkManage
}
@Override
public String allocatePublicIpForGuestNic(Long networkId, DataCenter dc,
Pod pod, Account caller, String requestedIp)
throws InsufficientAddressCapacityException {
// TODO Auto-generated method stub
return null;
}
@Override
public NicVO savePlaceholderNic(Network network, String ip4Address, String ip6Address, Type vmType) {
// TODO Auto-generated method stub
@ -1409,11 +1102,6 @@ public class MockNetworkManagerImpl extends ManagerBase implements NetworkManage
return null; //To change body of implemented methods use File | Settings | File Templates.
}
@Override
public PublicIp assignPublicIpAddressFromVlans(long dcId, Long podId, Account owner, VlanType type, List<Long> vlanDbIds, Long networkId, String requestedIp, boolean isSystem) throws InsufficientAddressCapacityException {
return null; //To change body of implemented methods use File | Settings | File Templates.
}
@Override
public void removeDhcpServiceInSubnet(NicVO nic) {
//To change body of implemented methods use File | Settings | File Templates.