You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by la...@apache.org on 2025/02/18 09:13:51 UTC
(airavata) 03/03: extract process id using exp id
This is an automated email from the ASF dual-hosted git repository.
lahirujayathilake pushed a commit to branch agent-framewok-refactoring
in repository https://gitbox.apache.org/repos/asf/airavata.git
commit e1bcf296953da0418586f488148ec5992abd2fb1
Author: lahiruj <la...@gmail.com>
AuthorDate: Tue Feb 18 04:13:28 2025 -0500
extract process id using exp id
---
.../service/controllers/ExperimentController.java | 11 +++++++++++
.../service/handlers/AgentManagementHandler.java | 17 +++++++++++++++++
.../connection/service/models/LaunchAgentResponse.java | 9 +++++++++
3 files changed, 37 insertions(+)
diff --git a/modules/agent-framework/agent-service/src/main/java/org/apache/airavata/agent/connection/service/controllers/ExperimentController.java b/modules/agent-framework/agent-service/src/main/java/org/apache/airavata/agent/connection/service/controllers/ExperimentController.java
index 2e59fac479..351f3caf2d 100644
--- a/modules/agent-framework/agent-service/src/main/java/org/apache/airavata/agent/connection/service/controllers/ExperimentController.java
+++ b/modules/agent-framework/agent-service/src/main/java/org/apache/airavata/agent/connection/service/controllers/ExperimentController.java
@@ -5,6 +5,7 @@ import org.apache.airavata.agent.connection.service.models.LaunchAgentRequest;
import org.apache.airavata.agent.connection.service.models.LaunchAgentResponse;
import org.apache.airavata.agent.connection.service.models.TerminateAgentResponse;
import org.apache.airavata.model.experiment.ExperimentModel;
+import org.apache.airavata.model.process.ProcessModel;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
@@ -36,4 +37,14 @@ public class ExperimentController {
public ResponseEntity<TerminateAgentResponse> terminateExperiment(@PathVariable("expId") String expId) {
return ResponseEntity.ok(agentManagementHandler.terminateExperiment(expId));
}
+
+ @GetMapping(value = "/{expId}/process", produces = MediaType.APPLICATION_JSON_VALUE)
+ public ResponseEntity<ProcessModel> getEnvProcessModel(@PathVariable("expId") String expId) {
+ ProcessModel processModel = agentManagementHandler.getEnvProcessModel(expId);
+ if (processModel == null) {
+ return ResponseEntity.notFound().build();
+ } else {
+ return ResponseEntity.ok(processModel);
+ }
+ }
}
diff --git a/modules/agent-framework/agent-service/src/main/java/org/apache/airavata/agent/connection/service/handlers/AgentManagementHandler.java b/modules/agent-framework/agent-service/src/main/java/org/apache/airavata/agent/connection/service/handlers/AgentManagementHandler.java
index bf339233e2..5e810ec020 100644
--- a/modules/agent-framework/agent-service/src/main/java/org/apache/airavata/agent/connection/service/handlers/AgentManagementHandler.java
+++ b/modules/agent-framework/agent-service/src/main/java/org/apache/airavata/agent/connection/service/handlers/AgentManagementHandler.java
@@ -12,6 +12,7 @@ import org.apache.airavata.model.application.io.InputDataObjectType;
import org.apache.airavata.model.experiment.ExperimentModel;
import org.apache.airavata.model.experiment.ExperimentType;
import org.apache.airavata.model.experiment.UserConfigurationDataModel;
+import org.apache.airavata.model.process.ProcessModel;
import org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel;
import org.apache.thrift.TException;
import org.slf4j.Logger;
@@ -98,6 +99,22 @@ public class AgentManagementHandler {
}
}
+ public ProcessModel getEnvProcessModel(String expId) {
+ try {
+ LOGGER.info("Extracting the process model for experiment id: {}", expId);
+ ExperimentModel expModel = airavataService.airavata().getDetailedExperimentTree(UserContext.authzToken(), expId);
+ if (expModel.getProcesses() != null && !expModel.getProcesses().isEmpty()) {
+ return expModel.getProcesses().get(0);
+ } else {
+ LOGGER.error("No process found for experiment id: {}", expId);
+ return null;
+ }
+ } catch (TException e) {
+ LOGGER.error("Error while extracting the process model for experiment id: {}", expId, e);
+ throw new RuntimeException(e);
+ }
+ }
+
private ExperimentModel generateExperiment(LaunchAgentRequest req, String agentId) throws TException {
Airavata.Client airavataClient = airavataService.airavata();
diff --git a/modules/agent-framework/agent-service/src/main/java/org/apache/airavata/agent/connection/service/models/LaunchAgentResponse.java b/modules/agent-framework/agent-service/src/main/java/org/apache/airavata/agent/connection/service/models/LaunchAgentResponse.java
index fd833fe684..23c5650b33 100644
--- a/modules/agent-framework/agent-service/src/main/java/org/apache/airavata/agent/connection/service/models/LaunchAgentResponse.java
+++ b/modules/agent-framework/agent-service/src/main/java/org/apache/airavata/agent/connection/service/models/LaunchAgentResponse.java
@@ -3,6 +3,7 @@ package org.apache.airavata.agent.connection.service.models;
public class LaunchAgentResponse {
private String agentId;
private String experimentId;
+ private String processId;
public LaunchAgentResponse(String agentId, String experimentId) {
this.agentId = agentId;
@@ -24,4 +25,12 @@ public class LaunchAgentResponse {
public void setExperimentId(String experimentId) {
this.experimentId = experimentId;
}
+
+ public String getProcessId() {
+ return processId;
+ }
+
+ public void setProcessId(String processId) {
+ this.processId = processId;
+ }
}