mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
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:
parent
b565f63e42
commit
183633cf70
@ -41,5 +41,7 @@ public interface PrivateIp {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
String getMacAddress();
|
String getMacAddress();
|
||||||
|
|
||||||
|
long getNetworkId();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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();
|
||||||
|
|||||||
@ -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;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -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());
|
||||||
|
|||||||
@ -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);
|
||||||
@ -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());
|
||||||
|
|||||||
@ -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());
|
||||||
|
|||||||
@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user