Search in sources :

Example 6 with ApplicationInterfaceDescription

use of org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription in project airavata by apache.

the class RegistryServerHandler method getAvailableAppInterfaceComputeResources.

/**
 * Fetch a list of all deployed Compute Hosts for a given application interfaces.
 *
 * @param appInterfaceId The identifier for the requested application interface.
 * @return map<computeResourceId, computeResourceName>
 * A map of registered compute resource id's and their corresponding hostnames.
 * Deployments of each modules listed within the interfaces will be listed.
 */
@Override
public Map<String, String> getAvailableAppInterfaceComputeResources(String appInterfaceId) throws RegistryServiceException, TException {
    try {
        appCatalog = RegistryFactory.getAppCatalog();
        ApplicationDeployment applicationDeployment = appCatalog.getApplicationDeployment();
        Map<String, String> allComputeResources = appCatalog.getComputeResource().getAvailableComputeResourceIdList();
        Map<String, String> availableComputeResources = new HashMap<String, String>();
        ApplicationInterfaceDescription applicationInterface = appCatalog.getApplicationInterface().getApplicationInterface(appInterfaceId);
        HashMap<String, String> filters = new HashMap<String, String>();
        List<String> applicationModules = applicationInterface.getApplicationModules();
        if (applicationModules != null && !applicationModules.isEmpty()) {
            for (String moduleId : applicationModules) {
                filters.put(AppCatAbstractResource.ApplicationDeploymentConstants.APP_MODULE_ID, moduleId);
                List<ApplicationDeploymentDescription> applicationDeployments = applicationDeployment.getApplicationDeployements(filters);
                for (ApplicationDeploymentDescription deploymentDescription : applicationDeployments) {
                    if (allComputeResources.get(deploymentDescription.getComputeHostId()) != null) {
                        availableComputeResources.put(deploymentDescription.getComputeHostId(), allComputeResources.get(deploymentDescription.getComputeHostId()));
                    }
                }
            }
        }
        logger.debug("Airavata retrieved available compute resources for application interface id : " + appInterfaceId);
        return availableComputeResources;
    } catch (AppCatalogException e) {
        logger.error(appInterfaceId, "Error while saving compute resource...", e);
        RegistryServiceException exception = new RegistryServiceException();
        exception.setMessage("Error while saving compute resource. More info : " + e.getMessage());
        throw exception;
    }
}
Also used : ApplicationDeploymentDescription(org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription) RegistryServiceException(org.apache.airavata.registry.api.exception.RegistryServiceException) ApplicationInterfaceDescription(org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription)

Example 7 with ApplicationInterfaceDescription

use of org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription in project airavata by apache.

the class DocumentCreatorNew method createStampedeAmberDocs.

public String createStampedeAmberDocs() throws InvalidRequestException, AiravataClientException, AiravataSystemException, TException, AppCatalogException {
    ComputeResourceDescription host = DocumentCreatorUtils.createComputeResourceDescription(stampedeHostAddress, null, null);
    host.addToHostAliases(stampedeHostAddress);
    host.addToIpAddresses(stampedeHostAddress);
    host.setComputeResourceId(client.registerComputeResource(authzToken, host));
    ResourceJobManager resourceJobManager = DocumentCreatorUtils.createResourceJobManager(ResourceJobManagerType.SLURM, "/usr/bin/", null, "push");
    SSHJobSubmission sshJobSubmission = new SSHJobSubmission();
    sshJobSubmission.setResourceJobManager(resourceJobManager);
    sshJobSubmission.setSecurityProtocol(SecurityProtocol.GSI);
    sshJobSubmission.setSshPort(2222);
    client.addSSHJobSubmissionDetails(authzToken, host.getComputeResourceId(), 1, sshJobSubmission);
    SCPDataMovement scpDataMovement = new SCPDataMovement();
    scpDataMovement.setSecurityProtocol(SecurityProtocol.GSI);
    scpDataMovement.setSshPort(22);
    client.addSCPDataMovementDetails(authzToken, host.getComputeResourceId(), 1, scpDataMovement);
    ApplicationModule amodule = DocumentCreatorUtils.createApplicationModule("Amber", "12.0", null);
    amodule.setAppModuleId(client.registerApplicationModule(authzToken, DEFAULT_GATEWAY, amodule));
    ApplicationInterfaceDescription application = new ApplicationInterfaceDescription();
    application.setApplicationName("AmberBR2");
    application.addToApplicationModules(amodule.getAppModuleId());
    application.addToApplicationInputs(DocumentCreatorUtils.createAppInput("AMBER_HEAT_RST", "AMBER_HEAT_RST", null, null, DataType.URI));
    application.addToApplicationInputs(DocumentCreatorUtils.createAppInput("AMBER_PROD_IN", "AMBER_PROD_IN", null, null, DataType.URI));
    application.addToApplicationInputs(DocumentCreatorUtils.createAppInput("AMBER_PRMTOP", "AMBER_PRMTOP", null, null, DataType.URI));
    application.addToApplicationOutputs(DocumentCreatorUtils.createAppOutput("AMBER_Prod.info", null, DataType.URI));
    application.addToApplicationOutputs(DocumentCreatorUtils.createAppOutput("AMBER_Prod.mdcrd", null, DataType.URI));
    application.addToApplicationOutputs(DocumentCreatorUtils.createAppOutput("AMBER_Prod.out", null, DataType.URI));
    application.addToApplicationOutputs(DocumentCreatorUtils.createAppOutput("AMBER_Prod.rst", null, DataType.URI));
    application.setApplicationInterfaceId(client.registerApplicationInterface(authzToken, DEFAULT_GATEWAY, application));
    ApplicationDeploymentDescription deployment = DocumentCreatorUtils.createApplicationDeployment(host.getComputeResourceId(), amodule.getAppModuleId(), "/home1/01437/ogce/production/app_wrappers/amber_wrapper.sh", ApplicationParallelismType.SERIAL, "AmberStampede");
    deployment.setAppDeploymentId(client.registerApplicationDeployment(authzToken, DEFAULT_GATEWAY, deployment));
    client.addGatewayComputeResourcePreference(authzToken, getGatewayResourceProfile().getGatewayID(), host.getComputeResourceId(), DocumentCreatorUtils.createComputeResourcePreference(host.getComputeResourceId(), "/home1/01437/ogce", "TG-STA110014S", false, null, null, null));
    return host.getComputeResourceId() + "," + application.getApplicationInterfaceId();
}
Also used : ApplicationDeploymentDescription(org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription) ComputeResourceDescription(org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription) ResourceJobManager(org.apache.airavata.model.appcatalog.computeresource.ResourceJobManager) ApplicationInterfaceDescription(org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription) SSHJobSubmission(org.apache.airavata.model.appcatalog.computeresource.SSHJobSubmission) ApplicationModule(org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule)

Example 8 with ApplicationInterfaceDescription

use of org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription in project airavata by apache.

the class DocumentCreatorNew method createLocalHostDocs.

public String createLocalHostDocs() throws AppCatalogException, InvalidRequestException, AiravataClientException, AiravataSystemException, TException {
    // Define compute resource host
    ComputeResourceDescription host = DocumentCreatorUtils.createComputeResourceDescription("localhost", new ArrayList<String>(Arrays.asList(new String[] { "127.0.0.1" })), new ArrayList<String>(Arrays.asList(new String[] { "127.0.0.1" })));
    // host.setIsEmpty(true);
    host.setComputeResourceId(client.registerComputeResource(authzToken, host));
    LOCALSubmission localSubmission = new LOCALSubmission();
    ResourceJobManager resourceJobManager = DocumentCreatorUtils.createResourceJobManager(ResourceJobManagerType.FORK, null, null, null);
    localSubmission.setResourceJobManager(resourceJobManager);
    client.addLocalSubmissionDetails(authzToken, host.getComputeResourceId(), 1, localSubmission);
    LOCALDataMovement localDataMovement = new LOCALDataMovement();
    client.addLocalDataMovementDetails(authzToken, host.getComputeResourceId(), 1, localDataMovement);
    // Define application module
    ApplicationModule module = DocumentCreatorUtils.createApplicationModule("echo", "1.0.0", "Local host echo applications");
    module.setAppModuleId(client.registerApplicationModule(authzToken, DEFAULT_GATEWAY, module));
    // Define application interfaces
    ApplicationInterfaceDescription application = new ApplicationInterfaceDescription();
    // application.setIsEmpty(false);
    application.setApplicationName("SimpleEcho0");
    application.addToApplicationModules(module.getAppModuleId());
    application.addToApplicationInputs(DocumentCreatorUtils.createAppInput("echo_input", "echo_input", "Echo Input Data", null, DataType.STRING));
    application.addToApplicationOutputs(DocumentCreatorUtils.createAppOutput("echo_output", null, DataType.STRING));
    application.setApplicationInterfaceId(client.registerApplicationInterface(authzToken, DEFAULT_GATEWAY, application));
    // Define application deployment
    ApplicationDeploymentDescription deployment = DocumentCreatorUtils.createApplicationDeployment(host.getComputeResourceId(), module.getAppModuleId(), "/bin/echo", ApplicationParallelismType.SERIAL, "Local echo app depoyment");
    deployment.setAppDeploymentId(client.registerApplicationDeployment(authzToken, DEFAULT_GATEWAY, deployment));
    // Define gateway profile
    ComputeResourcePreference computeResourcePreference = DocumentCreatorUtils.createComputeResourcePreference(host.getComputeResourceId(), "/tmp", null, false, null, null, null);
    gatewayResourceProfile = new GatewayResourceProfile();
    // gatewayResourceProfile.setGatewayID("default");
    gatewayResourceProfile.setGatewayID(DEFAULT_GATEWAY);
    gatewayResourceProfile.addToComputeResourcePreferences(computeResourcePreference);
    String gatewayId = client.registerGatewayResourceProfile(authzToken, gatewayResourceProfile);
    gatewayResourceProfile.setGatewayID(gatewayId);
    client.addGatewayComputeResourcePreference(authzToken, gatewayResourceProfile.getGatewayID(), host.getComputeResourceId(), computeResourcePreference);
    return host.getComputeResourceId() + "," + application.getApplicationInterfaceId();
}
Also used : LOCALSubmission(org.apache.airavata.model.appcatalog.computeresource.LOCALSubmission) ComputeResourcePreference(org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference) ApplicationDeploymentDescription(org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription) GatewayResourceProfile(org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile) ComputeResourceDescription(org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription) ResourceJobManager(org.apache.airavata.model.appcatalog.computeresource.ResourceJobManager) ApplicationInterfaceDescription(org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription) ApplicationModule(org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule)

Example 9 with ApplicationInterfaceDescription

use of org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription in project airavata by apache.

the class DocumentCreatorNew method createPBSDocsForOGCE_Echo.

// 
// public void createGramDocs() {
// //        /*
// //           creating host descriptor for gram
// //        */
// //        HostDescription host = new HostDescription(GlobusHostType.type);
// //        host.getType().setHostAddress(trestleshpcHostAddress);
// //        host.getType().setHostName(trestleshpcHostAddress);
// //        ((GlobusHostType) host.getType()).setGlobusGateKeeperEndPointArray(new String[]{gramAddress});
// //        ((GlobusHostType) host.getType()).setGridFTPEndPointArray(new String[]{gridftpAddress});
// //        try {
// //            airavataAPI.getApplicationManager().saveHostDescription(host);
// //        } catch (AiravataAPIInvocationException e) {
// //            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
// //        }
// //
// //
// //        /*
// //        * Service Description creation and saving
// //        */
// //        String serviceName = "SimpleEcho1";
// //        ServiceDescription serv = new ServiceDescription();
// //        serv.getType().setName(serviceName);
// //
// //        List<InputParameterType> inputList = new ArrayList<InputParameterType>();
// //        List<OutputParameterType> outputList = new ArrayList<OutputParameterType>();
// //
// //        InputParameterType input = InputParameterType.Factory.newInstance();
// //        input.setParameterName("echo_input");
// //        ParameterType parameterType = input.addNewParameterType();
// //        parameterType.setType(DataType.STRING);
// //        parameterType.setName("String");
// //
// //        OutputParameterType output = OutputParameterType.Factory.newInstance();
// //        output.setParameterName("echo_output");
// //        ParameterType parameterType1 = output.addNewParameterType();
// //        parameterType1.setType(DataType.STRING);
// //        parameterType1.setName("String");
// //
// //        inputList.add(input);
// //        outputList.add(output);
// //
// //        InputParameterType[] inputParamList = inputList.toArray(new InputParameterType[inputList.size()]);
// //        OutputParameterType[] outputParamList = outputList.toArray(new OutputParameterType[outputList.size()]);
// //
// //        serv.getType().setInputParametersArray(inputParamList);
// //        serv.getType().setOutputParametersArray(outputParamList);
// //        try {
// //            airavataAPI.getApplicationManager().saveServiceDescription(serv);
// //        } catch (AiravataAPIInvocationException e) {
// //            e.printStackTrace();
// //        }
// //
// //        /*
// //            Application descriptor creation and saving
// //         */
// //        ApplicationDescription appDesc = new ApplicationDescription(HpcApplicationDeploymentType.type);
// //        HpcApplicationDeploymentType app = (HpcApplicationDeploymentType) appDesc.getType();
// //        ApplicationDeploymentDescriptionType.ApplicationName name = ApplicationDeploymentDescriptionType.ApplicationName.Factory.newInstance();
// //        name.setStringValue("EchoLocal");
// //        app.setApplicationName(name);
// //        ProjectAccountType projectAccountType = app.addNewProjectAccount();
// //        projectAccountType.setProjectAccountNumber("sds128");
// //
// //        QueueType queueType = app.addNewQueue();
// //        queueType.setQueueName("normal");
// //
// //        app.setCpuCount(1);
// //        app.setJobType(JobTypeType.SERIAL);
// //        app.setNodeCount(1);
// //        app.setProcessorsPerNode(1);
// //
// //        /*
// //           * Use bat file if it is compiled on Windows
// //           */
// //        app.setExecutableLocation("/bin/echo");
// //
// //        /*
// //           * Default tmp location
// //           */
// //        String tempDir = "/home/ogce/scratch";
// //        app.setScratchWorkingDirectory(tempDir);
// //        app.setMaxMemory(10);
// //
// //
// //        try {
// //            airavataAPI.getApplicationManager().saveApplicationDescription(serviceName, trestleshpcHostAddress, appDesc);
// //        } catch (AiravataAPIInvocationException e) {
// //            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
// //        }
// }
// 
public String createPBSDocsForOGCE_Echo() throws AppCatalogException, InvalidRequestException, AiravataClientException, AiravataSystemException, TException {
    ComputeResourceDescription host = DocumentCreatorUtils.createComputeResourceDescription(trestleshpcHostAddress, null, null);
    host.addToIpAddresses(trestleshpcHostAddress);
    host.addToHostAliases(trestleshpcHostAddress);
    host.setComputeResourceId(client.registerComputeResource(authzToken, host));
    SSHJobSubmission sshJobSubmission = new SSHJobSubmission();
    ResourceJobManager resourceJobManager = DocumentCreatorUtils.createResourceJobManager(ResourceJobManagerType.PBS, "/opt/torque/bin/", null, null);
    sshJobSubmission.setResourceJobManager(resourceJobManager);
    sshJobSubmission.setSecurityProtocol(SecurityProtocol.GSI);
    sshJobSubmission.setSshPort(22);
    client.addSSHJobSubmissionDetails(authzToken, host.getComputeResourceId(), 1, sshJobSubmission);
    SCPDataMovement scpDataMovement = new SCPDataMovement();
    scpDataMovement.setSecurityProtocol(SecurityProtocol.GSI);
    scpDataMovement.setSshPort(22);
    client.addSCPDataMovementDetails(authzToken, host.getComputeResourceId(), 1, scpDataMovement);
    ApplicationModule module1 = DocumentCreatorUtils.createApplicationModule("echo", "1.2", null);
    module1.setAppModuleId(client.registerApplicationModule(authzToken, DEFAULT_GATEWAY, module1));
    ApplicationInterfaceDescription application = new ApplicationInterfaceDescription();
    // application.setIsEmpty(false);
    application.setApplicationName("SimpleEcho2");
    application.addToApplicationModules(module1.getAppModuleId());
    application.addToApplicationInputs(DocumentCreatorUtils.createAppInput("echo_input", "echo_input", "echo_input", null, DataType.STRING));
    application.addToApplicationOutputs(DocumentCreatorUtils.createAppOutput("echo_output", null, DataType.STRING));
    application.setApplicationInterfaceId(client.registerApplicationInterface(authzToken, DEFAULT_GATEWAY, application));
    ApplicationDeploymentDescription deployment = DocumentCreatorUtils.createApplicationDeployment(host.getComputeResourceId(), module1.getAppModuleId(), "/home/ogce/echo.sh", ApplicationParallelismType.SERIAL, "Echo application");
    deployment.setAppDeploymentId(client.registerApplicationDeployment(authzToken, DEFAULT_GATEWAY, deployment));
    client.addGatewayComputeResourcePreference(authzToken, getGatewayResourceProfile().getGatewayID(), host.getComputeResourceId(), DocumentCreatorUtils.createComputeResourcePreference(host.getComputeResourceId(), "/oasis/scratch/trestles/ogce/temp_project/", "sds128", false, null, null, null));
    return host.getComputeResourceId() + "," + application.getApplicationInterfaceId();
}
Also used : ApplicationDeploymentDescription(org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription) ComputeResourceDescription(org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription) ResourceJobManager(org.apache.airavata.model.appcatalog.computeresource.ResourceJobManager) ApplicationInterfaceDescription(org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription) SSHJobSubmission(org.apache.airavata.model.appcatalog.computeresource.SSHJobSubmission) ApplicationModule(org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule)

Example 10 with ApplicationInterfaceDescription

use of org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription in project airavata by apache.

the class DocumentCreatorNew method createSlurmDocs.

public String createSlurmDocs() throws AppCatalogException, InvalidRequestException, AiravataClientException, AiravataSystemException, TException {
    ComputeResourceDescription host = DocumentCreatorUtils.createComputeResourceDescription(stampedeHostAddress, null, null);
    host.addToHostAliases(stampedeHostAddress);
    host.addToIpAddresses(stampedeHostAddress);
    host.setComputeResourceId(client.registerComputeResource(authzToken, host));
    ResourceJobManager resourceJobManager = DocumentCreatorUtils.createResourceJobManager(ResourceJobManagerType.SLURM, "/usr/bin/", null, "push");
    SSHJobSubmission sshJobSubmission = new SSHJobSubmission();
    sshJobSubmission.setResourceJobManager(resourceJobManager);
    sshJobSubmission.setSecurityProtocol(SecurityProtocol.GSI);
    sshJobSubmission.setSshPort(2222);
    client.addSSHJobSubmissionDetails(authzToken, host.getComputeResourceId(), 1, sshJobSubmission);
    SCPDataMovement scpDataMovement = new SCPDataMovement();
    scpDataMovement.setSecurityProtocol(SecurityProtocol.GSI);
    scpDataMovement.setSshPort(22);
    client.addSCPDataMovementDetails(authzToken, host.getComputeResourceId(), 1, scpDataMovement);
    ApplicationModule module = DocumentCreatorUtils.createApplicationModule("echo", "1.3", null);
    module.setAppModuleId(client.registerApplicationModule(authzToken, DEFAULT_GATEWAY, module));
    ApplicationInterfaceDescription application = new ApplicationInterfaceDescription();
    // application.setIsEmpty(false);
    application.setApplicationName("SimpleEcho3");
    application.addToApplicationModules(module.getAppModuleId());
    application.addToApplicationInputs(DocumentCreatorUtils.createAppInput("echo_input", "echo_input", null, null, DataType.STRING));
    application.addToApplicationOutputs(DocumentCreatorUtils.createAppOutput("echo_output", null, DataType.STRING));
    application.setApplicationInterfaceId(client.registerApplicationInterface(authzToken, DEFAULT_GATEWAY, application));
    ApplicationDeploymentDescription deployment = DocumentCreatorUtils.createApplicationDeployment(host.getComputeResourceId(), module.getAppModuleId(), "/bin/echo", ApplicationParallelismType.SERIAL, "EchoLocal");
    deployment.setAppDeploymentId(client.registerApplicationDeployment(authzToken, DEFAULT_GATEWAY, deployment));
    client.addGatewayComputeResourcePreference(authzToken, getGatewayResourceProfile().getGatewayID(), host.getComputeResourceId(), DocumentCreatorUtils.createComputeResourcePreference(host.getComputeResourceId(), "/home1/01437/ogce", "TG-STA110014S", false, null, null, null));
    return host.getComputeResourceId() + "," + application.getApplicationInterfaceId();
}
Also used : ApplicationDeploymentDescription(org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription) ComputeResourceDescription(org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription) ResourceJobManager(org.apache.airavata.model.appcatalog.computeresource.ResourceJobManager) ApplicationInterfaceDescription(org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription) SSHJobSubmission(org.apache.airavata.model.appcatalog.computeresource.SSHJobSubmission) ApplicationModule(org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule)

Aggregations

ApplicationInterfaceDescription (org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription)28 ApplicationDeploymentDescription (org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription)13 ApplicationModule (org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule)13 ComputeResourceDescription (org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription)11 ResourceJobManager (org.apache.airavata.model.appcatalog.computeresource.ResourceJobManager)11 SSHJobSubmission (org.apache.airavata.model.appcatalog.computeresource.SSHJobSubmission)10 RegistryServiceException (org.apache.airavata.registry.api.exception.RegistryServiceException)6 ArrayList (java.util.ArrayList)3 AiravataException (org.apache.airavata.common.exception.AiravataException)3 ApplicationSettingsException (org.apache.airavata.common.exception.ApplicationSettingsException)3 OutputDataObjectType (org.apache.airavata.model.application.io.OutputDataObjectType)3 AppCatalogException (org.apache.airavata.registry.cpi.AppCatalogException)3 CredentialStoreException (org.apache.airavata.credential.store.exception.CredentialStoreException)2 JobManagerCommand (org.apache.airavata.model.appcatalog.computeresource.JobManagerCommand)2 InputDataObjectType (org.apache.airavata.model.application.io.InputDataObjectType)2 RegistryService (org.apache.airavata.registry.api.RegistryService)2 ApplicationInterface (org.apache.airavata.registry.cpi.ApplicationInterface)2 SecurityCheck (org.apache.airavata.service.security.interceptor.SecurityCheck)2 SharingRegistryService (org.apache.airavata.sharing.registry.service.cpi.SharingRegistryService)2 TException (org.apache.thrift.TException)2