You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by bh...@apache.org on 2015/03/17 11:26:17 UTC
[15/50] git commit: updated refs/heads/master to 3c429ee
Fix array index problems on the ACL command.
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/159088cb
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/159088cb
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/159088cb
Branch: refs/heads/master
Commit: 159088cb9044d09d4bddf3b4cf93b493f21828fe
Parents: c828653
Author: wilderrodrigues <wr...@schubergphilis.com>
Authored: Thu Jan 29 14:55:06 2015 +0100
Committer: wilderrodrigues <wr...@schubergphilis.com>
Committed: Mon Mar 16 11:39:55 2015 +0100
----------------------------------------------------------------------
.../facade/SetNetworkAclConfigItem.java | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/159088cb/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetNetworkAclConfigItem.java
----------------------------------------------------------------------
diff --git a/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetNetworkAclConfigItem.java b/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetNetworkAclConfigItem.java
index d1afb7c..7247766 100644
--- a/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetNetworkAclConfigItem.java
+++ b/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetNetworkAclConfigItem.java
@@ -22,6 +22,8 @@ package com.cloud.agent.resource.virtualnetwork.facade;
import java.util.ArrayList;
import java.util.List;
+import org.apache.log4j.Logger;
+
import com.cloud.agent.api.routing.NetworkElementCommand;
import com.cloud.agent.api.routing.SetNetworkACLCommand;
import com.cloud.agent.api.to.NicTO;
@@ -39,6 +41,8 @@ import com.cloud.utils.net.NetUtils;
public class SetNetworkAclConfigItem extends AbstractConfigItemFacade {
+ public static final Logger s_logger = Logger.getLogger(SetNetworkAclConfigItem.class.getName());
+
@Override
public List<ConfigItem> generateConfig(final NetworkElementCommand cmd) {
final SetNetworkACLCommand command = (SetNetworkACLCommand) cmd;
@@ -71,7 +75,15 @@ public class SetNetworkAclConfigItem extends AbstractConfigItemFacade {
aclRule = new AllAclRule(ruleParts[4], "ACCEPT".equals(ruleParts[5]));
break;
default:
- aclRule = new ProtocolAclRule(ruleParts[4], "ACCEPT".equals(ruleParts[5]), Integer.parseInt(ruleParts[1]));
+ // Fuzzy logic in cloudstack: if we do not handle it here, it will throw an exception and work okay (with a stack trace on the console).
+ // If we check the size of the array, it will fail to setup the network.
+ // So, let's catch the exception and continue in the loop.
+ try {
+ aclRule = new ProtocolAclRule(ruleParts[5], false, Integer.parseInt(ruleParts[1]));
+ } catch (final Exception e) {
+ s_logger.warn("Problem occured when reading the entries in the ruleParts array. Actual array size is '" + ruleParts.length + "', but trying to read from index 5.");
+ continue;
+ }
}
if ("Ingress".equals(ruleParts[0])) {
ingressRules.add(aclRule);