code: function _squeue(engine, paramSqueue = '') {
      // if (!paramSqueue) paramSqueue = '';
      //paramSqueue = ''; // to remove when it will be take into account in the implementation
      let emitter = new events.EventEmitter();
      let squeueRes_dict = {
          'id': [],
          'partition': [],
          'nameUUID': [],
          'status': []
      };
      // squeue command
      let exec_cmd = childP.exec;
      exec_cmd(engine.queueBin + '  -o \"\%i \%P \%j \%t\" ' + paramSqueue, function (err, stdout, stderr) {
          if (err) {
              emitter.emit('listError', err);
              return;
          }
          let squeueRes_str = ('' + stdout).replace(/\"/g, ''); // squeue results
          //logger.debug(squeueRes_str);
          squeueRes_str.split('\n')
              .filter(function (jobArray, i) {
              return jobArray.length > 0 && i > 0;
          })
              .map(function (jobLine, i) {
              return jobLine.split(' ').filter(function (val) {
                  return val != ''; // keep values that are not empty
              });
          })
              .map(function (jobArray, i) {
              squeueRes_dict['id'].push(jobArray[0]); // job ID gived by slurm
              squeueRes_dict['partition'].push(jobArray[1]); // gpu, cpu, etc.
              squeueRes_dict['nameUUID'].push(jobArray[2]); // unique job ID gived by Nslurm (uuid)
              squeueRes_dict['status'].push(jobArray[3]); // P, R, CF, CG, etc.
          });
          emitter.emit('data', squeueRes_dict);
      });
      return emitter;
  }
docs: /*
  Realize an asynchronous squeue command on slurm according a parameter (or not).
  Data are formated into a literal.
  @paramSqueue {string} optional. For example : ' -o "%j %i" ' // not implemented yet