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);
     }