/** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * */ package org.apache.airavata.registry.core.experiment.catalog.utils; import org.apache.airavata.common.utils.AiravataUtils; import org.apache.airavata.model.application.io.DataType; import org.apache.airavata.model.application.io.InputDataObjectType; import org.apache.airavata.model.application.io.OutputDataObjectType; import org.apache.airavata.model.commons.ErrorModel; import org.apache.airavata.model.experiment.ExperimentModel; import org.apache.airavata.model.experiment.ExperimentSummaryModel; import org.apache.airavata.model.experiment.UserConfigurationDataModel; import org.apache.airavata.model.job.JobModel; import org.apache.airavata.model.process.ProcessModel; import org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel; import org.apache.airavata.model.status.*; import org.apache.airavata.model.task.TaskModel; import org.apache.airavata.model.task.TaskTypes; import org.apache.airavata.model.workspace.*; import org.apache.airavata.registry.core.experiment.catalog.ExperimentCatResource; import org.apache.airavata.registry.core.experiment.catalog.resources.*; import org.apache.airavata.registry.cpi.RegistryException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.sql.Timestamp; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class ThriftDataModelConversion { private final static Logger logger = LoggerFactory.getLogger(ThriftDataModelConversion.class); public static Project getProject (ProjectResource pr) throws RegistryException { if (pr != null) { Project project = new Project(); project.setProjectID(pr.getId()); project.setName(pr.getName()); if (pr.getCreationTime()!=null) { project.setCreationTime(pr.getCreationTime().getTime()); } project.setDescription(pr.getDescription()); project.setOwner(pr.getWorker().getUser()); project.setGatewayId(pr.getGatewayId()); List<ProjectUserResource> projectUserList = pr.getProjectUserList(); List<String> sharedUsers = new ArrayList<String>(); if (projectUserList != null && !projectUserList.isEmpty()){ for (ProjectUserResource resource : projectUserList){ sharedUsers.add(resource.getUserName()); } } project.setSharedUsers(sharedUsers); return project; } return null; } public static Gateway getGateway (GatewayResource resource){ Gateway gateway = new Gateway(); gateway.setGatewayId(resource.getGatewayId()); gateway.setGatewayApprovalStatus(GatewayApprovalStatus.valueOf(resource.getGatewayApprovalStatus())); gateway.setGatewayName(resource.getGatewayName()); gateway.setDomain(resource.getDomain()); gateway.setEmailAddress(resource.getEmailAddress()); gateway.setGatewayAcronym(resource.getGatewayAcronym()); gateway.setGatewayURL(resource.getGatewayUrl()); gateway.setGatewayPublicAbstract(resource.getGatewayPublicAbstract()); gateway.setReviewProposalDescription(resource.getReviewProposalDescription()); gateway.setDeclinedReason(resource.getDeclinedReason()); gateway.setGatewayAdminFirstName(resource.getGatewayAdminFirstName()); gateway.setGatewayAdminLastName(resource.getGetGatewayAdminLastName()); gateway.setGatewayAdminEmail(resource.getGatewayAdminEmail()); gateway.setIdentityServerUserName(resource.getIdentityServerUserName()); gateway.setIdentityServerPasswordToken(resource.getIdentityServerPasswordToken()); gateway.setOauthClientId(resource.getOauthClientId()); gateway.setOauthClientSecret(resource.getOauthClientSecret()); if (resource.getRequestCreationTime() != null) { gateway.setRequestCreationTime(resource.getRequestCreationTime().getTime()); } gateway.setRequesterUsername(resource.getRequesterUsername()); return gateway; } public static List<Gateway> getAllGateways (List<ExperimentCatResource> gatewayList){ List<Gateway> gateways = new ArrayList<Gateway>(); for (ExperimentCatResource resource : gatewayList){ gateways.add(getGateway((GatewayResource)resource)); } return gateways; } public static ExperimentSummaryModel getExperimentSummary(ExperimentSummaryResource experimentSummaryResource) throws RegistryException { if (experimentSummaryResource != null){ ExperimentSummaryModel experimentSummary = new ExperimentSummaryModel(); experimentSummary.setProjectId(experimentSummaryResource.getProjectId()); experimentSummary.setExperimentId(experimentSummaryResource.getExperimentId()); experimentSummary.setGatewayId(experimentSummaryResource.getGatewayId()); experimentSummary.setExecutionId(experimentSummaryResource.getExecutionId()); experimentSummary.setCreationTime(experimentSummaryResource.getCreationTime().getTime()); experimentSummary.setUserName(experimentSummaryResource.getUserName()); experimentSummary.setName(experimentSummaryResource.getExperimentName()); experimentSummary.setDescription(experimentSummaryResource.getDescription()); experimentSummary.setExperimentStatus(experimentSummaryResource.getState()); experimentSummary.setResourceHostId(experimentSummaryResource.getResourceHostId()); return experimentSummary; } return null; } public static ExperimentModel getExperiment(ExperimentResource experimentResource) throws RegistryException { if (experimentResource != null){ ExperimentModel experiment = new ExperimentModel(); experiment.setProjectId(experimentResource.getProjectId()); experiment.setExperimentId(experimentResource.getExperimentId()); experiment.setGatewayId(experimentResource.getGatewayId()); experiment.setCreationTime(experimentResource.getCreationTime().getTime()); experiment.setUserName(experimentResource.getUserName()); experiment.setExperimentName(experimentResource.getExperimentName()); experiment.setExecutionId(experimentResource.getExecutionId()); experiment.setDescription(experimentResource.getDescription()); experiment.setEnableEmailNotification(experimentResource.getEnableEmailNotification()); experiment.setGatewayExecutionId(experimentResource.getGatewayExecutionId()); experiment.setGatewayInstanceId(experimentResource.getGatewayInstanceId()); if (experiment.isEnableEmailNotification()){ String notificationEmails = experimentResource.getEmailAddresses(); experiment.setEmailAddresses(getEmailAddresses(notificationEmails.split(","))); } List<ExperimentInputResource> experimentInputs = experimentResource.getExperimentInputs(); experiment.setExperimentInputs(getExpInputs(experimentInputs)); List<ExperimentOutputResource> experimentOutputs = experimentResource.getExperimentOutputs(); experiment.setExperimentOutputs(getExpOutputs(experimentOutputs)); ExperimentStatusResource experimentStatus = experimentResource.getExperimentStatus(); if (experimentStatus != null){ List<ExperimentStatus> experimentStatuses = new ArrayList<>(); experimentStatuses.add(getExperimentStatus(experimentStatus)); experiment.setExperimentStatus(experimentStatuses); } List<ExperimentErrorResource> errorDetails = experimentResource.getExperimentErrors(); if (errorDetails!= null && !errorDetails.isEmpty()){ experiment.setErrors(getExperimentErrorList(errorDetails)); } UserConfigurationDataResource userConfigurationDataResource = experimentResource.getUserConfigurationDataResource(); if(userConfigurationDataResource != null){ experiment.setUserConfigurationData(getUserConfigData(userConfigurationDataResource)); } return experiment; } return null; } public static InputDataObjectType getInput(Object object){ if (object != null){ InputDataObjectType dataObjectType = new InputDataObjectType(); if (object instanceof ExperimentInputResource){ ExperimentInputResource inputResource = (ExperimentInputResource) object; dataObjectType.setName(inputResource.getInputName()); dataObjectType.setValue(inputResource.getInputValue()); dataObjectType.setType(DataType.valueOf(inputResource.getDataType())); dataObjectType.setApplicationArgument(inputResource.getApplicationArgument()); dataObjectType.setStandardInput(inputResource.getStandardInput()); dataObjectType.setUserFriendlyDescription(inputResource.getUserFriendlyDescription()); dataObjectType.setMetaData(inputResource.getMetadata()); dataObjectType.setInputOrder(inputResource.getInputOrder()); dataObjectType.setIsRequired(inputResource.getIsRequired()); dataObjectType.setRequiredToAddedToCommandLine(inputResource.getRequiredToAddedToCmd()); dataObjectType.setDataStaged(inputResource.getDataStaged()); dataObjectType.setIsReadOnly(inputResource.isReadOnly()); dataObjectType.setStorageResourceId(inputResource.getStorageResourceId()); return dataObjectType; }else if (object instanceof ProcessInputResource){ ProcessInputResource inputResource = (ProcessInputResource)object; dataObjectType.setName(inputResource.getInputName()); dataObjectType.setValue(inputResource.getInputValue()); dataObjectType.setType(DataType.valueOf(inputResource.getDataType())); dataObjectType.setApplicationArgument(inputResource.getApplicationArgument()); dataObjectType.setStandardInput(inputResource.getStandardInput()); dataObjectType.setUserFriendlyDescription(inputResource.getUserFriendlyDescription()); dataObjectType.setMetaData(inputResource.getMetadata()); dataObjectType.setInputOrder(inputResource.getInputOrder()); dataObjectType.setIsRequired(inputResource.getIsRequired()); dataObjectType.setRequiredToAddedToCommandLine(inputResource.getRequiredToAddedToCmd()); dataObjectType.setDataStaged(inputResource.getDataStaged()); dataObjectType.setStorageResourceId(inputResource.getStorageResourceId()); dataObjectType.setIsReadOnly(inputResource.isReadOnly()); return dataObjectType; }else { return null; } } return null; } public static OutputDataObjectType getOutput(Object object){ if (object != null){ OutputDataObjectType dataObjectType = new OutputDataObjectType(); if (object instanceof ExperimentOutputResource){ ExperimentOutputResource outputResource = (ExperimentOutputResource)object; dataObjectType.setName(outputResource.getOutputName()); dataObjectType.setValue(outputResource.getOutputValue()); dataObjectType.setType(DataType.valueOf(outputResource.getDataType())); dataObjectType.setApplicationArgument(outputResource.getApplicationArgument()); dataObjectType.setIsRequired(outputResource.getIsRequired()); dataObjectType.setRequiredToAddedToCommandLine(outputResource.getRequiredToAddedToCmd()); dataObjectType.setDataMovement(outputResource.getDataMovement()); dataObjectType.setLocation(outputResource.getLocation()); dataObjectType.setSearchQuery(outputResource.getSearchQuery()); dataObjectType.setOutputStreaming(outputResource.isOutputStreaming()); dataObjectType.setStorageResourceId(outputResource.getStorageResourceId()); return dataObjectType; }else if (object instanceof ProcessOutputResource) { ProcessOutputResource outputResource = (ProcessOutputResource) object; dataObjectType.setName(outputResource.getOutputName()); dataObjectType.setValue(outputResource.getOutputValue()); dataObjectType.setType(DataType.valueOf(outputResource.getDataType())); dataObjectType.setApplicationArgument(outputResource.getApplicationArgument()); dataObjectType.setIsRequired(outputResource.getIsRequired()); dataObjectType.setRequiredToAddedToCommandLine(outputResource.getRequiredToAddedToCmd()); dataObjectType.setDataMovement(outputResource.getDataMovement()); dataObjectType.setLocation(outputResource.getLocation()); dataObjectType.setSearchQuery(outputResource.getSearchQuery()); dataObjectType.setOutputStreaming(outputResource.isOutputStreaming()); dataObjectType.setStorageResourceId(outputResource.getStorageResourceId()); return dataObjectType; } else { return null; } } return null; } public static List<String> getEmailAddresses (String[] resourceList){ List<String> emailAddresses = new ArrayList<String>(); for (String email : resourceList){ emailAddresses.add(email); } return emailAddresses; } public static List<InputDataObjectType> getExpInputs (List<ExperimentInputResource> exInputList){ List<InputDataObjectType> expInputs = new ArrayList<InputDataObjectType>(); if (exInputList != null && !exInputList.isEmpty()){ for (ExperimentInputResource inputResource : exInputList){ InputDataObjectType exInput = getInput(inputResource); expInputs.add(exInput); } } return expInputs; } public static List<OutputDataObjectType> getExpOutputs (List<ExperimentOutputResource> experimentOutputResourceList){ List<OutputDataObjectType> exOutputs = new ArrayList<OutputDataObjectType>(); if (experimentOutputResourceList != null && !experimentOutputResourceList.isEmpty()){ for (ExperimentOutputResource outputResource : experimentOutputResourceList){ OutputDataObjectType output = getOutput(outputResource); exOutputs.add(output); } } return exOutputs; } public static List<InputDataObjectType> getProcessInputs (List<ProcessInputResource> processInputResources){ List<InputDataObjectType> nodeInputs = new ArrayList<InputDataObjectType>(); if (processInputResources != null && !processInputResources.isEmpty()){ for (ProcessInputResource inputResource : processInputResources){ InputDataObjectType nodeInput = getInput(inputResource); nodeInputs.add(nodeInput); } } return nodeInputs; } public static List<OutputDataObjectType> getProcessOutputs (List<ProcessOutputResource> processOutputResources){ List<OutputDataObjectType> processOutputs = new ArrayList<OutputDataObjectType>(); if (processOutputResources != null && !processOutputResources.isEmpty()){ for (ProcessOutputResource outputResource : processOutputResources){ OutputDataObjectType output = getOutput(outputResource); processOutputs.add(output); } } return processOutputs; } public static ExperimentStatus getExperimentStatus(ExperimentStatusResource status){ if (status != null){ ExperimentStatus experimentStatus = new ExperimentStatus(); experimentStatus.setState(ExperimentState.valueOf(status.getState())); Timestamp timeOfStateChange = status.getTimeOfStateChange(); if (timeOfStateChange == null){ timeOfStateChange = AiravataUtils.getCurrentTimestamp(); } experimentStatus.setTimeOfStateChange(timeOfStateChange.getTime()); experimentStatus.setReason(status.getReason()); return experimentStatus; } return null; } public static ProcessStatus getProcessStatus (ProcessStatusResource status){ if (status != null){ ProcessStatus processStatus = new ProcessStatus(); processStatus.setState(ProcessState.valueOf(status.getState())); Timestamp timeOfStateChange = status.getTimeOfStateChange(); if (timeOfStateChange == null){ timeOfStateChange = AiravataUtils.getCurrentTimestamp(); } processStatus.setTimeOfStateChange(timeOfStateChange.getTime()); processStatus.setReason(status.getReason()); return processStatus; } return null; } public static TaskStatus getTaskStatus (TaskStatusResource status){ if (status != null){ TaskStatus taskStatus = new TaskStatus(); taskStatus.setState(TaskState.valueOf(status.getState())); Timestamp timeOfStateChange = status.getTimeOfStateChange(); if (timeOfStateChange == null){ timeOfStateChange = AiravataUtils.getCurrentTimestamp(); } taskStatus.setTimeOfStateChange(timeOfStateChange.getTime()); taskStatus.setReason(status.getReason()); return taskStatus; } return null; } public static JobStatus getJobStatus (JobStatusResource status){ if (status != null){ JobStatus jobStatus = new JobStatus(); jobStatus.setJobState(JobState.valueOf(status.getState())); Timestamp timeOfStateChange = status.getTimeOfStateChange(); if (timeOfStateChange == null){ timeOfStateChange = AiravataUtils.getCurrentTimestamp(); } jobStatus.setTimeOfStateChange(timeOfStateChange.getTime()); jobStatus.setReason(status.getReason()); return jobStatus; } return null; } public static ProcessModel getProcessModel(ProcessResource processResource) throws RegistryException { if (processResource != null){ ProcessModel processModel = new ProcessModel(); processModel.setProcessId(processResource.getProcessId()); processModel.setExperimentId(processResource.getExperimentId()); processModel.setCreationTime(processResource.getCreationTime().getTime()); processModel.setLastUpdateTime(processResource.getLastUpdateTime().getTime()); processModel.setProcessDetail(processResource.getProcessDetail()); processModel.setApplicationInterfaceId(processResource.getApplicationInterfaceId()); processModel.setTaskDag(processResource.getTaskDag()); processModel.setGatewayExecutionId(processResource.getGatewayExecutionId()); processModel.setApplicationDeploymentId(processResource.getApplicationDeploymentId()); processModel.setComputeResourceId(processResource.getComputeResourceId()); processModel.setEnableEmailNotification(processResource.getEnableEmailNotification()); processModel.setExperimentDataDir(processResource.getExperimentDataDir()); processModel.setUseUserCRPref(processResource.isUseUserCRPref()); if (processModel.isEnableEmailNotification()){ String notificationEmails = processResource.getEmailAddresses(); processModel.setEmailAddresses(getEmailAddresses(notificationEmails.split(","))); } processModel.setProcessInputs(getProcessInputs(processResource.getProcessInputs())); processModel.setProcessOutputs(getProcessOutputs(processResource.getProcessOutputs())); ErrorModel errorModel = getErrorModel(processResource.getProcessError()); if (errorModel != null){ List<ErrorModel> errorModels = new ArrayList<>(); errorModels.add(errorModel); processModel.setProcessErrors(errorModels); } ProcessStatus processStatus = getProcessStatus(processResource.getProcessStatus()); if (processStatus != null){ List<ProcessStatus> statuses = new ArrayList<>(); statuses.add(processStatus); processModel.setProcessStatuses(statuses); } ComputationalResourceSchedulingModel schedule = getProcessResourceSchedule(processResource.getProcessResourceSchedule()); if (schedule != null){ processModel.setProcessResourceSchedule(schedule); } processModel.setTasks(getTaskModelList(processResource.getTaskList())); processModel.setStorageResourceId(processResource.getStorageResourceId()); processModel.setUserDn(processResource.getUserDn()); processModel.setGenerateCert(processResource.isGenerateCert()); processModel.setUserName(processResource.getUserName()); return processModel; } return null; } public static List<TaskModel> getTaskModelList (List<TaskResource> resources) throws RegistryException { List<TaskModel> taskDetailsList = new ArrayList<TaskModel>(); if (resources != null && !resources.isEmpty()){ for (TaskResource resource : resources){ taskDetailsList.add(getTaskModel(resource)); } } return taskDetailsList; } public static TaskModel getTaskModel (TaskResource taskResource) throws RegistryException { TaskModel model = new TaskModel(); model.setTaskId(taskResource.getTaskId()); model.setTaskType(TaskTypes.valueOf(taskResource.getTaskType())); model.setParentProcessId(taskResource.getParentProcessId()); model.setCreationTime(taskResource.getCreationTime().getTime()); model.setLastUpdateTime(taskResource.getLastUpdateTime().getTime()); model.setTaskDetail(taskResource.getTaskDetail()); model.setSubTaskModel(taskResource.getSubTaskModel()); TaskStatus taskStatus = getTaskStatus(taskResource.getTaskStatus()); if (taskStatus != null){ List<TaskStatus> taskStatuses = new ArrayList<>(); taskStatuses.add(taskStatus); model.setTaskStatuses(taskStatuses); } ErrorModel errorModel = getErrorModel(taskResource.getTaskError()); if (errorModel != null) { List<ErrorModel> errors = new ArrayList<>(); errors.add(errorModel); model.setTaskErrors(errors); } return model; } public static JobModel getJobModel (JobResource jobResource) throws RegistryException { JobModel model = new JobModel(); model.setJobId(jobResource.getJobId()); model.setProcessId(jobResource.getProcessId()); model.setTaskId(jobResource.getTaskId()); model.setJobDescription(jobResource.getJobDescription()); model.setCreationTime(jobResource.getCreationTime().getTime()); model.setComputeResourceConsumed(jobResource.getComputeResourceConsumed()); model.setJobName(jobResource.getJobName()); model.setWorkingDir(jobResource.getWorkingDir()); JobStatus jobStatus = getJobStatus(jobResource.getJobStatus()); if (jobStatus != null){ List<JobStatus> jobStatuses = new ArrayList<>(); jobStatuses.add(jobStatus); model.setJobStatuses(jobStatuses); } model.setExitCode(jobResource.getExitCode()); model.setStdOut(jobResource.getStdOut()); model.setStdErr(jobResource.getStdErr()); return model; } public static ErrorModel getErrorModel (Object object){ if (object != null) { ErrorModel errorModel = new ErrorModel(); if (object instanceof ExperimentErrorResource) { ExperimentErrorResource errorResource = (ExperimentErrorResource) object; errorModel.setErrorId(errorResource.getErrorId()); errorModel.setCreationTime(errorResource.getCreationTime().getTime()); errorModel.setActualErrorMessage(errorResource.getActualErrorMessage()); errorModel.setUserFriendlyMessage(errorResource.getUserFriendlyMessage()); errorModel.setTransientOrPersistent(errorResource.getTransientOrPersistent()); String rootCauseErrorIdList = errorResource.getRootCauseErrorIdList(); if (rootCauseErrorIdList != null){ errorModel.setRootCauseErrorIdList(Arrays.asList(rootCauseErrorIdList.split(","))); } return errorModel; } else if (object instanceof ProcessErrorResource) { ProcessErrorResource errorResource = (ProcessErrorResource) object; errorModel.setErrorId(errorResource.getErrorId()); errorModel.setCreationTime(errorResource.getCreationTime().getTime()); errorModel.setActualErrorMessage(errorResource.getActualErrorMessage()); errorModel.setUserFriendlyMessage(errorResource.getUserFriendlyMessage()); errorModel.setTransientOrPersistent(errorResource.getTransientOrPersistent()); String rootCauseErrorIdList = errorResource.getRootCauseErrorIdList(); if (rootCauseErrorIdList != null){ errorModel.setRootCauseErrorIdList(Arrays.asList(rootCauseErrorIdList.split(","))); } return errorModel; } else if (object instanceof TaskErrorResource) { TaskErrorResource errorResource = (TaskErrorResource) object; errorModel.setErrorId(errorResource.getErrorId()); errorModel.setCreationTime(errorResource.getCreationTime().getTime()); errorModel.setActualErrorMessage(errorResource.getActualErrorMessage()); errorModel.setUserFriendlyMessage(errorResource.getUserFriendlyMessage()); errorModel.setTransientOrPersistent(errorResource.getTransientOrPersistent()); String rootCauseErrorIdList = errorResource.getRootCauseErrorIdList(); if (rootCauseErrorIdList != null){ errorModel.setRootCauseErrorIdList(Arrays.asList(rootCauseErrorIdList.split(","))); } return errorModel; } else { return null; } } return null; } public static List<ErrorModel> getExperimentErrorList(List<ExperimentErrorResource> errorResources){ List<ErrorModel> errorList = new ArrayList<ErrorModel>(); if (errorResources != null && !errorResources.isEmpty()){ for (ExperimentErrorResource errorResource : errorResources){ errorList.add(getErrorModel(errorResource)); } } return errorList; } public static UserConfigurationDataModel getUserConfigData (UserConfigurationDataResource resource) throws RegistryException { if (resource != null){ UserConfigurationDataModel data = new UserConfigurationDataModel(); data.setAiravataAutoSchedule(resource.getAiravataAutoSchedule()); data.setOverrideManualScheduledParams(resource.getOverrideManualScheduledParams()); data.setShareExperimentPublicly(resource.getShareExperimentPublically()); data.setUserDN(resource.getUserDn()); data.setGenerateCert(resource.getGenerateCert()); data.setStorageId(resource.getStorageId()); data.setExperimentDataDir(resource.getExperimentDataDir()); data.setUseUserCRPref(resource.getUseUserCRPref()); ComputationalResourceSchedulingModel resourceSchedulingModel = new ComputationalResourceSchedulingModel(); resourceSchedulingModel.setResourceHostId(resource.getResourceHostId()); resourceSchedulingModel.setTotalCPUCount(resource.getTotalCpuCount()); resourceSchedulingModel.setNodeCount(resource.getNodeCount()); resourceSchedulingModel.setNumberOfThreads(resource.getNumberOfThreads()); resourceSchedulingModel.setQueueName(resource.getQueueName()); resourceSchedulingModel.setWallTimeLimit(resource.getWallTimeLimit()); resourceSchedulingModel.setTotalPhysicalMemory(resource.getTotalPhysicalMemory()); resourceSchedulingModel.setStaticWorkingDir(resource.getStaticWorkingDir()); resourceSchedulingModel.setOverrideLoginUserName(resource.getOverrideLoginUserName()); resourceSchedulingModel.setOverrideScratchLocation(resource.getOverrideScratchLocation()); resourceSchedulingModel.setOverrideAllocationProjectNumber(resource.getOverrideAllocationProjectNumber()); data.setComputationalResourceScheduling(resourceSchedulingModel); return data; } return null; } public static ComputationalResourceSchedulingModel getProcessResourceSchedule (ProcessResourceScheduleResource resource){ if (resource != null){ ComputationalResourceSchedulingModel resourceSchedulingModel = new ComputationalResourceSchedulingModel(); resourceSchedulingModel.setResourceHostId(resource.getResourceHostId()); resourceSchedulingModel.setTotalCPUCount(resource.getTotalCpuCount()); resourceSchedulingModel.setNodeCount(resource.getNodeCount()); resourceSchedulingModel.setNumberOfThreads(resource.getNumberOfThreads()); resourceSchedulingModel.setQueueName(resource.getQueueName()); resourceSchedulingModel.setWallTimeLimit(resource.getWallTimeLimit()); resourceSchedulingModel.setTotalPhysicalMemory(resource.getTotalPhysicalMemory()); resourceSchedulingModel.setStaticWorkingDir(resource.getStaticWorkingDir()); resourceSchedulingModel.setOverrideLoginUserName(resource.getOverrideLoginUserName()); resourceSchedulingModel.setOverrideScratchLocation(resource.getOverrideScratchLocation()); resourceSchedulingModel.setOverrideAllocationProjectNumber(resource.getOverrideAllocationProjectNumber()); return resourceSchedulingModel; } return null; } public static ComputationalResourceSchedulingModel getComputationalResourceScheduling(UserConfigurationDataResource resource) { if (resource != null){ ComputationalResourceSchedulingModel resourceSchedulingModel = new ComputationalResourceSchedulingModel(); resourceSchedulingModel.setResourceHostId(resource.getResourceHostId()); resourceSchedulingModel.setTotalCPUCount(resource.getTotalCpuCount()); resourceSchedulingModel.setNodeCount(resource.getNodeCount()); resourceSchedulingModel.setNumberOfThreads(resource.getNumberOfThreads()); resourceSchedulingModel.setQueueName(resource.getQueueName()); resourceSchedulingModel.setWallTimeLimit(resource.getWallTimeLimit()); resourceSchedulingModel.setTotalPhysicalMemory(resource.getTotalPhysicalMemory()); resourceSchedulingModel.setStaticWorkingDir(resource.getStaticWorkingDir()); resourceSchedulingModel.setOverrideLoginUserName(resource.getOverrideLoginUserName()); resourceSchedulingModel.setOverrideScratchLocation(resource.getOverrideScratchLocation()); resourceSchedulingModel.setOverrideAllocationProjectNumber(resource.getOverrideAllocationProjectNumber()); return resourceSchedulingModel; } return null; } public static Notification getNotification(NotificationResource resource){ if(resource != null){ Notification notification = new Notification(); notification.setNotificationId(resource.getNotificationId()); notification.setGatewayId(resource.getGatewayId()); notification.setTitle(resource.getTitle()); notification.setNotificationMessage(resource.getNotificationMessage()); notification.setPriority(NotificationPriority.valueOf(resource.getPriority())); if(resource.getPublishedTime() != null) notification.setPublishedTime(resource.getPublishedTime().getTime()); if(resource.getExpirationTime() != null) notification.setExpirationTime(resource.getExpirationTime().getTime()); if(resource.getCreationTime() != null) notification.setCreationTime(resource.getCreationTime().getTime()); return notification; } return null; } }