You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by mu...@apache.org on 2013/10/16 14:49:16 UTC
git commit: updated refs/heads/4.2 to 4d07493
Updated Branches:
refs/heads/4.2 4cc8af053 -> 4d07493a5
CLOUDSTACK-4717: associate IP does not work on shared networks with out
source NAT service
relax the restriction that the source nat service should be avaiable in
the network inorder to associate a public ip to the network
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/4d07493a
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/4d07493a
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/4d07493a
Branch: refs/heads/4.2
Commit: 4d07493a5e6e13462b80ba09c3535fa4af0ebdc7
Parents: 4cc8af0
Author: Murali Reddy <mu...@gmail.com>
Authored: Wed Oct 16 18:15:26 2013 +0530
Committer: Murali Reddy <mu...@gmail.com>
Committed: Wed Oct 16 18:19:04 2013 +0530
----------------------------------------------------------------------
.../com/cloud/network/NetworkManagerImpl.java | 25 +++++++++++++-------
1 file changed, 17 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4d07493a/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 df3dfea..9c4f777 100755
--- a/server/src/com/cloud/network/NetworkManagerImpl.java
+++ b/server/src/com/cloud/network/NetworkManagerImpl.java
@@ -970,14 +970,23 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L
}
}
- // In Advance zone only allow to do IP assoc
- // - for Isolated networks with source nat service enabled
- // - for shared networks with source nat service enabled
- if (zone.getNetworkType() == NetworkType.Advanced &&
- !(_networkModel.areServicesSupportedInNetwork(network.getId(), Service.SourceNat))) {
- throw new InvalidParameterValueException("In zone of type " + NetworkType.Advanced +
- " ip address can be associated only to the network of guest type " + GuestType.Isolated + " with the "
- + Service.SourceNat.getName() + " enabled");
+ if (zone.getNetworkType() == NetworkType.Advanced) {
+ // In Advance zone allow to do IP assoc only for Isolated networks with source nat service enabled
+ if (network.getGuestType() == GuestType.Isolated &&
+ !(_networkModel.areServicesSupportedInNetwork(network.getId(), Service.SourceNat))) {
+ throw new InvalidParameterValueException("In zone of type " + NetworkType.Advanced +
+ " ip address can be associated only to the network of guest type " + GuestType.Isolated +
+ " with the " + Service.SourceNat.getName() + " enabled");
+ }
+
+ // In Advance zone allow to do IP assoc only for shared networks with source nat/static nat/lb/pf services enabled
+ if (network.getGuestType() == GuestType.Shared &&
+ !isSharedNetworkOfferingWithServices(network.getNetworkOfferingId())) {
+ throw new InvalidParameterValueException("In zone of type " + NetworkType.Advanced +
+ " ip address can be associated with network of guest type " + GuestType.Shared + "only if at " +
+ "least one of the services " + Service.SourceNat.getName() + "/" + Service.StaticNat.getName() + "/"
+ + Service.Lb.getName() + "/" + Service.PortForwarding.getName() + " is enabled");
+ }
}
NetworkOffering offering = _networkOfferingDao.findById(network.getNetworkOfferingId());