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/08/02 04:08:32 UTC

[3/44] Merge branch 'master' into vpc

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/ce9f1afa/server/src/com/cloud/network/NetworkManagerImpl.java
----------------------------------------------------------------------
diff --cc server/src/com/cloud/network/NetworkManagerImpl.java
index 5ffbdcd,f9c2717..f60008b
--- a/server/src/com/cloud/network/NetworkManagerImpl.java
+++ b/server/src/com/cloud/network/NetworkManagerImpl.java
@@@ -3044,8 -2778,13 +3040,13 @@@ public class NetworkManagerImpl impleme
              skipProjectNetworks = false;
          }
  
+         if (domainId != null) {
+             path = _domainDao.findById(domainId).getPath();
+         } else {
 -            path = _domainDao.findById(caller.getDomainId()).getPath();
 +        path = _domainDao.findById(caller.getDomainId()).getPath();
-         if (listAll) {
+         } 
+         
+         if (listAll && domainId == null) {
              isRecursive = true;
          }
  
@@@ -3091,38 -2822,50 +3092,50 @@@
              sb.join("domainSearch", domainSearch, sb.entity().getDomainId(), domainSearch.entity().getId(), JoinBuilder.JoinType.INNER);
          }
  
-         if (skipProjectNetworks) {
+ 
 -        SearchBuilder<AccountVO> accountSearch = _accountDao.createSearchBuilder();
 +            SearchBuilder<AccountVO> accountSearch = _accountDao.createSearchBuilder();
-             accountSearch.and("type", accountSearch.entity().getType(), SearchCriteria.Op.NEQ);
+         accountSearch.and("typeNEQ", accountSearch.entity().getType(), SearchCriteria.Op.NEQ);
+         accountSearch.and("typeEQ", accountSearch.entity().getType(), SearchCriteria.Op.EQ);
+         
+         
 -        sb.join("accountSearch", accountSearch, sb.entity().getAccountId(), accountSearch.entity().getId(), JoinBuilder.JoinType.INNER);
 -        
 +            sb.join("accountSearch", accountSearch, sb.entity().getAccountId(), accountSearch.entity().getId(), JoinBuilder.JoinType.INNER);
-         }
 +
          List<NetworkVO> networksToReturn = new ArrayList<NetworkVO>();
  
 -        if (isSystem == null || !isSystem) {     
 +        if (isSystem == null || !isSystem) {
-             // Get domain level networks
-             if (domainId != null) {
-                 networksToReturn
-                         .addAll(listDomainLevelNetworks(
-                                 buildNetworkSearchCriteria(sb, keyword, id, isSystem, zoneId, guestIpType, trafficType,
-                                         physicalNetworkId, aclType, skipProjectNetworks, restartRequired, specifyIpRanges, vpcId, tags), searchFilter,
-                                 domainId));
-             }
- 
              if (!permittedAccounts.isEmpty()) {
+                 //get account level networks
                  networksToReturn.addAll(listAccountSpecificNetworks(
                          buildNetworkSearchCriteria(sb, keyword, id, isSystem, zoneId, guestIpType, trafficType, 
 -                                physicalNetworkId, aclType, skipProjectNetworks, restartRequired, specifyIpRanges, tags), searchFilter,
 -                                permittedAccounts));
 +                                physicalNetworkId, aclType, skipProjectNetworks, restartRequired, specifyIpRanges, vpcId, tags), searchFilter,
 +                        permittedAccounts));
-             } else if (domainId == null) {
+                 //get domain level networks
+                 if (domainId != null) {
+                     networksToReturn
+                     .addAll(listDomainLevelNetworks(
+                             buildNetworkSearchCriteria(sb, keyword, id, isSystem, zoneId, guestIpType, trafficType,
 -                                    physicalNetworkId, aclType, true, restartRequired, specifyIpRanges, tags), searchFilter,
++                                    physicalNetworkId, aclType, true, restartRequired, specifyIpRanges, vpcId, tags), searchFilter,
+                                     domainId, false));
+                 }
+             } else {
+                 //add account specific networks
                  networksToReturn.addAll(listAccountSpecificNetworksByDomainPath(
                          buildNetworkSearchCriteria(sb, keyword, id, isSystem, zoneId, guestIpType, trafficType, 
 -                                physicalNetworkId, aclType, skipProjectNetworks, restartRequired, specifyIpRanges, tags), searchFilter, path,
 -                                isRecursive));
 +                                physicalNetworkId, aclType, skipProjectNetworks, restartRequired, specifyIpRanges, vpcId, tags), searchFilter, path,
 +                        isRecursive));
+                 //add domain specific networks of domain + parent domains
                  networksToReturn.addAll(listDomainSpecificNetworksByDomainPath(
                          buildNetworkSearchCriteria(sb, keyword, id, isSystem, zoneId, guestIpType, trafficType, 
 -                                physicalNetworkId, aclType, true, restartRequired, specifyIpRanges, tags), searchFilter, path,
 +                                physicalNetworkId, aclType, skipProjectNetworks, restartRequired, specifyIpRanges, vpcId, tags), searchFilter, path,
                                  isRecursive));
+                 //add networks of subdomains
+                 if (domainId == null) {
+                     networksToReturn
+                     .addAll(listDomainLevelNetworks(
+                             buildNetworkSearchCriteria(sb, keyword, id, isSystem, zoneId, guestIpType, trafficType,
 -                                    physicalNetworkId, aclType, true, restartRequired, specifyIpRanges, tags), searchFilter,
++                                    physicalNetworkId, aclType, true, restartRequired, specifyIpRanges, vpcId, tags), searchFilter,
+                                     caller.getDomainId(), true));
+                 }
              }
          } else {
              networksToReturn = _networksDao.search(buildNetworkSearchCriteria(sb, keyword, id, isSystem, zoneId,
@@@ -3223,9 -2966,11 +3236,11 @@@
          }
  
          if (skipProjectNetworks) {
-             sc.setJoinParameters("accountSearch", "type", Account.ACCOUNT_TYPE_PROJECT);
+             sc.setJoinParameters("accountSearch", "typeNEQ", Account.ACCOUNT_TYPE_PROJECT);
+         } else {
+             sc.setJoinParameters("accountSearch", "typeEQ", Account.ACCOUNT_TYPE_PROJECT);
          }
 -        
 +
          if (restartRequired != null) {
              sc.addAnd("restartRequired", SearchCriteria.Op.EQ, restartRequired);
          }
@@@ -3302,21 -3046,38 +3320,38 @@@
          sc.addAnd("id", SearchCriteria.Op.SC, accountSC);
          return _networksDao.search(sc, searchFilter);
      }
 -    
 +
-     private List<NetworkVO> listDomainSpecificNetworksByDomainPath(SearchCriteria<NetworkVO> sc, Filter searchFilter, String path, boolean isRecursive) {
-         SearchCriteria<NetworkVO> accountSC = _networksDao.createSearchCriteria();
-         accountSC.addAnd("aclType", SearchCriteria.Op.EQ, ACLType.Domain.toString());
+     private List<NetworkVO> listDomainSpecificNetworksByDomainPath(SearchCriteria<NetworkVO> sc, Filter searchFilter,
+             String path, boolean isRecursive) {
  
+         Set<Long> allowedDomains = new HashSet<Long>();
 -        if (path != null) { 
 +        if (path != null) {
              if (isRecursive) {
-                 sc.setJoinParameters("domainSearch", "path", path + "%");
+                 allowedDomains = _domainMgr.getDomainChildrenIds(path);
              } else {
-                 sc.setJoinParameters("domainSearch", "path", path);
+                 Domain domain = _domainDao.findDomainByPath(path);
+                 allowedDomains.add(domain.getId());
              }
          }
 -        
 +
-         sc.addAnd("id", SearchCriteria.Op.SC, accountSC);
+         List<Long> networkIds = new ArrayList<Long>();
+         
+         List<NetworkDomainVO> maps = _networkDomainDao.listDomainNetworkMapByDomain(allowedDomains.toArray());
+ 
+         for (NetworkDomainVO map : maps) {
+             networkIds.add(map.getNetworkId());
+         }
+ 
+         if (!networkIds.isEmpty()) {
+             SearchCriteria<NetworkVO> domainSC = _networksDao.createSearchCriteria();
+             domainSC.addAnd("id", SearchCriteria.Op.IN, networkIds.toArray());
+             domainSC.addAnd("aclType", SearchCriteria.Op.EQ, ACLType.Domain.toString());
+ 
+             sc.addAnd("id", SearchCriteria.Op.SC, domainSC);
 -            return _networksDao.search(sc, searchFilter);
 +        return _networksDao.search(sc, searchFilter);
+         } else {
+             return new ArrayList<NetworkVO>();
+         }
      }
  
      @Override

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/ce9f1afa/server/src/com/cloud/vm/UserVmManagerImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/ce9f1afa/setup/db/create-schema.sql
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/ce9f1afa/ui/index.jsp
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/ce9f1afa/ui/scripts/zoneWizard.js
----------------------------------------------------------------------
diff --cc ui/scripts/zoneWizard.js
index 73e06ff,261668f..0ad0cc4
--- a/ui/scripts/zoneWizard.js
+++ b/ui/scripts/zoneWizard.js
@@@ -2158,9 -2047,9 +2158,9 @@@
  											alert("addNetworkServiceProvider&name=Netscaler failed. Error: " + errorMsg);
  										}
  									});
- 								});
- 							}						
 -								}, 3000);
 +						}, 3000); 								
+ 							}						
+ 						}); 								
  						//add netscaler provider (end)
  					}
  					else { //selectedNetworkOfferingHavingNetscaler == false