From e1de9f5bec6331cd7f92a3c0b7468fb1ac46c0a8 Mon Sep 17 00:00:00 2001 From: Sheng Yang Date: Wed, 10 Aug 2011 12:50:14 -0700 Subject: [PATCH] bug 11021: Add ReservationStrategy.Managed to prevent sourceNat from release status 11021: resolved fixed --- api/src/com/cloud/vm/Nic.java | 2 +- server/src/com/cloud/network/guru/PublicNetworkGuru.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/api/src/com/cloud/vm/Nic.java b/api/src/com/cloud/vm/Nic.java index de3491c9dd3..bc7cc6e08b2 100644 --- a/api/src/com/cloud/vm/Nic.java +++ b/api/src/com/cloud/vm/Nic.java @@ -83,7 +83,7 @@ public interface Nic { } public enum ReservationStrategy { - PlaceHolder, Create, Start; + PlaceHolder, Create, Start, Managed; } /** diff --git a/server/src/com/cloud/network/guru/PublicNetworkGuru.java b/server/src/com/cloud/network/guru/PublicNetworkGuru.java index e395b17bfc3..88d36928b8e 100644 --- a/server/src/com/cloud/network/guru/PublicNetworkGuru.java +++ b/server/src/com/cloud/network/guru/PublicNetworkGuru.java @@ -155,7 +155,7 @@ public class PublicNetworkGuru extends AdapterBase implements NetworkGuru { if (nic.getIp4Address() == null) { nic.setStrategy(ReservationStrategy.Start); } else { - nic.setStrategy(ReservationStrategy.Create); + nic.setStrategy(ReservationStrategy.Managed); } return nic; @@ -182,7 +182,7 @@ public class PublicNetworkGuru extends AdapterBase implements NetworkGuru { @Override public void deallocate(Network network, NicProfile nic, VirtualMachineProfile vm) { IPAddressVO ip = _ipAddressDao.findByIpAndSourceNetworkId(nic.getNetworkId(), nic.getIp4Address()); - if (ip != null) { + if (ip != null && nic.getReservationStrategy() != ReservationStrategy.Managed) { _networkMgr.markIpAsUnavailable(ip.getId()); _ipAddressDao.unassignIpAddress(ip.getId()); }