You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ni...@apache.org on 2013/12/21 01:58:55 UTC
git commit: updated refs/heads/master to 6b62a04
Updated Branches:
refs/heads/master f083f91b0 -> 6b62a04ea
CLOUDSTACK-5281:
Resource limit shouldnt be counted for resources with display flag = 0. Correcting this for the networks at the moment.
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/6b62a04e
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/6b62a04e
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/6b62a04e
Branch: refs/heads/master
Commit: 6b62a04eaf1196ebcce5e81c29c9e0f59dd4f858
Parents: f083f91
Author: Nitin Mehta <ni...@citrix.com>
Authored: Fri Dec 20 16:58:43 2013 -0800
Committer: Nitin Mehta <ni...@citrix.com>
Committed: Fri Dec 20 16:58:43 2013 -0800
----------------------------------------------------------------------
.../service/NetworkOrchestrationService.java | 2 ++
.../engine/orchestration/NetworkOrchestrator.java | 9 +++++----
.../schema/src/com/cloud/network/dao/NetworkDaoImpl.java | 2 ++
server/src/com/cloud/network/NetworkServiceImpl.java | 11 ++++++++++-
4 files changed, 19 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6b62a04e/engine/api/src/org/apache/cloudstack/engine/orchestration/service/NetworkOrchestrationService.java
----------------------------------------------------------------------
diff --git a/engine/api/src/org/apache/cloudstack/engine/orchestration/service/NetworkOrchestrationService.java b/engine/api/src/org/apache/cloudstack/engine/orchestration/service/NetworkOrchestrationService.java
index fc196e2..8ed50cd 100755
--- a/engine/api/src/org/apache/cloudstack/engine/orchestration/service/NetworkOrchestrationService.java
+++ b/engine/api/src/org/apache/cloudstack/engine/orchestration/service/NetworkOrchestrationService.java
@@ -215,4 +215,6 @@ public interface NetworkOrchestrationService {
DhcpServiceProvider getDhcpServiceProvider(Network network);
void removeDhcpServiceInSubnet(Nic nic);
+
+ boolean resourceCountNeedsUpdate(NetworkOffering ntwkOff, ACLType aclType);
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6b62a04e/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java
----------------------------------------------------------------------
diff --git a/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java b/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java
index 1505d41..b3c4854 100755
--- a/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java
+++ b/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java
@@ -1650,7 +1650,7 @@ public class NetworkOrchestrator extends ManagerBase implements NetworkOrchestra
final boolean updateResourceCount = resourceCountNeedsUpdate(ntwkOff, aclType);
//check resource limits
if (updateResourceCount) {
- _resourceLimitMgr.checkResourceLimit(owner, ResourceType.network);
+ _resourceLimitMgr.checkResourceLimit(owner, ResourceType.network, isDisplayNetworkEnabled);
}
// Validate network offering
@@ -1928,7 +1928,7 @@ public class NetworkOrchestrator extends ManagerBase implements NetworkOrchestra
}
if (updateResourceCount) {
- _resourceLimitMgr.incrementResourceCount(owner.getId(), ResourceType.network);
+ _resourceLimitMgr.incrementResourceCount(owner.getId(), ResourceType.network, isDisplayNetworkEnabled);
}
return network;
@@ -2217,7 +2217,7 @@ public class NetworkOrchestrator extends ManagerBase implements NetworkOrchestra
NetworkOffering ntwkOff = _entityMgr.findById(NetworkOffering.class, networkFinal.getNetworkOfferingId());
boolean updateResourceCount = resourceCountNeedsUpdate(ntwkOff, networkFinal.getAclType());
if (updateResourceCount) {
- _resourceLimitMgr.decrementResourceCount(networkFinal.getAccountId(), ResourceType.network);
+ _resourceLimitMgr.decrementResourceCount(networkFinal.getAccountId(), ResourceType.network, networkFinal.getDisplayNetwork());
}
}
}
@@ -2232,7 +2232,8 @@ public class NetworkOrchestrator extends ManagerBase implements NetworkOrchestra
return success;
}
- private boolean resourceCountNeedsUpdate(NetworkOffering ntwkOff, ACLType aclType) {
+ @Override
+ public boolean resourceCountNeedsUpdate(NetworkOffering ntwkOff, ACLType aclType) {
//Update resource count only for Isolated account specific non-system networks
boolean updateResourceCount = (ntwkOff.getGuestType() == GuestType.Isolated && !ntwkOff.isSystemOnly() && aclType == ACLType.Account);
return updateResourceCount;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6b62a04e/engine/schema/src/com/cloud/network/dao/NetworkDaoImpl.java
----------------------------------------------------------------------
diff --git a/engine/schema/src/com/cloud/network/dao/NetworkDaoImpl.java b/engine/schema/src/com/cloud/network/dao/NetworkDaoImpl.java
index 13fb64e..0c556c8 100644
--- a/engine/schema/src/com/cloud/network/dao/NetworkDaoImpl.java
+++ b/engine/schema/src/com/cloud/network/dao/NetworkDaoImpl.java
@@ -195,6 +195,7 @@ public class NetworkDaoImpl extends GenericDaoBase<NetworkVO, Long> implements N
NetworksRegularUserCanCreateSearch = createSearchBuilder(Long.class);
NetworksRegularUserCanCreateSearch.and("aclType", NetworksRegularUserCanCreateSearch.entity().getAclType(), Op.EQ);
+ NetworksRegularUserCanCreateSearch.and("displayNetwork", NetworksRegularUserCanCreateSearch.entity().getDisplayNetwork(), Op.EQ);
NetworksRegularUserCanCreateSearch.select(null, Func.COUNT, NetworksRegularUserCanCreateSearch.entity().getId());
SearchBuilder<NetworkAccountVO> join4 = _accountsDao.createSearchBuilder();
join4.and("account", join4.entity().getAccountId(), Op.EQ);
@@ -549,6 +550,7 @@ public class NetworkDaoImpl extends GenericDaoBase<NetworkVO, Long> implements N
public long countNetworksUserCanCreate(long ownerId) {
SearchCriteria<Long> sc = NetworksRegularUserCanCreateSearch.create();
sc.setParameters("aclType", ACLType.Account);
+ sc.setParameters("displayNetwork", 1);
sc.setJoinParameters("accounts", "account", ownerId);
sc.setJoinParameters("ntwkOff", "specifyVlan", false);
return customSearch(sc, null).get(0);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6b62a04e/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 0e3aae9..39f3ff3 100755
--- a/server/src/com/cloud/network/NetworkServiceImpl.java
+++ b/server/src/com/cloud/network/NetworkServiceImpl.java
@@ -41,6 +41,7 @@ import javax.ejb.Local;
import javax.inject.Inject;
import javax.naming.ConfigurationException;
+import com.cloud.configuration.Resource;
import org.apache.log4j.Logger;
import org.apache.cloudstack.acl.ControlledEntity.ACLType;
@@ -1998,10 +1999,18 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
network.setDisplayText(displayText);
}
- if (displayNetwork != null) {
+ // display flag is not null and has changed
+ if (displayNetwork != null && displayNetwork != network.getDisplayNetwork()) {
if (!_accountMgr.isRootAdmin(callerAccount.getType())) {
throw new PermissionDeniedException("Only admin allowed to update displaynetwork parameter");
}
+
+ // Update resource count if it needs to be updated
+ NetworkOffering networkOffering = _networkOfferingDao.findById(network.getNetworkOfferingId());
+ if(_networkMgr.resourceCountNeedsUpdate(networkOffering,network.getAclType())){
+ _resourceLimitMgr.changeResourceCount(network.getAccountId(), Resource.ResourceType.network, displayNetwork);
+ }
+
network.setDisplayNetwork(displayNetwork);
}