private List<CommandLineThreadWrapper> executeCommands(final ExecutorService processExecutor, List<String> commandLines)
    throws SystemException {
    List <CommandLineThreadWrapper> commandLineThreadWrappers = new ArrayList<>();
    try {
      for (String commandLine : commandLines) {
        CommandLineThreadWrapper commandLineThreadWrapper = executeCommand(processExecutor,commandLine);
        commandLineThreadWrappers.add(commandLineThreadWrapper);
      }
    } catch (IOException e) {
      LOG.error("Failed to run generate client configs script for components");
      processExecutor.shutdownNow();
      throw new SystemException("Failed to run generate client configs script for components");
    }
    return  commandLineThreadWrappers;
  }
Execute all external script commands
@param processExecutor {@link ExecutorService} executes the process when threads are available in the pool
@param commandLines List of {String} commands that starts the python process to compress config files
@return {@link CommandLineThreadWrapper}
@throws SystemException
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClientConfigResourceProvider.java