Package org.apache.uima.ducc.transport.event.common

Examples of org.apache.uima.ducc.transport.event.common.Rationale


      sb.append("job driver received JobStop from plugin error handler");
      if(directive.hasReason()) {
        sb.append(" with reason: ");
        sb.append(directive.getReason());
      }
      driverStatusReport.killJob(JobCompletionType.CanceledByDriver, new Rationale(sb.toString()));
      break;
    }
  }
View Full Code Here


    else {
      duccOut.debug(methodName, duccId, duccMsg.fetch("job not found"));
      if(active.get()) {
        active.set(false);
        if(thread != null) {
          thread.kill(new Rationale("job driver failed to locate job in map"));
          thread.interrupt();
          try {
            thread.join();
          } catch (InterruptedException e) {
            duccOut.debug(methodName, duccId, e);
View Full Code Here

          case Job:
          case Service:
            IDuccWorkJob job = (IDuccWorkJob) duccWork;
            switch(startType) {
            case cold:
              force(job, new Rationale("system cold start"));
              saveState = true;
              break;
            case warm:
              force(job, new Rationale("system warm start"));
              saveState = true;
              break;
            case hot:
              break;
            }
View Full Code Here

            String reason = properties.getProperty(SpecificationProperties.key_reason);
            if(reason != null) {
              message += ": "+reason;
            }
          }
          IRationale rationale = new Rationale(message);
          JobCompletionType jobCompletionType = JobCompletionType.CanceledByUser;
          if(reqRole.equals(SpecificationProperties.key_role_administrator)) {
            jobCompletionType = JobCompletionType.CanceledByAdministrator;
          }
          stateManager.jobTerminate(duccWorkJob, jobCompletionType, rationale, ProcessDeallocationType.JobCanceled);
View Full Code Here

            break;
          default:
            type = "service";
            break;
          }
          IRationale rationale = new Rationale(type+" canceled by "+reqUser);
          JobCompletionType jobCompletionType = JobCompletionType.CanceledByUser;
          if(reqRole.equals(SpecificationProperties.key_role_administrator)) {
            jobCompletionType = JobCompletionType.CanceledByAdministrator;
          }
          stateManager.jobTerminate(duccWorkJob, jobCompletionType, rationale, ProcessDeallocationType.JobCanceled);
View Full Code Here

          driverStatusReportMap.put(duccId, jdStatusReport);
          break;
        }
        //
        if(jdStatusReport.getWorkItemsTotal() == 0) {
          jobTerminate(duccWorkJob, JobCompletionType.CanceledByDriver, new Rationale("no work items to process"), ProcessDeallocationType.JobCanceled);
        }
        else {
          switch(jdStatusReport.getDriverState()) {
          case NotRunning:
            break;
          case Initializing: 
            switch(duccWorkJob.getJobState()) {
            case WaitingForDriver:
              JobState nextState = JobState.WaitingForServices;
              if(duccWorkJob.getServiceDependencies() == null) {
                String message = messages.fetch("bypass")+" "+nextState;
                logger.debug(methodName, duccId, message);
                nextState = JobState.WaitingForResources;
              }
              stateJobAccounting.stateChange(duccWorkJob, nextState);
              break;
            case Initializing:
              break;
            }
            break;
          case Running:
          case Idle: 
            if(jdStatusReport.isKillJob()) {
              IRationale rationale = jdStatusReport.getJobCompletionRationale();
              switch(duccWorkJob.getJobState()) {
              case WaitingForServices:
                if(rationale == null) {
                  rationale = new Rationale("waiting for services");
                }
                else {
                  if(rationale.isSpecified()) {
                    String text = rationale.getText();
                    rationale = new Rationale(text+": "+"waiting for services");
                  }
                  else {
                    rationale = new Rationale("waiting for services");
                  }
                }
                break;
              default:
                break;
              }
              jobTerminate(duccWorkJob, JobCompletionType.CanceledByDriver, rationale, ProcessDeallocationType.JobFailure);
              break;
            }
            switch(duccWorkJob.getJobState()) {
            case WaitingForDriver:
              stateJobAccounting.stateChange(duccWorkJob, JobState.WaitingForServices);
              break;
            case Initializing:
              stateJobAccounting.stateChange(duccWorkJob, JobState.Running);
              break;
            }
            break;
          case Completing: 
            if(!duccWorkJob.isFinished()) {
              stateJobAccounting.stateChange(duccWorkJob, JobState.Completing);
            }
            break;
          case Completed:
            if(!duccWorkJob.isCompleted()) {
              if(!duccWorkJob.isFinished()) {
                stateJobAccounting.stateChange(duccWorkJob, JobState.Completing);
              }
              deallocateJobDriver(duccWorkJob, jdStatusReport);
              duccWorkJob.getStandardInfo().setDateOfCompletion(TimeStamp.getCurrentMillis());
              switch(jdStatusReport.getJobCompletionType()) {
              case EndOfJob:
                try {
                  int errors = Integer.parseInt(duccWorkJob.getSchedulingInfo().getWorkItemsError());
                  int lost = Integer.parseInt(duccWorkJob.getSchedulingInfo().getWorkItemsLost());
                  if(errors > 0) {
                    setCompletionIfNotAlreadySet(duccWorkJob, JobCompletionType.Error, new Rationale("state manager detected errors="+errors));
                  }
                  else if(lost > 0) {
                    setCompletionIfNotAlreadySet(duccWorkJob, JobCompletionType.Lost, new Rationale("state manager detected lost work items="+lost));
                  }
                  else {
                    setCompletionIfNotAlreadySet(duccWorkJob, JobCompletionType.EndOfJob, new Rationale("state manager detected normal completion"));
                  }
                }
                catch(Exception e) {
                  logger.error(methodName, duccId, e);
                }
                finally {
                  setCompletionIfNotAlreadySet(duccWorkJob, JobCompletionType.EndOfJob, new Rationale("state manager detected normal completion"));
                }
                break;
              default:
                setCompletionIfNotAlreadySet(duccWorkJob, jdStatusReport);
                break;
View Full Code Here

              break;
            case WaitingForResources:
              if(rmResourceState.isRefused()) {
                duccWorkJob.getStandardInfo().setDateOfCompletion(TimeStamp.getCurrentMillis());
                duccWorkJob.setCompletionType(JobCompletionType.ResourcesUnavailable);
                duccWorkJob.setCompletionRationale(new Rationale("resource manager refused allocation: "+rmResourceState.getReason()));
                changes += stateChange(duccWorkJob,JobState.Completed);
                logger.warn(methodName, duccId, messages.fetchLabel("refused")+rmResourceState.getReason());
                String userName = duccWorkJob.getStandardInfo().getUser();
                String userLogDir = duccWorkJob.getUserLogsDir()+duccWorkJob.getDuccId().getFriendly()+File.separator;;
                String text = rmResourceState.getReason();
                UserLogging.record(userName, userLogDir, text);
              }
              if(duccWorkJob.getProcessMap().size() > 0) {
                changes += stateChange(duccWorkJob,JobState.Initializing);
                logger.info(methodName, duccId, messages.fetchLabel("resources count")+duccWorkJob.getProcessMap().size());
              }
              break;
            case Initializing:
            case Running:
              if(duccWorkJob.getProcessMap().size() == 0) {
                changes += stateChange(duccWorkJob,JobState.WaitingForResources);
                logger.info(methodName, duccId, messages.fetchLabel("resources count")+duccWorkJob.getProcessMap().size());
              }
              break;
            case Completing:
            case Completed:
              logger.debug(methodName, duccId, messages.fetchLabel("unsuitable state")+jobState);
              break;
            case Undefined:
              logger.warn(methodName, duccId, messages.fetchLabel("unsuitable state")+jobState);
              break;
            }
            break;
          case Reservation:
            logger.debug(methodName, duccId, messages.fetch("processing reservation..."));
            DuccWorkReservation duccWorkReservation = (DuccWorkReservation) duccWork;
            changes += reservationMapResourcesAdd(duccWorkReservation,rmResourceState.getPendingAdditions());
            changes += reservationMapResourcesDel(duccWorkReservation,rmResourceState.getPendingRemovals());
            ReservationState reservationState = duccWorkReservation.getReservationState();
            switch(reservationState) {
            case Received:
              logger.warn(methodName, duccId, messages.fetchLabel("unexpected state")+reservationState);
              break;
            case WaitingForResources:
              if(rmResourceState.isRefused()) {
                String schedulingClass = duccWorkReservation.getSchedulingInfo().getSchedulingClass().trim();
                if(schedulingClass.equals(DuccSchedulerClasses.JobDriver)) {
                  if(!refusedLogged.get()) {
                    logger.warn(methodName, duccId, messages.fetchLabel("refusal ignored")+rmResourceState.getReason());
                    refusedLogged.set(true);
                  }
                }
                else {
                  duccWorkReservation.getStandardInfo().setDateOfCompletion(TimeStamp.getCurrentMillis());
                  duccWorkReservation.setCompletionType(ReservationCompletionType.ResourcesUnavailable);
                  duccWorkReservation.setCompletionRationale(new Rationale("resource manager refused allocation: "+rmResourceState.getReason()));
                  changes += stateChange(duccWorkReservation,ReservationState.Completed);
                  logger.warn(methodName, duccId, messages.fetchLabel("refused")+rmResourceState.getReason());
                }
              }
              else {
                if(rmResourceState.getResources() != null) {
                  if(!rmResourceState.getResources().isEmpty()) {
                    changes += stateChange(duccWorkReservation,ReservationState.Assigned);
                    logger.info(methodName, duccId, messages.fetchLabel("resources count")+rmResourceState.getResources().size());
                  }
                }
                else {
                  logger.info(methodName, duccId, messages.fetch("waiting...no resources?"));
                }
              }
              break;
            case Assigned:
              if(rmResourceState.getResources() != null) {
                if(rmResourceState.getResources().isEmpty()) {
                  changes += stateChange(duccWorkReservation,ReservationState.Completed);
                  logger.info(methodName, duccId, messages.fetchLabel("resources count")+rmResourceState.getResources().size());
                }
              }
              else {
                logger.info(methodName, duccId, messages.fetch("assigned...no resources?"));
              }
              break;
            case Completed:
              logger.debug(methodName, duccId, messages.fetchLabel("unsuitable state")+reservationState);
              break;
            case Undefined:
              logger.warn(methodName, duccId, messages.fetchLabel("unsuitable state")+reservationState);
              break;
            }
            break;
          case Service:
            logger.debug(methodName, duccId, messages.fetch("processing service..."));
            DuccWorkJob duccWorkService = (DuccWorkJob) duccWork;
            processPurger(duccWorkService,rmResourceState.getResources());
            changes += processMapResourcesAdd(duccWorkService,rmResourceState.getPendingAdditions());
            changes += processMapResourcesDel(duccWorkService,rmResourceState.getPendingRemovals());
            JobState serviceState = duccWorkService.getJobState();
            logger.debug(methodName, duccId, messages.fetchLabel("service state")+serviceState);
            switch(serviceState) {
            case Received:
              logger.warn(methodName, duccId, messages.fetchLabel("unexpected state")+serviceState);
              break;
            case WaitingForServices:
              logger.debug(methodName, duccId, messages.fetchLabel("unexpected state")+serviceState);
              break;
            case WaitingForResources:
              if(rmResourceState.isRefused()) {
                duccWorkService.getStandardInfo().setDateOfCompletion(TimeStamp.getCurrentMillis());
                duccWorkService.setCompletionType(JobCompletionType.ResourcesUnavailable);
                duccWorkService.setCompletionRationale(new Rationale("resource manager refused allocation: "+rmResourceState.getReason()));
                changes += stateChange(duccWorkService,JobState.Completed);
                logger.warn(methodName, duccId, messages.fetchLabel("refused")+rmResourceState.getReason());
                String userName = duccWorkService.getStandardInfo().getUser();
                String userLogDir = duccWorkService.getUserLogsDir()+duccWorkService.getDuccId().getFriendly()+File.separator;;
                String text = rmResourceState.getReason();
View Full Code Here

            case Stopped:
                        case Stopping:
              stateJobAccounting.stateChange(duccWorkJob, JobState.Completing);
              duccWorkJob.getStandardInfo().setDateOfCompletion(TimeStamp.getCurrentMillis());
              String sdm = getServiceDependencyMessages(services)
              IRationale rationale = new Rationale();
              if(sdm != null) {
                rationale = new Rationale("service manager reported "+sdm);
              }
              stateJobAccounting.complete(duccWorkJob, JobCompletionType.ServicesUnavailable, rationale);
              changes++;
              logger.info(methodName, duccId, messages.fetchLabel("job state")+jobState+" "+messages.fetchLabel("services state")+serviceState);
              break;
View Full Code Here

                  OrchestratorCommonArea.getInstance().getProcessAccounting().setStatus(inventoryProcess);
                  DuccWorkJob job = (DuccWorkJob) duccWork;
                  switch(inventoryProcess.getProcessState()) {
                  case Failed:
                    if(inventoryProcess.getDuccId().getFriendly() == 0) {
                      jobTerminate(job, JobCompletionType.DriverProcessFailed, new Rationale(inventoryProcess.getReasonForStoppingProcess()), inventoryProcess.getProcessDeallocationType());
                    }
                    else {
                      jobTerminate(job, JobCompletionType.ProcessFailure, new Rationale(inventoryProcess.getReasonForStoppingProcess()), inventoryProcess.getProcessDeallocationType());
                    }
                    break;
                  default:
                    if(inventoryProcess.isComplete()) {
                      OrchestratorCommonArea.getInstance().getProcessAccounting().deallocate(job,ProcessDeallocationType.Stopped);
                      IRationale rationale = new Rationale("state manager reported as normal completion");
                      int errors = job.getSchedulingInfo().getIntWorkItemsError();
                      int lost = job.getSchedulingInfo().getIntWorkItemsLost();
                      if(errors > 0) {
                        setCompletionIfNotAlreadySet(job, JobCompletionType.Error, new Rationale("state manager detected error work items="+errors));
                      }
                      else if(lost > 0) {
                        setCompletionIfNotAlreadySet(job, JobCompletionType.Lost, new Rationale("state manager detected lost work items="+lost));
                      }
                      // <UIMA-3337>
                      else {
                        setCompletionIfNotAlreadySet(job, JobCompletionType.EndOfJob, rationale);
                      }
                      // </UIMA-3337>
                      completeJob(job, rationale);
                    }
                    break;
                  }
                  break;
                case Service:
                  logger.warn(methodName, jobId, processId, "unexpected process type: "+processType);
                  break;
                case Job_Uima_AS_Process:
                  OrchestratorCommonArea.getInstance().getProcessAccounting().setStatus(inventoryProcess);
                  break;
                }
                break;
              case Service:
                DuccWorkJob service = (DuccWorkJob) duccWork;
                switch(processType) {
                case Pop:
                  OrchestratorCommonArea.getInstance().getProcessAccounting().setStatus(inventoryProcess);
                  if(inventoryProcess.isComplete()) {
                    OrchestratorCommonArea.getInstance().getProcessAccounting().deallocate(service,ProcessDeallocationType.Stopped);
                  }
                  if(!service.hasAliveProcess()) {
                    completeManagedReservation(service, new Rationale("state manager reported no viable service process exists, type="+processType));
                  }
                  break;
                case Service:
                  OrchestratorCommonArea.getInstance().getProcessAccounting().setStatus(inventoryProcess);
                  if(inventoryProcess.isComplete()) {
                    OrchestratorCommonArea.getInstance().getProcessAccounting().deallocate(service,ProcessDeallocationType.Stopped);
                  }
                  if(!service.hasAliveProcess()) {
                    completeService(service, new Rationale("state manager reported no viable service process exists, type="+processType));
                  }
                  break;
                case Job_Uima_AS_Process:
                  OrchestratorCommonArea.getInstance().getProcessAccounting().setStatus(inventoryProcess);
                  if(inventoryProcess.isComplete()) {
                    OrchestratorCommonArea.getInstance().getProcessAccounting().deallocate(service,ProcessDeallocationType.Stopped);
                  }
                  if(!service.hasAliveProcess()) {
                    completeService(service, new Rationale("state manager reported no viable service process exists, type="+processType));
                  }
                  break;
                }
                break;
              }
View Full Code Here

        Iterator<DuccId> iterator = map.keySet().iterator();
        while(iterator.hasNext()) {
          DuccId key = iterator.next();
          IDuccProcess process = map.get(key);
          int code = process.getProcessExitCode();
          IRationale exitCode = new Rationale("code="+code);
          switch(service.getCompletionType()) {
          case Undefined:
            service.setCompletion(JobCompletionType.ProgramExit, exitCode);
            service.getStandardInfo().setDateOfCompletion(TimeStamp.getCurrentMillis());
            break;
View Full Code Here

TOP

Related Classes of org.apache.uima.ducc.transport.event.common.Rationale

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.