You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by al...@apache.org on 2012/07/03 02:44:32 UTC
[1/7] git commit: VPC: createPrivateGateway - consists of plug nic +
ipassoc (no setsource nat is needed)
Updated Branches:
refs/heads/vpc 8d16d7f94 -> 580261119
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
Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/183633cf
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/183633cf
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/183633cf
Branch: refs/heads/vpc
Commit: 183633cf70c20e4448b993c58c168e860e96a81e
Parents: b565f63
Author: Alena Prokharchyk <al...@citrix.com>
Authored: Mon Jul 2 12:58:04 2012 -0700
Committer: Alena Prokharchyk <al...@citrix.com>
Committed: Mon Jul 2 17:44:54 2012 -0700
----------------------------------------------------------------------
api/src/com/cloud/network/vpc/PrivateIp.java | 2 +
.../ExternalLoadBalancerDeviceManagerImpl.java | 4 +-
server/src/com/cloud/network/NetworkManager.java | 12 +-
.../src/com/cloud/network/NetworkManagerImpl.java | 120 +++++-----
server/src/com/cloud/network/addr/PrivateIp.java | 199 +++++++++++++++
server/src/com/cloud/network/addr/PublicIp.java | 199 ---------------
.../network/guru/DirectPodBasedNetworkGuru.java | 4 +-
.../com/cloud/network/guru/PublicNetworkGuru.java | 4 +-
.../network/lb/ElasticLoadBalancerManagerImpl.java | 8 +-
.../router/VirtualNetworkApplianceManagerImpl.java | 30 +-
.../VpcVirtualNetworkApplianceManagerImpl.java | 146 +++++++----
.../com/cloud/network/vpc/PrivateIpAddress.java | 7 +
server/src/com/cloud/network/vpc/PrivateIpVO.java | 4 +-
.../com/cloud/network/MockNetworkManagerImpl.java | 122 +++++++---
14 files changed, 487 insertions(+), 374 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/183633cf/api/src/com/cloud/network/vpc/PrivateIp.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/network/vpc/PrivateIp.java b/api/src/com/cloud/network/vpc/PrivateIp.java
index 771a2aa..cfcd41b 100644
--- a/api/src/com/cloud/network/vpc/PrivateIp.java
+++ b/api/src/com/cloud/network/vpc/PrivateIp.java
@@ -41,5 +41,7 @@ public interface PrivateIp {
* @return
*/
String getMacAddress();
+
+ long getNetworkId();
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/183633cf/server/src/com/cloud/network/ExternalLoadBalancerDeviceManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/ExternalLoadBalancerDeviceManagerImpl.java b/server/src/com/cloud/network/ExternalLoadBalancerDeviceManagerImpl.java
index 409970d..044d6aa 100644
--- a/server/src/com/cloud/network/ExternalLoadBalancerDeviceManagerImpl.java
+++ b/server/src/com/cloud/network/ExternalLoadBalancerDeviceManagerImpl.java
@@ -62,7 +62,7 @@ import com.cloud.network.ExternalLoadBalancerDeviceVO.LBDeviceState;
import com.cloud.network.ExternalNetworkDeviceManager.NetworkDevice;
import com.cloud.network.Network.Service;
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.ExternalLoadBalancerDeviceDao;
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
// 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 publicIPgateway = publicIp.getVlanGateway();
String publicIPVlanTag = publicIp.getVlanTag();
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/183633cf/server/src/com/cloud/network/NetworkManager.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/NetworkManager.java b/server/src/com/cloud/network/NetworkManager.java
index 5cc0873..679865f 100755
--- a/server/src/com/cloud/network/NetworkManager.java
+++ b/server/src/com/cloud/network/NetworkManager.java
@@ -37,7 +37,7 @@ import com.cloud.network.Network.Capability;
import com.cloud.network.Network.Provider;
import com.cloud.network.Network.Service;
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.RemoteAccessVPNServiceProvider;
import com.cloud.network.element.Site2SiteVpnServiceProvider;
@@ -80,7 +80,7 @@ public interface NetworkManager extends NetworkService {
* @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;
@@ -266,9 +266,9 @@ public interface NetworkManager extends NetworkService {
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);
@@ -314,7 +314,7 @@ public interface NetworkManager extends NetworkService {
* @throws ConcurrentOperationException
* @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 InsufficientAddressCapacityException
*/
- PublicIp assignSourceNatIpAddressToVpc(Account owner, Vpc vpc) throws InsufficientAddressCapacityException, ConcurrentOperationException;
+ PrivateIp assignSourceNatIpAddressToVpc(Account owner, Vpc vpc) throws InsufficientAddressCapacityException, ConcurrentOperationException;
/**
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/183633cf/server/src/com/cloud/network/NetworkManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/NetworkManagerImpl.java b/server/src/com/cloud/network/NetworkManagerImpl.java
index 5796665..0a82921 100755
--- a/server/src/com/cloud/network/NetworkManagerImpl.java
+++ b/server/src/com/cloud/network/NetworkManagerImpl.java
@@ -110,7 +110,7 @@ import com.cloud.network.Networks.IsolationType;
import com.cloud.network.Networks.TrafficType;
import com.cloud.network.PhysicalNetwork.BroadcastDomainRange;
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.IPAddressDao;
import com.cloud.network.dao.LoadBalancerDao;
@@ -364,12 +364,12 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
}
@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);
}
@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)
throws InsufficientAddressCapacityException {
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());
- return new PublicIp(addr, _vlanDao.findById(addr.getVlanId()), macAddress);
+ return new PrivateIp(addr, _vlanDao.findById(addr.getVlanId()), macAddress);
}
@DB
@@ -494,15 +494,15 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
@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();
IPAddressVO sourceNatIp = getExistingSourceNat(owner.getId(), null, vpc.getId());
- PublicIp ipToReturn = null;
+ PrivateIp ipToReturn = null;
if (sourceNatIp != null) {
- ipToReturn = new PublicIp(sourceNatIp, _vlanDao.findById(sourceNatIp.getVlanId()),
+ ipToReturn = new PrivateIp(sourceNatIp, _vlanDao.findById(sourceNatIp.getVlanId()),
NetUtils.createSequenceBasedMacAddress(sourceNatIp.getMacAddress()));
} else {
ipToReturn = assignSourceNatIpAddress(owner, null, vpc.getId(), dcId);
@@ -512,7 +512,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
}
@Override
- public PublicIp assignSourceNatIpAddressToGuestNetwork(Account owner, Network guestNetwork)
+ public PrivateIp assignSourceNatIpAddressToGuestNetwork(Account owner, Network guestNetwork)
throws InsufficientAddressCapacityException, ConcurrentOperationException {
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?";
@@ -520,9 +520,9 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
IPAddressVO sourceNatIp = getExistingSourceNat(owner.getId(), guestNetwork.getId(), guestNetwork.getVpcId());
- PublicIp ipToReturn = null;
+ PrivateIp ipToReturn = null;
if (sourceNatIp != null) {
- ipToReturn = new PublicIp(sourceNatIp, _vlanDao.findById(sourceNatIp.getVlanId()),
+ ipToReturn = new PrivateIp(sourceNatIp, _vlanDao.findById(sourceNatIp.getVlanId()),
NetUtils.createSequenceBasedMacAddress(sourceNatIp.getMacAddress()));
} else {
ipToReturn = assignSourceNatIpAddress(owner, guestNetwork.getId(), null, dcId);
@@ -532,7 +532,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
}
@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 {
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);
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();
try {
txn.start();
@@ -636,10 +636,10 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
@Override
public boolean applyIpAssociations(Network network, boolean continueOnError) throws ResourceUnavailableException {
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()) {
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()));
publicIps.add(publicIp);
}
@@ -698,12 +698,12 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
/* Get a list of IPs, classify them by service */
@Override
- public Map<PublicIp, Set<Service>> getIpToServices(List<PublicIp> publicIps, boolean rulesRevoked, boolean includingFirewall) {
- Map<PublicIp, Set<Service>> ipToServices = new HashMap<PublicIp, Set<Service>>();
+ public Map<PrivateIp, Set<Service>> getIpToServices(List<PrivateIp> publicIps, boolean rulesRevoked, boolean includingFirewall) {
+ Map<PrivateIp, Set<Service>> ipToServices = new HashMap<PrivateIp, Set<Service>>();
if (publicIps != null && !publicIps.isEmpty()) {
Set<Long> networkSNAT = new HashSet<Long>();
- for (PublicIp ip : publicIps) {
+ for (PrivateIp ip : publicIps) {
Set<Service> services = ipToServices.get(ip);
if (services == null) {
services = new HashSet<Service>();
@@ -790,11 +790,11 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
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
- List<PublicIp> ipList = new ArrayList<PublicIp>();
+ List<PrivateIp> ipList = new ArrayList<PrivateIp>();
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);
// Not used currently, safe
if (services == null || services.isEmpty()) {
@@ -810,9 +810,9 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
return true;
}
- protected boolean canIpsUsedForNonConserve(List<PublicIp> publicIps) {
+ protected boolean canIpsUsedForNonConserve(List<PrivateIp> publicIps) {
boolean result = true;
- for (PublicIp ip : publicIps) {
+ for (PrivateIp ip : publicIps) {
result = canIpUsedForNonConserveService(ip, null);
if (!result) {
break;
@@ -821,10 +821,10 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
return result;
}
- public boolean canIpsUseOffering(List<PublicIp> publicIps, long offeringId) {
- Map<PublicIp, Set<Service>> ipToServices = getIpToServices(publicIps, false, true);
+ public boolean canIpsUseOffering(List<PrivateIp> publicIps, long offeringId) {
+ Map<PrivateIp, Set<Service>> ipToServices = getIpToServices(publicIps, false, true);
Map<Service, Set<Provider>> serviceToProviders = getNetworkOfferingServiceProvidersMap(offeringId);
- for (PublicIp ip : ipToServices.keySet()) {
+ for (PrivateIp ip : ipToServices.keySet()) {
Set<Service> services = ipToServices.get(ip);
Provider provider = null;
for (Service service : services) {
@@ -846,10 +846,10 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
return true;
}
- public boolean canIpUsedForService(PublicIp publicIp, Service service) {
- List<PublicIp> ipList = new ArrayList<PublicIp>();
+ public boolean canIpUsedForService(PrivateIp publicIp, Service service) {
+ List<PrivateIp> ipList = new ArrayList<PrivateIp>();
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);
if (services == null || services.isEmpty()) {
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 */
@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());
if (!offering.isConserveMode()) {
- for (PublicIp ip : ipToServices.keySet()) {
+ for (PrivateIp ip : ipToServices.keySet()) {
Set<Service> services = ipToServices.get(ip);
if (services != null && services.size() > 1) {
throw new CloudRuntimeException("Ip " + ip.getAddress() + " is used by multiple services!");
}
}
}
- Map<Service, Set<PublicIp>> serviceToIps = new HashMap<Service, Set<PublicIp>>();
- for (PublicIp ip : ipToServices.keySet()) {
+ Map<Service, Set<PrivateIp>> serviceToIps = new HashMap<Service, Set<PrivateIp>>();
+ for (PrivateIp ip : ipToServices.keySet()) {
for (Service service : ipToServices.get(ip)) {
- Set<PublicIp> ips = serviceToIps.get(service);
+ Set<PrivateIp> ips = serviceToIps.get(service);
if (ips == null) {
- ips = new HashSet<PublicIp>();
+ ips = new HashSet<PrivateIp>();
}
ips.add(ip);
serviceToIps.put(service, ips);
@@ -895,19 +895,19 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
}
// TODO Check different provider for same IP
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()) {
Set<Service> services = providerToServices.get(provider);
- ArrayList<PublicIp> ipList = new ArrayList<PublicIp>();
- Set<PublicIp> ipSet = new HashSet<PublicIp>();
+ ArrayList<PrivateIp> ipList = new ArrayList<PrivateIp>();
+ Set<PrivateIp> ipSet = new HashSet<PrivateIp>();
for (Service service : services) {
- Set<PublicIp> serviceIps = serviceToIps.get(service);
+ Set<PrivateIp> serviceIps = serviceToIps.get(service);
if (serviceIps == null || serviceIps.isEmpty()) {
continue;
}
ipSet.addAll(serviceIps);
}
- Set<PublicIp> sourceNatIps = serviceToIps.get(Service.SourceNat);
+ Set<PrivateIp> sourceNatIps = serviceToIps.get(Service.SourceNat);
if (sourceNatIps != null && !sourceNatIps.isEmpty()) {
ipList.addAll(0, sourceNatIps);
ipSet.removeAll(sourceNatIps);
@@ -919,15 +919,15 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
}
protected boolean applyIpAssociations(Network network, boolean rulesRevoked, boolean continueOnError,
- List<PublicIp> publicIps) throws ResourceUnavailableException {
+ List<PrivateIp> publicIps) throws ResourceUnavailableException {
boolean success = true;
- Map<PublicIp, Set<Service>> ipToServices = getIpToServices(publicIps, rulesRevoked, false);
- Map<Provider, ArrayList<PublicIp>> providerToIpList = getProviderToIpList(network, ipToServices);
+ Map<PrivateIp, Set<Service>> ipToServices = getIpToServices(publicIps, rulesRevoked, false);
+ Map<Provider, ArrayList<PrivateIp>> providerToIpList = getProviderToIpList(network, ipToServices);
for (Provider provider : providerToIpList.keySet()) {
try {
- ArrayList<PublicIp> ips = providerToIpList.get(provider);
+ ArrayList<PrivateIp> ips = providerToIpList.get(provider);
if (ips == null || ips.isEmpty()) {
continue;
}
@@ -954,7 +954,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
applyFirewallRules = true;
}
Set<Service> services = new HashSet<Service>();
- for (PublicIp ip : ips) {
+ for (PrivateIp ip : ips) {
if (!ipToServices.containsKey(ip)) {
continue;
}
@@ -980,7 +980,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
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>();
List<FirewallRuleVO> rules = null;
if (includeRevoked) {
@@ -1045,7 +1045,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
throw ex;
}
- PublicIp ip = null;
+ PrivateIp ip = null;
Transaction txn = Transaction.currentTxn();
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
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()) {
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);
}
}
@@ -4126,7 +4126,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
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
@@ -4922,10 +4922,10 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
// get the list of public ip's owned by the network
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()) {
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);
}
}
@@ -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 (StaticNat staticNat : staticNats) {
if (staticNat.isForRevoke()) {
- for (PublicIp publicIp : publicIps) {
+ for (PrivateIp publicIp : publicIps) {
if (publicIp.getId() == staticNat.getSourceIpAddressId()) {
publicIps.remove(publicIp);
IPAddressVO ip = _ipAddressDao.findByIdIncludingRemoved(staticNat.getSourceIpAddressId());
// ip can't be null, otherwise something wrong happened
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);
break;
}
@@ -5089,10 +5089,10 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
// Check all ips
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()) {
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);
}
}
@@ -6116,11 +6116,11 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
// Get all ip addresses, mark as releasing and release them on the backend
Network network = getNetwork(networkId);
List<IPAddressVO> userIps = _ipAddressDao.listByAssociatedNetwork(networkId, null);
- List<PublicIp> publicIpsToRelease = new ArrayList<PublicIp>();
+ List<PrivateIp> publicIpsToRelease = new ArrayList<PrivateIp>();
if (userIps != null && !userIps.isEmpty()) {
for (IPAddressVO userIp : userIps) {
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);
}
}
@@ -6880,7 +6880,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
if (offering.getGuestType() != GuestType.Isolated) {
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)) {
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,
InsufficientAddressCapacityException {
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.setGateway(ip.getGateway());
nic.setNetmask(ip.getNetmask());
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/183633cf/server/src/com/cloud/network/addr/PrivateIp.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/addr/PrivateIp.java b/server/src/com/cloud/network/addr/PrivateIp.java
new file mode 100644
index 0000000..ccaa931
--- /dev/null
+++ b/server/src/com/cloud/network/addr/PrivateIp.java
@@ -0,0 +1,199 @@
+// Copyright 2012 Citrix Systems, Inc. Licensed under the
+// Apache License, Version 2.0 (the "License"); you may not use this
+// file except in compliance with the License. Citrix Systems, Inc.
+// reserves all rights not expressly granted by the License.
+// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// Automatically generated by addcopyright.py at 04/03/2012
+package com.cloud.network.addr;
+
+import java.util.Date;
+
+import com.cloud.dc.VlanVO;
+import com.cloud.network.IPAddressVO;
+import com.cloud.network.PublicIpAddress;
+import com.cloud.utils.net.Ip;
+import com.cloud.utils.net.NetUtils;
+
+/**
+ */
+public class PrivateIp implements PublicIpAddress {
+ IPAddressVO _addr;
+ VlanVO _vlan;
+ String macAddress;
+
+ public PrivateIp(IPAddressVO addr, VlanVO vlan, long macAddress) {
+ _addr = addr;
+ _vlan = vlan;
+ this.macAddress = NetUtils.long2Mac(macAddress);
+ }
+
+ @Override
+ public Ip getAddress() {
+ return _addr.getAddress();
+ }
+
+ @Override
+ public String getNetmask() {
+ return _vlan.getVlanNetmask();
+ }
+
+ @Override
+ public String getGateway() {
+ return _vlan.getVlanGateway();
+ }
+
+ @Override
+ public String getVlanTag() {
+ return _vlan.getVlanTag();
+ }
+
+ @Override
+ public long getDataCenterId() {
+ return _addr.getDataCenterId();
+ }
+
+ @Override
+ public boolean readyToUse() {
+ return _addr.getAllocatedTime() != null && _addr.getState() == State.Allocated;
+ }
+
+ @Override
+ public boolean isSourceNat() {
+ return _addr.isSourceNat();
+ }
+
+ @Override
+ public boolean isOneToOneNat() {
+ return _addr.isOneToOneNat();
+ }
+
+ @Override
+ public Long getAssociatedWithVmId() {
+ return _addr.getAssociatedWithVmId();
+ }
+
+ @Override
+ public Date getAllocatedTime() {
+ return _addr.getAllocatedTime();
+ }
+
+ @Override
+ public long getAccountId() {
+ return _addr.getAccountId();
+ }
+
+ @Override
+ public long getDomainId() {
+ return _addr.getDomainId();
+ }
+
+ @Override
+ public long getVlanId() {
+ return _vlan.getId();
+ }
+
+ @Override
+ public State getState() {
+ return _addr.getState();
+ }
+
+ public IPAddressVO ip() {
+ return _addr;
+ }
+
+ public VlanVO vlan() {
+ return _vlan;
+ }
+
+ @Override
+ public String getMacAddress() {
+ return macAddress;
+ }
+
+ @Override
+ public Long getAssociatedWithNetworkId() {
+ return _addr.getAssociatedWithNetworkId();
+ }
+
+ @Override
+ public Long getNetworkId() {
+ return _vlan.getNetworkId();
+ }
+
+ @Override
+ public String getVlanGateway() {
+ return _vlan.getVlanGateway();
+ }
+
+ @Override
+ public String getVlanNetmask() {
+ return _vlan.getVlanNetmask();
+ }
+
+ @Override
+ public String getIpRange() {
+ return _vlan.getIpRange();
+ }
+
+ @Override
+ public VlanType getVlanType() {
+ return _vlan.getVlanType();
+ }
+
+ @Override
+ public long getId() {
+ return _addr.getId();
+ }
+
+ @Override
+ public String toString() {
+ return _addr.getAddress().toString();
+ }
+
+ @Override
+ public Long getPhysicalNetworkId() {
+ return _vlan.getPhysicalNetworkId();
+ }
+
+ @Override
+ public void setState(State state) {
+ _addr.setState(state);
+ }
+
+ @Override
+ public Long getAllocatedToAccountId() {
+ return _addr.getAllocatedToAccountId();
+ }
+
+ @Override
+ public Long getAllocatedInDomainId() {
+ return _addr.getAllocatedInDomainId();
+ }
+
+ @Override
+ public boolean getSystem() {
+ return _addr.getSystem();
+ }
+
+ /* (non-Javadoc)
+ * @see com.cloud.network.IpAddress#getVpcId()
+ */
+ @Override
+ public Long getVpcId() {
+ return _addr.getVpcId();
+ }
+
+ /* (non-Javadoc)
+ * @see com.cloud.network.IpAddress#setVpcId(java.lang.Long)
+ */
+ @Override
+ public void setVpcId(Long vpcId) {
+ _addr.setVpcId(vpcId);
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/183633cf/server/src/com/cloud/network/addr/PublicIp.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/addr/PublicIp.java b/server/src/com/cloud/network/addr/PublicIp.java
deleted file mode 100644
index 11948e5..0000000
--- a/server/src/com/cloud/network/addr/PublicIp.java
+++ /dev/null
@@ -1,199 +0,0 @@
-// Copyright 2012 Citrix Systems, Inc. Licensed under the
-// Apache License, Version 2.0 (the "License"); you may not use this
-// file except in compliance with the License. Citrix Systems, Inc.
-// reserves all rights not expressly granted by the License.
-// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-// Automatically generated by addcopyright.py at 04/03/2012
-package com.cloud.network.addr;
-
-import java.util.Date;
-
-import com.cloud.dc.VlanVO;
-import com.cloud.network.IPAddressVO;
-import com.cloud.network.PublicIpAddress;
-import com.cloud.utils.net.Ip;
-import com.cloud.utils.net.NetUtils;
-
-/**
- */
-public class PublicIp implements PublicIpAddress {
- IPAddressVO _addr;
- VlanVO _vlan;
- String macAddress;
-
- public PublicIp(IPAddressVO addr, VlanVO vlan, long macAddress) {
- _addr = addr;
- _vlan = vlan;
- this.macAddress = NetUtils.long2Mac(macAddress);
- }
-
- @Override
- public Ip getAddress() {
- return _addr.getAddress();
- }
-
- @Override
- public String getNetmask() {
- return _vlan.getVlanNetmask();
- }
-
- @Override
- public String getGateway() {
- return _vlan.getVlanGateway();
- }
-
- @Override
- public String getVlanTag() {
- return _vlan.getVlanTag();
- }
-
- @Override
- public long getDataCenterId() {
- return _addr.getDataCenterId();
- }
-
- @Override
- public boolean readyToUse() {
- return _addr.getAllocatedTime() != null && _addr.getState() == State.Allocated;
- }
-
- @Override
- public boolean isSourceNat() {
- return _addr.isSourceNat();
- }
-
- @Override
- public boolean isOneToOneNat() {
- return _addr.isOneToOneNat();
- }
-
- @Override
- public Long getAssociatedWithVmId() {
- return _addr.getAssociatedWithVmId();
- }
-
- @Override
- public Date getAllocatedTime() {
- return _addr.getAllocatedTime();
- }
-
- @Override
- public long getAccountId() {
- return _addr.getAccountId();
- }
-
- @Override
- public long getDomainId() {
- return _addr.getDomainId();
- }
-
- @Override
- public long getVlanId() {
- return _vlan.getId();
- }
-
- @Override
- public State getState() {
- return _addr.getState();
- }
-
- public IPAddressVO ip() {
- return _addr;
- }
-
- public VlanVO vlan() {
- return _vlan;
- }
-
- @Override
- public String getMacAddress() {
- return macAddress;
- }
-
- @Override
- public Long getAssociatedWithNetworkId() {
- return _addr.getAssociatedWithNetworkId();
- }
-
- @Override
- public Long getNetworkId() {
- return _vlan.getNetworkId();
- }
-
- @Override
- public String getVlanGateway() {
- return _vlan.getVlanGateway();
- }
-
- @Override
- public String getVlanNetmask() {
- return _vlan.getVlanNetmask();
- }
-
- @Override
- public String getIpRange() {
- return _vlan.getIpRange();
- }
-
- @Override
- public VlanType getVlanType() {
- return _vlan.getVlanType();
- }
-
- @Override
- public long getId() {
- return _addr.getId();
- }
-
- @Override
- public String toString() {
- return _addr.getAddress().toString();
- }
-
- @Override
- public Long getPhysicalNetworkId() {
- return _vlan.getPhysicalNetworkId();
- }
-
- @Override
- public void setState(State state) {
- _addr.setState(state);
- }
-
- @Override
- public Long getAllocatedToAccountId() {
- return _addr.getAllocatedToAccountId();
- }
-
- @Override
- public Long getAllocatedInDomainId() {
- return _addr.getAllocatedInDomainId();
- }
-
- @Override
- public boolean getSystem() {
- return _addr.getSystem();
- }
-
- /* (non-Javadoc)
- * @see com.cloud.network.IpAddress#getVpcId()
- */
- @Override
- public Long getVpcId() {
- return _addr.getVpcId();
- }
-
- /* (non-Javadoc)
- * @see com.cloud.network.IpAddress#setVpcId(java.lang.Long)
- */
- @Override
- public void setVpcId(Long vpcId) {
- _addr.setVpcId(vpcId);
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/183633cf/server/src/com/cloud/network/guru/DirectPodBasedNetworkGuru.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/guru/DirectPodBasedNetworkGuru.java b/server/src/com/cloud/network/guru/DirectPodBasedNetworkGuru.java
index 91dc940..821d878 100755
--- a/server/src/com/cloud/network/guru/DirectPodBasedNetworkGuru.java
+++ b/server/src/com/cloud/network/guru/DirectPodBasedNetworkGuru.java
@@ -38,7 +38,7 @@ import com.cloud.network.Network;
import com.cloud.network.NetworkManager;
import com.cloud.network.Networks.AddressFormat;
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.offering.NetworkOffering;
import com.cloud.offerings.dao.NetworkOfferingDao;
@@ -155,7 +155,7 @@ public class DirectPodBasedNetworkGuru extends DirectNetworkGuru {
InsufficientAddressCapacityException, ConcurrentOperationException {
DataCenter dc = _dcDao.findById(pod.getDataCenterId());
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.setFormat(AddressFormat.Ip4);
nic.setGateway(ip.getGateway());
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/183633cf/server/src/com/cloud/network/guru/PublicNetworkGuru.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/guru/PublicNetworkGuru.java b/server/src/com/cloud/network/guru/PublicNetworkGuru.java
index d094445..1022421 100755
--- a/server/src/com/cloud/network/guru/PublicNetworkGuru.java
+++ b/server/src/com/cloud/network/guru/PublicNetworkGuru.java
@@ -36,7 +36,7 @@ import com.cloud.network.Networks.BroadcastDomainType;
import com.cloud.network.Networks.IsolationType;
import com.cloud.network.Networks.Mode;
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.offering.NetworkOffering;
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,
InsufficientAddressCapacityException, ConcurrentOperationException {
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.setGateway(ip.getGateway());
nic.setNetmask(ip.getNetmask());
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/183633cf/server/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java b/server/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java
index 704d400..b628ea6 100644
--- a/server/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java
+++ b/server/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java
@@ -80,7 +80,7 @@ import com.cloud.network.Networks.TrafficType;
import com.cloud.network.PhysicalNetworkServiceProvider;
import com.cloud.network.VirtualRouterProvider;
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.LoadBalancerDao;
import com.cloud.network.dao.NetworkDao;
@@ -596,12 +596,12 @@ public class ElasticLoadBalancerManagerImpl implements
}
@DB
- public PublicIp allocDirectIp(Account account, long guestNetworkId) throws InsufficientAddressCapacityException {
+ public PrivateIp allocDirectIp(Account account, long guestNetworkId) throws InsufficientAddressCapacityException {
Network frontEndNetwork = _networkMgr.getNetwork(guestNetworkId);
Transaction txn = Transaction.currentTxn();
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());
ipvo.setAssociatedWithNetworkId(frontEndNetwork.getId());
_ipAddressDao.update(ipvo.getId(), ipvo);
@@ -650,7 +650,7 @@ public class ElasticLoadBalancerManagerImpl implements
}
} 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");
- PublicIp ip = allocDirectIp(account, networkId);
+ PrivateIp ip = allocDirectIp(account, networkId);
ipId = ip.getId();
newIp = true;
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/183633cf/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
index 2e5481b..3176190 100755
--- a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
+++ b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
@@ -138,7 +138,7 @@ import com.cloud.network.VirtualRouterProvider;
import com.cloud.network.VirtualRouterProvider.VirtualRouterProviderType;
import com.cloud.network.VpnUser;
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.IPAddressDao;
import com.cloud.network.dao.LoadBalancerDao;
@@ -1271,10 +1271,10 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
Long offeringId = _networkOfferingDao.findById(guestNetwork.getNetworkOfferingId()).getServiceOfferingId();
if (offeringId == null) {
offeringId = _offering.getId();
- }
-
- PublicIp sourceNatIp = null;
- if (publicNetwork) {
+ }
+
+ PrivateIp sourceNatIp = null;
+ if (publicNetwork) {
sourceNatIp = _networkMgr.assignSourceNatIpAddressToGuestNetwork(owner, guestNetwork);
}
@@ -1289,7 +1289,7 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
int count = routerCount - routers.size();
for (int i = 0; i < count; i++) {
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
if (!_routerDao.isRouterPartOfGuestNetwork(router.getId(), network.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,
boolean isRedundant, VirtualRouterProvider vrProvider, long svcOffId,
- Long vpcId, PublicIp sourceNatIp, boolean setupPublicNetwork, boolean setupControlNetwork, Network guestNetwork,
- Pair<Boolean, PublicIp> publicNetwork) throws ConcurrentOperationException,
+ Long vpcId, PrivateIp sourceNatIp, boolean setupPublicNetwork, boolean setupControlNetwork, Network guestNetwork,
+ Pair<Boolean, PrivateIp> publicNetwork) throws ConcurrentOperationException,
InsufficientAddressCapacityException, InsufficientServerCapacityException, InsufficientCapacityException,
StorageUnavailableException, ResourceUnavailableException {
@@ -1411,7 +1411,7 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
}
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 {
@@ -1469,7 +1469,7 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
//3) Public network
if (setupPublicNetwork) {
- PublicIp sourceNatIp = publicNetwork.second();
+ PrivateIp sourceNatIp = publicNetwork.second();
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
NicProfile defaultNic = new NicProfile();
@@ -2076,10 +2076,10 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
protected ArrayList<? extends PublicIpAddress> getPublicIpsToApply(VirtualRouter router, Provider provider, Long guestNetworkId) {
long ownerId = router.getAccountId();
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()) {
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()));
allPublicIps.add(publicIp);
}
@@ -2087,11 +2087,11 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
//Get public Ips that should be handled by router
Network network = _networkDao.findById(guestNetworkId);
- Map<PublicIp, Set<Service>> ipToServices = _networkMgr.getIpToServices(allPublicIps, false, false);
- Map<Provider, ArrayList<PublicIp>> providerToIpList = _networkMgr.getProviderToIpList(network, ipToServices);
+ Map<PrivateIp, Set<Service>> ipToServices = _networkMgr.getIpToServices(allPublicIps, false, false);
+ Map<Provider, ArrayList<PrivateIp>> providerToIpList = _networkMgr.getProviderToIpList(network, ipToServices);
// 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;
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/183633cf/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java b/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java
index af09905..fc3d8e8 100644
--- a/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java
+++ b/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java
@@ -26,7 +26,6 @@ import org.apache.log4j.Logger;
import com.cloud.agent.AgentManager.OnError;
import com.cloud.agent.api.PlugNicAnswer;
import com.cloud.agent.api.PlugNicCommand;
-import com.cloud.agent.api.SetSourceNatAnswer;
import com.cloud.agent.api.SetupGuestNetworkAnswer;
import com.cloud.agent.api.SetupGuestNetworkCommand;
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.VirtualRouterProviderType;
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.Site2SiteVpnConnectionDao;
import com.cloud.network.firewall.NetworkACLService;
import com.cloud.network.rules.NetworkACL;
import com.cloud.network.vpc.NetworkACLManager;
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.StaticRouteProfile;
import com.cloud.network.vpc.Vpc;
import com.cloud.network.vpc.VpcGateway;
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.VpcDao;
import com.cloud.network.vpc.Dao.VpcOfferingDao;
@@ -129,6 +131,8 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
StaticRouteDao _staticRouteDao;
@Inject
VpcManager _vpcMgr;
+ @Inject
+ PrivateIpDao _privateIpDao;
@Override
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,
vpc.getId(), sourceNatIp);
@@ -284,7 +288,7 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
return result;
}
- protected boolean addPublicIpToVpc(VirtualRouter router, Network publicNetwork, PublicIp ipAddress)
+ protected boolean addPublicIpToVpc(VirtualRouter router, Network publicNetwork, PrivateIp ipAddress)
throws ConcurrentOperationException,ResourceUnavailableException, InsufficientCapacityException {
if (publicNetwork.getTrafficType() != TrafficType.Public) {
@@ -322,7 +326,7 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
publicNic.setDefaultNic(true);
if (ipAddress != null) {
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()));
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 {
if (publicNetwork.getTrafficType() != TrafficType.Public) {
@@ -351,7 +355,7 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
boolean result = true;
IPAddressVO ipVO = _ipAddressDao.findById(ipAddress.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()));
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{
- List<PublicIp> publicIps = new ArrayList<PublicIp>(1);
+ List<PrivateIp> publicIps = new ArrayList<PrivateIp>(1);
publicIps.add(ipAddress);
Commands cmds = new Commands(OnError.Stop);
- createVpcAssociateIPCommands(router, publicIps, cmds);
+ createVpcAssociatePublicIPCommands(router, publicIps, cmds);
if (sendCommandsToRouter(router, cmds)) {
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,
boolean isRedundant, VirtualRouterProvider vrProvider, long svcOffId,
- Long vpcId, PublicIp sourceNatIp) throws ConcurrentOperationException,
+ Long vpcId, PrivateIp sourceNatIp) throws ConcurrentOperationException,
InsufficientAddressCapacityException, InsufficientServerCapacityException, InsufficientCapacityException,
StorageUnavailableException, ResourceUnavailableException {
@@ -523,7 +527,7 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
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) {
Pair<IpAddressTO, Long> sourceNatIpAdd = null;
@@ -653,7 +657,7 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
@Override
public boolean execute(Network network, VirtualRouter router) throws ResourceUnavailableException {
Commands cmds = new Commands(OnError.Continue);
- createVpcAssociateIPCommands(router, ipAddress, cmds);
+ createVpcAssociatePublicIPCommands(router, ipAddress, cmds);
return sendCommandsToRouter(router, cmds);
}
});
@@ -772,14 +776,14 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
try {
//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()) {
Network publicNtwk = publicNics.get(publicNic);
IPAddressVO userIp = _ipAddressDao.findByIpAndSourceNetworkId(publicNtwk.getId(),
publicNic.getIp4Address());
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()));
sourceNat.add(publicIp);
@@ -798,28 +802,32 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
// create ip assoc for source nat
if (!sourceNat.isEmpty()) {
- createVpcAssociateIPCommands(router, sourceNat, cmds);
+ createVpcAssociatePublicIPCommands(router, sourceNat, cmds);
}
- for (Nic guestNic : guestNics.keySet()) {
+ for (Nic nic : guestNics.keySet()) {
//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);
- if (!_networkMgr.isPrivateGateway(guestNic)) {
+ if (!_networkMgr.isPrivateGateway(nic)) {
//set guest network
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);
cmds.addCommand(setupCmd);
} else {
- //set source nat
- Integer networkRate = _networkMgr.getNetworkRate(guestNic.getNetworkId(), router.getId());
- IpAddressTO ip = new IpAddressTO(Account.ACCOUNT_ID_SYSTEM, guestNic.getIp4Address(), true, false,
- true, guestNic.getBroadcastUri().getHost(), guestNic.getGateway(), guestNic.getNetmask(), guestNic.getMacAddress(),
- null, networkRate, false);
- SetSourceNatCommand cmd = new SetSourceNatCommand(ip, true);
- cmds.addCommand(cmd);
+
+ //set private network
+ PrivateIpVO ipVO = _privateIpDao.findByIpAndSourceNetworkId(nic.getNetworkId(), nic.getIp4Address());
+ Network network = _networkDao.findById(nic.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);
+ createVpcAssociatePrivateIPCommands(router, privateIps, cmds, true);
}
}
} catch (Exception ex) {
@@ -932,32 +940,25 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
*/
protected boolean setupVpcPrivateNetwork(VirtualRouter router, boolean add, NicProfile privateNic)
throws AgentUnavailableException {
- boolean result = true;
- Commands cmds = new Commands(OnError.Stop);
- Integer networkRate = _networkMgr.getNetworkRate(privateNic.getNetworkId(), router.getId());
- IpAddressTO ip = new IpAddressTO(Account.ACCOUNT_ID_SYSTEM, privateNic.getIp4Address(), add, false,
- true, privateNic.getBroadCastUri().getHost(), privateNic.getGateway(), privateNic.getNetmask(), privateNic.getMacAddress(),
- null, networkRate, false);
- Network network = _networkMgr.getNetwork(privateNic.getNetworkId());
- ip.setTrafficType(network.getTrafficType());
+ 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());
- 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;
- }
+ List<PrivateIpAddress> privateIps = new ArrayList<PrivateIpAddress>(1);
+ privateIps.add(ip);
+ Commands cmds = new Commands(OnError.Stop);
+ createVpcAssociatePrivateIPCommands(router, privateIps, cmds, add);
- return result;
+ if (sendCommandsToRouter(router, cmds)) {
+ s_logger.debug("Successfully applied ip association for ip " + ip + " in vpc network " + network);
+ return true;
+ } else {
+ s_logger.warn("Failed to associate ip address " + ip + " in vpc network " + network);
+ return false;
+ }
}
@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.");
// Re-apply public ip addresses - should come before PF/LB/VPN
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());
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);
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/183633cf/server/src/com/cloud/network/vpc/PrivateIpAddress.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/vpc/PrivateIpAddress.java b/server/src/com/cloud/network/vpc/PrivateIpAddress.java
index 7a568c1..a1755e0 100644
--- a/server/src/com/cloud/network/vpc/PrivateIpAddress.java
+++ b/server/src/com/cloud/network/vpc/PrivateIpAddress.java
@@ -23,6 +23,7 @@ public class PrivateIpAddress implements PrivateIp{
String netmask;
String ipAddress;
String macAddress;
+ long networkId;
/**
* @param privateIp
@@ -39,6 +40,7 @@ public class PrivateIpAddress implements PrivateIp{
this.gateway = gateway;
this.netmask = netmask;
this.macAddress = NetUtils.long2Mac(macAddress);
+ this.networkId = privateIp.getNetworkId();
}
@Override
@@ -65,4 +67,9 @@ public class PrivateIpAddress implements PrivateIp{
public String getMacAddress() {
return macAddress;
}
+
+ @Override
+ public long getNetworkId() {
+ return networkId;
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/183633cf/server/src/com/cloud/network/vpc/PrivateIpVO.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/vpc/PrivateIpVO.java b/server/src/com/cloud/network/vpc/PrivateIpVO.java
index 4839755..b9f3142 100644
--- a/server/src/com/cloud/network/vpc/PrivateIpVO.java
+++ b/server/src/com/cloud/network/vpc/PrivateIpVO.java
@@ -29,7 +29,7 @@ import javax.persistence.TemporalType;
@Entity
@Table(name="private_ip_address")
-public class PrivateIpVO {
+public class PrivateIpVO{
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@@ -65,7 +65,7 @@ public class PrivateIpVO {
public String getIpAddress() {
return ipAddress;
}
-
+
public long getNetworkId() {
return networkId;
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/183633cf/server/test/com/cloud/network/MockNetworkManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/network/MockNetworkManagerImpl.java b/server/test/com/cloud/network/MockNetworkManagerImpl.java
index 5e8927a..d455cc9 100755
--- a/server/test/com/cloud/network/MockNetworkManagerImpl.java
+++ b/server/test/com/cloud/network/MockNetworkManagerImpl.java
@@ -12,6 +12,7 @@
// Automatically generated by addcopyright.py at 04/03/2012
package com.cloud.network;
+import java.net.URI;
import java.util.ArrayList;
import java.util.List;
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.Service;
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.RemoteAccessVPNServiceProvider;
import com.cloud.network.element.UserDataServiceProvider;
@@ -722,13 +723,13 @@ public class MockNetworkManagerImpl implements NetworkManager, Manager, NetworkS
}
@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
return null;
}
@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
return null;
}
@@ -739,12 +740,6 @@ public class MockNetworkManagerImpl implements NetworkManager, Manager, NetworkS
return false;
}
- @Override
- public void checkVirtualNetworkCidrOverlap(Long zoneId, String cidr) {
- // TODO Auto-generated method stub
-
- }
-
/* (non-Javadoc)
* @see com.cloud.network.NetworkService#isVmPartOfNetwork(long, long)
@@ -884,15 +879,6 @@ public class MockNetworkManagerImpl implements NetworkManager, Manager, NetworkS
}
/* (non-Javadoc)
- * @see com.cloud.network.NetworkManager#assignPublicIpAddress(long, java.lang.Long, com.cloud.user.Account, com.cloud.dc.Vlan.VlanType, java.lang.Long, java.lang.String, boolean)
- */
- @Override
- public PublicIp assignPublicIpAddress(long dcId, Long podId, Account owner, VlanType type, Long networkId, String requestedIp, boolean isSystem) throws InsufficientAddressCapacityException {
- // TODO Auto-generated method stub
- return null;
- }
-
- /* (non-Javadoc)
* @see com.cloud.network.NetworkManager#validateRule(com.cloud.network.rules.FirewallRule)
*/
@Override
@@ -993,6 +979,59 @@ public class MockNetworkManagerImpl implements NetworkManager, Manager, NetworkS
}
/* (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)
* @see com.cloud.network.NetworkManager#getDefaultStorageTrafficLabel(long, com.cloud.hypervisor.Hypervisor.HypervisorType)
*/
@Override
@@ -1011,44 +1050,65 @@ public class MockNetworkManagerImpl implements NetworkManager, Manager, NetworkS
}
/* (non-Javadoc)
- * @see com.cloud.network.NetworkManager#getDefaultGuestTrafficLabel(long, com.cloud.hypervisor.Hypervisor.HypervisorType)
+ * @see com.cloud.network.NetworkManager#assignSourceNatIpAddressToGuestNetwork(com.cloud.user.Account, com.cloud.network.Network)
*/
@Override
- public String getDefaultGuestTrafficLabel(long dcId, HypervisorType vmware) {
+ public PrivateIp assignSourceNatIpAddressToGuestNetwork(Account owner, Network guestNetwork) throws InsufficientAddressCapacityException, ConcurrentOperationException {
// TODO Auto-generated method stub
return null;
}
/* (non-Javadoc)
- * @see com.cloud.network.NetworkManager#getElementImplementingProvider(java.lang.String)
+ * @see com.cloud.network.NetworkManager#assignSourceNatIpAddressToVpc(com.cloud.user.Account, com.cloud.network.vpc.Vpc)
*/
@Override
- public NetworkElement getElementImplementingProvider(String providerName) {
+ public PrivateIp assignSourceNatIpAddressToVpc(Account owner, Vpc vpc) throws InsufficientAddressCapacityException, ConcurrentOperationException {
// TODO Auto-generated method stub
return null;
}
/* (non-Javadoc)
- * @see com.cloud.network.NetworkManager#assignSourceNatIpAddressToGuestNetwork(com.cloud.user.Account, com.cloud.network.Network)
+ * @see com.cloud.network.NetworkManager#getNicProfile(com.cloud.vm.VirtualMachine, long)
*/
@Override
- public PublicIp assignSourceNatIpAddressToGuestNetwork(Account owner, Network guestNetwork) throws InsufficientAddressCapacityException, ConcurrentOperationException {
+ public NicProfile getNicProfile(VirtualMachine vm, long networkId) {
// TODO Auto-generated method stub
return null;
}
/* (non-Javadoc)
- * @see com.cloud.network.NetworkManager#assignSourceNatIpAddressToVpc(com.cloud.user.Account, com.cloud.network.vpc.Vpc)
+ * @see com.cloud.network.NetworkManager#setupDns(com.cloud.network.Network, com.cloud.network.Network.Provider)
*/
@Override
- public PublicIp assignSourceNatIpAddressToVpc(Account owner, Vpc vpc) throws InsufficientAddressCapacityException, ConcurrentOperationException {
+ 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;
}
- @Override
- public boolean canUseForDeploy(Network network) {
- // TODO Auto-generated method stub
- return false;
- }
+ /* (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;
+ }
}