blob: 7e9f388db156fc51cc8011ed4997efcc5de105ee [file] [log] [blame]
/**
*
* 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.client.tools;
import org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription;
import org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule;
import org.apache.airavata.model.appcatalog.appdeployment.CommandObject;
import org.apache.airavata.model.appcatalog.appinterface.*;
import org.apache.airavata.model.appcatalog.computeresource.*;
import org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference;
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.data.movement.DataMovementInterface;
import org.apache.airavata.model.data.movement.DataMovementProtocol;
import org.apache.airavata.model.parallelism.ApplicationParallelismType;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class RegisterSampleApplicationsUtils {
public static ComputeResourcePreference
createComputeResourcePreference(String computeResourceId, String allocationProjectNumber,
boolean overridebyAiravata, String preferredBatchQueue,
JobSubmissionProtocol preferredJobSubmissionProtocol,
DataMovementProtocol preferredDataMovementProtocol,
String scratchLocation) {
ComputeResourcePreference computeResourcePreference = new ComputeResourcePreference();
computeResourcePreference.setComputeResourceId(computeResourceId);
computeResourcePreference.setOverridebyAiravata(overridebyAiravata);
computeResourcePreference.setAllocationProjectNumber(allocationProjectNumber);
computeResourcePreference.setPreferredBatchQueue(preferredBatchQueue);
computeResourcePreference.setPreferredDataMovementProtocol(preferredDataMovementProtocol);
computeResourcePreference.setPreferredJobSubmissionProtocol(preferredJobSubmissionProtocol);
computeResourcePreference.setScratchLocation(scratchLocation);
return computeResourcePreference;
}
public static ApplicationDeploymentDescription createApplicationDeployment(String appModuleId,
String computeResourceId,
String executablePath,
ApplicationParallelismType parallelism,
String appDeploymentDescription,
List<CommandObject> moduleLoadCmds,
List<CommandObject> preJobCmds,
List<CommandObject> postJobCmds) {
ApplicationDeploymentDescription deployment = new ApplicationDeploymentDescription();
// deployment.setIsEmpty(false);
deployment.setAppDeploymentDescription(appDeploymentDescription);
deployment.setAppModuleId(appModuleId);
deployment.setComputeHostId(computeResourceId);
deployment.setExecutablePath(executablePath);
deployment.setParallelism(parallelism);
deployment.setModuleLoadCmds(moduleLoadCmds);
deployment.setPreJobCommands(preJobCmds);
deployment.setPostJobCommands(postJobCmds);
return deployment;
}
public static ApplicationModule createApplicationModule(String appModuleName,
String appModuleVersion, String appModuleDescription) {
ApplicationModule module = new ApplicationModule();
module.setAppModuleDescription(appModuleDescription);
module.setAppModuleName(appModuleName);
module.setAppModuleVersion(appModuleVersion);
return module;
}
public static DataMovementInterface createDataMovementInterface(
String dataMovementInterfaceId,
DataMovementProtocol dataMovementProtocolType, int priorityOrder) {
DataMovementInterface dataMovementInterface = new DataMovementInterface();
dataMovementInterface.setDataMovementInterfaceId(dataMovementInterfaceId);
dataMovementInterface.setDataMovementProtocol(dataMovementProtocolType);
dataMovementInterface.setPriorityOrder(priorityOrder);
return dataMovementInterface;
}
public static JobSubmissionInterface createJobSubmissionInterface(
String jobSubmissionInterfaceId,
JobSubmissionProtocol jobSubmissionProtocolType, int priorityOrder) {
JobSubmissionInterface jobSubmissionInterface = new JobSubmissionInterface();
jobSubmissionInterface.setJobSubmissionInterfaceId(jobSubmissionInterfaceId);
jobSubmissionInterface.setJobSubmissionProtocol(jobSubmissionProtocolType);
jobSubmissionInterface.setPriorityOrder(priorityOrder);
return jobSubmissionInterface;
}
public static ComputeResourceDescription createComputeResourceDescription(
String hostName, String hostDesc, List<String> hostAliases, List<String> ipAddresses) {
ComputeResourceDescription host = new ComputeResourceDescription();
host.setHostName(hostName);
host.setResourceDescription(hostDesc);
host.setIpAddresses(ipAddresses);
host.setHostAliases(hostAliases);
return host;
}
public static ResourceJobManager createResourceJobManager(
ResourceJobManagerType resourceJobManagerType, String pushMonitoringEndpoint, String jobManagerBinPath,
Map<JobManagerCommand, String> jobManagerCommands) {
ResourceJobManager resourceJobManager = new ResourceJobManager();
resourceJobManager.setResourceJobManagerType(resourceJobManagerType);
resourceJobManager.setPushMonitoringEndpoint(pushMonitoringEndpoint);
resourceJobManager.setJobManagerBinPath(jobManagerBinPath);
resourceJobManager.setJobManagerCommands(jobManagerCommands);
return resourceJobManager;
}
public static InputDataObjectType createAppInput (String inputName,
String value,
DataType type,
String applicationArgument,
int order,
boolean isRequired,
boolean requiredToCMD,
boolean stdIn,
String description,
String metadata) {
InputDataObjectType input = new InputDataObjectType();
// input.setIsEmpty(false);
if (inputName != null) input.setName(inputName);
if (value != null) input.setValue(value);
if (type != null) input.setType(type);
if (applicationArgument != null) input.setApplicationArgument(applicationArgument);
input.setInputOrder(order);
input.setIsRequired(isRequired);
input.setRequiredToAddedToCommandLine(requiredToCMD);
if (description != null) input.setUserFriendlyDescription(description);
input.setStandardInput(stdIn);
if (metadata != null) input.setMetaData(metadata);
return input;
}
public static OutputDataObjectType createAppOutput(String inputName,
String value,
DataType type,
boolean isRequired,
boolean requiredToCMD,
String argument) {
OutputDataObjectType outputDataObjectType = new OutputDataObjectType();
if (inputName != null) outputDataObjectType.setName(inputName);
if (value != null) outputDataObjectType.setValue(value);
if (type != null) outputDataObjectType.setType(type);
outputDataObjectType.setIsRequired(isRequired);
outputDataObjectType.setRequiredToAddedToCommandLine(requiredToCMD);
outputDataObjectType.setApplicationArgument(argument);
return outputDataObjectType;
}
public static ApplicationInterfaceDescription createApplicationInterfaceDescription
(String applicationName, String applicationDescription, List<String> applicationModules,
List<InputDataObjectType> applicationInputs, List<OutputDataObjectType>applicationOutputs) {
ApplicationInterfaceDescription applicationInterfaceDescription = new ApplicationInterfaceDescription();
applicationInterfaceDescription.setApplicationName(applicationName);
if (applicationDescription != null) applicationInterfaceDescription.setApplicationDescription(applicationDescription);
if (applicationModules != null) applicationInterfaceDescription.setApplicationModules(applicationModules);
if (applicationInputs != null) applicationInterfaceDescription.setApplicationInputs(applicationInputs);
if (applicationOutputs != null) applicationInterfaceDescription.setApplicationOutputs(applicationOutputs);
return applicationInterfaceDescription;
}
}