private Answer execute(LoadBalancerConfigCommand cmd) {
    String routerIp = cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP);
    File tmpCfgFile = null;
    try {
      String cfgFilePath = "";
      LoadBalancerConfigurator cfgtr = new HAProxyConfigurator();
      String[] config = cfgtr.generateConfiguration(cmd);
      String[][] rules = cfgtr.generateFwRules(cmd);
      if (routerIp != null) {
        tmpCfgFile = File.createTempFile(routerIp.replace('.', '_'), "cfg");
        final PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(tmpCfgFile)));
        for (int i = 0; i < config.length; i++) {
          out.println(config[i]);
        }
        out.close();
        cfgFilePath = tmpCfgFile.getAbsolutePath();
      }

      final String result =
          setLoadBalancerConfig(
              cfgFilePath,
              rules[LoadBalancerConfigurator.ADD],
              rules[LoadBalancerConfigurator.REMOVE],
              rules[LoadBalancerConfigurator.STATS],
              routerIp);

      return new Answer(cmd, result == null, result);
    } catch (final IOException e) {
      return new Answer(cmd, false, e.getMessage());
    } finally {
      if (tmpCfgFile != null) {
        tmpCfgFile.delete();
      }
    }
  }