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 2013/11/26 00:31:55 UTC

[1/2] git commit: updated refs/heads/4.3 to abb95c1

Updated Branches:
  refs/heads/4.3 437f49cf8 -> abb95c101


Resource metadata - fixed the bug in removeResourceDetail API - when "key" parameter was passed in, used to remove the details matching the key, for all the resources, not just the one defined by resource_id


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/abb95c10
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/abb95c10
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/abb95c10

Branch: refs/heads/4.3
Commit: abb95c10166dcbc3f842b91a972e3ebb5570ebbc
Parents: f5c29c0
Author: Alena Prokharchyk <al...@citrix.com>
Authored: Mon Nov 25 14:36:02 2013 -0800
Committer: Alena Prokharchyk <al...@citrix.com>
Committed: Mon Nov 25 15:30:55 2013 -0800

----------------------------------------------------------------------
 .../resourcedetail/ResourceDetailsDaoBase.java  | 26 ++++++++------------
 1 file changed, 10 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/abb95c10/engine/schema/src/org/apache/cloudstack/resourcedetail/ResourceDetailsDaoBase.java
----------------------------------------------------------------------
diff --git a/engine/schema/src/org/apache/cloudstack/resourcedetail/ResourceDetailsDaoBase.java b/engine/schema/src/org/apache/cloudstack/resourcedetail/ResourceDetailsDaoBase.java
index 4ecebf8..2d08644 100644
--- a/engine/schema/src/org/apache/cloudstack/resourcedetail/ResourceDetailsDaoBase.java
+++ b/engine/schema/src/org/apache/cloudstack/resourcedetail/ResourceDetailsDaoBase.java
@@ -27,10 +27,9 @@ import com.cloud.utils.db.SearchBuilder;
 import com.cloud.utils.db.SearchCriteria;
 import com.cloud.utils.db.TransactionLegacy;
 
-
-public abstract class ResourceDetailsDaoBase<R extends ResourceDetail> extends GenericDaoBase<R, Long>{
+public abstract class ResourceDetailsDaoBase<R extends ResourceDetail> extends GenericDaoBase<R, Long> {
     private SearchBuilder<R> AllFieldsSearch;
-    
+
     public ResourceDetailsDaoBase() {
         AllFieldsSearch = createSearchBuilder();
         AllFieldsSearch.and("resourceId", AllFieldsSearch.entity().getResourceId(), SearchCriteria.Op.EQ);
@@ -43,15 +42,14 @@ public abstract class ResourceDetailsDaoBase<R extends ResourceDetail> extends G
         SearchCriteria<R> sc = AllFieldsSearch.create();
         sc.setParameters("resourceId", resourceId);
         sc.setParameters("name", name);
-        
+
         return findOneBy(sc);
     }
 
-
     public Map<String, String> listDetailsKeyPairs(long resourceId) {
         SearchCriteria<R> sc = AllFieldsSearch.create();
         sc.setParameters("resourceId", resourceId);
-        
+
         List<R> results = search(sc, null);
         Map<String, String> details = new HashMap<String, String>(results.size());
         for (R result : results) {
@@ -68,23 +66,21 @@ public abstract class ResourceDetailsDaoBase<R extends ResourceDetail> extends G
         return results;
     }
 
-
     public void removeDetails(long resourceId) {
         SearchCriteria<R> sc = AllFieldsSearch.create();
         sc.setParameters("resourceId", resourceId);
         remove(sc);
     }
 
-    
     public void removeDetail(long resourceId, String key) {
-        if (key != null){
+        if (key != null) {
             SearchCriteria<R> sc = AllFieldsSearch.create();
+            sc.setParameters("resourceId", resourceId);
             sc.setParameters("name", key);
             remove(sc);
         }
     }
 
-
     public void saveDetails(List<R> details) {
         if (details.isEmpty()) {
             return;
@@ -94,14 +90,13 @@ public abstract class ResourceDetailsDaoBase<R extends ResourceDetail> extends G
         SearchCriteria<R> sc = AllFieldsSearch.create();
         sc.setParameters("resourceId", details.get(0).getResourceId());
         expunge(sc);
-        
+
         for (R detail : details) {
             persist(detail);
         }
-        
+
         txn.commit();
     }
-    
 
     protected void addDetail(R detail) {
         if (detail == null) {
@@ -113,12 +108,12 @@ public abstract class ResourceDetailsDaoBase<R extends ResourceDetail> extends G
         }
         persist(detail);
     }
-    
+
     public Map<String, String> listDetailsKeyPairs(long resourceId, boolean forDisplay) {
         SearchCriteria<R> sc = AllFieldsSearch.create();
         sc.setParameters("resourceId", resourceId);
         sc.setParameters("display", forDisplay);
-        
+
         List<R> results = search(sc, null);
         Map<String, String> details = new HashMap<String, String>(results.size());
         for (R result : results) {
@@ -126,7 +121,6 @@ public abstract class ResourceDetailsDaoBase<R extends ResourceDetail> extends G
         }
         return details;
     }
-    
 
     public List<R> listDetails(long resourceId, boolean forDisplay) {
         SearchCriteria<R> sc = AllFieldsSearch.create();


[2/2] git commit: updated refs/heads/4.3 to abb95c1

Posted by al...@apache.org.
ListPortFowardingRules: added networkId to the list of optional parameters to list by


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/f5c29c0f
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/f5c29c0f
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/f5c29c0f

Branch: refs/heads/4.3
Commit: f5c29c0f1a182e646949a942e93cb0123f109592
Parents: 437f49c
Author: Alena Prokharchyk <al...@citrix.com>
Authored: Mon Nov 11 10:11:13 2013 -0800
Committer: Alena Prokharchyk <al...@citrix.com>
Committed: Mon Nov 25 15:30:55 2013 -0800

----------------------------------------------------------------------
 .../user/firewall/ListPortForwardingRulesCmd.java       |  9 +++++++++
 .../cloudstack/api/response/FirewallRuleResponse.java   |  7 +++++++
 server/src/com/cloud/api/ApiResponseHelper.java         |  3 +++
 .../src/com/cloud/network/rules/RulesManagerImpl.java   | 12 +++++++++---
 4 files changed, 28 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f5c29c0f/api/src/org/apache/cloudstack/api/command/user/firewall/ListPortForwardingRulesCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/firewall/ListPortForwardingRulesCmd.java b/api/src/org/apache/cloudstack/api/command/user/firewall/ListPortForwardingRulesCmd.java
index 9fd4e45..7e96e0b 100644
--- a/api/src/org/apache/cloudstack/api/command/user/firewall/ListPortForwardingRulesCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/firewall/ListPortForwardingRulesCmd.java
@@ -26,6 +26,7 @@ import org.apache.cloudstack.api.Parameter;
 import org.apache.cloudstack.api.response.FirewallRuleResponse;
 import org.apache.cloudstack.api.response.IPAddressResponse;
 import org.apache.cloudstack.api.response.ListResponse;
+import org.apache.cloudstack.api.response.NetworkResponse;
 import org.apache.log4j.Logger;
 
 import com.cloud.network.rules.PortForwardingRule;
@@ -48,6 +49,10 @@ public class ListPortForwardingRulesCmd extends BaseListTaggedResourcesCmd {
     @Parameter(name=ApiConstants.IP_ADDRESS_ID, type=CommandType.UUID, entityType = IPAddressResponse.class,
             description="the id of IP address of the port forwarding services")
     private Long ipAddressId;
+    
+    @Parameter(name=ApiConstants.NETWORK_ID, type=CommandType.UUID, entityType = NetworkResponse.class,
+            description="list port forwarding rules for ceratin network", since="4.3")
+    private Long networkId;
 
     /////////////////////////////////////////////////////
     /////////////////// Accessors ///////////////////////
@@ -60,6 +65,10 @@ public class ListPortForwardingRulesCmd extends BaseListTaggedResourcesCmd {
     public Long getId() {
         return id;
     }
+    
+    public Long getNetworkId() {
+        return networkId;
+    }
 
     /////////////////////////////////////////////////////
     /////////////// API Implementation///////////////////

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f5c29c0f/api/src/org/apache/cloudstack/api/response/FirewallRuleResponse.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/response/FirewallRuleResponse.java b/api/src/org/apache/cloudstack/api/response/FirewallRuleResponse.java
index 787410a..20ea407 100644
--- a/api/src/org/apache/cloudstack/api/response/FirewallRuleResponse.java
+++ b/api/src/org/apache/cloudstack/api/response/FirewallRuleResponse.java
@@ -73,6 +73,9 @@ public class FirewallRuleResponse extends BaseResponse {
 
     @SerializedName(ApiConstants.VM_GUEST_IP) @Param(description="the vm ip address for the port forwarding rule")
     private String destNatVmIp;
+    
+    @SerializedName(ApiConstants.NETWORK_ID) @Param(description="the id of the guest network the port forwarding rule belongs to")
+    private String networkId;
 
 
     public String getDestNatVmIp() {
@@ -196,4 +199,8 @@ public class FirewallRuleResponse extends BaseResponse {
     public void setTags(List<ResourceTagResponse> tags) {
         this.tags = tags;
     }
+
+    public void setNetworkId(String networkId) {
+        this.networkId = networkId;
+    }
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f5c29c0f/server/src/com/cloud/api/ApiResponseHelper.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/ApiResponseHelper.java b/server/src/com/cloud/api/ApiResponseHelper.java
index 409448d..b74ebf1 100755
--- a/server/src/com/cloud/api/ApiResponseHelper.java
+++ b/server/src/com/cloud/api/ApiResponseHelper.java
@@ -1024,6 +1024,9 @@ public class ApiResponseHelper implements ResponseGenerator {
         response.setPublicEndPort(Integer.toString(fwRule.getSourcePortEnd()));
         List<String> cidrs = ApiDBUtils.findFirewallSourceCidrs(fwRule.getId());
         response.setCidrList(StringUtils.join(cidrs, ","));
+        
+        Network guestNtwk = ApiDBUtils.findNetworkById(fwRule.getNetworkId());
+        response.setNetworkId(guestNtwk.getUuid());
 
         IpAddress ip = ApiDBUtils.findIpAddressById(fwRule.getSourceIpAddressId());
         response.setPublicIpAddressId(ip.getUuid());

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f5c29c0f/server/src/com/cloud/network/rules/RulesManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/rules/RulesManagerImpl.java b/server/src/com/cloud/network/rules/RulesManagerImpl.java
index 2ea1021..5808938 100755
--- a/server/src/com/cloud/network/rules/RulesManagerImpl.java
+++ b/server/src/com/cloud/network/rules/RulesManagerImpl.java
@@ -25,10 +25,10 @@ import java.util.Set;
 import javax.ejb.Local;
 import javax.inject.Inject;
 
-import org.apache.log4j.Logger;
 import org.apache.cloudstack.api.command.user.firewall.ListPortForwardingRulesCmd;
 import org.apache.cloudstack.context.CallContext;
 import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
+import org.apache.log4j.Logger;
 
 import com.cloud.configuration.ConfigurationManager;
 import com.cloud.domain.dao.DomainDao;
@@ -75,10 +75,10 @@ import com.cloud.utils.db.Filter;
 import com.cloud.utils.db.JoinBuilder;
 import com.cloud.utils.db.SearchBuilder;
 import com.cloud.utils.db.SearchCriteria;
-import com.cloud.utils.db.TransactionCallbackNoReturn;
-import com.cloud.utils.db.TransactionCallbackWithException;
 import com.cloud.utils.db.SearchCriteria.Op;
 import com.cloud.utils.db.Transaction;
+import com.cloud.utils.db.TransactionCallbackNoReturn;
+import com.cloud.utils.db.TransactionCallbackWithException;
 import com.cloud.utils.db.TransactionCallbackWithExceptionNoReturn;
 import com.cloud.utils.db.TransactionStatus;
 import com.cloud.utils.exception.CloudRuntimeException;
@@ -783,6 +783,7 @@ public class RulesManagerImpl extends ManagerBase implements RulesManager, Rules
         Long ipId = cmd.getIpAddressId();
         Long id = cmd.getId();
         Map<String, String> tags = cmd.getTags();
+        Long networkId = cmd.getNetworkId();
 
         Account caller = CallContext.current().getCallingAccount();
         List<Long> permittedAccounts = new ArrayList<Long>();
@@ -808,6 +809,7 @@ public class RulesManagerImpl extends ManagerBase implements RulesManager, Rules
         sb.and("id", sb.entity().getId(), Op.EQ);
         sb.and("ip", sb.entity().getSourceIpAddressId(), Op.EQ);
         sb.and("purpose", sb.entity().getPurpose(), Op.EQ);
+        sb.and("networkId", sb.entity().getNetworkId(), Op.EQ);
 
         if (tags != null && !tags.isEmpty()) {
             SearchBuilder<ResourceTagVO> tagSearch = _resourceTagDao.createSearchBuilder();
@@ -842,6 +844,10 @@ public class RulesManagerImpl extends ManagerBase implements RulesManager, Rules
         if (ipId != null) {
             sc.setParameters("ip", ipId);
         }
+        
+        if (networkId != null) {
+            sc.setParameters("networkId", networkId);
+        }
 
         sc.setParameters("purpose", Purpose.PortForwarding);