VPC: createPrivateGateway - consists of plug nic + ipassoc (no setsource nat is needed)

Conflicts:

	server/src/com/cloud/network/NetworkManagerImpl.java
	server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
	server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java
	server/test/com/cloud/network/MockNetworkManagerImpl.java
This commit is contained in:
Alena Prokharchyk 2012-07-02 12:58:04 -07:00
parent b565f63e42
commit 183633cf70
13 changed files with 303 additions and 190 deletions

View File

@ -41,5 +41,7 @@ public interface PrivateIp {
* @return * @return
*/ */
String getMacAddress(); String getMacAddress();
long getNetworkId();
} }

View File

@ -62,7 +62,7 @@ import com.cloud.network.ExternalLoadBalancerDeviceVO.LBDeviceState;
import com.cloud.network.ExternalNetworkDeviceManager.NetworkDevice; import com.cloud.network.ExternalNetworkDeviceManager.NetworkDevice;
import com.cloud.network.Network.Service; import com.cloud.network.Network.Service;
import com.cloud.network.Networks.TrafficType; import com.cloud.network.Networks.TrafficType;
import com.cloud.network.addr.PublicIp; import com.cloud.network.addr.PrivateIp;
import com.cloud.network.dao.ExternalFirewallDeviceDao; import com.cloud.network.dao.ExternalFirewallDeviceDao;
import com.cloud.network.dao.ExternalLoadBalancerDeviceDao; import com.cloud.network.dao.ExternalLoadBalancerDeviceDao;
import com.cloud.network.dao.IPAddressDao; import com.cloud.network.dao.IPAddressDao;
@ -477,7 +477,7 @@ public abstract class ExternalLoadBalancerDeviceManagerImpl extends AdapterBase
// acquire a public IP to associate with lb appliance (used as subnet IP to make the // acquire a public IP to associate with lb appliance (used as subnet IP to make the
// appliance part of private network) // appliance part of private network)
PublicIp publicIp = _networkMgr.assignPublicIpAddress(guestConfig.getDataCenterId(), null, _accountMgr.getSystemAccount(), VlanType.VirtualNetwork, null, null, false); PrivateIp publicIp = _networkMgr.assignPublicIpAddress(guestConfig.getDataCenterId(), null, _accountMgr.getSystemAccount(), VlanType.VirtualNetwork, null, null, false);
String publicIPNetmask = publicIp.getVlanNetmask(); String publicIPNetmask = publicIp.getVlanNetmask();
String publicIPgateway = publicIp.getVlanGateway(); String publicIPgateway = publicIp.getVlanGateway();
String publicIPVlanTag = publicIp.getVlanTag(); String publicIPVlanTag = publicIp.getVlanTag();

View File

@ -37,7 +37,7 @@ import com.cloud.network.Network.Capability;
import com.cloud.network.Network.Provider; import com.cloud.network.Network.Provider;
import com.cloud.network.Network.Service; import com.cloud.network.Network.Service;
import com.cloud.network.Networks.TrafficType; import com.cloud.network.Networks.TrafficType;
import com.cloud.network.addr.PublicIp; import com.cloud.network.addr.PrivateIp;
import com.cloud.network.element.NetworkElement; import com.cloud.network.element.NetworkElement;
import com.cloud.network.element.RemoteAccessVPNServiceProvider; import com.cloud.network.element.RemoteAccessVPNServiceProvider;
import com.cloud.network.element.Site2SiteVpnServiceProvider; import com.cloud.network.element.Site2SiteVpnServiceProvider;
@ -80,7 +80,7 @@ public interface NetworkManager extends NetworkService {
* @throws InsufficientAddressCapacityException * @throws InsufficientAddressCapacityException
*/ */
PublicIp assignPublicIpAddress(long dcId, Long podId, Account owner, VlanType type, Long networkId, String requestedIp, PrivateIp assignPublicIpAddress(long dcId, Long podId, Account owner, VlanType type, Long networkId, String requestedIp,
boolean isSystem) throws InsufficientAddressCapacityException; boolean isSystem) throws InsufficientAddressCapacityException;
@ -266,9 +266,9 @@ public interface NetworkManager extends NetworkService {
boolean areServicesEnabledInZone(long zoneId, NetworkOffering offering, List<Service> services); boolean areServicesEnabledInZone(long zoneId, NetworkOffering offering, List<Service> services);
public Map<PublicIp, Set<Service>> getIpToServices(List<PublicIp> publicIps, boolean rulesRevoked, boolean includingFirewall); public Map<PrivateIp, Set<Service>> getIpToServices(List<PrivateIp> publicIps, boolean rulesRevoked, boolean includingFirewall);
public Map<Provider, ArrayList<PublicIp>> getProviderToIpList(Network network, Map<PublicIp, Set<Service>> ipToServices); public Map<Provider, ArrayList<PrivateIp>> getProviderToIpList(Network network, Map<PrivateIp, Set<Service>> ipToServices);
public boolean checkIpForService(IPAddressVO ip, Service service); public boolean checkIpForService(IPAddressVO ip, Service service);
@ -314,7 +314,7 @@ public interface NetworkManager extends NetworkService {
* @throws ConcurrentOperationException * @throws ConcurrentOperationException
* @throws InsufficientAddressCapacityException * @throws InsufficientAddressCapacityException
*/ */
PublicIp assignSourceNatIpAddressToGuestNetwork(Account owner, Network guestNetwork) throws InsufficientAddressCapacityException, ConcurrentOperationException; PrivateIp assignSourceNatIpAddressToGuestNetwork(Account owner, Network guestNetwork) throws InsufficientAddressCapacityException, ConcurrentOperationException;
/** /**
@ -324,7 +324,7 @@ public interface NetworkManager extends NetworkService {
* @throws ConcurrentOperationException * @throws ConcurrentOperationException
* @throws InsufficientAddressCapacityException * @throws InsufficientAddressCapacityException
*/ */
PublicIp assignSourceNatIpAddressToVpc(Account owner, Vpc vpc) throws InsufficientAddressCapacityException, ConcurrentOperationException; PrivateIp assignSourceNatIpAddressToVpc(Account owner, Vpc vpc) throws InsufficientAddressCapacityException, ConcurrentOperationException;
/** /**

View File

@ -110,7 +110,7 @@ import com.cloud.network.Networks.IsolationType;
import com.cloud.network.Networks.TrafficType; import com.cloud.network.Networks.TrafficType;
import com.cloud.network.PhysicalNetwork.BroadcastDomainRange; import com.cloud.network.PhysicalNetwork.BroadcastDomainRange;
import com.cloud.network.VirtualRouterProvider.VirtualRouterProviderType; import com.cloud.network.VirtualRouterProvider.VirtualRouterProviderType;
import com.cloud.network.addr.PublicIp; import com.cloud.network.addr.PrivateIp;
import com.cloud.network.dao.FirewallRulesDao; import com.cloud.network.dao.FirewallRulesDao;
import com.cloud.network.dao.IPAddressDao; import com.cloud.network.dao.IPAddressDao;
import com.cloud.network.dao.LoadBalancerDao; import com.cloud.network.dao.LoadBalancerDao;
@ -364,12 +364,12 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
} }
@Override @Override
public PublicIp assignPublicIpAddress(long dcId, Long podId, Account owner, VlanType type, Long networkId, String requestedIp, boolean isSystem) throws InsufficientAddressCapacityException { public PrivateIp assignPublicIpAddress(long dcId, Long podId, Account owner, VlanType type, Long networkId, String requestedIp, boolean isSystem) throws InsufficientAddressCapacityException {
return fetchNewPublicIp(dcId, podId, null, owner, type, networkId, false, true, requestedIp, isSystem, null); return fetchNewPublicIp(dcId, podId, null, owner, type, networkId, false, true, requestedIp, isSystem, null);
} }
@DB @DB
public PublicIp fetchNewPublicIp(long dcId, Long podId, Long vlanDbId, Account owner, VlanType vlanUse, public PrivateIp fetchNewPublicIp(long dcId, Long podId, Long vlanDbId, Account owner, VlanType vlanUse,
Long guestNetworkId, boolean sourceNat, boolean assign, String requestedIp, boolean isSystem, Long vpcId) Long guestNetworkId, boolean sourceNat, boolean assign, String requestedIp, boolean isSystem, Long vpcId)
throws InsufficientAddressCapacityException { throws InsufficientAddressCapacityException {
StringBuilder errorMessage = new StringBuilder("Unable to get ip adress in "); StringBuilder errorMessage = new StringBuilder("Unable to get ip adress in ");
@ -456,7 +456,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
long macAddress = NetUtils.createSequenceBasedMacAddress(addr.getMacAddress()); long macAddress = NetUtils.createSequenceBasedMacAddress(addr.getMacAddress());
return new PublicIp(addr, _vlanDao.findById(addr.getVlanId()), macAddress); return new PrivateIp(addr, _vlanDao.findById(addr.getVlanId()), macAddress);
} }
@DB @DB
@ -494,15 +494,15 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
@Override @Override
public PublicIp assignSourceNatIpAddressToVpc(Account owner, Vpc vpc) throws InsufficientAddressCapacityException, ConcurrentOperationException { public PrivateIp assignSourceNatIpAddressToVpc(Account owner, Vpc vpc) throws InsufficientAddressCapacityException, ConcurrentOperationException {
long dcId = vpc.getZoneId(); long dcId = vpc.getZoneId();
IPAddressVO sourceNatIp = getExistingSourceNat(owner.getId(), null, vpc.getId()); IPAddressVO sourceNatIp = getExistingSourceNat(owner.getId(), null, vpc.getId());
PublicIp ipToReturn = null; PrivateIp ipToReturn = null;
if (sourceNatIp != null) { if (sourceNatIp != null) {
ipToReturn = new PublicIp(sourceNatIp, _vlanDao.findById(sourceNatIp.getVlanId()), ipToReturn = new PrivateIp(sourceNatIp, _vlanDao.findById(sourceNatIp.getVlanId()),
NetUtils.createSequenceBasedMacAddress(sourceNatIp.getMacAddress())); NetUtils.createSequenceBasedMacAddress(sourceNatIp.getMacAddress()));
} else { } else {
ipToReturn = assignSourceNatIpAddress(owner, null, vpc.getId(), dcId); ipToReturn = assignSourceNatIpAddress(owner, null, vpc.getId(), dcId);
@ -512,7 +512,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
} }
@Override @Override
public PublicIp assignSourceNatIpAddressToGuestNetwork(Account owner, Network guestNetwork) public PrivateIp assignSourceNatIpAddressToGuestNetwork(Account owner, Network guestNetwork)
throws InsufficientAddressCapacityException, ConcurrentOperationException { throws InsufficientAddressCapacityException, ConcurrentOperationException {
assert (guestNetwork.getTrafficType() != null) : "You're asking for a source nat but your network " + assert (guestNetwork.getTrafficType() != null) : "You're asking for a source nat but your network " +
"can't participate in source nat. What do you have to say for yourself?"; "can't participate in source nat. What do you have to say for yourself?";
@ -520,9 +520,9 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
IPAddressVO sourceNatIp = getExistingSourceNat(owner.getId(), guestNetwork.getId(), guestNetwork.getVpcId()); IPAddressVO sourceNatIp = getExistingSourceNat(owner.getId(), guestNetwork.getId(), guestNetwork.getVpcId());
PublicIp ipToReturn = null; PrivateIp ipToReturn = null;
if (sourceNatIp != null) { if (sourceNatIp != null) {
ipToReturn = new PublicIp(sourceNatIp, _vlanDao.findById(sourceNatIp.getVlanId()), ipToReturn = new PrivateIp(sourceNatIp, _vlanDao.findById(sourceNatIp.getVlanId()),
NetUtils.createSequenceBasedMacAddress(sourceNatIp.getMacAddress())); NetUtils.createSequenceBasedMacAddress(sourceNatIp.getMacAddress()));
} else { } else {
ipToReturn = assignSourceNatIpAddress(owner, guestNetwork.getId(), null, dcId); ipToReturn = assignSourceNatIpAddress(owner, guestNetwork.getId(), null, dcId);
@ -532,7 +532,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
} }
@DB @DB
public PublicIp assignSourceNatIpAddress(Account owner, Long guestNtwkId, Long vpcId, long dcId) public PrivateIp assignSourceNatIpAddress(Account owner, Long guestNtwkId, Long vpcId, long dcId)
throws ConcurrentOperationException, InsufficientAddressCapacityException { throws ConcurrentOperationException, InsufficientAddressCapacityException {
long ownerId = owner.getId(); long ownerId = owner.getId();
@ -544,8 +544,8 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
s_logger.warn("Failed to allocate resource of type " + ex.getResourceType() + " for account " + owner); s_logger.warn("Failed to allocate resource of type " + ex.getResourceType() + " for account " + owner);
throw new AccountLimitException("Maximum number of public IP addresses for account: " + owner.getAccountName() + " has been exceeded."); throw new AccountLimitException("Maximum number of public IP addresses for account: " + owner.getAccountName() + " has been exceeded.");
} }
PublicIp ip = null; PrivateIp ip = null;
Transaction txn = Transaction.currentTxn(); Transaction txn = Transaction.currentTxn();
try { try {
txn.start(); txn.start();
@ -636,10 +636,10 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
@Override @Override
public boolean applyIpAssociations(Network network, boolean continueOnError) throws ResourceUnavailableException { public boolean applyIpAssociations(Network network, boolean continueOnError) throws ResourceUnavailableException {
List<IPAddressVO> userIps = _ipAddressDao.listByAssociatedNetwork(network.getId(), null); List<IPAddressVO> userIps = _ipAddressDao.listByAssociatedNetwork(network.getId(), null);
List<PublicIp> publicIps = new ArrayList<PublicIp>(); List<PrivateIp> publicIps = new ArrayList<PrivateIp>();
if (userIps != null && !userIps.isEmpty()) { if (userIps != null && !userIps.isEmpty()) {
for (IPAddressVO userIp : userIps) { for (IPAddressVO userIp : userIps) {
PublicIp publicIp = new PublicIp(userIp, _vlanDao.findById(userIp.getVlanId()), PrivateIp publicIp = new PrivateIp(userIp, _vlanDao.findById(userIp.getVlanId()),
NetUtils.createSequenceBasedMacAddress(userIp.getMacAddress())); NetUtils.createSequenceBasedMacAddress(userIp.getMacAddress()));
publicIps.add(publicIp); publicIps.add(publicIp);
} }
@ -698,12 +698,12 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
/* Get a list of IPs, classify them by service */ /* Get a list of IPs, classify them by service */
@Override @Override
public Map<PublicIp, Set<Service>> getIpToServices(List<PublicIp> publicIps, boolean rulesRevoked, boolean includingFirewall) { public Map<PrivateIp, Set<Service>> getIpToServices(List<PrivateIp> publicIps, boolean rulesRevoked, boolean includingFirewall) {
Map<PublicIp, Set<Service>> ipToServices = new HashMap<PublicIp, Set<Service>>(); Map<PrivateIp, Set<Service>> ipToServices = new HashMap<PrivateIp, Set<Service>>();
if (publicIps != null && !publicIps.isEmpty()) { if (publicIps != null && !publicIps.isEmpty()) {
Set<Long> networkSNAT = new HashSet<Long>(); Set<Long> networkSNAT = new HashSet<Long>();
for (PublicIp ip : publicIps) { for (PrivateIp ip : publicIps) {
Set<Service> services = ipToServices.get(ip); Set<Service> services = ipToServices.get(ip);
if (services == null) { if (services == null) {
services = new HashSet<Service>(); services = new HashSet<Service>();
@ -790,11 +790,11 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
return ipToServices; return ipToServices;
} }
public boolean canIpUsedForNonConserveService(PublicIp ip, Service service) { public boolean canIpUsedForNonConserveService(PrivateIp ip, Service service) {
// If it's non-conserve mode, then the new ip should not be used by any other services // If it's non-conserve mode, then the new ip should not be used by any other services
List<PublicIp> ipList = new ArrayList<PublicIp>(); List<PrivateIp> ipList = new ArrayList<PrivateIp>();
ipList.add(ip); ipList.add(ip);
Map<PublicIp, Set<Service>> ipToServices = getIpToServices(ipList, false, false); Map<PrivateIp, Set<Service>> ipToServices = getIpToServices(ipList, false, false);
Set<Service> services = ipToServices.get(ip); Set<Service> services = ipToServices.get(ip);
// Not used currently, safe // Not used currently, safe
if (services == null || services.isEmpty()) { if (services == null || services.isEmpty()) {
@ -810,9 +810,9 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
return true; return true;
} }
protected boolean canIpsUsedForNonConserve(List<PublicIp> publicIps) { protected boolean canIpsUsedForNonConserve(List<PrivateIp> publicIps) {
boolean result = true; boolean result = true;
for (PublicIp ip : publicIps) { for (PrivateIp ip : publicIps) {
result = canIpUsedForNonConserveService(ip, null); result = canIpUsedForNonConserveService(ip, null);
if (!result) { if (!result) {
break; break;
@ -821,10 +821,10 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
return result; return result;
} }
public boolean canIpsUseOffering(List<PublicIp> publicIps, long offeringId) { public boolean canIpsUseOffering(List<PrivateIp> publicIps, long offeringId) {
Map<PublicIp, Set<Service>> ipToServices = getIpToServices(publicIps, false, true); Map<PrivateIp, Set<Service>> ipToServices = getIpToServices(publicIps, false, true);
Map<Service, Set<Provider>> serviceToProviders = getNetworkOfferingServiceProvidersMap(offeringId); Map<Service, Set<Provider>> serviceToProviders = getNetworkOfferingServiceProvidersMap(offeringId);
for (PublicIp ip : ipToServices.keySet()) { for (PrivateIp ip : ipToServices.keySet()) {
Set<Service> services = ipToServices.get(ip); Set<Service> services = ipToServices.get(ip);
Provider provider = null; Provider provider = null;
for (Service service : services) { for (Service service : services) {
@ -846,10 +846,10 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
return true; return true;
} }
public boolean canIpUsedForService(PublicIp publicIp, Service service) { public boolean canIpUsedForService(PrivateIp publicIp, Service service) {
List<PublicIp> ipList = new ArrayList<PublicIp>(); List<PrivateIp> ipList = new ArrayList<PrivateIp>();
ipList.add(publicIp); ipList.add(publicIp);
Map<PublicIp, Set<Service>> ipToServices = getIpToServices(ipList, false, true); Map<PrivateIp, Set<Service>> ipToServices = getIpToServices(ipList, false, true);
Set<Service> services = ipToServices.get(publicIp); Set<Service> services = ipToServices.get(publicIp);
if (services == null || services.isEmpty()) { if (services == null || services.isEmpty()) {
return true; return true;
@ -872,22 +872,22 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
/* Return a mapping between provider in the network and the IP they should applied */ /* Return a mapping between provider in the network and the IP they should applied */
@Override @Override
public Map<Provider, ArrayList<PublicIp>> getProviderToIpList(Network network, Map<PublicIp, Set<Service>> ipToServices) { public Map<Provider, ArrayList<PrivateIp>> getProviderToIpList(Network network, Map<PrivateIp, Set<Service>> ipToServices) {
NetworkOffering offering = _networkOfferingDao.findById(network.getNetworkOfferingId()); NetworkOffering offering = _networkOfferingDao.findById(network.getNetworkOfferingId());
if (!offering.isConserveMode()) { if (!offering.isConserveMode()) {
for (PublicIp ip : ipToServices.keySet()) { for (PrivateIp ip : ipToServices.keySet()) {
Set<Service> services = ipToServices.get(ip); Set<Service> services = ipToServices.get(ip);
if (services != null && services.size() > 1) { if (services != null && services.size() > 1) {
throw new CloudRuntimeException("Ip " + ip.getAddress() + " is used by multiple services!"); throw new CloudRuntimeException("Ip " + ip.getAddress() + " is used by multiple services!");
} }
} }
} }
Map<Service, Set<PublicIp>> serviceToIps = new HashMap<Service, Set<PublicIp>>(); Map<Service, Set<PrivateIp>> serviceToIps = new HashMap<Service, Set<PrivateIp>>();
for (PublicIp ip : ipToServices.keySet()) { for (PrivateIp ip : ipToServices.keySet()) {
for (Service service : ipToServices.get(ip)) { for (Service service : ipToServices.get(ip)) {
Set<PublicIp> ips = serviceToIps.get(service); Set<PrivateIp> ips = serviceToIps.get(service);
if (ips == null) { if (ips == null) {
ips = new HashSet<PublicIp>(); ips = new HashSet<PrivateIp>();
} }
ips.add(ip); ips.add(ip);
serviceToIps.put(service, ips); serviceToIps.put(service, ips);
@ -895,19 +895,19 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
} }
// TODO Check different provider for same IP // TODO Check different provider for same IP
Map<Provider, Set<Service>> providerToServices = getProviderServicesMap(network.getId()); Map<Provider, Set<Service>> providerToServices = getProviderServicesMap(network.getId());
Map<Provider, ArrayList<PublicIp>> providerToIpList = new HashMap<Provider, ArrayList<PublicIp>>(); Map<Provider, ArrayList<PrivateIp>> providerToIpList = new HashMap<Provider, ArrayList<PrivateIp>>();
for (Provider provider : providerToServices.keySet()) { for (Provider provider : providerToServices.keySet()) {
Set<Service> services = providerToServices.get(provider); Set<Service> services = providerToServices.get(provider);
ArrayList<PublicIp> ipList = new ArrayList<PublicIp>(); ArrayList<PrivateIp> ipList = new ArrayList<PrivateIp>();
Set<PublicIp> ipSet = new HashSet<PublicIp>(); Set<PrivateIp> ipSet = new HashSet<PrivateIp>();
for (Service service : services) { for (Service service : services) {
Set<PublicIp> serviceIps = serviceToIps.get(service); Set<PrivateIp> serviceIps = serviceToIps.get(service);
if (serviceIps == null || serviceIps.isEmpty()) { if (serviceIps == null || serviceIps.isEmpty()) {
continue; continue;
} }
ipSet.addAll(serviceIps); ipSet.addAll(serviceIps);
} }
Set<PublicIp> sourceNatIps = serviceToIps.get(Service.SourceNat); Set<PrivateIp> sourceNatIps = serviceToIps.get(Service.SourceNat);
if (sourceNatIps != null && !sourceNatIps.isEmpty()) { if (sourceNatIps != null && !sourceNatIps.isEmpty()) {
ipList.addAll(0, sourceNatIps); ipList.addAll(0, sourceNatIps);
ipSet.removeAll(sourceNatIps); ipSet.removeAll(sourceNatIps);
@ -919,15 +919,15 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
} }
protected boolean applyIpAssociations(Network network, boolean rulesRevoked, boolean continueOnError, protected boolean applyIpAssociations(Network network, boolean rulesRevoked, boolean continueOnError,
List<PublicIp> publicIps) throws ResourceUnavailableException { List<PrivateIp> publicIps) throws ResourceUnavailableException {
boolean success = true; boolean success = true;
Map<PublicIp, Set<Service>> ipToServices = getIpToServices(publicIps, rulesRevoked, false); Map<PrivateIp, Set<Service>> ipToServices = getIpToServices(publicIps, rulesRevoked, false);
Map<Provider, ArrayList<PublicIp>> providerToIpList = getProviderToIpList(network, ipToServices); Map<Provider, ArrayList<PrivateIp>> providerToIpList = getProviderToIpList(network, ipToServices);
for (Provider provider : providerToIpList.keySet()) { for (Provider provider : providerToIpList.keySet()) {
try { try {
ArrayList<PublicIp> ips = providerToIpList.get(provider); ArrayList<PrivateIp> ips = providerToIpList.get(provider);
if (ips == null || ips.isEmpty()) { if (ips == null || ips.isEmpty()) {
continue; continue;
} }
@ -954,7 +954,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
applyFirewallRules = true; applyFirewallRules = true;
} }
Set<Service> services = new HashSet<Service>(); Set<Service> services = new HashSet<Service>();
for (PublicIp ip : ips) { for (PrivateIp ip : ips) {
if (!ipToServices.containsKey(ip)) { if (!ipToServices.containsKey(ip)) {
continue; continue;
} }
@ -980,7 +980,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
return success; return success;
} }
Set<Purpose> getPublicIpPurposeInRules(PublicIp ip, boolean includeRevoked, boolean includingFirewall) { Set<Purpose> getPublicIpPurposeInRules(PrivateIp ip, boolean includeRevoked, boolean includingFirewall) {
Set<Purpose> result = new HashSet<Purpose>(); Set<Purpose> result = new HashSet<Purpose>();
List<FirewallRuleVO> rules = null; List<FirewallRuleVO> rules = null;
if (includeRevoked) { if (includeRevoked) {
@ -1045,7 +1045,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
throw ex; throw ex;
} }
PublicIp ip = null; PrivateIp ip = null;
Transaction txn = Transaction.currentTxn(); Transaction txn = Transaction.currentTxn();
Account accountToLock = null; Account accountToLock = null;
@ -3687,10 +3687,10 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
// get the list of public ip's owned by the network // get the list of public ip's owned by the network
List<IPAddressVO> userIps = _ipAddressDao.listByAssociatedNetwork(network.getId(), null); List<IPAddressVO> userIps = _ipAddressDao.listByAssociatedNetwork(network.getId(), null);
List<PublicIp> publicIps = new ArrayList<PublicIp>(); List<PrivateIp> publicIps = new ArrayList<PrivateIp>();
if (userIps != null && !userIps.isEmpty()) { if (userIps != null && !userIps.isEmpty()) {
for (IPAddressVO userIp : userIps) { for (IPAddressVO userIp : userIps) {
PublicIp publicIp = new PublicIp(userIp, _vlanDao.findById(userIp.getVlanId()), NetUtils.createSequenceBasedMacAddress(userIp.getMacAddress())); PrivateIp publicIp = new PrivateIp(userIp, _vlanDao.findById(userIp.getVlanId()), NetUtils.createSequenceBasedMacAddress(userIp.getMacAddress()));
publicIps.add(publicIp); publicIps.add(publicIp);
} }
} }
@ -4126,7 +4126,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
return null; return null;
} }
return new PublicIp(addr, _vlanDao.findById(addr.getVlanId()), NetUtils.createSequenceBasedMacAddress(addr.getMacAddress())); return new PrivateIp(addr, _vlanDao.findById(addr.getVlanId()), NetUtils.createSequenceBasedMacAddress(addr.getMacAddress()));
} }
@Override @Override
@ -4922,10 +4922,10 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
// get the list of public ip's owned by the network // get the list of public ip's owned by the network
List<IPAddressVO> userIps = _ipAddressDao.listByAssociatedNetwork(network.getId(), null); List<IPAddressVO> userIps = _ipAddressDao.listByAssociatedNetwork(network.getId(), null);
List<PublicIp> publicIps = new ArrayList<PublicIp>(); List<PrivateIp> publicIps = new ArrayList<PrivateIp>();
if (userIps != null && !userIps.isEmpty()) { if (userIps != null && !userIps.isEmpty()) {
for (IPAddressVO userIp : userIps) { for (IPAddressVO userIp : userIps) {
PublicIp publicIp = new PublicIp(userIp, _vlanDao.findById(userIp.getVlanId()), NetUtils.createSequenceBasedMacAddress(userIp.getMacAddress())); PrivateIp publicIp = new PrivateIp(userIp, _vlanDao.findById(userIp.getVlanId()), NetUtils.createSequenceBasedMacAddress(userIp.getMacAddress()));
publicIps.add(publicIp); publicIps.add(publicIp);
} }
} }
@ -4957,13 +4957,13 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
// For revoked static nat IP, set the vm_id to null, indicate it should be revoked // For revoked static nat IP, set the vm_id to null, indicate it should be revoked
for (StaticNat staticNat : staticNats) { for (StaticNat staticNat : staticNats) {
if (staticNat.isForRevoke()) { if (staticNat.isForRevoke()) {
for (PublicIp publicIp : publicIps) { for (PrivateIp publicIp : publicIps) {
if (publicIp.getId() == staticNat.getSourceIpAddressId()) { if (publicIp.getId() == staticNat.getSourceIpAddressId()) {
publicIps.remove(publicIp); publicIps.remove(publicIp);
IPAddressVO ip = _ipAddressDao.findByIdIncludingRemoved(staticNat.getSourceIpAddressId()); IPAddressVO ip = _ipAddressDao.findByIdIncludingRemoved(staticNat.getSourceIpAddressId());
// ip can't be null, otherwise something wrong happened // ip can't be null, otherwise something wrong happened
ip.setAssociatedWithVmId(null); ip.setAssociatedWithVmId(null);
publicIp = new PublicIp(ip, _vlanDao.findById(ip.getVlanId()), NetUtils.createSequenceBasedMacAddress(ip.getMacAddress())); publicIp = new PrivateIp(ip, _vlanDao.findById(ip.getVlanId()), NetUtils.createSequenceBasedMacAddress(ip.getMacAddress()));
publicIps.add(publicIp); publicIps.add(publicIp);
break; break;
} }
@ -5089,10 +5089,10 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
// Check all ips // Check all ips
List<IPAddressVO> userIps = _ipAddressDao.listByAssociatedNetwork(network.getId(), null); List<IPAddressVO> userIps = _ipAddressDao.listByAssociatedNetwork(network.getId(), null);
List<PublicIp> publicIps = new ArrayList<PublicIp>(); List<PrivateIp> publicIps = new ArrayList<PrivateIp>();
if (userIps != null && !userIps.isEmpty()) { if (userIps != null && !userIps.isEmpty()) {
for (IPAddressVO userIp : userIps) { for (IPAddressVO userIp : userIps) {
PublicIp publicIp = new PublicIp(userIp, _vlanDao.findById(userIp.getVlanId()), NetUtils.createSequenceBasedMacAddress(userIp.getMacAddress())); PrivateIp publicIp = new PrivateIp(userIp, _vlanDao.findById(userIp.getVlanId()), NetUtils.createSequenceBasedMacAddress(userIp.getMacAddress()));
publicIps.add(publicIp); publicIps.add(publicIp);
} }
} }
@ -6116,11 +6116,11 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
// Get all ip addresses, mark as releasing and release them on the backend // Get all ip addresses, mark as releasing and release them on the backend
Network network = getNetwork(networkId); Network network = getNetwork(networkId);
List<IPAddressVO> userIps = _ipAddressDao.listByAssociatedNetwork(networkId, null); List<IPAddressVO> userIps = _ipAddressDao.listByAssociatedNetwork(networkId, null);
List<PublicIp> publicIpsToRelease = new ArrayList<PublicIp>(); List<PrivateIp> publicIpsToRelease = new ArrayList<PrivateIp>();
if (userIps != null && !userIps.isEmpty()) { if (userIps != null && !userIps.isEmpty()) {
for (IPAddressVO userIp : userIps) { for (IPAddressVO userIp : userIps) {
userIp.setState(State.Releasing); userIp.setState(State.Releasing);
PublicIp publicIp = new PublicIp(userIp, _vlanDao.findById(userIp.getVlanId()), NetUtils.createSequenceBasedMacAddress(userIp.getMacAddress())); PrivateIp publicIp = new PrivateIp(userIp, _vlanDao.findById(userIp.getVlanId()), NetUtils.createSequenceBasedMacAddress(userIp.getMacAddress()));
publicIpsToRelease.add(publicIp); publicIpsToRelease.add(publicIp);
} }
} }
@ -6880,7 +6880,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
if (offering.getGuestType() != GuestType.Isolated) { if (offering.getGuestType() != GuestType.Isolated) {
return true; return true;
} }
PublicIp publicIp = new PublicIp(userIp, _vlanDao.findById(userIp.getVlanId()), NetUtils.createSequenceBasedMacAddress(userIp.getMacAddress())); PrivateIp publicIp = new PrivateIp(userIp, _vlanDao.findById(userIp.getVlanId()), NetUtils.createSequenceBasedMacAddress(userIp.getMacAddress()));
if (!canIpUsedForService(publicIp, service)) { if (!canIpUsedForService(publicIp, service)) {
return false; return false;
} }
@ -7010,7 +7010,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
public void allocateDirectIp(NicProfile nic, DataCenter dc, VirtualMachineProfile<? extends VirtualMachine> vm, Network network, String requestedIp) throws InsufficientVirtualNetworkCapcityException, public void allocateDirectIp(NicProfile nic, DataCenter dc, VirtualMachineProfile<? extends VirtualMachine> vm, Network network, String requestedIp) throws InsufficientVirtualNetworkCapcityException,
InsufficientAddressCapacityException { InsufficientAddressCapacityException {
if (nic.getIp4Address() == null) { if (nic.getIp4Address() == null) {
PublicIp ip = assignPublicIpAddress(dc.getId(), null, vm.getOwner(), VlanType.DirectAttached, network.getId(), requestedIp, false); PrivateIp ip = assignPublicIpAddress(dc.getId(), null, vm.getOwner(), VlanType.DirectAttached, network.getId(), requestedIp, false);
nic.setIp4Address(ip.getAddress().toString()); nic.setIp4Address(ip.getAddress().toString());
nic.setGateway(ip.getGateway()); nic.setGateway(ip.getGateway());
nic.setNetmask(ip.getNetmask()); nic.setNetmask(ip.getNetmask());

View File

@ -22,12 +22,12 @@ import com.cloud.utils.net.NetUtils;
/** /**
*/ */
public class PublicIp implements PublicIpAddress { public class PrivateIp implements PublicIpAddress {
IPAddressVO _addr; IPAddressVO _addr;
VlanVO _vlan; VlanVO _vlan;
String macAddress; String macAddress;
public PublicIp(IPAddressVO addr, VlanVO vlan, long macAddress) { public PrivateIp(IPAddressVO addr, VlanVO vlan, long macAddress) {
_addr = addr; _addr = addr;
_vlan = vlan; _vlan = vlan;
this.macAddress = NetUtils.long2Mac(macAddress); this.macAddress = NetUtils.long2Mac(macAddress);

View File

@ -38,7 +38,7 @@ import com.cloud.network.Network;
import com.cloud.network.NetworkManager; import com.cloud.network.NetworkManager;
import com.cloud.network.Networks.AddressFormat; import com.cloud.network.Networks.AddressFormat;
import com.cloud.network.Networks.BroadcastDomainType; import com.cloud.network.Networks.BroadcastDomainType;
import com.cloud.network.addr.PublicIp; import com.cloud.network.addr.PrivateIp;
import com.cloud.network.dao.IPAddressDao; import com.cloud.network.dao.IPAddressDao;
import com.cloud.offering.NetworkOffering; import com.cloud.offering.NetworkOffering;
import com.cloud.offerings.dao.NetworkOfferingDao; import com.cloud.offerings.dao.NetworkOfferingDao;
@ -155,7 +155,7 @@ public class DirectPodBasedNetworkGuru extends DirectNetworkGuru {
InsufficientAddressCapacityException, ConcurrentOperationException { InsufficientAddressCapacityException, ConcurrentOperationException {
DataCenter dc = _dcDao.findById(pod.getDataCenterId()); DataCenter dc = _dcDao.findById(pod.getDataCenterId());
if (nic.getIp4Address() == null) { if (nic.getIp4Address() == null) {
PublicIp ip = _networkMgr.assignPublicIpAddress(dc.getId(), pod.getId(), vm.getOwner(), VlanType.DirectAttached, network.getId(), null, false); PrivateIp ip = _networkMgr.assignPublicIpAddress(dc.getId(), pod.getId(), vm.getOwner(), VlanType.DirectAttached, network.getId(), null, false);
nic.setIp4Address(ip.getAddress().toString()); nic.setIp4Address(ip.getAddress().toString());
nic.setFormat(AddressFormat.Ip4); nic.setFormat(AddressFormat.Ip4);
nic.setGateway(ip.getGateway()); nic.setGateway(ip.getGateway());

View File

@ -36,7 +36,7 @@ import com.cloud.network.Networks.BroadcastDomainType;
import com.cloud.network.Networks.IsolationType; import com.cloud.network.Networks.IsolationType;
import com.cloud.network.Networks.Mode; import com.cloud.network.Networks.Mode;
import com.cloud.network.Networks.TrafficType; import com.cloud.network.Networks.TrafficType;
import com.cloud.network.addr.PublicIp; import com.cloud.network.addr.PrivateIp;
import com.cloud.network.dao.IPAddressDao; import com.cloud.network.dao.IPAddressDao;
import com.cloud.offering.NetworkOffering; import com.cloud.offering.NetworkOffering;
import com.cloud.user.Account; import com.cloud.user.Account;
@ -106,7 +106,7 @@ public class PublicNetworkGuru extends AdapterBase implements NetworkGuru {
protected void getIp(NicProfile nic, DataCenter dc, VirtualMachineProfile<? extends VirtualMachine> vm, Network network) throws InsufficientVirtualNetworkCapcityException, protected void getIp(NicProfile nic, DataCenter dc, VirtualMachineProfile<? extends VirtualMachine> vm, Network network) throws InsufficientVirtualNetworkCapcityException,
InsufficientAddressCapacityException, ConcurrentOperationException { InsufficientAddressCapacityException, ConcurrentOperationException {
if (nic.getIp4Address() == null) { if (nic.getIp4Address() == null) {
PublicIp ip = _networkMgr.assignPublicIpAddress(dc.getId(), null, vm.getOwner(), VlanType.VirtualNetwork, null, null, false); PrivateIp ip = _networkMgr.assignPublicIpAddress(dc.getId(), null, vm.getOwner(), VlanType.VirtualNetwork, null, null, false);
nic.setIp4Address(ip.getAddress().toString()); nic.setIp4Address(ip.getAddress().toString());
nic.setGateway(ip.getGateway()); nic.setGateway(ip.getGateway());
nic.setNetmask(ip.getNetmask()); nic.setNetmask(ip.getNetmask());

View File

@ -80,7 +80,7 @@ import com.cloud.network.Networks.TrafficType;
import com.cloud.network.PhysicalNetworkServiceProvider; import com.cloud.network.PhysicalNetworkServiceProvider;
import com.cloud.network.VirtualRouterProvider; import com.cloud.network.VirtualRouterProvider;
import com.cloud.network.VirtualRouterProvider.VirtualRouterProviderType; import com.cloud.network.VirtualRouterProvider.VirtualRouterProviderType;
import com.cloud.network.addr.PublicIp; import com.cloud.network.addr.PrivateIp;
import com.cloud.network.dao.IPAddressDao; import com.cloud.network.dao.IPAddressDao;
import com.cloud.network.dao.LoadBalancerDao; import com.cloud.network.dao.LoadBalancerDao;
import com.cloud.network.dao.NetworkDao; import com.cloud.network.dao.NetworkDao;
@ -596,12 +596,12 @@ public class ElasticLoadBalancerManagerImpl implements
} }
@DB @DB
public PublicIp allocDirectIp(Account account, long guestNetworkId) throws InsufficientAddressCapacityException { public PrivateIp allocDirectIp(Account account, long guestNetworkId) throws InsufficientAddressCapacityException {
Network frontEndNetwork = _networkMgr.getNetwork(guestNetworkId); Network frontEndNetwork = _networkMgr.getNetwork(guestNetworkId);
Transaction txn = Transaction.currentTxn(); Transaction txn = Transaction.currentTxn();
txn.start(); txn.start();
PublicIp ip = _networkMgr.assignPublicIpAddress(frontEndNetwork.getDataCenterId(), null, account, VlanType.DirectAttached, frontEndNetwork.getId(), null, true); PrivateIp ip = _networkMgr.assignPublicIpAddress(frontEndNetwork.getDataCenterId(), null, account, VlanType.DirectAttached, frontEndNetwork.getId(), null, true);
IPAddressVO ipvo = _ipAddressDao.findById(ip.getId()); IPAddressVO ipvo = _ipAddressDao.findById(ip.getId());
ipvo.setAssociatedWithNetworkId(frontEndNetwork.getId()); ipvo.setAssociatedWithNetworkId(frontEndNetwork.getId());
_ipAddressDao.update(ipvo.getId(), ipvo); _ipAddressDao.update(ipvo.getId(), ipvo);
@ -650,7 +650,7 @@ public class ElasticLoadBalancerManagerImpl implements
} }
} else { } else {
s_logger.debug("Could not find any existing frontend ips for this account for this LB rule, acquiring a new frontent IP for ELB"); s_logger.debug("Could not find any existing frontend ips for this account for this LB rule, acquiring a new frontent IP for ELB");
PublicIp ip = allocDirectIp(account, networkId); PrivateIp ip = allocDirectIp(account, networkId);
ipId = ip.getId(); ipId = ip.getId();
newIp = true; newIp = true;
} }

View File

@ -138,7 +138,7 @@ import com.cloud.network.VirtualRouterProvider;
import com.cloud.network.VirtualRouterProvider.VirtualRouterProviderType; import com.cloud.network.VirtualRouterProvider.VirtualRouterProviderType;
import com.cloud.network.VpnUser; import com.cloud.network.VpnUser;
import com.cloud.network.VpnUserVO; import com.cloud.network.VpnUserVO;
import com.cloud.network.addr.PublicIp; import com.cloud.network.addr.PrivateIp;
import com.cloud.network.dao.FirewallRulesDao; import com.cloud.network.dao.FirewallRulesDao;
import com.cloud.network.dao.IPAddressDao; import com.cloud.network.dao.IPAddressDao;
import com.cloud.network.dao.LoadBalancerDao; import com.cloud.network.dao.LoadBalancerDao;
@ -1271,10 +1271,10 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
Long offeringId = _networkOfferingDao.findById(guestNetwork.getNetworkOfferingId()).getServiceOfferingId(); Long offeringId = _networkOfferingDao.findById(guestNetwork.getNetworkOfferingId()).getServiceOfferingId();
if (offeringId == null) { if (offeringId == null) {
offeringId = _offering.getId(); offeringId = _offering.getId();
} }
PublicIp sourceNatIp = null; PrivateIp sourceNatIp = null;
if (publicNetwork) { if (publicNetwork) {
sourceNatIp = _networkMgr.assignSourceNatIpAddressToGuestNetwork(owner, guestNetwork); sourceNatIp = _networkMgr.assignSourceNatIpAddressToGuestNetwork(owner, guestNetwork);
} }
@ -1289,7 +1289,7 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
int count = routerCount - routers.size(); int count = routerCount - routers.size();
for (int i = 0; i < count; i++) { for (int i = 0; i < count; i++) {
DomainRouterVO router = deployRouter(owner, dest, plan, params, isRedundant, vrProvider, offeringId, DomainRouterVO router = deployRouter(owner, dest, plan, params, isRedundant, vrProvider, offeringId,
null, sourceNatIp, publicNetwork, controlNetwork, guestNetwork, new Pair<Boolean, PublicIp>(publicNetwork, sourceNatIp)); null, sourceNatIp, publicNetwork, controlNetwork, guestNetwork, new Pair<Boolean, PrivateIp>(publicNetwork, sourceNatIp));
//add router to router network map //add router to router network map
if (!_routerDao.isRouterPartOfGuestNetwork(router.getId(), network.getId())) { if (!_routerDao.isRouterPartOfGuestNetwork(router.getId(), network.getId())) {
DomainRouterVO routerVO = _routerDao.findById(router.getId()); DomainRouterVO routerVO = _routerDao.findById(router.getId());
@ -1307,8 +1307,8 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
protected DomainRouterVO deployRouter(Account owner, DeployDestination dest, DeploymentPlan plan, Map<Param, Object> params, protected DomainRouterVO deployRouter(Account owner, DeployDestination dest, DeploymentPlan plan, Map<Param, Object> params,
boolean isRedundant, VirtualRouterProvider vrProvider, long svcOffId, boolean isRedundant, VirtualRouterProvider vrProvider, long svcOffId,
Long vpcId, PublicIp sourceNatIp, boolean setupPublicNetwork, boolean setupControlNetwork, Network guestNetwork, Long vpcId, PrivateIp sourceNatIp, boolean setupPublicNetwork, boolean setupControlNetwork, Network guestNetwork,
Pair<Boolean, PublicIp> publicNetwork) throws ConcurrentOperationException, Pair<Boolean, PrivateIp> publicNetwork) throws ConcurrentOperationException,
InsufficientAddressCapacityException, InsufficientServerCapacityException, InsufficientCapacityException, InsufficientAddressCapacityException, InsufficientServerCapacityException, InsufficientCapacityException,
StorageUnavailableException, ResourceUnavailableException { StorageUnavailableException, ResourceUnavailableException {
@ -1411,7 +1411,7 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
} }
protected List<Pair<NetworkVO, NicProfile>> createRouterNetworks(Account owner, boolean isRedundant, protected List<Pair<NetworkVO, NicProfile>> createRouterNetworks(Account owner, boolean isRedundant,
DeploymentPlan plan, boolean setupControlNetwork, Network guestNetwork, Pair<Boolean, PublicIp> publicNetwork) throws ConcurrentOperationException, DeploymentPlan plan, boolean setupControlNetwork, Network guestNetwork, Pair<Boolean, PrivateIp> publicNetwork) throws ConcurrentOperationException,
InsufficientAddressCapacityException { InsufficientAddressCapacityException {
@ -1469,7 +1469,7 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
//3) Public network //3) Public network
if (setupPublicNetwork) { if (setupPublicNetwork) {
PublicIp sourceNatIp = publicNetwork.second(); PrivateIp sourceNatIp = publicNetwork.second();
s_logger.debug("Adding nic for Virtual Router in Public network "); s_logger.debug("Adding nic for Virtual Router in Public network ");
//if source nat service is supported by the network, get the source nat ip address //if source nat service is supported by the network, get the source nat ip address
NicProfile defaultNic = new NicProfile(); NicProfile defaultNic = new NicProfile();
@ -2076,10 +2076,10 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
protected ArrayList<? extends PublicIpAddress> getPublicIpsToApply(VirtualRouter router, Provider provider, Long guestNetworkId) { protected ArrayList<? extends PublicIpAddress> getPublicIpsToApply(VirtualRouter router, Provider provider, Long guestNetworkId) {
long ownerId = router.getAccountId(); long ownerId = router.getAccountId();
final List<IPAddressVO> userIps = _networkMgr.listPublicIpsAssignedToGuestNtwk(ownerId, guestNetworkId, null); final List<IPAddressVO> userIps = _networkMgr.listPublicIpsAssignedToGuestNtwk(ownerId, guestNetworkId, null);
List<PublicIp> allPublicIps = new ArrayList<PublicIp>(); List<PrivateIp> allPublicIps = new ArrayList<PrivateIp>();
if (userIps != null && !userIps.isEmpty()) { if (userIps != null && !userIps.isEmpty()) {
for (IPAddressVO userIp : userIps) { for (IPAddressVO userIp : userIps) {
PublicIp publicIp = new PublicIp(userIp, _vlanDao.findById(userIp.getVlanId()), PrivateIp publicIp = new PrivateIp(userIp, _vlanDao.findById(userIp.getVlanId()),
NetUtils.createSequenceBasedMacAddress(userIp.getMacAddress())); NetUtils.createSequenceBasedMacAddress(userIp.getMacAddress()));
allPublicIps.add(publicIp); allPublicIps.add(publicIp);
} }
@ -2087,11 +2087,11 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
//Get public Ips that should be handled by router //Get public Ips that should be handled by router
Network network = _networkDao.findById(guestNetworkId); Network network = _networkDao.findById(guestNetworkId);
Map<PublicIp, Set<Service>> ipToServices = _networkMgr.getIpToServices(allPublicIps, false, false); Map<PrivateIp, Set<Service>> ipToServices = _networkMgr.getIpToServices(allPublicIps, false, false);
Map<Provider, ArrayList<PublicIp>> providerToIpList = _networkMgr.getProviderToIpList(network, ipToServices); Map<Provider, ArrayList<PrivateIp>> providerToIpList = _networkMgr.getProviderToIpList(network, ipToServices);
// Only cover virtual router for now, if ELB use it this need to be modified // Only cover virtual router for now, if ELB use it this need to be modified
ArrayList<PublicIp> publicIps = providerToIpList.get(provider); ArrayList<PrivateIp> publicIps = providerToIpList.get(provider);
return publicIps; return publicIps;
} }

View File

@ -26,7 +26,6 @@ import org.apache.log4j.Logger;
import com.cloud.agent.AgentManager.OnError; import com.cloud.agent.AgentManager.OnError;
import com.cloud.agent.api.PlugNicAnswer; import com.cloud.agent.api.PlugNicAnswer;
import com.cloud.agent.api.PlugNicCommand; import com.cloud.agent.api.PlugNicCommand;
import com.cloud.agent.api.SetSourceNatAnswer;
import com.cloud.agent.api.SetupGuestNetworkAnswer; import com.cloud.agent.api.SetupGuestNetworkAnswer;
import com.cloud.agent.api.SetupGuestNetworkCommand; import com.cloud.agent.api.SetupGuestNetworkCommand;
import com.cloud.agent.api.UnPlugNicAnswer; import com.cloud.agent.api.UnPlugNicAnswer;
@ -73,18 +72,21 @@ import com.cloud.network.Site2SiteVpnGatewayVO;
import com.cloud.network.VirtualRouterProvider; import com.cloud.network.VirtualRouterProvider;
import com.cloud.network.VirtualRouterProvider.VirtualRouterProviderType; import com.cloud.network.VirtualRouterProvider.VirtualRouterProviderType;
import com.cloud.network.VpcVirtualNetworkApplianceService; import com.cloud.network.VpcVirtualNetworkApplianceService;
import com.cloud.network.addr.PublicIp; import com.cloud.network.addr.PrivateIp;
import com.cloud.network.dao.PhysicalNetworkDao; import com.cloud.network.dao.PhysicalNetworkDao;
import com.cloud.network.dao.Site2SiteVpnConnectionDao; import com.cloud.network.dao.Site2SiteVpnConnectionDao;
import com.cloud.network.firewall.NetworkACLService; import com.cloud.network.firewall.NetworkACLService;
import com.cloud.network.rules.NetworkACL; import com.cloud.network.rules.NetworkACL;
import com.cloud.network.vpc.NetworkACLManager; import com.cloud.network.vpc.NetworkACLManager;
import com.cloud.network.vpc.PrivateGateway; import com.cloud.network.vpc.PrivateGateway;
import com.cloud.network.vpc.PrivateIpAddress;
import com.cloud.network.vpc.PrivateIpVO;
import com.cloud.network.vpc.StaticRoute; import com.cloud.network.vpc.StaticRoute;
import com.cloud.network.vpc.StaticRouteProfile; import com.cloud.network.vpc.StaticRouteProfile;
import com.cloud.network.vpc.Vpc; import com.cloud.network.vpc.Vpc;
import com.cloud.network.vpc.VpcGateway; import com.cloud.network.vpc.VpcGateway;
import com.cloud.network.vpc.VpcManager; import com.cloud.network.vpc.VpcManager;
import com.cloud.network.vpc.Dao.PrivateIpDao;
import com.cloud.network.vpc.Dao.StaticRouteDao; import com.cloud.network.vpc.Dao.StaticRouteDao;
import com.cloud.network.vpc.Dao.VpcDao; import com.cloud.network.vpc.Dao.VpcDao;
import com.cloud.network.vpc.Dao.VpcOfferingDao; import com.cloud.network.vpc.Dao.VpcOfferingDao;
@ -129,6 +131,8 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
StaticRouteDao _staticRouteDao; StaticRouteDao _staticRouteDao;
@Inject @Inject
VpcManager _vpcMgr; VpcManager _vpcMgr;
@Inject
PrivateIpDao _privateIpDao;
@Override @Override
public List<DomainRouterVO> deployVirtualRouterInVpc(Vpc vpc, DeployDestination dest, Account owner, public List<DomainRouterVO> deployVirtualRouterInVpc(Vpc vpc, DeployDestination dest, Account owner,
@ -184,7 +188,7 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
} }
} }
PublicIp sourceNatIp = _networkMgr.assignSourceNatIpAddressToVpc(owner, vpc); PrivateIp sourceNatIp = _networkMgr.assignSourceNatIpAddressToVpc(owner, vpc);
DomainRouterVO router = deployVpcRouter(owner, dest, plan, params, false, vpcVrProvider, offeringId, DomainRouterVO router = deployVpcRouter(owner, dest, plan, params, false, vpcVrProvider, offeringId,
vpc.getId(), sourceNatIp); vpc.getId(), sourceNatIp);
@ -284,7 +288,7 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
return result; return result;
} }
protected boolean addPublicIpToVpc(VirtualRouter router, Network publicNetwork, PublicIp ipAddress) protected boolean addPublicIpToVpc(VirtualRouter router, Network publicNetwork, PrivateIp ipAddress)
throws ConcurrentOperationException,ResourceUnavailableException, InsufficientCapacityException { throws ConcurrentOperationException,ResourceUnavailableException, InsufficientCapacityException {
if (publicNetwork.getTrafficType() != TrafficType.Public) { if (publicNetwork.getTrafficType() != TrafficType.Public) {
@ -322,7 +326,7 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
publicNic.setDefaultNic(true); publicNic.setDefaultNic(true);
if (ipAddress != null) { if (ipAddress != null) {
IPAddressVO ipVO = _ipAddressDao.findById(ipAddress.getId()); IPAddressVO ipVO = _ipAddressDao.findById(ipAddress.getId());
PublicIp publicIp = new PublicIp(ipVO, _vlanDao.findById(ipVO.getVlanId()), PrivateIp publicIp = new PrivateIp(ipVO, _vlanDao.findById(ipVO.getVlanId()),
NetUtils.createSequenceBasedMacAddress(ipVO.getMacAddress())); NetUtils.createSequenceBasedMacAddress(ipVO.getMacAddress()));
result = associtePublicIpInVpc(publicNetwork, router, false, publicIp); result = associtePublicIpInVpc(publicNetwork, router, false, publicIp);
} }
@ -340,7 +344,7 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
} }
protected boolean removePublicIpFromVpcRouter(VirtualRouter router, Network publicNetwork, PublicIp ipAddress) protected boolean removePublicIpFromVpcRouter(VirtualRouter router, Network publicNetwork, PrivateIp ipAddress)
throws ConcurrentOperationException, ResourceUnavailableException { throws ConcurrentOperationException, ResourceUnavailableException {
if (publicNetwork.getTrafficType() != TrafficType.Public) { if (publicNetwork.getTrafficType() != TrafficType.Public) {
@ -351,7 +355,7 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
boolean result = true; boolean result = true;
IPAddressVO ipVO = _ipAddressDao.findById(ipAddress.getId()); IPAddressVO ipVO = _ipAddressDao.findById(ipAddress.getId());
_networkMgr.markIpAsUnavailable(ipVO.getId()); _networkMgr.markIpAsUnavailable(ipVO.getId());
PublicIp publicIp = new PublicIp(ipVO, _vlanDao.findById(ipVO.getVlanId()), PrivateIp publicIp = new PrivateIp(ipVO, _vlanDao.findById(ipVO.getVlanId()),
NetUtils.createSequenceBasedMacAddress(ipVO.getMacAddress())); NetUtils.createSequenceBasedMacAddress(ipVO.getMacAddress()));
result = associtePublicIpInVpc(publicNetwork, router, false, publicIp); result = associtePublicIpInVpc(publicNetwork, router, false, publicIp);
@ -370,13 +374,13 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
} }
} }
protected boolean associtePublicIpInVpc(Network network, VirtualRouter router, boolean add, PublicIp ipAddress) protected boolean associtePublicIpInVpc(Network network, VirtualRouter router, boolean add, PrivateIp ipAddress)
throws ConcurrentOperationException, ResourceUnavailableException{ throws ConcurrentOperationException, ResourceUnavailableException{
List<PublicIp> publicIps = new ArrayList<PublicIp>(1); List<PrivateIp> publicIps = new ArrayList<PrivateIp>(1);
publicIps.add(ipAddress); publicIps.add(ipAddress);
Commands cmds = new Commands(OnError.Stop); Commands cmds = new Commands(OnError.Stop);
createVpcAssociateIPCommands(router, publicIps, cmds); createVpcAssociatePublicIPCommands(router, publicIps, cmds);
if (sendCommandsToRouter(router, cmds)) { if (sendCommandsToRouter(router, cmds)) {
s_logger.debug("Successfully applied ip association for ip " + ipAddress + " in vpc network " + network); s_logger.debug("Successfully applied ip association for ip " + ipAddress + " in vpc network " + network);
@ -389,7 +393,7 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
protected DomainRouterVO deployVpcRouter(Account owner, DeployDestination dest, DeploymentPlan plan, Map<Param, Object> params, protected DomainRouterVO deployVpcRouter(Account owner, DeployDestination dest, DeploymentPlan plan, Map<Param, Object> params,
boolean isRedundant, VirtualRouterProvider vrProvider, long svcOffId, boolean isRedundant, VirtualRouterProvider vrProvider, long svcOffId,
Long vpcId, PublicIp sourceNatIp) throws ConcurrentOperationException, Long vpcId, PrivateIp sourceNatIp) throws ConcurrentOperationException,
InsufficientAddressCapacityException, InsufficientServerCapacityException, InsufficientCapacityException, InsufficientAddressCapacityException, InsufficientServerCapacityException, InsufficientCapacityException,
StorageUnavailableException, ResourceUnavailableException { StorageUnavailableException, ResourceUnavailableException {
@ -523,7 +527,7 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
return setupCmd; return setupCmd;
} }
private void createVpcAssociateIPCommands(final VirtualRouter router, final List<? extends PublicIpAddress> ips, private void createVpcAssociatePublicIPCommands(final VirtualRouter router, final List<? extends PublicIpAddress> ips,
Commands cmds) { Commands cmds) {
Pair<IpAddressTO, Long> sourceNatIpAdd = null; Pair<IpAddressTO, Long> sourceNatIpAdd = null;
@ -653,7 +657,7 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
@Override @Override
public boolean execute(Network network, VirtualRouter router) throws ResourceUnavailableException { public boolean execute(Network network, VirtualRouter router) throws ResourceUnavailableException {
Commands cmds = new Commands(OnError.Continue); Commands cmds = new Commands(OnError.Continue);
createVpcAssociateIPCommands(router, ipAddress, cmds); createVpcAssociatePublicIPCommands(router, ipAddress, cmds);
return sendCommandsToRouter(router, cmds); return sendCommandsToRouter(router, cmds);
} }
}); });
@ -772,14 +776,14 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
try { try {
//add VPC router to public networks //add VPC router to public networks
List<PublicIp> sourceNat = new ArrayList<PublicIp>(1); List<PrivateIp> sourceNat = new ArrayList<PrivateIp>(1);
for (Nic publicNic : publicNics.keySet()) { for (Nic publicNic : publicNics.keySet()) {
Network publicNtwk = publicNics.get(publicNic); Network publicNtwk = publicNics.get(publicNic);
IPAddressVO userIp = _ipAddressDao.findByIpAndSourceNetworkId(publicNtwk.getId(), IPAddressVO userIp = _ipAddressDao.findByIpAndSourceNetworkId(publicNtwk.getId(),
publicNic.getIp4Address()); publicNic.getIp4Address());
if (userIp.isSourceNat()) { if (userIp.isSourceNat()) {
PublicIp publicIp = new PublicIp(userIp, _vlanDao.findById(userIp.getVlanId()), PrivateIp publicIp = new PrivateIp(userIp, _vlanDao.findById(userIp.getVlanId()),
NetUtils.createSequenceBasedMacAddress(userIp.getMacAddress())); NetUtils.createSequenceBasedMacAddress(userIp.getMacAddress()));
sourceNat.add(publicIp); sourceNat.add(publicIp);
@ -798,28 +802,32 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
// create ip assoc for source nat // create ip assoc for source nat
if (!sourceNat.isEmpty()) { if (!sourceNat.isEmpty()) {
createVpcAssociateIPCommands(router, sourceNat, cmds); createVpcAssociatePublicIPCommands(router, sourceNat, cmds);
} }
for (Nic guestNic : guestNics.keySet()) { for (Nic nic : guestNics.keySet()) {
//plug guest nic //plug guest nic
PlugNicCommand plugNicCmd = new PlugNicCommand(_itMgr.toVmTO(profile), getNicTO(router, guestNic.getNetworkId())); PlugNicCommand plugNicCmd = new PlugNicCommand(_itMgr.toVmTO(profile), getNicTO(router, nic.getNetworkId()));
cmds.addCommand(plugNicCmd); cmds.addCommand(plugNicCmd);
if (!_networkMgr.isPrivateGateway(guestNic)) { if (!_networkMgr.isPrivateGateway(nic)) {
//set guest network //set guest network
VirtualMachine vm = _vmDao.findById(router.getId()); VirtualMachine vm = _vmDao.findById(router.getId());
NicProfile nicProfile = _networkMgr.getNicProfile(vm, guestNic.getNetworkId()); NicProfile nicProfile = _networkMgr.getNicProfile(vm, nic.getNetworkId());
SetupGuestNetworkCommand setupCmd = createSetupGuestNetworkCommand(router, true, nicProfile); SetupGuestNetworkCommand setupCmd = createSetupGuestNetworkCommand(router, true, nicProfile);
cmds.addCommand(setupCmd); cmds.addCommand(setupCmd);
} else { } else {
//set source nat
Integer networkRate = _networkMgr.getNetworkRate(guestNic.getNetworkId(), router.getId()); //set private network
IpAddressTO ip = new IpAddressTO(Account.ACCOUNT_ID_SYSTEM, guestNic.getIp4Address(), true, false, PrivateIpVO ipVO = _privateIpDao.findByIpAndSourceNetworkId(nic.getNetworkId(), nic.getIp4Address());
true, guestNic.getBroadcastUri().getHost(), guestNic.getGateway(), guestNic.getNetmask(), guestNic.getMacAddress(), Network network = _networkDao.findById(nic.getNetworkId());
null, networkRate, false); String vlanTag = network.getBroadcastUri().getHost();
SetSourceNatCommand cmd = new SetSourceNatCommand(ip, true); String netmask = NetUtils.getCidrNetmask(network.getCidr());
cmds.addCommand(cmd); PrivateIpAddress ip = new PrivateIpAddress(ipVO, vlanTag, network.getGateway(), netmask, ipVO.getMacAddress());
List<PrivateIpAddress> privateIps = new ArrayList<PrivateIpAddress>(1);
privateIps.add(ip);
createVpcAssociatePrivateIPCommands(router, privateIps, cmds, true);
} }
} }
} catch (Exception ex) { } catch (Exception ex) {
@ -932,32 +940,25 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
*/ */
protected boolean setupVpcPrivateNetwork(VirtualRouter router, boolean add, NicProfile privateNic) protected boolean setupVpcPrivateNetwork(VirtualRouter router, boolean add, NicProfile privateNic)
throws AgentUnavailableException { throws AgentUnavailableException {
boolean result = true;
PrivateIpVO ipVO = _privateIpDao.findByIpAndSourceNetworkId(privateNic.getNetworkId(), privateNic.getIp4Address());
Network network = _networkDao.findById(privateNic.getNetworkId());
String vlanTag = network.getBroadcastUri().getHost();
String netmask = NetUtils.getCidrNetmask(network.getCidr());
PrivateIpAddress ip = new PrivateIpAddress(ipVO, vlanTag, network.getGateway(), netmask, ipVO.getMacAddress());
List<PrivateIpAddress> privateIps = new ArrayList<PrivateIpAddress>(1);
privateIps.add(ip);
Commands cmds = new Commands(OnError.Stop); Commands cmds = new Commands(OnError.Stop);
createVpcAssociatePrivateIPCommands(router, privateIps, cmds, add);
Integer networkRate = _networkMgr.getNetworkRate(privateNic.getNetworkId(), router.getId()); if (sendCommandsToRouter(router, cmds)) {
IpAddressTO ip = new IpAddressTO(Account.ACCOUNT_ID_SYSTEM, privateNic.getIp4Address(), add, false, s_logger.debug("Successfully applied ip association for ip " + ip + " in vpc network " + network);
true, privateNic.getBroadCastUri().getHost(), privateNic.getGateway(), privateNic.getNetmask(), privateNic.getMacAddress(), return true;
null, networkRate, false); } else {
Network network = _networkMgr.getNetwork(privateNic.getNetworkId()); s_logger.warn("Failed to associate ip address " + ip + " in vpc network " + network);
ip.setTrafficType(network.getTrafficType()); return false;
}
SetSourceNatCommand cmd = new SetSourceNatCommand(ip, add);
cmd.setAccessDetail(NetworkElementCommand.ROUTER_IP, getRouterControlIp(router.getId()));
cmd.setAccessDetail(NetworkElementCommand.ROUTER_NAME, router.getInstanceName());
DataCenterVO dcVo = _dcDao.findById(router.getDataCenterIdToDeployIn());
cmd.setAccessDetail(NetworkElementCommand.ZONE_NETWORK_TYPE, dcVo.getNetworkType().toString());
cmds.addCommand("SetSourceNatCommand", cmd);
sendCommandsToRouter(router, cmds);
SetSourceNatAnswer setupAnswer = cmds.getAnswer(SetSourceNatAnswer.class);
String setup = add ? "set" : "destroy";
if (!(setupAnswer != null && setupAnswer.getResult())) {
s_logger.warn("Unable to " + setup + " source nat for private gateway " + privateNic + " on router " + router);
result = false;
}
return result;
} }
@Override @Override
@ -995,7 +996,7 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
s_logger.debug("Found " + publicIps.size() + " ip(s) to apply as a part of domR " + router + " start."); s_logger.debug("Found " + publicIps.size() + " ip(s) to apply as a part of domR " + router + " start.");
// Re-apply public ip addresses - should come before PF/LB/VPN // Re-apply public ip addresses - should come before PF/LB/VPN
if (_networkMgr.isProviderSupportServiceInNetwork(guestNetworkId, Service.Firewall, provider)) { if (_networkMgr.isProviderSupportServiceInNetwork(guestNetworkId, Service.Firewall, provider)) {
createVpcAssociateIPCommands(router, publicIps, cmds); createVpcAssociatePublicIPCommands(router, publicIps, cmds);
} }
} }
} }
@ -1073,4 +1074,47 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
cmd.setAccessDetail(NetworkElementCommand.ZONE_NETWORK_TYPE, dcVo.getNetworkType().toString()); cmd.setAccessDetail(NetworkElementCommand.ZONE_NETWORK_TYPE, dcVo.getNetworkType().toString());
cmds.addCommand("applyS2SVpn", cmd); cmds.addCommand("applyS2SVpn", cmd);
} }
private void createVpcAssociatePrivateIPCommands(final VirtualRouter router, final List<PrivateIpAddress> ips,
Commands cmds, boolean add) {
// Ensure that in multiple vlans case we first send all ip addresses of vlan1, then all ip addresses of vlan2, etc..
Map<String, ArrayList<PrivateIpAddress>> vlanIpMap = new HashMap<String, ArrayList<PrivateIpAddress>>();
for (final PrivateIpAddress ipAddress : ips) {
String vlanTag = ipAddress.getVlanTag();
ArrayList<PrivateIpAddress> ipList = vlanIpMap.get(vlanTag);
if (ipList == null) {
ipList = new ArrayList<PrivateIpAddress>();
}
ipList.add(ipAddress);
vlanIpMap.put(vlanTag, ipList);
}
for (Map.Entry<String, ArrayList<PrivateIpAddress>> vlanAndIp : vlanIpMap.entrySet()) {
List<PrivateIpAddress> ipAddrList = vlanAndIp.getValue();
IpAddressTO[] ipsToSend = new IpAddressTO[ipAddrList.size()];
int i = 0;
for (final PrivateIpAddress ipAddr : ipAddrList) {
Network network = _networkMgr.getNetwork(ipAddr.getNetworkId());
IpAddressTO ip = new IpAddressTO(Account.ACCOUNT_ID_SYSTEM, ipAddr.getIpAddress(), add, false,
false, ipAddr.getVlanTag(), ipAddr.getGateway(), ipAddr.getNetmask(), ipAddr.getMacAddress(),
null, null, false);
ip.setTrafficType(network.getTrafficType());
ip.setNetworkName(_networkMgr.getNetworkTag(router.getHypervisorType(), network));
ipsToSend[i++] = ip;
}
IpAssocVpcCommand cmd = new IpAssocVpcCommand(ipsToSend);
cmd.setAccessDetail(NetworkElementCommand.ROUTER_IP, getRouterControlIp(router.getId()));
cmd.setAccessDetail(NetworkElementCommand.ROUTER_GUEST_IP, getRouterIpInNetwork(ipAddrList.get(0).getNetworkId(), router.getId()));
cmd.setAccessDetail(NetworkElementCommand.ROUTER_NAME, router.getInstanceName());
DataCenterVO dcVo = _dcDao.findById(router.getDataCenterIdToDeployIn());
cmd.setAccessDetail(NetworkElementCommand.ZONE_NETWORK_TYPE, dcVo.getNetworkType().toString());
cmds.addCommand("IPAssocVpcCommand", cmd);
}
}
} }

View File

@ -23,6 +23,7 @@ public class PrivateIpAddress implements PrivateIp{
String netmask; String netmask;
String ipAddress; String ipAddress;
String macAddress; String macAddress;
long networkId;
/** /**
* @param privateIp * @param privateIp
@ -39,6 +40,7 @@ public class PrivateIpAddress implements PrivateIp{
this.gateway = gateway; this.gateway = gateway;
this.netmask = netmask; this.netmask = netmask;
this.macAddress = NetUtils.long2Mac(macAddress); this.macAddress = NetUtils.long2Mac(macAddress);
this.networkId = privateIp.getNetworkId();
} }
@Override @Override
@ -65,4 +67,9 @@ public class PrivateIpAddress implements PrivateIp{
public String getMacAddress() { public String getMacAddress() {
return macAddress; return macAddress;
} }
@Override
public long getNetworkId() {
return networkId;
}
} }

View File

@ -29,7 +29,7 @@ import javax.persistence.TemporalType;
@Entity @Entity
@Table(name="private_ip_address") @Table(name="private_ip_address")
public class PrivateIpVO { public class PrivateIpVO{
@Id @Id
@GeneratedValue(strategy=GenerationType.IDENTITY) @GeneratedValue(strategy=GenerationType.IDENTITY)
@ -65,7 +65,7 @@ public class PrivateIpVO {
public String getIpAddress() { public String getIpAddress() {
return ipAddress; return ipAddress;
} }
public long getNetworkId() { public long getNetworkId() {
return networkId; return networkId;
} }

View File

@ -12,6 +12,7 @@
// Automatically generated by addcopyright.py at 04/03/2012 // Automatically generated by addcopyright.py at 04/03/2012
package com.cloud.network; package com.cloud.network;
import java.net.URI;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -43,7 +44,7 @@ import com.cloud.network.Network.GuestType;
import com.cloud.network.Network.Provider; import com.cloud.network.Network.Provider;
import com.cloud.network.Network.Service; import com.cloud.network.Network.Service;
import com.cloud.network.Networks.TrafficType; import com.cloud.network.Networks.TrafficType;
import com.cloud.network.addr.PublicIp; import com.cloud.network.addr.PrivateIp;
import com.cloud.network.element.NetworkElement; import com.cloud.network.element.NetworkElement;
import com.cloud.network.element.RemoteAccessVPNServiceProvider; import com.cloud.network.element.RemoteAccessVPNServiceProvider;
import com.cloud.network.element.UserDataServiceProvider; import com.cloud.network.element.UserDataServiceProvider;
@ -722,13 +723,13 @@ public class MockNetworkManagerImpl implements NetworkManager, Manager, NetworkS
} }
@Override @Override
public Map<PublicIp, Set<Service>> getIpToServices(List<PublicIp> publicIps, boolean rulesRevoked, boolean includingFirewall) { public Map<PrivateIp, Set<Service>> getIpToServices(List<PrivateIp> publicIps, boolean rulesRevoked, boolean includingFirewall) {
// TODO Auto-generated method stub // TODO Auto-generated method stub
return null; return null;
} }
@Override @Override
public Map<Provider, ArrayList<PublicIp>> getProviderToIpList(Network network, Map<PublicIp, Set<Service>> ipToServices) { public Map<Provider, ArrayList<PrivateIp>> getProviderToIpList(Network network, Map<PrivateIp, Set<Service>> ipToServices) {
// TODO Auto-generated method stub // TODO Auto-generated method stub
return null; return null;
} }
@ -739,12 +740,6 @@ public class MockNetworkManagerImpl implements NetworkManager, Manager, NetworkS
return false; return false;
} }
@Override
public void checkVirtualNetworkCidrOverlap(Long zoneId, String cidr) {
// TODO Auto-generated method stub
}
/* (non-Javadoc) /* (non-Javadoc)
* @see com.cloud.network.NetworkService#isVmPartOfNetwork(long, long) * @see com.cloud.network.NetworkService#isVmPartOfNetwork(long, long)
@ -883,15 +878,6 @@ public class MockNetworkManagerImpl implements NetworkManager, Manager, NetworkS
return null; return null;
} }
/* (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) /* (non-Javadoc)
* @see com.cloud.network.NetworkManager#validateRule(com.cloud.network.rules.FirewallRule) * @see com.cloud.network.NetworkManager#validateRule(com.cloud.network.rules.FirewallRule)
*/ */
@ -992,6 +978,59 @@ public class MockNetworkManagerImpl implements NetworkManager, Manager, NetworkS
return null; return null;
} }
/* (non-Javadoc)
* @see com.cloud.network.NetworkManager#getDefaultGuestTrafficLabel(long, com.cloud.hypervisor.Hypervisor.HypervisorType)
*/
@Override
public String getDefaultGuestTrafficLabel(long dcId, HypervisorType vmware) {
// TODO Auto-generated method stub
return null;
}
/* (non-Javadoc)
* @see com.cloud.network.NetworkManager#getElementImplementingProvider(java.lang.String)
*/
@Override
public NetworkElement getElementImplementingProvider(String providerName) {
// TODO Auto-generated method stub
return null;
}
@Override
public boolean canUseForDeploy(Network network) {
// TODO Auto-generated method stub
return false;
}
/* (non-Javadoc)
* @see com.cloud.network.NetworkService#createPrivateNetwork(java.lang.String, java.lang.String, long, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, long)
*/
@Override
public Network createPrivateNetwork(String networkName, String displayText, long physicalNetworkId, String vlan, String startIp, String endIP, String gateway, String netmask, long networkOwnerId)
throws ResourceAllocationException, ConcurrentOperationException, InsufficientCapacityException {
// TODO Auto-generated method stub
return null;
}
/* (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 PrivateIp 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#checkVirtualNetworkCidrOverlap(java.lang.Long, java.lang.String)
*/
@Override
public void checkVirtualNetworkCidrOverlap(Long zoneId, String cidr) {
// TODO Auto-generated method stub
}
/* (non-Javadoc) /* (non-Javadoc)
* @see com.cloud.network.NetworkManager#getDefaultStorageTrafficLabel(long, com.cloud.hypervisor.Hypervisor.HypervisorType) * @see com.cloud.network.NetworkManager#getDefaultStorageTrafficLabel(long, com.cloud.hypervisor.Hypervisor.HypervisorType)
*/ */
@ -1010,29 +1049,11 @@ public class MockNetworkManagerImpl implements NetworkManager, Manager, NetworkS
return null; return null;
} }
/* (non-Javadoc)
* @see com.cloud.network.NetworkManager#getDefaultGuestTrafficLabel(long, com.cloud.hypervisor.Hypervisor.HypervisorType)
*/
@Override
public String getDefaultGuestTrafficLabel(long dcId, HypervisorType vmware) {
// TODO Auto-generated method stub
return null;
}
/* (non-Javadoc)
* @see com.cloud.network.NetworkManager#getElementImplementingProvider(java.lang.String)
*/
@Override
public NetworkElement getElementImplementingProvider(String providerName) {
// TODO Auto-generated method stub
return null;
}
/* (non-Javadoc) /* (non-Javadoc)
* @see com.cloud.network.NetworkManager#assignSourceNatIpAddressToGuestNetwork(com.cloud.user.Account, com.cloud.network.Network) * @see com.cloud.network.NetworkManager#assignSourceNatIpAddressToGuestNetwork(com.cloud.user.Account, com.cloud.network.Network)
*/ */
@Override @Override
public PublicIp assignSourceNatIpAddressToGuestNetwork(Account owner, Network guestNetwork) throws InsufficientAddressCapacityException, ConcurrentOperationException { public PrivateIp assignSourceNatIpAddressToGuestNetwork(Account owner, Network guestNetwork) throws InsufficientAddressCapacityException, ConcurrentOperationException {
// TODO Auto-generated method stub // TODO Auto-generated method stub
return null; return null;
} }
@ -1041,14 +1062,53 @@ public class MockNetworkManagerImpl implements NetworkManager, Manager, NetworkS
* @see com.cloud.network.NetworkManager#assignSourceNatIpAddressToVpc(com.cloud.user.Account, com.cloud.network.vpc.Vpc) * @see com.cloud.network.NetworkManager#assignSourceNatIpAddressToVpc(com.cloud.user.Account, com.cloud.network.vpc.Vpc)
*/ */
@Override @Override
public PublicIp assignSourceNatIpAddressToVpc(Account owner, Vpc vpc) throws InsufficientAddressCapacityException, ConcurrentOperationException { public PrivateIp assignSourceNatIpAddressToVpc(Account owner, Vpc vpc) throws InsufficientAddressCapacityException, ConcurrentOperationException {
// TODO Auto-generated method stub // TODO Auto-generated method stub
return null; return null;
} }
@Override /* (non-Javadoc)
public boolean canUseForDeploy(Network network) { * @see com.cloud.network.NetworkManager#getNicProfile(com.cloud.vm.VirtualMachine, long)
// TODO Auto-generated method stub */
return false; @Override
} public NicProfile getNicProfile(VirtualMachine vm, long networkId) {
// TODO Auto-generated method stub
return null;
}
/* (non-Javadoc)
* @see com.cloud.network.NetworkManager#setupDns(com.cloud.network.Network, com.cloud.network.Network.Provider)
*/
@Override
public boolean setupDns(Network network, Provider provider) {
// TODO Auto-generated method stub
return false;
}
/* (non-Javadoc)
* @see com.cloud.network.NetworkManager#releaseNic(com.cloud.vm.VirtualMachineProfile, com.cloud.network.NetworkVO, java.net.URI)
*/
@Override
public NicProfile releaseNic(VirtualMachineProfile<? extends VMInstanceVO> vmProfile, NetworkVO network, URI broadcastUri) throws ConcurrentOperationException, ResourceUnavailableException {
// TODO Auto-generated method stub
return null;
}
/* (non-Javadoc)
* @see com.cloud.network.NetworkManager#getPhysicalNtwksSupportingTrafficType(long, com.cloud.network.Networks.TrafficType)
*/
@Override
public List<? extends PhysicalNetwork> getPhysicalNtwksSupportingTrafficType(long zoneId, TrafficType trafficType) {
// TODO Auto-generated method stub
return null;
}
/* (non-Javadoc)
* @see com.cloud.network.NetworkManager#isPrivateGateway(com.cloud.vm.Nic)
*/
@Override
public boolean isPrivateGateway(Nic guestNic) {
// TODO Auto-generated method stub
return false;
}
} }