use of org.apache.airavata.cloud.aurora.client.sdk.JobKey in project airavata by apache.
the class AuroraThriftClientUtil method getAuroraJobConfig.
/**
* Gets the aurora job config.
*
* @param jobConfigBean the job config bean
* @return the aurora job config
* @throws Exception the exception
*/
public static JobConfiguration getAuroraJobConfig(JobConfigBean jobConfigBean) throws Exception {
JobConfiguration jobConfig = null;
try {
if (jobConfigBean != null && jobConfigBean.getTaskConfig() != null) {
JobKey jobKey = getAuroraJobKey(jobConfigBean.getJob());
Identity owner = getAuroraIdentity(jobConfigBean.getOwner());
// Construct the task config
TaskConfig taskConfig = new TaskConfig();
taskConfig.setJob(jobKey);
taskConfig.setOwner(owner);
taskConfig.setIsService(jobConfigBean.isService());
taskConfig.setNumCpus(jobConfigBean.getTaskConfig().getResources().getNumCpus());
taskConfig.setRamMb(jobConfigBean.getTaskConfig().getResources().getRamMb());
taskConfig.setDiskMb(jobConfigBean.getTaskConfig().getResources().getDiskMb());
taskConfig.setPriority(jobConfigBean.getPriority());
taskConfig.setMaxTaskFailures(jobConfigBean.getMaxTaskFailures());
taskConfig.setResources(getResourceSet(jobConfigBean.getTaskConfig().getResources()));
// construct the executor config for this job
taskConfig.setExecutorConfig(getExecutorConfig(getExecutorConfigJson(jobConfigBean)));
// construct the job configuration
jobConfig = new JobConfiguration(jobKey, owner, null, taskConfig, jobConfigBean.getInstances());
} else {
throw new Exception("JobConfig, TaskConfig Bean is/are NULL!");
}
} catch (Exception ex) {
logger.error(ex.getMessage(), ex);
throw ex;
}
return jobConfig;
}
use of org.apache.airavata.cloud.aurora.client.sdk.JobKey in project airavata by apache.
the class AuroraThriftClient method killTasks.
/**
* Kill tasks.
*
* @param jobKeyBean the job key bean
* @param instances the instances
* @return the response bean
* @throws Exception the exception
*/
public ResponseBean killTasks(JobKeyBean jobKeyBean, Set<Integer> instances) throws Exception {
ResponseBean response = null;
// try till we get response or scheduler connection not found
while (response == null) {
try {
if (jobKeyBean != null) {
JobKey jobKey = AuroraThriftClientUtil.getAuroraJobKey(jobKeyBean);
Response killTaskResponse = this.auroraSchedulerManagerClient.killTasks(jobKey, instances);
response = AuroraThriftClientUtil.getResponseBean(killTaskResponse, ResponseResultType.KILL_TASKS);
}
} catch (Exception ex) {
if (ex instanceof TTransportException) {
// if re-connection success, retry command
if (this.reconnectWithAuroraScheduler()) {
continue;
}
}
logger.error(ex.getMessage(), ex);
throw ex;
}
}
return response;
}
use of org.apache.airavata.cloud.aurora.client.sdk.JobKey in project airavata by apache.
the class AuroraThriftClient method getJobDetails.
/**
* Gets the job details.
*
* @param jobKeyBean the job key bean
* @return the job details
* @throws Exception the exception
*/
public JobDetailsResponseBean getJobDetails(JobKeyBean jobKeyBean) throws Exception {
JobDetailsResponseBean response = null;
// try till we get response or scheduler connection not found
while (response == null) {
try {
if (jobKeyBean != null) {
JobKey jobKey = AuroraThriftClientUtil.getAuroraJobKey(jobKeyBean);
Set<JobKey> jobKeySet = new HashSet<>();
jobKeySet.add(jobKey);
TaskQuery query = new TaskQuery();
query.setJobKeys(jobKeySet);
Response jobDetailsResponse = this.readOnlySchedulerClient.getTasksStatus(query);
response = (JobDetailsResponseBean) AuroraThriftClientUtil.getResponseBean(jobDetailsResponse, ResponseResultType.GET_JOB_DETAILS);
}
} catch (Exception ex) {
if (ex instanceof TTransportException) {
// if re-connection success, retry command
if (this.reconnectWithAuroraScheduler()) {
continue;
}
}
logger.error(ex.getMessage(), ex);
throw ex;
}
}
return response;
}
use of org.apache.airavata.cloud.aurora.client.sdk.JobKey in project airavata by apache.
the class AuroraThriftClient method getPendingReasonForJob.
/**
* Gets the pending reason for job.
*
* @param jobKeyBean the job key bean
* @return the pending reason for job
* @throws Exception the exception
*/
public PendingJobReasonBean getPendingReasonForJob(JobKeyBean jobKeyBean) throws Exception {
PendingJobReasonBean response = null;
// try till we get response or scheduler connection not found
while (response == null) {
try {
JobKey jobKey = AuroraThriftClientUtil.getAuroraJobKey(jobKeyBean);
Set<JobKey> jobKeySet = new HashSet<>();
jobKeySet.add(jobKey);
TaskQuery query = new TaskQuery();
query.setJobKeys(jobKeySet);
Response pendingReasonResponse = this.readOnlySchedulerClient.getPendingReason(query);
response = (PendingJobReasonBean) AuroraThriftClientUtil.getResponseBean(pendingReasonResponse, ResponseResultType.GET_PENDING_JOB_REASON);
} catch (Exception ex) {
if (ex instanceof TTransportException) {
// if re-connection success, retry command
if (this.reconnectWithAuroraScheduler()) {
continue;
}
}
logger.error(ex.getMessage(), ex);
throw ex;
}
}
return response;
}
Aggregations