ApplicationDeploymentDescription appDeployDesc = jobExecutionContext.getApplicationContext() .getApplicationDeploymentDescription(); JobDetails jobDetails = new JobDetails(); Cluster cluster = null; jobDetails.setJobName(jobDescriptor.getJobName()); jobDetails.setJobDescription(jobDescriptor.toXML()); String jobID = cluster.submitBatchJob(jobDescriptor); jobExecutionContext.setJobDetails(jobDetails); if (jobID == null) { jobDetails.setJobID("none"); GFacUtils.saveJobStatus(jobExecutionContext, jobDetails, JobState.FAILED, monitorPublisher); } else { jobDetails.setJobID(jobID.split("\\.")[0]); GFacUtils.saveJobStatus(jobExecutionContext, jobDetails, JobState.SUBMITTED, monitorPublisher); data.append(",jobId=").append(jobDetails.getJobID()); String error = "Error submitting the job to host " + computeResourceDescription.getHostName() + " message: " + e.getMessage(); log.error(error); jobDetails.setJobID("none"); GFacUtils.saveJobStatus(jobExecutionContext, jobDetails, JobState.FAILED, monitorPublisher); StringWriter errors = new StringWriter();
JobDetailResource jobDetail = taskDetail.getJobDetail(jobId); jobDetail.setTaskDetailResource(taskDetail); jobDetail.setJobDescription(jobDetails.getJobDescription()); jobDetail.setCreationTime(AiravataUtils.getTime(jobDetails.getCreationTime())); jobDetail.setComputeResourceConsumed(jobDetails.getComputeResourceConsumed()); jobDetail.setJobName(jobDetails.getJobName()); jobDetail.setWorkingDir(jobDetails.getWorkingDir()); jobDetail.save(); JobStatus jobStatus = jobDetails.getJobStatus(); if (jobStatus != null) { JobStatus status = getJobStatus(ids); ApplicationStatus applicationStatus = jobDetails.getApplicationStatus(); if (applicationStatus != null) { ApplicationStatus appStatus = getApplicationStatus(ids); List<ErrorDetails> errors = jobDetails.getErrors(); if (errors != null && !errors.isEmpty()) { for (ErrorDetails error : errors) {
public static JobDetails getJobDetail(JobDetailResource jobDetailResource) throws RegistryException { if (jobDetailResource != null){ JobDetails jobDetails = new JobDetails(); jobDetails.setJobID(jobDetailResource.getJobId()); jobDetails.setJobDescription(jobDetailResource.getJobDescription()); jobDetails.setCreationTime(jobDetailResource.getCreationTime().getTime()); StatusResource jobStatus = jobDetailResource.getJobStatus(); jobDetails.setJobStatus(getJobStatus(jobStatus)); jobDetails.setJobName(jobDetailResource.getJobName()); jobDetails.setWorkingDir(jobDetailResource.getWorkingDir()); StatusResource applicationStatus = jobDetailResource.getApplicationStatus(); jobDetails.setApplicationStatus(getApplicationStatus(applicationStatus)); List<ErrorDetailResource> errorDetails = jobDetailResource.getErrorDetails(); jobDetails.setErrors(getErrorDetailList(errorDetails)); jobDetails.setComputeResourceConsumed(jobDetailResource.getComputeResourceConsumed()); return jobDetails; } return null; }
public void addToJobMonitorMap(JobExecutionContext jobExecutionContext) { String monitorId = jobExecutionContext.getJobDetails().getJobID(); if (monitorId == null || monitorId.isEmpty()) { monitorId = jobExecutionContext.getJobDetails().getJobName(); } addToJobMonitorMap(monitorId, jobExecutionContext); }
JobDetails jobDetails = new JobDetails(); jobDetails.setJobDescription(jobDesc); jobDetails.setJobID(jobId); jobDetails.setJobName(jobName); jobExecutionContext.setJobDetails(jobDetails); if (jobExecutionContext.getSecurityContext(hostName) == null) {
details.setJobDescription(executable); RawCommandInfo rawCommandInfo = new RawCommandInfo("/bin/chmod 755 " + executable + "; " + executable); StandardOutReader jobIDReaderCommandOutput = new StandardOutReader(); StringBuffer data = new StringBuffer(); jobExecutionContext.getNotifier().publish(new StartExecutionEvent()); JobDetails jobDetails = new JobDetails(); String hostAddress = jobExecutionContext.getHostName(); try { jobDetails.setJobName(jobDescriptor.getJobName()); log.info(jobDescriptor.toXML()); String jobID = cluster.submitBatchJob(jobDescriptor); ResourceJobManager resourceJobManager = jobExecutionContext.getResourceJobManager(); String jobFileContent = CommonUtils.getJobFileContent(jobDescriptor, resourceJobManager.getResourceJobManagerType().toString(), resourceJobManager.getJobManagerBinPath()); jobDetails.setJobDescription(jobFileContent); jobDetails.setWorkingDir(jobDescriptor.getWorkingDirectory()); if (jobID != null && !jobID.isEmpty()) { jobDetails.setJobID(jobID); GFacUtils.saveJobStatus(jobExecutionContext, jobDetails, JobState.SUBMITTED, monitorPublisher); monitorPublisher.publish(new GfacExperimentStateChangeRequest(new MonitorID(jobExecutionContext) jobDetails.setJobID(jobID); monitorPublisher.publish(new GfacExperimentStateChangeRequest(new MonitorID(jobExecutionContext) , GfacExperimentState.JOBSUBMITTED)); + jobDetails.getJobName() + ", both submit and verify steps doesn't return a valid JobId. Hence changing experiment state to Failed"; log.error(msg); GFacUtils.saveErrorDetails(jobExecutionContext, msg, CorrectiveAction.CONTACT_SUPPORT , ErrorCategory.AIRAVATA_INTERNAL_ERROR);
JobDetails jobDetails = new JobDetails(); jobDetails.setJobDescription(jobDesc); jobDetails.setJobID(jobId); jobExecutionContext.setJobDetails(jobDetails); if (jobExecutionContext.getSecurityContext(hostName) == null) {
details.setJobID(taskID); details.setJobDescription(remoteFile); jobExecutionContext.setJobDetails(details); details.setJobDescription(jobDescriptor.toXML());
public List<String> getJobDetailIds(String fieldName, Object value) throws RegistryException { List<String> jobIds = new ArrayList<String>(); List<JobDetails> jobDetails = getJobDetails(fieldName, value); for (JobDetails jd : jobDetails) { jobIds.add(jd.getJobID()); } return jobIds; }
return false; if (jobDetails.getJobID() != null) { cluster.cancelJob(jobDetails.getJobID()); } else { log.error("No Job Id is set, so cannot perform the cancel operation !!!"); String error = "Error submitting the job to host " + jobExecutionContext.getHostName() + " message: " + e.getMessage(); log.error(error); jobDetails.setJobID("none"); GFacUtils.saveJobStatus(jobExecutionContext, jobDetails, JobState.FAILED, monitorPublisher); GFacUtils.saveErrorDetails(jobExecutionContext, e.getCause().toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR); String error = "Error submitting the job to host " + jobExecutionContext.getHostName() + " message: " + e.getMessage(); log.error(error); jobDetails.setJobID("none"); GFacUtils.saveJobStatus(jobExecutionContext, jobDetails, JobState.FAILED, monitorPublisher); GFacUtils.saveErrorDetails(jobExecutionContext, e.getCause().toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR);
private void publishJobStatusChange(JobExecutionContext jobExecutionContext) { JobStatusChangeRequestEvent jobStatus = new JobStatusChangeRequestEvent(); JobIdentifier jobIdentity = new JobIdentifier(jobExecutionContext.getJobDetails().getJobID(), jobExecutionContext.getTaskData().getTaskID(), jobExecutionContext.getWorkflowNodeDetails().getNodeInstanceId(), jobExecutionContext.getExperimentID(), jobExecutionContext.getGatewayID()); jobStatus.setJobIdentity(jobIdentity); jobStatus.setState(jobExecutionContext.getJobDetails().getJobStatus().getJobState()); // we have this JobStatus class to handle amqp monitoring log.debugId(jobStatus.getJobIdentity().getJobId(), "[EJM]: Published job status(" + jobExecutionContext.getJobDetails().getJobStatus().getJobState().toString() + ") change request, " + "experiment {} , task {}", jobStatus.getJobIdentity().getExperimentId(), jobStatus.getJobIdentity().getTaskId()); BetterGfacImpl.getMonitorPublisher().publish(jobStatus); }
private void process(JobStatusResult jobStatusResult, JobExecutionContext jEC){ JobState resultState = jobStatusResult.getState(); jEC.getJobDetails().setJobStatus(new JobStatus(resultState)); boolean runOutHandlers = false; String jobDetails = "JobName : " + jobStatusResult.getJobName() + ", JobId : " + jobStatusResult.getJobId(); GFacUtils.saveErrorDetails(jEC,"Job runs on remote compute resource failed", CorrectiveAction.RETRY_SUBMISSION, ErrorCategory.APPLICATION_FAILURE); } catch (GFacException e) { log.info("[EJM]: Error while saving error details for jobId:{}, expId: {}", jEC.getJobDetails().getJobID(), jEC.getExperimentID());
private String verifyJobSubmission(Cluster cluster, JobDetails jobDetails) { String jobName = jobDetails.getJobName(); String jobId = null; try { jobId = cluster.getJobIdByJobName(jobName, cluster.getServerInfo().getUserName()); } catch (SSHApiException e) { log.error("Error while verifying JobId from JobName"); } return jobId; }
throws GFacProviderException { try { String activityEpr = jobExecutionContext.getJobDetails().getJobDescription();
dt.uploadLocalFiles(); JobDetails jobDetails = new JobDetails(); FactoryClient factory = new FactoryClient(eprt, secProperties); jobDetails.setJobID(jobId); jobDetails.setJobDescription(activityEpr.toString());
String jobID = job.getIDAsString(); details.setJobID(jobID); details.setJobDescription(job.getRSL()); jobExecutionContext.setJobDetails(details); GFacUtils.saveJobStatus(jobExecutionContext, details, JobState.UN_SUBMITTED);
JobDetailResource jobDetail = taskDetail.createJobDetail((String) ids.getSecondLevelIdentifier()); jobDetail.setTaskDetailResource(taskDetail); jobDetail.setJobDescription(jobDetails.getJobDescription()); jobDetail.setCreationTime(AiravataUtils.getTime(jobDetails.getCreationTime())); jobDetail.setComputeResourceConsumed(jobDetails.getComputeResourceConsumed()); jobDetail.setWorkingDir(jobDetails.getWorkingDir()); jobDetail.setJobName(jobDetails.getJobName()); jobDetail.save(); JobStatus jobStatus = jobDetails.getJobStatus(); if (jobStatus != null) { JobStatus status = getJobStatus(ids); ApplicationStatus applicationStatus = jobDetails.getApplicationStatus(); if (applicationStatus != null) { ApplicationStatus appStatus = getApplicationStatus(ids); List<ErrorDetails> errors = jobDetails.getErrors(); if (errors != null && !errors.isEmpty()) { for (ErrorDetails error : errors) {
private void sendNotification(JobExecutionContext jobExecutionContext, JobState status) { JobStatusChangeRequestEvent jobStatus = new JobStatusChangeRequestEvent(); JobIdentifier jobIdentity = new JobIdentifier(jobExecutionContext.getJobDetails().getJobID(), jobExecutionContext.getTaskData().getTaskID(), jobExecutionContext.getWorkflowNodeDetails().getNodeInstanceId(), jobExecutionContext.getExperimentID(), jobExecutionContext.getGatewayID()); jobStatus.setJobIdentity(jobIdentity); jobStatus.setState(status); log.debug(jobStatus.getJobIdentity().getJobId(), "Published job status change request, " + "experiment {} , task {}", jobStatus.getJobIdentity().getExperimentId(), jobStatus.getJobIdentity().getTaskId()); monitorPublisher.publish(jobStatus); } }
public void execute(JobExecutionContext jobExecutionContext) throws GFacProviderException { jobExecutionContext.getNotifier().publish(new StartExecutionEvent()); JobDetails jobDetails = new JobDetails(); try { jobId = jobExecutionContext.getTaskData().getTaskID(); jobDetails.setJobID(jobId); jobDetails.setJobDescription(jobExecutionContext.getApplicationContext() .getApplicationDeploymentDescription().getAppDeploymentDescription()); jobExecutionContext.setJobDetails(jobDetails); JobIdentifier jobIdentity = new JobIdentifier(jobExecutionContext.getJobDetails().getJobID(), jobExecutionContext.getTaskData().getTaskID(), jobExecutionContext.getWorkflowNodeDetails().getNodeInstanceId(),