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/11 00:19:44 UTC
git commit: VPC: CS-15519 - fixed ipAssoc when only zoneId parameter
is passed in to the API call
Updated Branches:
refs/heads/vpc ade3ae4e3 -> f59b935da
VPC: CS-15519 - fixed ipAssoc when only zoneId parameter is passed in to the API call
Conflicts:
api/src/com/cloud/api/commands/AssociateIPAddrCmd.java
server/src/com/cloud/network/ExternalLoadBalancerUsageManagerImpl.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/f59b935d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/f59b935d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/f59b935d
Branch: refs/heads/vpc
Commit: f59b935da53a121e580a5d1894d5d71751133815
Parents: ade3ae4
Author: Alena Prokharchyk <al...@citrix.com>
Authored: Tue Jul 10 15:14:31 2012 -0700
Committer: Alena Prokharchyk <al...@citrix.com>
Committed: Tue Jul 10 15:20:39 2012 -0700
----------------------------------------------------------------------
.../com/cloud/api/commands/AssociateIPAddrCmd.java | 30 +++++++-------
.../ExternalLoadBalancerUsageManagerImpl.java | 4 +-
.../src/com/cloud/network/NetworkManagerImpl.java | 4 +-
server/src/com/cloud/network/dao/NetworkDao.java | 2 +-
.../src/com/cloud/network/dao/NetworkDaoImpl.java | 17 ++++++--
5 files changed, 32 insertions(+), 25 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/f59b935d/api/src/com/cloud/api/commands/AssociateIPAddrCmd.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/api/commands/AssociateIPAddrCmd.java b/api/src/com/cloud/api/commands/AssociateIPAddrCmd.java
index 6ac4a1d..7fab4c1 100644
--- a/api/src/com/cloud/api/commands/AssociateIPAddrCmd.java
+++ b/api/src/com/cloud/api/commands/AssociateIPAddrCmd.java
@@ -171,22 +171,22 @@ public class AssociateIPAddrCmd extends BaseAsyncCreateCmd {
@Override
public long getEntityOwnerId() {
- Account caller = UserContext.current().getCaller();
- if (accountName != null && domainId != null) {
- Account account = _accountService.finalizeOwner(caller, accountName, domainId, projectId);
- return account.getId();
- } else if (getNetworkId() != null){
- Network network = _networkService.getNetwork(getNetworkId());
+ Account caller = UserContext.current().getCaller();
+ if (accountName != null && domainId != null) {
+ Account account = _accountService.finalizeOwner(caller, accountName, domainId, projectId);
+ return account.getId();
+ } else if (networkId != null){
+ Network network = _networkService.getNetwork(networkId);
return network.getAccountId();
- } else if (vpcId != null) {
- Vpc vpc = _vpcService.getVpc(getVpcId());
- if (vpc == null) {
- throw new InvalidParameterValueException("Can't find Enabled vpc by id specified");
- }
- return vpc.getAccountId();
- }
-
- throw new InvalidParameterValueException("Failed to determine ip owner");
+ } else if (vpcId != null) {
+ Vpc vpc = _vpcService.getVpc(getVpcId());
+ if (vpc == null) {
+ throw new InvalidParameterValueException("Can't find Enabled vpc by id specified");
+ }
+ return vpc.getAccountId();
+ }
+
+ return caller.getAccountId();
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/f59b935d/server/src/com/cloud/network/ExternalLoadBalancerUsageManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/ExternalLoadBalancerUsageManagerImpl.java b/server/src/com/cloud/network/ExternalLoadBalancerUsageManagerImpl.java
index 01d5331..6749496 100644
--- a/server/src/com/cloud/network/ExternalLoadBalancerUsageManagerImpl.java
+++ b/server/src/com/cloud/network/ExternalLoadBalancerUsageManagerImpl.java
@@ -355,7 +355,7 @@ public class ExternalLoadBalancerUsageManagerImpl implements ExternalLoadBalance
long zoneId = zone.getId();
- List<NetworkVO> networksForAccount = _networkDao.listBy(accountId, zoneId, Network.GuestType.Isolated);
+ List<NetworkVO> networksForAccount = _networkDao.listByZoneAndGuestType(accountId, zoneId, Network.GuestType.Isolated, false);
if (networksForAccount == null) {
continue;
}
@@ -559,4 +559,4 @@ public class ExternalLoadBalancerUsageManagerImpl implements ExternalLoadBalance
}
}
}
-}
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/f59b935d/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 961fabc..c310919 100755
--- a/server/src/com/cloud/network/NetworkManagerImpl.java
+++ b/server/src/com/cloud/network/NetworkManagerImpl.java
@@ -1016,7 +1016,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
@Override
public List<? extends Network> getIsolatedNetworksOwnedByAccountInZone(long zoneId, Account owner) {
- return _networksDao.listBy(owner.getId(), zoneId, Network.GuestType.Isolated);
+ return _networksDao.listByZoneAndGuestType(owner.getId(), zoneId, Network.GuestType.Isolated, false);
}
@Override
@@ -4480,7 +4480,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
@Override
public String getIpOfNetworkElementInVirtualNetwork(long accountId, long dataCenterId) {
- List<NetworkVO> virtualNetworks = _networksDao.listBy(accountId, dataCenterId, Network.GuestType.Isolated);
+ List<NetworkVO> virtualNetworks = _networksDao.listByZoneAndGuestType(accountId, dataCenterId, Network.GuestType.Isolated, false);
if (virtualNetworks.isEmpty()) {
s_logger.trace("Unable to find default Virtual network account id=" + accountId);
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/f59b935d/server/src/com/cloud/network/dao/NetworkDao.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/dao/NetworkDao.java b/server/src/com/cloud/network/dao/NetworkDao.java
index 56edc6e..63b6f08 100644
--- a/server/src/com/cloud/network/dao/NetworkDao.java
+++ b/server/src/com/cloud/network/dao/NetworkDao.java
@@ -35,7 +35,7 @@ public interface NetworkDao extends GenericDao<NetworkVO, Long> {
List<NetworkVO> listBy(long accountId, long dataCenterId, String cidr);
- List<NetworkVO> listBy(long accountId, long dataCenterId, Network.GuestType type);
+ List<NetworkVO> listByZoneAndGuestType(long accountId, long dataCenterId, Network.GuestType type, Boolean isSystem);
NetworkVO persist(NetworkVO network, boolean gc, Map<String, String> serviceProviderMap);
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/f59b935d/server/src/com/cloud/network/dao/NetworkDaoImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/dao/NetworkDaoImpl.java b/server/src/com/cloud/network/dao/NetworkDaoImpl.java
index 1796559..7664817 100644
--- a/server/src/com/cloud/network/dao/NetworkDaoImpl.java
+++ b/server/src/com/cloud/network/dao/NetworkDaoImpl.java
@@ -99,6 +99,9 @@ public class NetworkDaoImpl extends GenericDaoBase<NetworkVO, Long> implements N
AllFieldsSearch.and("physicalNetwork", AllFieldsSearch.entity().getPhysicalNetworkId(), Op.EQ);
AllFieldsSearch.and("broadcastUri", AllFieldsSearch.entity().getBroadcastUri(), Op.EQ);
AllFieldsSearch.and("vpcId", AllFieldsSearch.entity().getVpcId(), Op.EQ);
+ SearchBuilder<NetworkOfferingVO> join1 = _ntwkOffDao.createSearchBuilder();
+ join1.and("isSystem", join1.entity().isSystemOnly(), Op.EQ);
+ AllFieldsSearch.join("offerings", join1, AllFieldsSearch.entity().getNetworkOfferingId(), join1.entity().getId(), JoinBuilder.JoinType.INNER);
AllFieldsSearch.done();
AccountSearch = createSearchBuilder();
@@ -139,12 +142,11 @@ public class NetworkDaoImpl extends GenericDaoBase<NetworkVO, Long> implements N
CountByZoneAndURI.done();
-
ZoneSecurityGroupSearch = createSearchBuilder();
ZoneSecurityGroupSearch.and("dataCenterId", ZoneSecurityGroupSearch.entity().getDataCenterId(), Op.EQ);
- SearchBuilder<NetworkServiceMapVO> join1 = _ntwkSvcMap.createSearchBuilder();
- join1.and("service", join1.entity().getService(), Op.EQ);
- ZoneSecurityGroupSearch.join("services", join1, ZoneSecurityGroupSearch.entity().getId(), join1.entity().getNetworkId(), JoinBuilder.JoinType.INNER);
+ SearchBuilder<NetworkServiceMapVO> offJoin = _ntwkSvcMap.createSearchBuilder();
+ offJoin.and("service", offJoin.entity().getService(), Op.EQ);
+ ZoneSecurityGroupSearch.join("services", offJoin, ZoneSecurityGroupSearch.entity().getId(), offJoin.entity().getNetworkId(), JoinBuilder.JoinType.INNER);
ZoneSecurityGroupSearch.done();
CountBy = createSearchBuilder(Integer.class);
@@ -195,13 +197,18 @@ public class NetworkDaoImpl extends GenericDaoBase<NetworkVO, Long> implements N
}
@Override
- public List<NetworkVO> listBy(long accountId, long dataCenterId, Network.GuestType type) {
+ public List<NetworkVO> listByZoneAndGuestType(long accountId, long dataCenterId, Network.GuestType type, Boolean isSystem) {
SearchCriteria<NetworkVO> sc = AllFieldsSearch.create();
sc.setParameters("datacenter", dataCenterId);
sc.setParameters("account", accountId);
if (type != null) {
sc.setParameters("guestType", type);
}
+
+ if (isSystem != null) {
+ sc.setJoinParameters("offerings", "isSystem", isSystem);
+ }
+
return listBy(sc, null);
}