private Answer execute(SetFirewallRulesCommand cmd) {
    String[] results = new String[cmd.getRules().length];
    for (int i = 0; i < cmd.getRules().length; i++) {
      results[i] = "Failed";
    }
    String routerIp = cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP);

    if (routerIp == null) {
      return new SetFirewallRulesAnswer(cmd, false, results);
    }

    String[][] rules = cmd.generateFwRules();
    final Script command = new Script(_firewallPath, _timeout, s_logger);
    command.add(routerIp);
    command.add("-F");

    StringBuilder sb = new StringBuilder();
    String[] fwRules = rules[0];
    if (fwRules.length > 0) {
      for (int i = 0; i < fwRules.length; i++) {
        sb.append(fwRules[i]).append(',');
      }
      command.add("-a", sb.toString());
    }

    String result = command.execute();
    if (result != null) {
      return new SetFirewallRulesAnswer(cmd, false, results);
    }
    return new SetFirewallRulesAnswer(cmd, true, null);
  }