This is an automated email from the ASF dual-hosted git repository. lahirujayathilake pushed a commit to branch cybershuttle-staging in repository https://gitbox.apache.org/repos/asf/airavata.git
commit 8d19d88878633253698a8aea0deb86d9e62a5a39 Author: ganning127 <[email protected]> AuthorDate: Sun Mar 30 23:29:58 2025 -0400 Add support for ModelResource --- .../service/controller/ProjectController.java | 17 +++++++------ .../research/service/enums/ResourceTypeEnum.java | 4 ++- .../research/service/handlers/ProjectHandler.java | 3 +++ .../service/model/entity/ModelResource.java | 29 ++++++++++++++++++++++ 4 files changed, 44 insertions(+), 9 deletions(-) diff --git a/modules/research-framework/research-service/src/main/java/org/apache/airavata/research/service/controller/ProjectController.java b/modules/research-framework/research-service/src/main/java/org/apache/airavata/research/service/controller/ProjectController.java index f9ef89d4c9..534480055b 100644 --- a/modules/research-framework/research-service/src/main/java/org/apache/airavata/research/service/controller/ProjectController.java +++ b/modules/research-framework/research-service/src/main/java/org/apache/airavata/research/service/controller/ProjectController.java @@ -20,9 +20,7 @@ package org.apache.airavata.research.service.controller; import org.apache.airavata.research.service.ResponseTypes.ResourceResponse; import org.apache.airavata.research.service.enums.ResourceTypeEnum; -import org.apache.airavata.research.service.model.entity.DatasetResource; -import org.apache.airavata.research.service.model.entity.RepositoryResource; -import org.apache.airavata.research.service.model.entity.Resource; +import org.apache.airavata.research.service.model.entity.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.RequestMapping; @@ -32,7 +30,6 @@ import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Operation; import org.springframework.web.bind.annotation.*; -import org.apache.airavata.research.service.model.entity.NotebookResource; import org.apache.airavata.research.service.handlers.ProjectHandler; import org.springframework.http.ResponseEntity; @@ -47,28 +44,32 @@ public class ProjectController { @org.springframework.beans.factory.annotation.Autowired private ProjectHandler projectHandler; - - // Endpoint for adding a DatasetResource @PostMapping("/dataset") public ResponseEntity<ResourceResponse> createDatasetResource(@RequestBody DatasetResource datasetResource) { ResourceResponse response = projectHandler.createResource(datasetResource, ResourceTypeEnum.DATASET); return ResponseEntity.ok(response); } - // Endpoint for adding a NotebookResource @PostMapping("/notebook") public ResponseEntity<ResourceResponse> createNotebookResource(@RequestBody NotebookResource notebookResource) { ResourceResponse response = projectHandler.createResource(notebookResource, ResourceTypeEnum.NOTEBOOK); return ResponseEntity.ok(response); } - // Endpoint for adding a RepositoryResource @PostMapping("/repository") public ResponseEntity<ResourceResponse> createRepositoryResource(@RequestBody RepositoryResource repositoryResource) { ResourceResponse response = projectHandler.createResource(repositoryResource, ResourceTypeEnum.REPOSITORY); return ResponseEntity.ok(response); } + @PostMapping("/model") + public ResponseEntity<ResourceResponse> createModelResource(@RequestBody ModelResource modelResource) { + ResourceResponse response = projectHandler.createResource(modelResource, ResourceTypeEnum.MODEL); + return ResponseEntity.ok(response); + } + + + @Operation( summary = "Get dataset, notebook, or repository" ) diff --git a/modules/research-framework/research-service/src/main/java/org/apache/airavata/research/service/enums/ResourceTypeEnum.java b/modules/research-framework/research-service/src/main/java/org/apache/airavata/research/service/enums/ResourceTypeEnum.java index c99b4c05f7..7b82af32fc 100644 --- a/modules/research-framework/research-service/src/main/java/org/apache/airavata/research/service/enums/ResourceTypeEnum.java +++ b/modules/research-framework/research-service/src/main/java/org/apache/airavata/research/service/enums/ResourceTypeEnum.java @@ -3,7 +3,9 @@ package org.apache.airavata.research.service.enums; public enum ResourceTypeEnum { NOTEBOOK("NOTEBOOK"), DATASET("DATASET"), - REPOSITORY("REPOSITORY"); + REPOSITORY("REPOSITORY"), + MODEL("MODEL"); + private String str; ResourceTypeEnum(String str) { diff --git a/modules/research-framework/research-service/src/main/java/org/apache/airavata/research/service/handlers/ProjectHandler.java b/modules/research-framework/research-service/src/main/java/org/apache/airavata/research/service/handlers/ProjectHandler.java index db140ac134..8cccae6454 100644 --- a/modules/research-framework/research-service/src/main/java/org/apache/airavata/research/service/handlers/ProjectHandler.java +++ b/modules/research-framework/research-service/src/main/java/org/apache/airavata/research/service/handlers/ProjectHandler.java @@ -99,9 +99,12 @@ public class ProjectHandler { response.setType(ResourceTypeEnum.NOTEBOOK); } else if (resource instanceof RepositoryResource) { response.setType(ResourceTypeEnum.REPOSITORY); + } else if (resource instanceof ModelResource) { + response.setType(ResourceTypeEnum.MODEL); } else { throw new RuntimeException("Unknown resource type: " + resource.getClass().getName()); } + return response; } diff --git a/modules/research-framework/research-service/src/main/java/org/apache/airavata/research/service/model/entity/ModelResource.java b/modules/research-framework/research-service/src/main/java/org/apache/airavata/research/service/model/entity/ModelResource.java new file mode 100644 index 0000000000..621b263400 --- /dev/null +++ b/modules/research-framework/research-service/src/main/java/org/apache/airavata/research/service/model/entity/ModelResource.java @@ -0,0 +1,29 @@ +package org.apache.airavata.research.service.model.entity; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; + +@Entity +public class ModelResource extends Resource { + @Column(nullable = false) + private String applicationInterfaceId; + + @Column(nullable = false) + private String version; + + public String getApplicationInterfaceId() { + return applicationInterfaceId; + } + + public void setApplicationInterfaceId(String applicationInterfaceId) { + this.applicationInterfaceId = applicationInterfaceId; + } + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } +}
