Updated Branches: refs/heads/4.1 798404e61 -> 02a0439db
CLOUDSTACK-1170: Use a unified way to generate PublicIp Tired of manually generate mac address everytime when create PublicIp object. Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/02a0439d Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/02a0439d Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/02a0439d Branch: refs/heads/4.1 Commit: 02a0439dba25c37e01f425ccfc0ddd8b1d3c5f85 Parents: 798404e Author: Sheng Yang <[email protected]> Authored: Wed Feb 27 13:59:02 2013 -0800 Committer: Sheng Yang <[email protected]> Committed: Wed Feb 27 14:06:09 2013 -0800 ---------------------------------------------------------------------- .../src/com/cloud/network/NetworkManagerImpl.java | 18 +++++--------- server/src/com/cloud/network/NetworkModelImpl.java | 7 ++--- .../src/com/cloud/network/NetworkServiceImpl.java | 2 +- server/src/com/cloud/network/addr/PublicIp.java | 4 +++ .../router/VirtualNetworkApplianceManagerImpl.java | 3 +- .../VpcVirtualNetworkApplianceManagerImpl.java | 6 +--- .../src/com/cloud/network/vpc/VpcManagerImpl.java | 3 +- 7 files changed, 19 insertions(+), 24 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/02a0439d/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 fa5dd46..f6e32fb 100755 --- a/server/src/com/cloud/network/NetworkManagerImpl.java +++ b/server/src/com/cloud/network/NetworkManagerImpl.java @@ -356,9 +356,7 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L _firewallMgr.addSystemFirewallRules(addr, owner); } - long macAddress = NetUtils.createSequenceBasedMacAddress(addr.getMacAddress()); - - return new PublicIp(addr, _vlanDao.findById(addr.getVlanId()), macAddress); + return PublicIp.createFromAddrAndVlan(addr, _vlanDao.findById(addr.getVlanId())); } @DB @@ -405,8 +403,7 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L PublicIp ipToReturn = null; if (sourceNatIp != null) { - ipToReturn = new PublicIp(sourceNatIp, _vlanDao.findById(sourceNatIp.getVlanId()), - NetUtils.createSequenceBasedMacAddress(sourceNatIp.getMacAddress())); + ipToReturn = PublicIp.createFromAddrAndVlan(sourceNatIp, _vlanDao.findById(sourceNatIp.getVlanId())); } else { ipToReturn = assignDedicateIpAddress(owner, guestNetwork.getId(), null, dcId, true); } @@ -491,8 +488,7 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L List<PublicIp> publicIps = new ArrayList<PublicIp>(); if (userIps != null && !userIps.isEmpty()) { for (IPAddressVO userIp : userIps) { - PublicIp publicIp = new PublicIp(userIp, _vlanDao.findById(userIp.getVlanId()), - NetUtils.createSequenceBasedMacAddress(userIp.getMacAddress())); + PublicIp publicIp = PublicIp.createFromAddrAndVlan(userIp, _vlanDao.findById(userIp.getVlanId())); publicIps.add(publicIp); } } @@ -2309,7 +2305,7 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L List<IPAddressVO> userIps = _ipAddressDao.listByAssociatedNetwork(network.getId(), null); if (userIps != null && !userIps.isEmpty()) { for (IPAddressVO userIp : userIps) { - PublicIp publicIp = new PublicIp(userIp, _vlanDao.findById(userIp.getVlanId()), NetUtils.createSequenceBasedMacAddress(userIp.getMacAddress())); + PublicIp publicIp = PublicIp.createFromAddrAndVlan(userIp, _vlanDao.findById(userIp.getVlanId())); publicIps.add(publicIp); } } @@ -2845,7 +2841,7 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L List<PublicIp> publicIps = new ArrayList<PublicIp>(); if (userIps != null && !userIps.isEmpty()) { for (IPAddressVO userIp : userIps) { - PublicIp publicIp = new PublicIp(userIp, _vlanDao.findById(userIp.getVlanId()), NetUtils.createSequenceBasedMacAddress(userIp.getMacAddress())); + PublicIp publicIp = PublicIp.createFromAddrAndVlan(userIp, _vlanDao.findById(userIp.getVlanId())); publicIps.add(publicIp); } } @@ -2875,7 +2871,7 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L 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 = PublicIp.createFromAddrAndVlan(ip, _vlanDao.findById(ip.getVlanId())); publicIps.add(publicIp); break; } @@ -3152,7 +3148,7 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L 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())); + PublicIp publicIp = PublicIp.createFromAddrAndVlan(userIp, _vlanDao.findById(userIp.getVlanId())); publicIpsToRelease.add(publicIp); } } http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/02a0439d/server/src/com/cloud/network/NetworkModelImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/NetworkModelImpl.java b/server/src/com/cloud/network/NetworkModelImpl.java index 8aa18c1..0b75ecf 100644 --- a/server/src/com/cloud/network/NetworkModelImpl.java +++ b/server/src/com/cloud/network/NetworkModelImpl.java @@ -710,7 +710,7 @@ public class NetworkModelImpl extends ManagerBase implements NetworkModel { return null; } - return new PublicIp(addr, _vlanDao.findById(addr.getVlanId()), NetUtils.createSequenceBasedMacAddress(addr.getMacAddress())); + return PublicIp.createFromAddrAndVlan(addr, _vlanDao.findById(addr.getVlanId())); } @Override @@ -1406,7 +1406,7 @@ public class NetworkModelImpl extends ManagerBase implements NetworkModel { return true; } IPAddressVO ipVO = _ipAddressDao.findById(userIp.getId()); - PublicIp publicIp = new PublicIp(ipVO, _vlanDao.findById(userIp.getVlanId()), NetUtils.createSequenceBasedMacAddress(ipVO.getMacAddress())); + PublicIp publicIp = PublicIp.createFromAddrAndVlan(ipVO, _vlanDao.findById(userIp.getVlanId())); if (!canIpUsedForService(publicIp, service, networkId)) { return false; } @@ -1885,8 +1885,7 @@ public class NetworkModelImpl extends ManagerBase implements NetworkModel { for (IpAddress addr : addrs) { if (addr.isSourceNat()) { sourceNatIp = _ipAddressDao.findById(addr.getId()); - return new PublicIp(sourceNatIp, _vlanDao.findById(sourceNatIp.getVlanId()), - NetUtils.createSequenceBasedMacAddress(sourceNatIp.getMacAddress())); + return PublicIp.createFromAddrAndVlan(sourceNatIp, _vlanDao.findById(sourceNatIp.getVlanId())); } } http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/02a0439d/server/src/com/cloud/network/NetworkServiceImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/NetworkServiceImpl.java b/server/src/com/cloud/network/NetworkServiceImpl.java index f679e13..fdb842a 100755 --- a/server/src/com/cloud/network/NetworkServiceImpl.java +++ b/server/src/com/cloud/network/NetworkServiceImpl.java @@ -1812,7 +1812,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService { List<PublicIp> publicIps = new ArrayList<PublicIp>(); if (userIps != null && !userIps.isEmpty()) { for (IPAddressVO userIp : userIps) { - PublicIp publicIp = new PublicIp(userIp, _vlanDao.findById(userIp.getVlanId()), NetUtils.createSequenceBasedMacAddress(userIp.getMacAddress())); + PublicIp publicIp = PublicIp.createFromAddrAndVlan(userIp, _vlanDao.findById(userIp.getVlanId())); publicIps.add(publicIp); } } http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/02a0439d/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 index 7336c9c..61351a6 100644 --- a/server/src/com/cloud/network/addr/PublicIp.java +++ b/server/src/com/cloud/network/addr/PublicIp.java @@ -37,6 +37,10 @@ public class PublicIp implements PublicIpAddress { this.macAddress = NetUtils.long2Mac(macAddress); } + public static PublicIp createFromAddrAndVlan(IPAddressVO addr, VlanVO vlan) { + return new PublicIp(addr, vlan, NetUtils.createSequenceBasedMacAddress(addr.getMacAddress())); + } + @Override public Ip getAddress() { return _addr.getAddress(); http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/02a0439d/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 abb4973..0e2eb63 100755 --- a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java +++ b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java @@ -2414,8 +2414,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V if (addIp) { IPAddressVO ipVO = _ipAddressDao.findById(userIp.getId()); - PublicIp publicIp = new PublicIp(ipVO, _vlanDao.findById(userIp.getVlanId()), - NetUtils.createSequenceBasedMacAddress(ipVO.getMacAddress())); + PublicIp publicIp = PublicIp.createFromAddrAndVlan(ipVO, _vlanDao.findById(userIp.getVlanId())); allPublicIps.add(publicIp); } } http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/02a0439d/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 d7fe3e0..79ba64c 100644 --- a/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java +++ b/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java @@ -803,8 +803,7 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian publicNic.getIp4Address()); if (userIp.isSourceNat()) { - PublicIp publicIp = new PublicIp(userIp, _vlanDao.findById(userIp.getVlanId()), - NetUtils.createSequenceBasedMacAddress(userIp.getMacAddress())); + PublicIp publicIp = PublicIp.createFromAddrAndVlan(userIp, _vlanDao.findById(userIp.getVlanId())); sourceNat.add(publicIp); if (router.getPublicIpAddress() == null) { @@ -1227,8 +1226,7 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian //4) allocate nic for additional public network(s) List<IPAddressVO> ips = _ipAddressDao.listByAssociatedVpc(vpcId, false); for (IPAddressVO ip : ips) { - PublicIp publicIp = new PublicIp(ip, _vlanDao.findById(ip.getVlanId()), - NetUtils.createSequenceBasedMacAddress(ip.getMacAddress())); + PublicIp publicIp = PublicIp.createFromAddrAndVlan(ip, _vlanDao.findById(ip.getVlanId())); if ((ip.getState() == IpAddress.State.Allocated || ip.getState() == IpAddress.State.Allocating) && _vpcMgr.ipUsedInVpc(ip)&& !publicVlans.contains(publicIp.getVlanTag())) { s_logger.debug("Allocating nic for router in vlan " + publicIp.getVlanTag()); http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/02a0439d/server/src/com/cloud/network/vpc/VpcManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/vpc/VpcManagerImpl.java b/server/src/com/cloud/network/vpc/VpcManagerImpl.java index 7197c36..fda3c48 100644 --- a/server/src/com/cloud/network/vpc/VpcManagerImpl.java +++ b/server/src/com/cloud/network/vpc/VpcManagerImpl.java @@ -1929,8 +1929,7 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager{ PublicIp ipToReturn = null; if (sourceNatIp != null) { - ipToReturn = new PublicIp(sourceNatIp, _vlanDao.findById(sourceNatIp.getVlanId()), - NetUtils.createSequenceBasedMacAddress(sourceNatIp.getMacAddress())); + ipToReturn = PublicIp.createFromAddrAndVlan(sourceNatIp, _vlanDao.findById(sourceNatIp.getVlanId())); } else { ipToReturn = _ntwkMgr.assignDedicateIpAddress(owner, null, vpc.getId(), dcId, true); }
