Ejemplo n.º 1
0
  public ForkEnvironment createForkEnvironment() throws InvalidScriptException {
    ForkEnvironment forkEnv = new ForkEnvironment();
    forkEnv.setJavaHome(javaHome);
    forkEnv.setWorkingDir(workingDir);

    List<String> additionalClasspath = getAdditionalClasspath();
    if (additionalClasspath != null) {
      for (String classpath : additionalClasspath) {
        forkEnv.addAdditionalClasspath(classpath);
      }
    }

    List<String> jvmArguments = getJvmArguments();
    if (jvmArguments != null) {
      for (String jvmArg : jvmArguments) {
        forkEnv.addJVMArgument(jvmArg);
      }
    }

    List<EnvironmentModifierData> envModifiers = getEnvModifiers();

    if (envModifiers != null) {
      for (EnvironmentModifierData envModifier : envModifiers) {
        forkEnv.addSystemEnvironmentVariable(envModifier.getName(), envModifier.getValue());
      }
    }
    if (envScript != null) {
      forkEnv.setEnvScript(envScript.createSimpleScript());
    }
    return forkEnv;
  }
Ejemplo n.º 2
0
  InternalTask toInternalTask(InternalJob internalJob) throws InvalidScriptException {
    TaskId taskId = createTaskId(internalJob);

    InternalTask internalTask;

    if (taskType.equals(SCRIPT_TASK)) {
      internalTask = new InternalScriptTask();
    } else if (taskType.equals(FORKED_SCRIPT_TASK)) {
      internalTask = new InternalForkedScriptTask();
    } else {
      throw new IllegalStateException("Unexpected stored task type: " + taskType);
    }

    internalTask.setId(taskId);
    internalTask.setDescription(getDescription());
    internalTask.setStatus(getTaskStatus());
    internalTask.setJobInfo(internalJob.getJobInfo());
    internalTask.setName(getTaskName());
    internalTask.setExecutionDuration(getExecutionDuration());
    internalTask.setFinishedTime(getFinishedTime());
    internalTask.setStartTime(getStartTime());
    internalTask.setExecutionHostName(getExecutionHostName());
    internalTask.setCancelJobOnError(isCancelJobOnError());
    internalTask.setPreciousLogs(isPreciousLogs());
    internalTask.setPreciousResult(isPreciousResult());
    internalTask.setRunAsMe(isRunAsMe());
    internalTask.setWallTime(getWallTime());
    internalTask.setMaxNumberOfExecution(getMaxNumberOfExecution());
    internalTask.setRestartTaskOnError(getRestartMode());
    internalTask.setFlowBlock(getFlowBlock());
    internalTask.setIterationIndex(getIteration());
    internalTask.setReplicationIndex(getReplication());
    internalTask.setMatchingBlock(getMatchingBlock());

    ForkEnvironment forkEnv = new ForkEnvironment();
    forkEnv.setJavaHome(javaHome);

    List<String> additionalClasspath = getAdditionalClasspath();
    if (additionalClasspath != null) {
      for (String classpath : additionalClasspath) {
        forkEnv.addAdditionalClasspath(classpath);
      }
    }

    List<String> jvmArguments = getJvmArguments();
    if (jvmArguments != null) {
      for (String jvmArg : jvmArguments) {
        forkEnv.addJVMArgument(jvmArg);
      }
    }

    List<EnvironmentModifierData> envModifiers = getEnvModifiers();

    if (envModifiers != null) {
      for (EnvironmentModifierData envModifier : envModifiers) {
        forkEnv.addSystemEnvironmentVariable(envModifier.getName(), envModifier.getValue());
      }
    }

    if (envScript != null) {
      forkEnv.setEnvScript(envScript.createSimpleScript());
    }

    internalTask.setForkEnvironment(forkEnv);

    return internalTask;
  }
Ejemplo n.º 3
0
  static TaskData createTaskData(JobData jobRuntimeData, InternalScriptTask task) {
    TaskData taskData = new TaskData();

    TaskData.DBTaskId taskId = new DBTaskId();
    taskId.setJobId(jobRuntimeData.getId());
    taskId.setTaskId(task.getTaskInfo().getTaskId().longValue());

    taskData.setId(taskId);
    taskData.setDescription(task.getDescription());
    taskData.setParallelEnvironment(task.getParallelEnvironment());
    taskData.setFlowBlock(task.getFlowBlock());
    taskData.setRestartMode(task.getRestartTaskOnError());
    taskData.setPreciousLogs(task.isPreciousLogs());
    taskData.setPreciousResult(task.isPreciousResult());
    taskData.setRunAsMe(task.isRunAsMe());
    taskData.setWallTime(task.getWallTime());
    taskData.setCancelJobOnError(task.isCancelJobOnError());
    taskData.setMaxNumberOfExecution(task.getMaxNumberOfExecution());
    taskData.setJobData(jobRuntimeData);
    taskData.setNumberOfExecutionOnFailureLeft(
        PASchedulerProperties.NUMBER_OF_EXECUTION_ON_FAILURE.getValueAsInt());
    taskData.setNumberOfExecutionLeft(task.getMaxNumberOfExecution());
    taskData.setGenericInformation(task.getGenericInformations(false));
    taskData.updateMutableAttributes(task);

    if (task.getSelectionScripts() != null) {
      List<SelectionScriptData> scripts = new ArrayList<>(task.getSelectionScripts().size());
      for (SelectionScript selectionScript : task.getSelectionScripts()) {
        scripts.add(SelectionScriptData.createForSelectionScript(selectionScript, taskData));
      }
      taskData.setSelectionScripts(scripts);
    }
    if (task.getExecutableContainer() != null) {
      taskData.setScript(
          ScriptData.createForScript(
              ((ScriptExecutableContainer) task.getExecutableContainer()).getScript(), taskData));
    }
    if (task.getPreScript() != null) {
      taskData.setPreScript(ScriptData.createForScript(task.getPreScript(), taskData));
    }
    if (task.getPostScript() != null) {
      taskData.setPostScript(ScriptData.createForScript(task.getPostScript(), taskData));
    }
    if (task.getCleaningScript() != null) {
      taskData.setCleanScript(ScriptData.createForScript(task.getCleaningScript(), taskData));
    }
    if (task.getFlowScript() != null) {
      taskData.setFlowScript(ScriptData.createForFlowScript(task.getFlowScript(), taskData));
    }

    List<SelectorData> selectorsData = new ArrayList<>();
    if (task.getInputFilesList() != null) {
      for (InputSelector selector : task.getInputFilesList()) {
        selectorsData.add(SelectorData.createForInputSelector(selector, taskData));
      }
    }
    if (task.getOutputFilesList() != null) {
      for (OutputSelector selector : task.getOutputFilesList()) {
        selectorsData.add(SelectorData.createForOutputSelector(selector, taskData));
      }
    }
    taskData.setDataspaceSelectors(selectorsData);

    ForkEnvironment forkEnvironment = task.getForkEnvironment();
    if (forkEnvironment != null) {
      taskData.setAdditionalClasspath(forkEnvironment.getAdditionalClasspath());
      taskData.setJavaHome(forkEnvironment.getJavaHome());
      taskData.setJvmArguments(forkEnvironment.getJVMArguments());
      taskData.setWorkingDir(forkEnvironment.getWorkingDir());

      if (forkEnvironment.getEnvScript() != null) {
        taskData.setEnvScript(ScriptData.createForScript(forkEnvironment.getEnvScript(), taskData));
      }

      Map<String, String> systemEnvironment = forkEnvironment.getSystemEnvironment();

      if (systemEnvironment != null) {
        List<EnvironmentModifierData> envModifiers = new ArrayList<>(systemEnvironment.size());

        for (Map.Entry<String, String> entry : systemEnvironment.entrySet()) {
          envModifiers.add(
              EnvironmentModifierData.create(
                  new PropertyModifier(entry.getKey(), entry.getValue()), taskData));
        }

        taskData.setEnvModifiers(envModifiers);
      }
    }

    taskData.initTaskType(task);

    return taskData;
  }