This is an automated email from the ASF dual-hosted git repository.
yasithdev pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/airavata.git
The following commit(s) were added to refs/heads/master by this push:
new 1c96d1c2f9 refactor(api): remove dead schema, fix two persistence
defects, drop legacy fields (#682)
1c96d1c2f9 is described below
commit 1c96d1c2f9be68b2947cc7ee2d847bd6303ddc83
Author: Yasith Jayawardana <[email protected]>
AuthorDate: Sat Jun 13 16:16:21 2026 -0400
refactor(api): remove dead schema, fix two persistence defects, drop legacy
fields (#682)
Removes schema no code reads (process_workflow table+proto,
resource.status/StatusEnum, orphan agent_deployment_info table, unused
BatchQueueRepository, duplicate app_module_mapping entity mapping, dead
credentials.CREDENTIAL_OWNER_TYPE column, and the grid-cert-legacy
user_dn/generate_cert fields on ProcessModel/UserConfigurationDataModel with
proto numbers reserved and Python stubs regenerated). Fixes two defects:
parsing_template silently dropped its parser_connections DAG on save, [...]
---
.../compute/model/AgentDeploymentInfoEntity.java | 79 --------------------
.../airavata/compute/model/QueueStatusEntity.java | 6 +-
.../repository/AgentDeploymentInfoRepository.java | 27 -------
.../compute/repository/BatchQueueRepository.java | 45 -----------
.../credential/model/CredentialEntity.java | 11 ---
.../infrastructure/ExecutionDataAccessImpl.java | 14 ----
.../orchestration/mapper/ExecutionMapper.java | 18 -----
.../orchestration/model/ProcessEntity.java | 37 ---------
.../orchestration/model/ProcessWorkflowEntity.java | 87 ----------------------
.../orchestration/model/ProcessWorkflowPK.java | 70 -----------------
.../model/UserConfigurationDataEntity.java | 21 ------
.../repository/ProcessWorkflowRepository.java | 84 ---------------------
.../service/RegistryServerHandler.java | 10 ---
.../orchestration/util/ExperimentModelUtil.java | 2 -
.../airavata/research/mapper/ResearchMapper.java | 51 +++++++++++++
.../research/model/AppModuleMappingEntity.java | 84 ---------------------
.../research/model/AppModuleMappingPK.java | 72 ------------------
.../research/model/ParsingTemplateEntity.java | 13 ++++
.../airavata/research/model/ResourceEntity.java | 12 ---
.../research/model/ResourceStarEntity.java | 8 +-
.../apache/airavata/research/model/StatusEnum.java | 27 -------
.../apache/airavata/research/model/TagEntity.java | 5 +-
.../repository/ApplicationInterfaceRepository.java | 16 ----
.../service/ExperimentRegistryService.java | 21 ------
.../research/service/ResearchResourceService.java | 16 +++-
.../airavata/interfaces/ApplicationInterface.java | 7 --
.../org/apache/airavata/interfaces/Constants.java | 1 -
.../airavata/interfaces/ExecutionDataAccess.java | 6 --
.../airavata/interfaces/ExpCatChildDataType.java | 3 +-
.../airavata/interfaces/ExperimentRegistry.java | 5 --
.../airavata/model/experiment/experiment.proto | 5 +-
.../apache/airavata/model/process/process.proto | 11 +--
.../src/test/resources/META-INF/persistence.xml | 3 -
.../db/migration/airavata/V1__Baseline_schema.sql | 31 ++------
.../airavata/model/experiment/experiment_pb2.py | 32 ++++----
.../airavata/model/experiment/experiment_pb2.pyi | 8 +-
.../apache/airavata/model/process/process_pb2.py | 8 +-
.../apache/airavata/model/process/process_pb2.pyi | 22 +-----
airavata-python-sdk/airavata_sdk/helpers/models.py | 2 -
.../airavata_sdk/helpers/research_resources.py | 2 -
.../db/migration/airavata/V1__Baseline_schema.sql | 31 ++------
conf/db/seed.sql | 2 +-
42 files changed, 127 insertions(+), 888 deletions(-)
diff --git
a/airavata-api/compute-service/src/main/java/org/apache/airavata/compute/model/AgentDeploymentInfoEntity.java
b/airavata-api/compute-service/src/main/java/org/apache/airavata/compute/model/AgentDeploymentInfoEntity.java
deleted file mode 100644
index 66702b9a31..0000000000
---
a/airavata-api/compute-service/src/main/java/org/apache/airavata/compute/model/AgentDeploymentInfoEntity.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/**
-*
-* 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.compute.model;
-
-import jakarta.persistence.Column;
-import jakarta.persistence.Entity;
-import jakarta.persistence.GeneratedValue;
-import jakarta.persistence.Id;
-import jakarta.persistence.Table;
-import org.hibernate.annotations.GenericGenerator;
-
-@Entity
-@Table(name = "AGENT_DEPLOYMENT_INFO")
-public class AgentDeploymentInfoEntity {
-
- @Id
- @Column(name = "AGENT_DEPLOYMENT_INFO_ID")
- @GeneratedValue(generator = "uuid")
- @GenericGenerator(name = "uuid", strategy = "uuid2")
- private String id;
-
- @Column(unique = true, name = "USER_FRINEDLY_NAME")
- private String userFriendlyName;
-
- @Column(name = "COMPUTE_RESOURCE_ID")
- private String computeResourceId;
-
- @Column(name = "AGENT_APPLICATION_ID")
- private String agentApplicationId;
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public String getUserFriendlyName() {
- return userFriendlyName;
- }
-
- public void setUserFriendlyName(String userFriendlyName) {
- this.userFriendlyName = userFriendlyName;
- }
-
- public String getComputeResourceId() {
- return computeResourceId;
- }
-
- public void setComputeResourceId(String computeResourceId) {
- this.computeResourceId = computeResourceId;
- }
-
- public String getAgentApplicationId() {
- return agentApplicationId;
- }
-
- public void setAgentApplicationId(String agentApplicationId) {
- this.agentApplicationId = agentApplicationId;
- }
-}
diff --git
a/airavata-api/compute-service/src/main/java/org/apache/airavata/compute/model/QueueStatusEntity.java
b/airavata-api/compute-service/src/main/java/org/apache/airavata/compute/model/QueueStatusEntity.java
index 74cb036606..9bcf88f291 100644
---
a/airavata-api/compute-service/src/main/java/org/apache/airavata/compute/model/QueueStatusEntity.java
+++
b/airavata-api/compute-service/src/main/java/org/apache/airavata/compute/model/QueueStatusEntity.java
@@ -48,7 +48,7 @@ public class QueueStatusEntity implements Serializable {
private boolean queueUp;
@Column(name = "RUNNING_JOBS")
- private boolean runningJobs;
+ private int runningJobs;
@Column(name = "QUEUED_JOBS")
private int queuedJobs;
@@ -87,11 +87,11 @@ public class QueueStatusEntity implements Serializable {
this.queueUp = queueUp;
}
- public boolean isRunningJobs() {
+ public int getRunningJobs() {
return runningJobs;
}
- public void setRunningJobs(boolean runningJobs) {
+ public void setRunningJobs(int runningJobs) {
this.runningJobs = runningJobs;
}
diff --git
a/airavata-api/compute-service/src/main/java/org/apache/airavata/compute/repository/AgentDeploymentInfoRepository.java
b/airavata-api/compute-service/src/main/java/org/apache/airavata/compute/repository/AgentDeploymentInfoRepository.java
deleted file mode 100644
index d2f2d3ef1f..0000000000
---
a/airavata-api/compute-service/src/main/java/org/apache/airavata/compute/repository/AgentDeploymentInfoRepository.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/**
-*
-* 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.compute.repository;
-
-import org.apache.airavata.compute.model.AgentDeploymentInfoEntity;
-import org.springframework.data.repository.CrudRepository;
-import org.springframework.stereotype.Repository;
-
-@Repository
-public interface AgentDeploymentInfoRepository extends
CrudRepository<AgentDeploymentInfoEntity, String> {}
diff --git
a/airavata-api/compute-service/src/main/java/org/apache/airavata/compute/repository/BatchQueueRepository.java
b/airavata-api/compute-service/src/main/java/org/apache/airavata/compute/repository/BatchQueueRepository.java
deleted file mode 100644
index 73d7cd60d5..0000000000
---
a/airavata-api/compute-service/src/main/java/org/apache/airavata/compute/repository/BatchQueueRepository.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/**
-*
-* 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.compute.repository;
-
-import org.apache.airavata.compute.mapper.ComputeMapper;
-import org.apache.airavata.compute.model.BatchQueueEntity;
-import org.apache.airavata.compute.model.BatchQueuePK;
-import org.apache.airavata.db.AbstractRepository;
-import org.apache.airavata.model.appcatalog.computeresource.proto.BatchQueue;
-import org.springframework.stereotype.Component;
-
-@Component
-public class BatchQueueRepository extends AbstractRepository<BatchQueue,
BatchQueueEntity, BatchQueuePK> {
-
- public BatchQueueRepository() {
- super(BatchQueue.class, BatchQueueEntity.class);
- }
-
- @Override
- protected BatchQueue toModel(BatchQueueEntity entity) {
- return ComputeMapper.INSTANCE.batchQueueToModel(entity);
- }
-
- @Override
- protected BatchQueueEntity toEntity(BatchQueue model) {
- return ComputeMapper.INSTANCE.batchQueueToEntity(model);
- }
-}
diff --git
a/airavata-api/credential-service/src/main/java/org/apache/airavata/credential/model/CredentialEntity.java
b/airavata-api/credential-service/src/main/java/org/apache/airavata/credential/model/CredentialEntity.java
index f4c94cd246..57d7cebaa9 100644
---
a/airavata-api/credential-service/src/main/java/org/apache/airavata/credential/model/CredentialEntity.java
+++
b/airavata-api/credential-service/src/main/java/org/apache/airavata/credential/model/CredentialEntity.java
@@ -48,9 +48,6 @@ public class CredentialEntity {
@Column(name = "DESCRIPTION", length = 500)
private String description;
- @Column(name = "CREDENTIAL_OWNER_TYPE", length = 50)
- private String credentialOwnerType;
-
public String getGatewayId() {
return gatewayId;
}
@@ -98,12 +95,4 @@ public class CredentialEntity {
public void setDescription(String description) {
this.description = description;
}
-
- public String getCredentialOwnerType() {
- return credentialOwnerType;
- }
-
- public void setCredentialOwnerType(String credentialOwnerType) {
- this.credentialOwnerType = credentialOwnerType;
- }
}
diff --git
a/airavata-api/orchestration-service/src/main/java/org/apache/airavata/orchestration/infrastructure/ExecutionDataAccessImpl.java
b/airavata-api/orchestration-service/src/main/java/org/apache/airavata/orchestration/infrastructure/ExecutionDataAccessImpl.java
index 3b60e33e3a..40cea1dbc7 100644
---
a/airavata-api/orchestration-service/src/main/java/org/apache/airavata/orchestration/infrastructure/ExecutionDataAccessImpl.java
+++
b/airavata-api/orchestration-service/src/main/java/org/apache/airavata/orchestration/infrastructure/ExecutionDataAccessImpl.java
@@ -29,7 +29,6 @@ import org.apache.airavata.model.commons.proto.ErrorModel;
import org.apache.airavata.model.experiment.proto.UserConfigurationDataModel;
import org.apache.airavata.model.job.proto.JobModel;
import org.apache.airavata.model.process.proto.ProcessModel;
-import org.apache.airavata.model.process.proto.ProcessWorkflow;
import
org.apache.airavata.model.scheduling.proto.ComputationalResourceSchedulingModel;
import org.apache.airavata.model.status.proto.JobStatus;
import org.apache.airavata.model.status.proto.ProcessState;
@@ -53,7 +52,6 @@ public class ExecutionDataAccessImpl implements
ExecutionDataAccess {
private final ExecIoParamRepository execIoParamRepository = new
ExecIoParamRepository();
private final ExecStatusRepository execStatusRepository = new
ExecStatusRepository();
private final ExecErrorRepository execErrorRepository = new
ExecErrorRepository();
- private final ProcessWorkflowRepository processWorkflowRepository = new
ProcessWorkflowRepository();
private final JobRepository jobRepository = new JobRepository();
private final TaskRepository taskRepository = new TaskRepository();
// --- Process ---
@@ -141,18 +139,6 @@ public class ExecutionDataAccessImpl implements
ExecutionDataAccess {
return execIoParamRepository.getProcessOutputs(processId);
}
- // --- Process Workflow ---
-
- @Override
- public void addProcessWorkflow(ProcessWorkflow processWorkflow, String
processId) throws RegistryException {
- processWorkflowRepository.addProcessWorkflow(processWorkflow,
processId);
- }
-
- @Override
- public List<ProcessWorkflow> getProcessWorkflows(String processId) throws
RegistryException {
- return processWorkflowRepository.getProcessWorkflows(processId);
- }
-
// --- Task ---
@Override
diff --git
a/airavata-api/orchestration-service/src/main/java/org/apache/airavata/orchestration/mapper/ExecutionMapper.java
b/airavata-api/orchestration-service/src/main/java/org/apache/airavata/orchestration/mapper/ExecutionMapper.java
index ce69a51619..1a49127519 100644
---
a/airavata-api/orchestration-service/src/main/java/org/apache/airavata/orchestration/mapper/ExecutionMapper.java
+++
b/airavata-api/orchestration-service/src/main/java/org/apache/airavata/orchestration/mapper/ExecutionMapper.java
@@ -27,7 +27,6 @@ import org.apache.airavata.model.commons.proto.ErrorModel;
import org.apache.airavata.model.experiment.proto.UserConfigurationDataModel;
import org.apache.airavata.model.job.proto.JobModel;
import org.apache.airavata.model.process.proto.ProcessModel;
-import org.apache.airavata.model.process.proto.ProcessWorkflow;
import
org.apache.airavata.model.scheduling.proto.ComputationalResourceSchedulingModel;
import org.apache.airavata.model.status.proto.JobState;
import org.apache.airavata.model.status.proto.JobStatus;
@@ -101,9 +100,6 @@ public interface ExecutionMapper extends
CommonMapperConversions {
if (entity.getTasks() != null) {
entity.getTasks().forEach(t -> b.addTasks(taskToModel(t)));
}
- if (entity.getProcessWorkflows() != null) {
- entity.getProcessWorkflows().forEach(w ->
b.addProcessWorkflows(processWorkflowToModel(w)));
- }
return b.build();
}
@@ -132,11 +128,6 @@ public interface ExecutionMapper extends
CommonMapperConversions {
entity.setTasks(new java.util.ArrayList<>());
model.getTasksList().forEach(t ->
entity.getTasks().add(taskToEntity(t)));
}
- if (!model.getProcessWorkflowsList().isEmpty()) {
- entity.setProcessWorkflows(new java.util.ArrayList<>());
- model.getProcessWorkflowsList()
- .forEach(w ->
entity.getProcessWorkflows().add(processWorkflowToEntity(w)));
- }
return entity;
}
@@ -410,11 +401,6 @@ public interface ExecutionMapper extends
CommonMapperConversions {
return e;
}
- // --- ProcessWorkflow ---
- ProcessWorkflow processWorkflowToModel(ProcessWorkflowEntity entity);
-
- ProcessWorkflowEntity processWorkflowToEntity(ProcessWorkflow model);
-
// --- UserConfigurationData ---
/**
@@ -443,8 +429,6 @@ public interface ExecutionMapper extends
CommonMapperConversions {
.setOverrideManualScheduledParams(entity.isOverrideManualScheduledParams())
.setShareExperimentPublicly(entity.isShareExperimentPublicly())
.setThrottleResources(entity.isThrottleResources())
- .setUserDn(entity.getUserDN())
- .setGenerateCert(entity.isGenerateCert())
.setExperimentDataDir(entity.getExperimentDataDir())
.setGroupResourceProfileId(entity.getGroupResourceProfileId())
.setUseUserCrPref(entity.isUseUserCRPref())
@@ -464,8 +448,6 @@ public interface ExecutionMapper extends
CommonMapperConversions {
entity.setOverrideManualScheduledParams(model.getOverrideManualScheduledParams());
entity.setShareExperimentPublicly(model.getShareExperimentPublicly());
entity.setThrottleResources(model.getThrottleResources());
- entity.setUserDN(model.getUserDn());
- entity.setGenerateCert(model.getGenerateCert());
entity.setExperimentDataDir(model.getExperimentDataDir());
entity.setGroupResourceProfileId(model.getGroupResourceProfileId());
entity.setUseUserCRPref(model.getUseUserCrPref());
diff --git
a/airavata-api/orchestration-service/src/main/java/org/apache/airavata/orchestration/model/ProcessEntity.java
b/airavata-api/orchestration-service/src/main/java/org/apache/airavata/orchestration/model/ProcessEntity.java
index e46a93875d..64a34b7ffe 100644
---
a/airavata-api/orchestration-service/src/main/java/org/apache/airavata/orchestration/model/ProcessEntity.java
+++
b/airavata-api/orchestration-service/src/main/java/org/apache/airavata/orchestration/model/ProcessEntity.java
@@ -23,7 +23,6 @@ import jakarta.persistence.*;
import jakarta.persistence.JoinColumn;
import java.io.Serializable;
import java.sql.Timestamp;
-import java.util.Collection;
import java.util.List;
import org.apache.airavata.compute.model.ProcessResourceScheduleEntity;
@@ -81,12 +80,6 @@ public class ProcessEntity implements Serializable {
@Column(name = "OUTPUT_STORAGE_RESOURCE_ID")
private String outputStorageResourceId;
- @Column(name = "USER_DN")
- private String userDn;
-
- @Column(name = "GENERATE_CERT")
- private boolean generateCert;
-
@Column(name = "EXPERIMENT_DATA_DIR", length = 512)
private String experimentDataDir;
@@ -159,13 +152,6 @@ public class ProcessEntity implements Serializable {
fetch = FetchType.EAGER)
private List<TaskEntity> tasks;
- @OneToMany(
- targetEntity = ProcessWorkflowEntity.class,
- cascade = CascadeType.ALL,
- mappedBy = "process",
- fetch = FetchType.EAGER)
- private Collection<ProcessWorkflowEntity> processWorkflows;
-
public ProcessEntity() {}
public String getProcessId() {
@@ -280,21 +266,6 @@ public class ProcessEntity implements Serializable {
this.outputStorageResourceId = outputStorageResourceId;
}
- public String getUserDn() {
- return userDn;
- }
-
- public void setUserDn(String userDn) {
- this.userDn = userDn;
- }
-
- public boolean isGenerateCert() {
- return generateCert;
- }
-
- public void setGenerateCert(boolean generateCert) {
- this.generateCert = generateCert;
- }
public String getExperimentDataDir() {
return experimentDataDir;
@@ -368,14 +339,6 @@ public class ProcessEntity implements Serializable {
this.processResourceSchedule = processResourceSchedule;
}
- public Collection<ProcessWorkflowEntity> getProcessWorkflows() {
- return processWorkflows;
- }
-
- public void setProcessWorkflows(Collection<ProcessWorkflowEntity>
processWorkflows) {
- this.processWorkflows = processWorkflows;
- }
-
public List<TaskEntity> getTasks() {
return tasks;
}
diff --git
a/airavata-api/orchestration-service/src/main/java/org/apache/airavata/orchestration/model/ProcessWorkflowEntity.java
b/airavata-api/orchestration-service/src/main/java/org/apache/airavata/orchestration/model/ProcessWorkflowEntity.java
deleted file mode 100644
index a9102383c9..0000000000
---
a/airavata-api/orchestration-service/src/main/java/org/apache/airavata/orchestration/model/ProcessWorkflowEntity.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/**
-*
-* 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.orchestration.model;
-
-import jakarta.persistence.*;
-import java.sql.Timestamp;
-
-@Entity
-@Table(name = "PROCESS_WORKFLOW")
-@IdClass(ProcessWorkflowPK.class)
-public class ProcessWorkflowEntity {
-
- @Id
- @Column(name = "PROCESS_ID")
- private String processId;
-
- @Id
- @Column(name = "WORKFLOW_ID")
- private String workflowId;
-
- @Column(name = "CREATION_TIME")
- private Timestamp creationTime;
-
- @Column(name = "TYPE")
- private String type;
-
- @ManyToOne(targetEntity = ProcessEntity.class, fetch = FetchType.LAZY)
- @JoinColumn(name = "PROCESS_ID", referencedColumnName = "PROCESS_ID",
insertable = false, updatable = false)
- private ProcessEntity process;
-
- public String getProcessId() {
- return processId;
- }
-
- public void setProcessId(String processId) {
- this.processId = processId;
- }
-
- public String getWorkflowId() {
- return workflowId;
- }
-
- public void setWorkflowId(String workflowId) {
- this.workflowId = workflowId;
- }
-
- public Timestamp getCreationTime() {
- return creationTime;
- }
-
- public void setCreationTime(Timestamp creationTime) {
- this.creationTime = creationTime;
- }
-
- public String getType() {
- return type;
- }
-
- public void setType(String type) {
- this.type = type;
- }
-
- public ProcessEntity getProcess() {
- return process;
- }
-
- public void setProcess(ProcessEntity process) {
- this.process = process;
- }
-}
diff --git
a/airavata-api/orchestration-service/src/main/java/org/apache/airavata/orchestration/model/ProcessWorkflowPK.java
b/airavata-api/orchestration-service/src/main/java/org/apache/airavata/orchestration/model/ProcessWorkflowPK.java
deleted file mode 100644
index 1c85fc5c5c..0000000000
---
a/airavata-api/orchestration-service/src/main/java/org/apache/airavata/orchestration/model/ProcessWorkflowPK.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/**
-*
-* 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.orchestration.model;
-
-import jakarta.persistence.Column;
-import jakarta.persistence.Id;
-import java.io.Serializable;
-
-public class ProcessWorkflowPK implements Serializable {
-
- private String processId;
- private String workflowId;
-
- @Id
- @Column(name = "PROCESS_ID")
- public String getProcessId() {
- return processId;
- }
-
- public void setProcessId(String processId) {
- this.processId = processId;
- }
-
- @Id
- @Column(name = "WORKFLOW_ID")
- public String getWorkflowId() {
- return workflowId;
- }
-
- public void setWorkflowId(String workflowId) {
- this.workflowId = workflowId;
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
-
- ProcessWorkflowPK that = (ProcessWorkflowPK) o;
-
- return (getProcessId() != null ?
getProcessId().equals(that.getProcessId()) : that.getProcessId() == null)
- && (getWorkflowId() != null
- ? getWorkflowId().equals(that.getWorkflowId())
- : that.getWorkflowId() == null);
- }
-
- @Override
- public int hashCode() {
- int result = getProcessId() != null ? getProcessId().hashCode() : 0;
- result = 31 * result + (getWorkflowId() != null ?
getWorkflowId().hashCode() : 0);
- return result;
- }
-}
diff --git
a/airavata-api/orchestration-service/src/main/java/org/apache/airavata/orchestration/model/UserConfigurationDataEntity.java
b/airavata-api/orchestration-service/src/main/java/org/apache/airavata/orchestration/model/UserConfigurationDataEntity.java
index 9d3d6e5e76..8a42c9bfa7 100644
---
a/airavata-api/orchestration-service/src/main/java/org/apache/airavata/orchestration/model/UserConfigurationDataEntity.java
+++
b/airavata-api/orchestration-service/src/main/java/org/apache/airavata/orchestration/model/UserConfigurationDataEntity.java
@@ -48,12 +48,6 @@ public class UserConfigurationDataEntity implements
Serializable {
@Column(name = "THROTTLE_RESOURCES")
private boolean throttleResources;
- @Column(name = "USER_DN")
- private String userDN;
-
- @Column(name = "GENERATE_CERT")
- private boolean generateCert;
-
@Column(name = "RESOURCE_HOST_ID")
private String resourceHostId;
@@ -151,21 +145,6 @@ public class UserConfigurationDataEntity implements
Serializable {
this.throttleResources = throttleResources;
}
- public String getUserDN() {
- return userDN;
- }
-
- public void setUserDN(String userDN) {
- this.userDN = userDN;
- }
-
- public boolean isGenerateCert() {
- return generateCert;
- }
-
- public void setGenerateCert(boolean generateCert) {
- this.generateCert = generateCert;
- }
public String getResourceHostId() {
return resourceHostId;
diff --git
a/airavata-api/orchestration-service/src/main/java/org/apache/airavata/orchestration/repository/ProcessWorkflowRepository.java
b/airavata-api/orchestration-service/src/main/java/org/apache/airavata/orchestration/repository/ProcessWorkflowRepository.java
deleted file mode 100644
index f0411adcca..0000000000
---
a/airavata-api/orchestration-service/src/main/java/org/apache/airavata/orchestration/repository/ProcessWorkflowRepository.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/**
-*
-* 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.orchestration.repository;
-
-import java.util.Collections;
-import java.util.List;
-import org.apache.airavata.db.AbstractRepository;
-import org.apache.airavata.interfaces.RegistryException;
-import org.apache.airavata.model.process.proto.ProcessModel;
-import org.apache.airavata.model.process.proto.ProcessWorkflow;
-import org.apache.airavata.orchestration.mapper.ExecutionMapper;
-import org.apache.airavata.orchestration.model.ProcessWorkflowEntity;
-import org.apache.airavata.orchestration.model.ProcessWorkflowPK;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.stereotype.Component;
-
-@Component
-public class ProcessWorkflowRepository
- extends AbstractRepository<ProcessWorkflow, ProcessWorkflowEntity,
ProcessWorkflowPK> {
-
- private static final Logger logger =
LoggerFactory.getLogger(ProcessInputRepository.class);
-
- public ProcessWorkflowRepository() {
- super(ProcessWorkflow.class, ProcessWorkflowEntity.class);
- }
-
- @Override
- protected ProcessWorkflow toModel(ProcessWorkflowEntity entity) {
- return ExecutionMapper.INSTANCE.processWorkflowToModel(entity);
- }
-
- @Override
- protected ProcessWorkflowEntity toEntity(ProcessWorkflow model) {
- return ExecutionMapper.INSTANCE.processWorkflowToEntity(model);
- }
-
- protected void saveProcessWorkflow(List<ProcessWorkflow> processWorkflows,
String processId)
- throws RegistryException {
-
- for (ProcessWorkflow processWorkflow : processWorkflows) {
- ProcessWorkflowEntity processWorkflowEntity =
-
ExecutionMapper.INSTANCE.processWorkflowToEntity(processWorkflow);
-
- if (processWorkflowEntity.getProcessId() == null) {
- logger.debug("Setting the ProcessWorkflowEntity's ProcessId");
- processWorkflowEntity.setProcessId(processId);
- }
- execute(entityManager ->
entityManager.merge(processWorkflowEntity));
- }
- }
-
- public String addProcessWorkflow(ProcessWorkflow processWorkflow, String
processId) throws RegistryException {
- saveProcessWorkflow(Collections.singletonList(processWorkflow),
processId);
- return processId;
- }
-
- public void addProcessWorkflows(List<ProcessWorkflow> processWorkflows,
String processId) throws RegistryException {
- saveProcessWorkflow(processWorkflows, processId);
- }
-
- public List<ProcessWorkflow> getProcessWorkflows(String processId) throws
RegistryException {
- ProcessRepository processRepository = new ProcessRepository();
- ProcessModel processModel = processRepository.getProcess(processId);
- return processModel.getProcessWorkflowsList();
- }
-}
diff --git
a/airavata-api/orchestration-service/src/main/java/org/apache/airavata/orchestration/service/RegistryServerHandler.java
b/airavata-api/orchestration-service/src/main/java/org/apache/airavata/orchestration/service/RegistryServerHandler.java
index e5f37b306a..75946ee247 100644
---
a/airavata-api/orchestration-service/src/main/java/org/apache/airavata/orchestration/service/RegistryServerHandler.java
+++
b/airavata-api/orchestration-service/src/main/java/org/apache/airavata/orchestration/service/RegistryServerHandler.java
@@ -57,7 +57,6 @@ import
org.apache.airavata.model.data.replica.proto.DataReplicaLocationModel;
import org.apache.airavata.model.experiment.proto.*;
import org.apache.airavata.model.job.proto.JobModel;
import org.apache.airavata.model.process.proto.ProcessModel;
-import org.apache.airavata.model.process.proto.ProcessWorkflow;
import
org.apache.airavata.model.scheduling.proto.ComputationalResourceSchedulingModel;
import org.apache.airavata.model.status.proto.*;
import org.apache.airavata.model.task.proto.TaskModel;
@@ -195,11 +194,6 @@ public class RegistryServerHandler implements
RegistryHandler {
experimentRegistryHandler.updateProcessStatus(processStatus,
processId);
}
- @Override
- public void addProcessWorkflow(ProcessWorkflow processWorkflow) throws
Exception {
- experimentRegistryHandler.addProcessWorkflow(processWorkflow);
- }
-
@Override
public String addTask(TaskModel taskModel, String processId) throws
Exception {
return experimentRegistryHandler.addTask(taskModel, processId);
@@ -324,10 +318,6 @@ public class RegistryServerHandler implements
RegistryHandler {
return experimentRegistryHandler.getProcessOutputs(processId);
}
- public List<ProcessWorkflow> getProcessWorkflows(String processId) throws
Exception {
- return experimentRegistryHandler.getProcessWorkflows(processId);
- }
-
public List<JobModel> getJobDetails(String airavataExperimentId) throws
Exception {
return experimentRegistryHandler.getJobDetails(airavataExperimentId);
}
diff --git
a/airavata-api/orchestration-service/src/main/java/org/apache/airavata/orchestration/util/ExperimentModelUtil.java
b/airavata-api/orchestration-service/src/main/java/org/apache/airavata/orchestration/util/ExperimentModelUtil.java
index 4abe6d51b8..8ae77ab4dd 100644
---
a/airavata-api/orchestration-service/src/main/java/org/apache/airavata/orchestration/util/ExperimentModelUtil.java
+++
b/airavata-api/orchestration-service/src/main/java/org/apache/airavata/orchestration/util/ExperimentModelUtil.java
@@ -95,8 +95,6 @@ public class ExperimentModelUtil {
builder.setInputStorageResourceId(configData.getInputStorageResourceId());
builder.setOutputStorageResourceId(configData.getOutputStorageResourceId());
builder.setExperimentDataDir(configData.getExperimentDataDir());
- builder.setGenerateCert(configData.getGenerateCert());
- builder.setUserDn(configData.getUserDn());
ComputationalResourceSchedulingModel scheduling =
configData.getComputationalResourceScheduling();
if (configData.hasComputationalResourceScheduling()) {
builder.setProcessResourceSchedule(scheduling);
diff --git
a/airavata-api/research-service/src/main/java/org/apache/airavata/research/mapper/ResearchMapper.java
b/airavata-api/research-service/src/main/java/org/apache/airavata/research/mapper/ResearchMapper.java
index ee63c039bf..4ddfe45ec9 100644
---
a/airavata-api/research-service/src/main/java/org/apache/airavata/research/mapper/ResearchMapper.java
+++
b/airavata-api/research-service/src/main/java/org/apache/airavata/research/mapper/ResearchMapper.java
@@ -31,6 +31,8 @@ import
org.apache.airavata.model.appcatalog.appdeployment.proto.SetEnvPaths;
import
org.apache.airavata.model.appcatalog.appinterface.proto.ApplicationInterfaceDescription;
import org.apache.airavata.model.appcatalog.parser.proto.IOType;
import org.apache.airavata.model.appcatalog.parser.proto.Parser;
+import org.apache.airavata.model.appcatalog.parser.proto.ParserConnector;
+import org.apache.airavata.model.appcatalog.parser.proto.ParserConnectorInput;
import org.apache.airavata.model.appcatalog.parser.proto.ParserInput;
import org.apache.airavata.model.appcatalog.parser.proto.ParserOutput;
import org.apache.airavata.model.appcatalog.parser.proto.ParsingTemplate;
@@ -677,6 +679,32 @@ public interface ResearchMapper extends
CommonMapperConversions {
b.addInitialInputs(ib.build());
}
}
+ if (entity.getParserConnections() != null) {
+ for (Map<String, Object> c : entity.getParserConnections()) {
+ ParserConnector.Builder cb = ParserConnector.newBuilder();
+ if (c.get("id") != null) cb.setId((String) c.get("id"));
+ if (c.get("parentParserId") != null)
cb.setParentParserId((String) c.get("parentParserId"));
+ if (c.get("childParserId") != null)
cb.setChildParserId((String) c.get("childParserId"));
+ if (c.get("parsingTemplateId") != null)
cb.setParsingTemplateId((String) c.get("parsingTemplateId"));
+ Object inputs = c.get("connectorInputs");
+ if (inputs instanceof List) {
+ for (Object o : (List<?>) inputs) {
+ if (!(o instanceof Map)) continue;
+ @SuppressWarnings("unchecked")
+ Map<String, Object> im = (Map<String, Object>) o;
+ ParserConnectorInput.Builder cib =
ParserConnectorInput.newBuilder();
+ if (im.get("id") != null) cib.setId((String)
im.get("id"));
+ if (im.get("inputId") != null) cib.setInputId((String)
im.get("inputId"));
+ if (im.get("parentOutputId") != null)
cib.setParentOutputId((String) im.get("parentOutputId"));
+ if (im.get("value") != null) cib.setValue((String)
im.get("value"));
+ if (im.get("parserConnectorId") != null)
+ cib.setParserConnectorId((String)
im.get("parserConnectorId"));
+ cb.addConnectorInputs(cib.build());
+ }
+ }
+ b.addParserConnections(cb.build());
+ }
+ }
return b.build();
}
@@ -699,6 +727,29 @@ public interface ResearchMapper extends
CommonMapperConversions {
}
entity.setInitialInputs(inputs);
}
+ if (!model.getParserConnectionsList().isEmpty()) {
+ List<Map<String, Object>> connections = new ArrayList<>();
+ for (ParserConnector pc : model.getParserConnectionsList()) {
+ Map<String, Object> c = new LinkedHashMap<>();
+ c.put("id", pc.getId());
+ c.put("parentParserId", pc.getParentParserId());
+ c.put("childParserId", pc.getChildParserId());
+ c.put("parsingTemplateId", pc.getParsingTemplateId());
+ List<Map<String, Object>> connectorInputs = new ArrayList<>();
+ for (ParserConnectorInput pci : pc.getConnectorInputsList()) {
+ Map<String, Object> im = new LinkedHashMap<>();
+ im.put("id", pci.getId());
+ im.put("inputId", pci.getInputId());
+ im.put("parentOutputId", pci.getParentOutputId());
+ im.put("value", pci.getValue());
+ im.put("parserConnectorId", pci.getParserConnectorId());
+ connectorInputs.add(im);
+ }
+ c.put("connectorInputs", connectorInputs);
+ connections.add(c);
+ }
+ entity.setParserConnections(connections);
+ }
return entity;
}
}
diff --git
a/airavata-api/research-service/src/main/java/org/apache/airavata/research/model/AppModuleMappingEntity.java
b/airavata-api/research-service/src/main/java/org/apache/airavata/research/model/AppModuleMappingEntity.java
deleted file mode 100644
index 2b22c06d95..0000000000
---
a/airavata-api/research-service/src/main/java/org/apache/airavata/research/model/AppModuleMappingEntity.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/**
-*
-* 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.research.model;
-
-import jakarta.persistence.*;
-import java.io.Serializable;
-
-/**
- * The persistent class for the app_module_mapping database table.
- *
- */
-@Entity
-@Table(name = "APP_MODULE_MAPPING")
-@IdClass(AppModuleMappingPK.class)
-public class AppModuleMappingEntity implements Serializable {
- private static final long serialVersionUID = 1L;
-
- @Id
- @Column(name = "INTERFACE_ID")
- private String interfaceId;
-
- @Id
- @Column(name = "MODULE_ID")
- private String moduleId;
-
- @ManyToOne(targetEntity = ApplicationInterfaceEntity.class)
- @JoinColumn(name = "INTERFACE_ID", insertable = false, updatable = false)
- private ApplicationInterfaceEntity applicationInterface;
-
- @ManyToOne(targetEntity = ApplicationModuleEntity.class)
- @JoinColumn(name = "MODULE_ID", insertable = false, updatable = false)
- private ApplicationModuleEntity applicationModule;
-
- public AppModuleMappingEntity() {}
-
- public String getInterfaceId() {
- return interfaceId;
- }
-
- public void setInterfaceId(String interfaceId) {
- this.interfaceId = interfaceId;
- }
-
- public String getModuleId() {
- return moduleId;
- }
-
- public void setModuleId(String moduleId) {
- this.moduleId = moduleId;
- }
-
- public ApplicationInterfaceEntity getApplicationInterface() {
- return applicationInterface;
- }
-
- public void setApplicationInterface(ApplicationInterfaceEntity
applicationInterface) {
- this.applicationInterface = applicationInterface;
- }
-
- public ApplicationModuleEntity getApplicationModule() {
- return applicationModule;
- }
-
- public void setApplicationModule(ApplicationModuleEntity
applicationModule) {
- this.applicationModule = applicationModule;
- }
-}
diff --git
a/airavata-api/research-service/src/main/java/org/apache/airavata/research/model/AppModuleMappingPK.java
b/airavata-api/research-service/src/main/java/org/apache/airavata/research/model/AppModuleMappingPK.java
deleted file mode 100644
index b4cac775e6..0000000000
---
a/airavata-api/research-service/src/main/java/org/apache/airavata/research/model/AppModuleMappingPK.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/**
-*
-* 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.research.model;
-
-import java.io.Serializable;
-
-/**
- * The primary key class for the app_module_mapping database table.
- *
- */
-public class AppModuleMappingPK implements Serializable {
- // default serial version id, required for serializable classes.
- private static final long serialVersionUID = 1L;
-
- private String interfaceId;
- private String moduleId;
-
- public AppModuleMappingPK() {}
-
- public String getInterfaceId() {
- return interfaceId;
- }
-
- public void setInterfaceId(String interfaceId) {
- this.interfaceId = interfaceId;
- }
-
- public String getModuleId() {
- return moduleId;
- }
-
- public void setModuleId(String moduleId) {
- this.moduleId = moduleId;
- }
-
- public boolean equals(Object other) {
- if (this == other) {
- return true;
- }
- if (!(other instanceof AppModuleMappingPK)) {
- return false;
- }
- AppModuleMappingPK castOther = (AppModuleMappingPK) other;
- return this.interfaceId.equals(castOther.interfaceId) &&
this.moduleId.equals(castOther.moduleId);
- }
-
- public int hashCode() {
- final int prime = 31;
- int hash = 17;
- hash = hash * prime + this.interfaceId.hashCode();
- hash = hash * prime + this.moduleId.hashCode();
-
- return hash;
- }
-}
diff --git
a/airavata-api/research-service/src/main/java/org/apache/airavata/research/model/ParsingTemplateEntity.java
b/airavata-api/research-service/src/main/java/org/apache/airavata/research/model/ParsingTemplateEntity.java
index f72df3ccfd..fd58ada880 100644
---
a/airavata-api/research-service/src/main/java/org/apache/airavata/research/model/ParsingTemplateEntity.java
+++
b/airavata-api/research-service/src/main/java/org/apache/airavata/research/model/ParsingTemplateEntity.java
@@ -45,6 +45,11 @@ public class ParsingTemplateEntity implements Serializable {
@Convert(converter = JsonListConverter.class)
private List<Map<String, Object>> initialInputs;
+ @Lob
+ @Column(name = "PARSER_CONNECTIONS_JSON")
+ @Convert(converter = JsonListConverter.class)
+ private List<Map<String, Object>> parserConnections;
+
public String getId() {
return id;
}
@@ -69,6 +74,14 @@ public class ParsingTemplateEntity implements Serializable {
this.initialInputs = initialInputs;
}
+ public List<Map<String, Object>> getParserConnections() {
+ return parserConnections;
+ }
+
+ public void setParserConnections(List<Map<String, Object>>
parserConnections) {
+ this.parserConnections = parserConnections;
+ }
+
public String getGatewayId() {
return gatewayId;
}
diff --git
a/airavata-api/research-service/src/main/java/org/apache/airavata/research/model/ResourceEntity.java
b/airavata-api/research-service/src/main/java/org/apache/airavata/research/model/ResourceEntity.java
index 90d5906d92..f54551f62c 100644
---
a/airavata-api/research-service/src/main/java/org/apache/airavata/research/model/ResourceEntity.java
+++
b/airavata-api/research-service/src/main/java/org/apache/airavata/research/model/ResourceEntity.java
@@ -77,10 +77,6 @@ public abstract class ResourceEntity {
inverseJoinColumns = @JoinColumn(name = "tag_id"))
private Set<TagEntity> tags = new HashSet<>();
- @Column(nullable = false)
- @Enumerated(EnumType.STRING)
- private StatusEnum status;
-
@Column(nullable = false)
@Enumerated(EnumType.STRING)
private StateEnum state;
@@ -147,14 +143,6 @@ public abstract class ResourceEntity {
this.tags = tags;
}
- public StatusEnum getStatus() {
- return status;
- }
-
- public void setStatus(StatusEnum status) {
- this.status = status;
- }
-
public StateEnum getState() {
return state;
}
diff --git
a/airavata-api/research-service/src/main/java/org/apache/airavata/research/model/ResourceStarEntity.java
b/airavata-api/research-service/src/main/java/org/apache/airavata/research/model/ResourceStarEntity.java
index 1e1dd9d861..d2f17528b4 100644
---
a/airavata-api/research-service/src/main/java/org/apache/airavata/research/model/ResourceStarEntity.java
+++
b/airavata-api/research-service/src/main/java/org/apache/airavata/research/model/ResourceStarEntity.java
@@ -27,10 +27,16 @@ import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
+import jakarta.persistence.UniqueConstraint;
import org.hibernate.annotations.UuidGenerator;
@Entity
-@Table(name = "RESOURCE_STAR")
+@Table(
+ name = "RESOURCE_STAR",
+ uniqueConstraints =
+ @UniqueConstraint(
+ name = "UK_resource_star_user_resource",
+ columnNames = {"user_id", "resource_id"}))
public class ResourceStarEntity {
@Id
diff --git
a/airavata-api/research-service/src/main/java/org/apache/airavata/research/model/StatusEnum.java
b/airavata-api/research-service/src/main/java/org/apache/airavata/research/model/StatusEnum.java
deleted file mode 100644
index 7c36298f5a..0000000000
---
a/airavata-api/research-service/src/main/java/org/apache/airavata/research/model/StatusEnum.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/**
-*
-* 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.research.model;
-
-public enum StatusEnum {
- NONE,
- PENDING,
- VERIFIED,
- REJECTED,
-}
diff --git
a/airavata-api/research-service/src/main/java/org/apache/airavata/research/model/TagEntity.java
b/airavata-api/research-service/src/main/java/org/apache/airavata/research/model/TagEntity.java
index 8a3697c594..d9843780ed 100644
---
a/airavata-api/research-service/src/main/java/org/apache/airavata/research/model/TagEntity.java
+++
b/airavata-api/research-service/src/main/java/org/apache/airavata/research/model/TagEntity.java
@@ -24,10 +24,13 @@ import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
+import jakarta.persistence.UniqueConstraint;
import org.hibernate.annotations.UuidGenerator;
@Entity
-@Table(name = "TAG")
+@Table(
+ name = "TAG",
+ uniqueConstraints = @UniqueConstraint(name = "UK_tag_value",
columnNames = "value"))
public class TagEntity {
@Id
diff --git
a/airavata-api/research-service/src/main/java/org/apache/airavata/research/repository/ApplicationInterfaceRepository.java
b/airavata-api/research-service/src/main/java/org/apache/airavata/research/repository/ApplicationInterfaceRepository.java
index ca1c314d91..0eebb3dad8 100644
---
a/airavata-api/research-service/src/main/java/org/apache/airavata/research/repository/ApplicationInterfaceRepository.java
+++
b/airavata-api/research-service/src/main/java/org/apache/airavata/research/repository/ApplicationInterfaceRepository.java
@@ -31,7 +31,6 @@ import
org.apache.airavata.model.appcatalog.appinterface.proto.ApplicationInterf
import org.apache.airavata.model.application.io.proto.InputDataObjectType;
import org.apache.airavata.model.application.io.proto.OutputDataObjectType;
import org.apache.airavata.research.mapper.ResearchMapper;
-import org.apache.airavata.research.model.AppModuleMappingEntity;
import org.apache.airavata.research.model.ApplicationInterfaceEntity;
import org.apache.airavata.research.model.ApplicationModuleEntity;
import org.apache.airavata.util.AiravataUtils;
@@ -161,21 +160,6 @@ public class ApplicationInterfaceRepository
return
saveApplicationInterfaceDescriptorData(applicationInterfaceDescription,
gatewayId);
}
- @Override
- public void addApplicationModuleMapping(String moduleId, String
interfaceId) throws AppCatalogException {
- ApplicationModule applicationModule = getApplicationModule(moduleId);
- ApplicationInterfaceDescription applicationInterfaceDescription =
getApplicationInterface(interfaceId);
- ApplicationModuleEntity applicationModuleEntity =
ResearchMapper.INSTANCE.appModuleToEntity(applicationModule);
- ApplicationInterfaceEntity applicationInterfaceEntity =
-
ResearchMapper.INSTANCE.appInterfaceToEntity(applicationInterfaceDescription);
- AppModuleMappingEntity appModuleMappingEntity = new
AppModuleMappingEntity();
- appModuleMappingEntity.setModuleId(moduleId);
- appModuleMappingEntity.setInterfaceId(interfaceId);
- appModuleMappingEntity.setApplicationModule(applicationModuleEntity);
-
appModuleMappingEntity.setApplicationInterface(applicationInterfaceEntity);
- execute(entityManager -> entityManager.merge(appModuleMappingEntity));
- }
-
@Override
public void updateApplicationModule(String moduleId, ApplicationModule
updatedApplicationModule)
throws AppCatalogException {
diff --git
a/airavata-api/research-service/src/main/java/org/apache/airavata/research/service/ExperimentRegistryService.java
b/airavata-api/research-service/src/main/java/org/apache/airavata/research/service/ExperimentRegistryService.java
index aeb0e0addc..f1d57e4fd4 100644
---
a/airavata-api/research-service/src/main/java/org/apache/airavata/research/service/ExperimentRegistryService.java
+++
b/airavata-api/research-service/src/main/java/org/apache/airavata/research/service/ExperimentRegistryService.java
@@ -38,7 +38,6 @@ import org.apache.airavata.model.commons.proto.ErrorModel;
import org.apache.airavata.model.experiment.proto.*;
import org.apache.airavata.model.job.proto.JobModel;
import org.apache.airavata.model.process.proto.ProcessModel;
-import org.apache.airavata.model.process.proto.ProcessWorkflow;
import
org.apache.airavata.model.scheduling.proto.ComputationalResourceSchedulingModel;
import org.apache.airavata.model.status.proto.*;
import org.apache.airavata.model.task.proto.TaskModel;
@@ -293,17 +292,6 @@ public class ExperimentRegistryService implements
ExperimentRegistry {
}
}
- @Override
- public void addProcessWorkflow(ProcessWorkflow processWorkflow) throws
Exception {
- try {
- executionDataAccess.addProcessWorkflow(processWorkflow,
processWorkflow.getProcessId());
- } catch (Exception e) {
- logger.error("Error while adding process workflows for process id
" + processWorkflow.getProcessId(), e);
- throw new RegistryException("Error while adding process workflows
for process id "
- + processWorkflow.getProcessId() + ". More info : " +
e.getMessage());
- }
- }
-
@Override
public String addTask(TaskModel taskModel, String processId) throws
Exception {
try {
@@ -658,15 +646,6 @@ public class ExperimentRegistryService implements
ExperimentRegistry {
}
}
- public List<ProcessWorkflow> getProcessWorkflows(String processId) throws
Exception {
- try {
- return executionDataAccess.getProcessWorkflows(processId);
- } catch (Exception e) {
- logger.error("Error while retrieving process workflows for process
id " + processId, e);
- throw new RegistryException("Error while retrieving process
workflows for process id " + processId
- + ". More info : " + e.getMessage());
- }
- }
public List<JobModel> getJobDetails(String airavataExperimentId) throws
Exception {
try {
diff --git
a/airavata-api/research-service/src/main/java/org/apache/airavata/research/service/ResearchResourceService.java
b/airavata-api/research-service/src/main/java/org/apache/airavata/research/service/ResearchResourceService.java
index a4bfcfd8f3..406af85112 100644
---
a/airavata-api/research-service/src/main/java/org/apache/airavata/research/service/ResearchResourceService.java
+++
b/airavata-api/research-service/src/main/java/org/apache/airavata/research/service/ResearchResourceService.java
@@ -33,7 +33,6 @@ import org.apache.airavata.research.model.ResourceEntity;
import org.apache.airavata.research.model.ResourceStarEntity;
import org.apache.airavata.research.model.ResourceTypeEnum;
import org.apache.airavata.research.model.StateEnum;
-import org.apache.airavata.research.model.StatusEnum;
import org.apache.airavata.research.model.TagEntity;
import org.apache.airavata.research.repository.ResearchProjectRepository;
import org.apache.airavata.research.repository.ResourceRepository;
@@ -41,6 +40,7 @@ import
org.apache.airavata.research.repository.ResourceStarRepository;
import org.apache.airavata.research.repository.TagRepository;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.dao.DataIntegrityViolationException;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
@@ -88,7 +88,12 @@ public class ResearchResourceService {
String tagValue = t.getValue();
TagEntity fetchedTag = tagRepository.findByValue(tagValue);
if (fetchedTag == null) {
- fetchedTag = tagRepository.save(t);
+ try {
+ fetchedTag = tagRepository.save(t);
+ } catch (DataIntegrityViolationException e) {
+ // a concurrent request created the same tag value; reuse
the existing row
+ fetchedTag = tagRepository.findByValue(tagValue);
+ }
}
tags.add(fetchedTag);
}
@@ -135,7 +140,6 @@ public class ResearchResourceService {
}
resource.setTags(tagsSet);
resource.setPrivacy(privacy);
- resource.setStatus(StatusEnum.NONE);
resource.setHeaderImage(headerImage);
}
@@ -201,7 +205,11 @@ public class ResearchResourceService {
ResourceStarEntity resourceStar = new ResourceStarEntity();
resourceStar.setUserId(userId);
resourceStar.setResource(resource);
- resourceStarRepository.save(resourceStar);
+ try {
+ resourceStarRepository.save(resourceStar);
+ } catch (DataIntegrityViolationException e) {
+ // a concurrent request already starred this resource for the
user; idempotent
+ }
} else {
ResourceStarEntity resourceStar = resourceStars.get(0);
resourceStarRepository.delete(resourceStar);
diff --git
a/airavata-api/src/main/java/org/apache/airavata/interfaces/ApplicationInterface.java
b/airavata-api/src/main/java/org/apache/airavata/interfaces/ApplicationInterface.java
index ad6992343e..febd0f3ca6 100644
---
a/airavata-api/src/main/java/org/apache/airavata/interfaces/ApplicationInterface.java
+++
b/airavata-api/src/main/java/org/apache/airavata/interfaces/ApplicationInterface.java
@@ -42,13 +42,6 @@ public interface ApplicationInterface {
String addApplicationInterface(ApplicationInterfaceDescription
applicationInterfaceDescription, String gatewayId)
throws AppCatalogException;
- /**
- * This method will add an application module mapping
- * @param moduleId unique module Id
- * @param interfaceId unique interface id
- */
- void addApplicationModuleMapping(String moduleId, String interfaceId)
throws AppCatalogException;
-
/**
* This method will update application module
* @param moduleId unique module Id
diff --git
a/airavata-api/src/main/java/org/apache/airavata/interfaces/Constants.java
b/airavata-api/src/main/java/org/apache/airavata/interfaces/Constants.java
index 7fcb18d0e5..152235d44d 100644
--- a/airavata-api/src/main/java/org/apache/airavata/interfaces/Constants.java
+++ b/airavata-api/src/main/java/org/apache/airavata/interfaces/Constants.java
@@ -69,7 +69,6 @@ public class Constants {
public static final String PROCESS_INPUTS = "processInputs";
public static final String PROCESS_OUTPUTS = "processOutputs";
public static final String PROCESS_RESOURCE_SCHEDULE =
"processResourceSchedule";
- public static final String PROCESS_WORKFLOW = "processWorkflow";
}
public final class TaskConstants {
diff --git
a/airavata-api/src/main/java/org/apache/airavata/interfaces/ExecutionDataAccess.java
b/airavata-api/src/main/java/org/apache/airavata/interfaces/ExecutionDataAccess.java
index ad505da3b2..cb45501414 100644
---
a/airavata-api/src/main/java/org/apache/airavata/interfaces/ExecutionDataAccess.java
+++
b/airavata-api/src/main/java/org/apache/airavata/interfaces/ExecutionDataAccess.java
@@ -26,7 +26,6 @@ import org.apache.airavata.model.commons.proto.ErrorModel;
import org.apache.airavata.model.experiment.proto.UserConfigurationDataModel;
import org.apache.airavata.model.job.proto.JobModel;
import org.apache.airavata.model.process.proto.ProcessModel;
-import org.apache.airavata.model.process.proto.ProcessWorkflow;
import
org.apache.airavata.model.scheduling.proto.ComputationalResourceSchedulingModel;
import org.apache.airavata.model.status.proto.JobStatus;
import org.apache.airavata.model.status.proto.ProcessState;
@@ -76,11 +75,6 @@ public interface ExecutionDataAccess {
List<OutputDataObjectType> getProcessOutputs(String processId) throws
RegistryException;
- // --- Process Workflow ---
- void addProcessWorkflow(ProcessWorkflow processWorkflow, String processId)
throws RegistryException;
-
- List<ProcessWorkflow> getProcessWorkflows(String processId) throws
RegistryException;
-
// --- Task ---
String addTask(TaskModel task, String processId) throws RegistryException;
diff --git
a/airavata-api/src/main/java/org/apache/airavata/interfaces/ExpCatChildDataType.java
b/airavata-api/src/main/java/org/apache/airavata/interfaces/ExpCatChildDataType.java
index fba61ca439..b016eabb74 100644
---
a/airavata-api/src/main/java/org/apache/airavata/interfaces/ExpCatChildDataType.java
+++
b/airavata-api/src/main/java/org/apache/airavata/interfaces/ExpCatChildDataType.java
@@ -35,6 +35,5 @@ public enum ExpCatChildDataType {
TASK_STATUS,
TASK_ERROR,
JOB,
- JOB_STATUS,
- PROCESS_WORKFLOW
+ JOB_STATUS
}
diff --git
a/airavata-api/src/main/java/org/apache/airavata/interfaces/ExperimentRegistry.java
b/airavata-api/src/main/java/org/apache/airavata/interfaces/ExperimentRegistry.java
index c5c3d01887..61cf11b2ec 100644
---
a/airavata-api/src/main/java/org/apache/airavata/interfaces/ExperimentRegistry.java
+++
b/airavata-api/src/main/java/org/apache/airavata/interfaces/ExperimentRegistry.java
@@ -26,7 +26,6 @@ import org.apache.airavata.model.commons.proto.ErrorModel;
import org.apache.airavata.model.experiment.proto.*;
import org.apache.airavata.model.job.proto.JobModel;
import org.apache.airavata.model.process.proto.ProcessModel;
-import org.apache.airavata.model.process.proto.ProcessWorkflow;
import
org.apache.airavata.model.scheduling.proto.ComputationalResourceSchedulingModel;
import org.apache.airavata.model.status.proto.ExperimentStatus;
import org.apache.airavata.model.status.proto.JobStatus;
@@ -116,12 +115,8 @@ public interface ExperimentRegistry {
void updateProcessStatus(ProcessStatus processStatus, String processId)
throws Exception;
- void addProcessWorkflow(ProcessWorkflow processWorkflow) throws Exception;
-
List<OutputDataObjectType> getProcessOutputs(String processId) throws
Exception;
- List<ProcessWorkflow> getProcessWorkflows(String processId) throws
Exception;
-
// --- Task operations ---
String addTask(TaskModel taskModel, String processId) throws Exception;
diff --git
a/airavata-api/src/main/proto/org/apache/airavata/model/experiment/experiment.proto
b/airavata-api/src/main/proto/org/apache/airavata/model/experiment/experiment.proto
index 1cd94a4080..c950dd3db3 100644
---
a/airavata-api/src/main/proto/org/apache/airavata/model/experiment/experiment.proto
+++
b/airavata-api/src/main/proto/org/apache/airavata/model/experiment/experiment.proto
@@ -61,8 +61,6 @@ enum ProjectSearchFields {
// share_experiment_publicly: Whether to share the experiment publicly.
// computational_resource_scheduling: Computational resource scheduling model.
// throttle_resources: Whether to throttle resources.
-// user_dn: User DN for certificate generation.
-// generate_cert: Whether to generate a certificate.
// input_storage_resource_id: Input storage resource id.
// output_storage_resource_id: Output storage resource id.
// experiment_data_dir: Experiment data directory.
@@ -75,8 +73,7 @@ message UserConfigurationDataModel {
bool share_experiment_publicly = 3;
org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel
computational_resource_scheduling = 4;
bool throttle_resources = 5;
- string user_dn = 6;
- bool generate_cert = 7;
+ reserved 6, 7; // removed: user_dn, generate_cert (grid-cert legacy)
string input_storage_resource_id = 8;
string output_storage_resource_id = 9;
string experiment_data_dir = 10;
diff --git
a/airavata-api/src/main/proto/org/apache/airavata/model/process/process.proto
b/airavata-api/src/main/proto/org/apache/airavata/model/process/process.proto
index 35d0760b38..a978795bc3 100644
---
a/airavata-api/src/main/proto/org/apache/airavata/model/process/process.proto
+++
b/airavata-api/src/main/proto/org/apache/airavata/model/process/process.proto
@@ -28,13 +28,6 @@ import
"org/apache/airavata/model/scheduling/scheduling.proto";
import "org/apache/airavata/model/status/status.proto";
import "org/apache/airavata/model/task/task.proto";
-message ProcessWorkflow {
- string process_id = 1;
- string workflow_id = 2;
- int64 creation_time = 3;
- string type = 4;
-}
-
// ProcessModel: A structure holding the process details. The information is
// derived based on user provided configuration data or system inferred
// information from scheduling and QoS parameters.
@@ -63,11 +56,9 @@ message ProcessModel {
repeated string email_addresses = 18;
string input_storage_resource_id = 19;
string output_storage_resource_id = 20;
- string user_dn = 21;
- bool generate_cert = 22;
string experiment_data_dir = 23;
string user_name = 24;
bool use_user_cr_pref = 25;
string group_resource_profile_id = 26;
- repeated ProcessWorkflow process_workflows = 27;
+ reserved 21, 22, 27; // removed: user_dn, generate_cert (grid-cert legacy);
process_workflows (dead table)
}
diff --git a/airavata-api/src/test/resources/META-INF/persistence.xml
b/airavata-api/src/test/resources/META-INF/persistence.xml
index 673efcd507..c7e536d590 100644
--- a/airavata-api/src/test/resources/META-INF/persistence.xml
+++ b/airavata-api/src/test/resources/META-INF/persistence.xml
@@ -31,7 +31,6 @@
<class>org.apache.airavata.agent.model.PlanEntity</class>
<!-- compute-service -->
- <class>org.apache.airavata.compute.model.AgentDeploymentInfoEntity</class>
<class>org.apache.airavata.compute.model.AWSGroupComputeResourcePrefEntity</class>
<class>org.apache.airavata.compute.model.BatchQueueEntity</class>
<class>org.apache.airavata.compute.model.BatchQueueResourcePolicyEntity</class>
@@ -71,7 +70,6 @@
<class>org.apache.airavata.orchestration.model.ExecStatusEntity</class>
<class>org.apache.airavata.orchestration.model.JobEntity</class>
<class>org.apache.airavata.orchestration.model.ProcessEntity</class>
-
<class>org.apache.airavata.orchestration.model.ProcessWorkflowEntity</class>
<class>org.apache.airavata.orchestration.model.TaskEntity</class>
<class>org.apache.airavata.orchestration.model.UserConfigurationDataEntity</class>
@@ -80,7 +78,6 @@
<class>org.apache.airavata.research.model.ApplicationDeploymentEntity</class>
<class>org.apache.airavata.research.model.ApplicationInterfaceEntity</class>
<class>org.apache.airavata.research.model.ApplicationModuleEntity</class>
- <class>org.apache.airavata.research.model.AppModuleMappingEntity</class>
<class>org.apache.airavata.research.model.DataProductEntity</class>
<class>org.apache.airavata.research.model.DataReplicaLocationEntity</class>
<class>org.apache.airavata.research.model.DatasetResourceEntity</class>
diff --git
a/airavata-api/src/test/resources/db/migration/airavata/V1__Baseline_schema.sql
b/airavata-api/src/test/resources/db/migration/airavata/V1__Baseline_schema.sql
index 355f9ae69d..fe7d6f0341 100644
---
a/airavata-api/src/test/resources/db/migration/airavata/V1__Baseline_schema.sql
+++
b/airavata-api/src/test/resources/db/migration/airavata/V1__Baseline_schema.sql
@@ -28,14 +28,6 @@
SET FOREIGN_KEY_CHECKS=0;
-CREATE TABLE `agent_deployment_info` (
- `AGENT_DEPLOYMENT_INFO_ID` varchar(255) NOT NULL,
- `AGENT_APPLICATION_ID` varchar(255) DEFAULT NULL,
- `COMPUTE_RESOURCE_ID` varchar(255) DEFAULT NULL,
- `USER_FRINEDLY_NAME` varchar(255) DEFAULT NULL,
- PRIMARY KEY (`AGENT_DEPLOYMENT_INFO_ID`),
- UNIQUE KEY `UKf9p10tqcpwt5y0tcjrhq7p8qr` (`USER_FRINEDLY_NAME`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
CREATE TABLE `app_io_param` (
`PARAM_ID` varchar(255) NOT NULL,
`APPLICATION_ARGUMENT` varchar(255) DEFAULT NULL,
@@ -256,7 +248,6 @@ CREATE TABLE `credentials` (
`GATEWAY_ID` varchar(256) NOT NULL,
`TOKEN_ID` varchar(256) NOT NULL,
`CREDENTIAL` mediumblob NOT NULL,
- `CREDENTIAL_OWNER_TYPE` varchar(50) DEFAULT NULL,
`DESCRIPTION` varchar(500) DEFAULT NULL,
`PORTAL_USER_ID` varchar(256) NOT NULL,
`TIME_PERSISTED` datetime(6) DEFAULT NULL,
@@ -582,6 +573,7 @@ CREATE TABLE `parsing_template` (
`APP_INTERFACE_ID` varchar(255) DEFAULT NULL,
`GATEWAY_ID` varchar(255) DEFAULT NULL,
`INITIAL_INPUTS_JSON` tinytext DEFAULT NULL,
+ `PARSER_CONNECTIONS_JSON` tinytext DEFAULT NULL,
PRIMARY KEY (`PARSING_TEMPLATE_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
CREATE TABLE `permission_type` (
@@ -611,7 +603,6 @@ CREATE TABLE `process` (
`EXPERIMENT_DATA_DIR` varchar(512) DEFAULT NULL,
`EXPERIMENT_ID` varchar(255) DEFAULT NULL,
`GATEWAY_EXECUTION_ID` varchar(255) DEFAULT NULL,
- `GENERATE_CERT` bit(1) DEFAULT NULL,
`GROUP_RESOURCE_PROFILE_ID` varchar(255) DEFAULT NULL,
`INPUT_STORAGE_RESOURCE_ID` varchar(255) DEFAULT NULL,
`LAST_UPDATE_TIME` datetime(6) DEFAULT NULL,
@@ -619,7 +610,6 @@ CREATE TABLE `process` (
`PROCESS_DETAIL` tinytext DEFAULT NULL,
`TASK_DAG` tinytext DEFAULT NULL,
`USE_USER_CR_PREF` bit(1) DEFAULT NULL,
- `USER_DN` varchar(255) DEFAULT NULL,
`USERNAME` varchar(255) DEFAULT NULL,
PRIMARY KEY (`PROCESS_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
@@ -638,16 +628,6 @@ CREATE TABLE `process_resource_schedule` (
`WALL_TIME_LIMIT` int(11) DEFAULT NULL,
PRIMARY KEY (`PROCESS_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
-CREATE TABLE `process_workflow` (
- `processId` varchar(255) NOT NULL,
- `workflowId` varchar(255) NOT NULL,
- `CREATION_TIME` datetime(6) DEFAULT NULL,
- `TYPE` varchar(255) DEFAULT NULL,
- `PROCESS_ID` varchar(255) DEFAULT NULL,
- PRIMARY KEY (`processId`,`workflowId`),
- KEY `FK3t3hw37ici9l1289hpcn4frcn` (`PROCESS_ID`),
- CONSTRAINT `FK3t3hw37ici9l1289hpcn4frcn` FOREIGN KEY (`PROCESS_ID`)
REFERENCES `process` (`PROCESS_ID`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
CREATE TABLE `project` (
`PROJECT_ID` varchar(255) NOT NULL,
`CREATION_TIME` datetime(6) DEFAULT NULL,
@@ -671,7 +651,7 @@ CREATE TABLE `queue_status` (
`CREATED_TIME` decimal(38,0) NOT NULL,
`QUEUE_UP` bit(1) DEFAULT NULL,
`QUEUED_JOBS` int(11) DEFAULT NULL,
- `RUNNING_JOBS` bit(1) DEFAULT NULL,
+ `RUNNING_JOBS` int(11) DEFAULT NULL,
PRIMARY KEY (`HOST_NAME`,`QUEUE_NAME`,`CREATED_TIME`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
CREATE TABLE `repository_resource` (
@@ -726,7 +706,6 @@ CREATE TABLE `resource` (
`name` varchar(255) NOT NULL,
`privacy` enum('PRIVATE','PUBLIC') NOT NULL,
`state` enum('ACTIVE','DELETED') NOT NULL,
- `status` enum('NONE','PENDING','REJECTED','VERIFIED') NOT NULL,
`updatedAt` datetime(6) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
@@ -750,6 +729,7 @@ CREATE TABLE `resource_star` (
`user_id` varchar(255) NOT NULL,
`resource_id` varchar(48) NOT NULL,
PRIMARY KEY (`id`),
+ UNIQUE KEY `UK_resource_star_user_resource` (`user_id`,`resource_id`),
KEY `FKe8g40jht9trlg7x979t2v0qm1` (`resource_id`),
CONSTRAINT `FKe8g40jht9trlg7x979t2v0qm1` FOREIGN KEY (`resource_id`)
REFERENCES `resource` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
@@ -826,7 +806,8 @@ CREATE TABLE `storage_resource` (
CREATE TABLE `tag` (
`id` varchar(48) NOT NULL,
`value` varchar(255) NOT NULL,
- PRIMARY KEY (`id`)
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `UK_tag_value` (`value`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
CREATE TABLE `task` (
`TASK_ID` varchar(255) NOT NULL,
@@ -862,7 +843,6 @@ CREATE TABLE `user_configuration_data` (
`EXPERIMENT_ID` varchar(255) NOT NULL,
`AIRAVATA_AUTO_SCHEDULE` bit(1) DEFAULT NULL,
`EXPERIMENT_DATA_DIR` varchar(512) DEFAULT NULL,
- `GENERATE_CERT` bit(1) DEFAULT NULL,
`GROUP_RESOURCE_PROFILE_ID` varchar(255) DEFAULT NULL,
`INPUT_STORAGE_RESOURCE_ID` varchar(255) DEFAULT NULL,
`NODE_COUNT` int(11) DEFAULT NULL,
@@ -880,7 +860,6 @@ CREATE TABLE `user_configuration_data` (
`TOTAL_CPU_COUNT` int(11) DEFAULT NULL,
`TOTAL_PHYSICAL_MEMORY` int(11) DEFAULT NULL,
`IS_USE_USER_CR_PREF` bit(1) DEFAULT NULL,
- `USER_DN` varchar(255) DEFAULT NULL,
`WALL_TIME_LIMIT` int(11) DEFAULT NULL,
PRIMARY KEY (`EXPERIMENT_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
diff --git
a/airavata-python-sdk/airavata_sdk/generated/org/apache/airavata/model/experiment/experiment_pb2.py
b/airavata-python-sdk/airavata_sdk/generated/org/apache/airavata/model/experiment/experiment_pb2.py
index f26832e498..3123ca9de6 100644
---
a/airavata-python-sdk/airavata_sdk/generated/org/apache/airavata/model/experiment/experiment_pb2.py
+++
b/airavata-python-sdk/airavata_sdk/generated/org/apache/airavata/model/experiment/experiment_pb2.py
@@ -30,7 +30,7 @@ from org.apache.airavata.model.process import process_pb2 as
org_dot_apache_dot_
from org.apache.airavata.model.workflow import workflow_pb2 as
org_dot_apache_dot_airavata_dot_model_dot_workflow_dot_workflow__pb2
-DESCRIPTOR =
_descriptor_pool.Default().AddSerializedFile(b'\n5org/apache/airavata/model/experiment/experiment.proto\x12$org.apache.airavata.model.experiment\x1a/org/apache/airavata/model/commons/commons.proto\x1a=org/apache/airavata/model/application/io/application_io.proto\x1a\x35org/apache/airavata/model/scheduling/scheduling.proto\x1a-org/apache/airavata/model/status/status.proto\x1a/org/apache/airavata/model/process/process.proto\x1a\x31org/apache/airavata/model/workflow/workflow.pr
[...]
+DESCRIPTOR =
_descriptor_pool.Default().AddSerializedFile(b'\n5org/apache/airavata/model/experiment/experiment.proto\x12$org.apache.airavata.model.experiment\x1a/org/apache/airavata/model/commons/commons.proto\x1a=org/apache/airavata/model/application/io/application_io.proto\x1a\x35org/apache/airavata/model/scheduling/scheduling.proto\x1a-org/apache/airavata/model/status/status.proto\x1a/org/apache/airavata/model/process/process.proto\x1a\x31org/apache/airavata/model/workflow/workflow.pr
[...]
_globals = globals()
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -38,20 +38,20 @@ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR,
'org.apache.airavata.model.e
if not _descriptor._USE_C_DESCRIPTORS:
_globals['DESCRIPTOR']._loaded_options = None
_globals['DESCRIPTOR']._serialized_options =
b'\n*org.apache.airavata.model.experiment.protoP\001'
- _globals['_EXPERIMENTTYPE']._serialized_start=3117
- _globals['_EXPERIMENTTYPE']._serialized_end=3200
- _globals['_EXPERIMENTSEARCHFIELDS']._serialized_start=3203
- _globals['_EXPERIMENTSEARCHFIELDS']._serialized_end=3410
- _globals['_PROJECTSEARCHFIELDS']._serialized_start=3412
- _globals['_PROJECTSEARCHFIELDS']._serialized_end=3511
- _globals['_EXPERIMENTCLEANUPSTRATEGY']._serialized_start=3513
- _globals['_EXPERIMENTCLEANUPSTRATEGY']._serialized_end=3640
+ _globals['_EXPERIMENTTYPE']._serialized_start=3089
+ _globals['_EXPERIMENTTYPE']._serialized_end=3172
+ _globals['_EXPERIMENTSEARCHFIELDS']._serialized_start=3175
+ _globals['_EXPERIMENTSEARCHFIELDS']._serialized_end=3382
+ _globals['_PROJECTSEARCHFIELDS']._serialized_start=3384
+ _globals['_PROJECTSEARCHFIELDS']._serialized_end=3483
+ _globals['_EXPERIMENTCLEANUPSTRATEGY']._serialized_start=3485
+ _globals['_EXPERIMENTCLEANUPSTRATEGY']._serialized_end=3612
_globals['_USERCONFIGURATIONDATAMODEL']._serialized_start=410
- _globals['_USERCONFIGURATIONDATAMODEL']._serialized_end=1026
- _globals['_EXPERIMENTMODEL']._serialized_start=1029
- _globals['_EXPERIMENTMODEL']._serialized_end=2072
- _globals['_EXPERIMENTSUMMARYMODEL']._serialized_start=2075
- _globals['_EXPERIMENTSUMMARYMODEL']._serialized_end=2342
- _globals['_EXPERIMENTSTATISTICS']._serialized_start=2345
- _globals['_EXPERIMENTSTATISTICS']._serialized_end=3115
+ _globals['_USERCONFIGURATIONDATAMODEL']._serialized_end=998
+ _globals['_EXPERIMENTMODEL']._serialized_start=1001
+ _globals['_EXPERIMENTMODEL']._serialized_end=2044
+ _globals['_EXPERIMENTSUMMARYMODEL']._serialized_start=2047
+ _globals['_EXPERIMENTSUMMARYMODEL']._serialized_end=2314
+ _globals['_EXPERIMENTSTATISTICS']._serialized_start=2317
+ _globals['_EXPERIMENTSTATISTICS']._serialized_end=3087
# @@protoc_insertion_point(module_scope)
diff --git
a/airavata-python-sdk/airavata_sdk/generated/org/apache/airavata/model/experiment/experiment_pb2.pyi
b/airavata-python-sdk/airavata_sdk/generated/org/apache/airavata/model/experiment/experiment_pb2.pyi
index 0fcfea52fa..b1c0c20a00 100644
---
a/airavata-python-sdk/airavata_sdk/generated/org/apache/airavata/model/experiment/experiment_pb2.pyi
+++
b/airavata-python-sdk/airavata_sdk/generated/org/apache/airavata/model/experiment/experiment_pb2.pyi
@@ -68,14 +68,12 @@ ONLY_COMPLETED: ExperimentCleanupStrategy
ONLY_FAILED: ExperimentCleanupStrategy
class UserConfigurationDataModel(_message.Message):
- __slots__ = ("airavata_auto_schedule", "override_manual_scheduled_params",
"share_experiment_publicly", "computational_resource_scheduling",
"throttle_resources", "user_dn", "generate_cert", "input_storage_resource_id",
"output_storage_resource_id", "experiment_data_dir", "use_user_cr_pref",
"group_resource_profile_id", "auto_scheduled_comp_resource_scheduling_list")
+ __slots__ = ("airavata_auto_schedule", "override_manual_scheduled_params",
"share_experiment_publicly", "computational_resource_scheduling",
"throttle_resources", "input_storage_resource_id",
"output_storage_resource_id", "experiment_data_dir", "use_user_cr_pref",
"group_resource_profile_id", "auto_scheduled_comp_resource_scheduling_list")
AIRAVATA_AUTO_SCHEDULE_FIELD_NUMBER: _ClassVar[int]
OVERRIDE_MANUAL_SCHEDULED_PARAMS_FIELD_NUMBER: _ClassVar[int]
SHARE_EXPERIMENT_PUBLICLY_FIELD_NUMBER: _ClassVar[int]
COMPUTATIONAL_RESOURCE_SCHEDULING_FIELD_NUMBER: _ClassVar[int]
THROTTLE_RESOURCES_FIELD_NUMBER: _ClassVar[int]
- USER_DN_FIELD_NUMBER: _ClassVar[int]
- GENERATE_CERT_FIELD_NUMBER: _ClassVar[int]
INPUT_STORAGE_RESOURCE_ID_FIELD_NUMBER: _ClassVar[int]
OUTPUT_STORAGE_RESOURCE_ID_FIELD_NUMBER: _ClassVar[int]
EXPERIMENT_DATA_DIR_FIELD_NUMBER: _ClassVar[int]
@@ -87,15 +85,13 @@ class UserConfigurationDataModel(_message.Message):
share_experiment_publicly: bool
computational_resource_scheduling:
_scheduling_pb2.ComputationalResourceSchedulingModel
throttle_resources: bool
- user_dn: str
- generate_cert: bool
input_storage_resource_id: str
output_storage_resource_id: str
experiment_data_dir: str
use_user_cr_pref: bool
group_resource_profile_id: str
auto_scheduled_comp_resource_scheduling_list:
_containers.RepeatedCompositeFieldContainer[_scheduling_pb2.ComputationalResourceSchedulingModel]
- def __init__(self, airavata_auto_schedule: bool = ...,
override_manual_scheduled_params: bool = ..., share_experiment_publicly: bool =
..., computational_resource_scheduling:
_Optional[_Union[_scheduling_pb2.ComputationalResourceSchedulingModel,
_Mapping]] = ..., throttle_resources: bool = ..., user_dn: _Optional[str] =
..., generate_cert: bool = ..., input_storage_resource_id: _Optional[str] =
..., output_storage_resource_id: _Optional[str] = ..., experiment_data_dir:
_Optional[str] [...]
+ def __init__(self, airavata_auto_schedule: bool = ...,
override_manual_scheduled_params: bool = ..., share_experiment_publicly: bool =
..., computational_resource_scheduling:
_Optional[_Union[_scheduling_pb2.ComputationalResourceSchedulingModel,
_Mapping]] = ..., throttle_resources: bool = ..., input_storage_resource_id:
_Optional[str] = ..., output_storage_resource_id: _Optional[str] = ...,
experiment_data_dir: _Optional[str] = ..., use_user_cr_pref: bool = ...,
group_resource_profi [...]
class ExperimentModel(_message.Message):
__slots__ = ("experiment_id", "project_id", "gateway_id",
"experiment_type", "user_name", "experiment_name", "creation_time",
"description", "execution_id", "gateway_execution_id", "gateway_instance_id",
"enable_email_notification", "email_addresses", "user_configuration_data",
"experiment_inputs", "experiment_outputs", "experiment_status", "errors",
"processes", "workflow", "clean_up_strategy")
diff --git
a/airavata-python-sdk/airavata_sdk/generated/org/apache/airavata/model/process/process_pb2.py
b/airavata-python-sdk/airavata_sdk/generated/org/apache/airavata/model/process/process_pb2.py
index 2433555c19..b24129ae9b 100644
---
a/airavata-python-sdk/airavata_sdk/generated/org/apache/airavata/model/process/process_pb2.py
+++
b/airavata-python-sdk/airavata_sdk/generated/org/apache/airavata/model/process/process_pb2.py
@@ -29,7 +29,7 @@ from org.apache.airavata.model.status import status_pb2 as
org_dot_apache_dot_ai
from org.apache.airavata.model.task import task_pb2 as
org_dot_apache_dot_airavata_dot_model_dot_task_dot_task__pb2
-DESCRIPTOR =
_descriptor_pool.Default().AddSerializedFile(b'\n/org/apache/airavata/model/process/process.proto\x12!org.apache.airavata.model.process\x1a/org/apache/airavata/model/commons/commons.proto\x1a=org/apache/airavata/model/application/io/application_io.proto\x1a\x35org/apache/airavata/model/scheduling/scheduling.proto\x1a-org/apache/airavata/model/status/status.proto\x1a)org/apache/airavata/model/task/task.proto\"_\n\x0fProcessWorkflow\x12\x12\n\nprocess_id\x18\x01
\x01(\t\x12\x1 [...]
+DESCRIPTOR =
_descriptor_pool.Default().AddSerializedFile(b'\n/org/apache/airavata/model/process/process.proto\x12!org.apache.airavata.model.process\x1a/org/apache/airavata/model/commons/commons.proto\x1a=org/apache/airavata/model/application/io/application_io.proto\x1a\x35org/apache/airavata/model/scheduling/scheduling.proto\x1a-org/apache/airavata/model/status/status.proto\x1a)org/apache/airavata/model/task/task.proto\"\x81\x08\n\x0cProcessModel\x12\x12\n\nprocess_id\x18\x01
\x01(\t\x1 [...]
_globals = globals()
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -37,8 +37,6 @@ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR,
'org.apache.airavata.model.p
if not _descriptor._USE_C_DESCRIPTORS:
_globals['DESCRIPTOR']._loaded_options = None
_globals['DESCRIPTOR']._serialized_options =
b'\n\'org.apache.airavata.model.process.protoP\001'
- _globals['_PROCESSWORKFLOW']._serialized_start=343
- _globals['_PROCESSWORKFLOW']._serialized_end=438
- _globals['_PROCESSMODEL']._serialized_start=441
- _globals['_PROCESSMODEL']._serialized_end=1567
+ _globals['_PROCESSMODEL']._serialized_start=344
+ _globals['_PROCESSMODEL']._serialized_end=1369
# @@protoc_insertion_point(module_scope)
diff --git
a/airavata-python-sdk/airavata_sdk/generated/org/apache/airavata/model/process/process_pb2.pyi
b/airavata-python-sdk/airavata_sdk/generated/org/apache/airavata/model/process/process_pb2.pyi
index 5adf2a6e7a..518a14b844 100644
---
a/airavata-python-sdk/airavata_sdk/generated/org/apache/airavata/model/process/process_pb2.pyi
+++
b/airavata-python-sdk/airavata_sdk/generated/org/apache/airavata/model/process/process_pb2.pyi
@@ -11,20 +11,8 @@ from typing import ClassVar as _ClassVar, Optional as
_Optional, Union as _Union
DESCRIPTOR: _descriptor.FileDescriptor
-class ProcessWorkflow(_message.Message):
- __slots__ = ("process_id", "workflow_id", "creation_time", "type")
- PROCESS_ID_FIELD_NUMBER: _ClassVar[int]
- WORKFLOW_ID_FIELD_NUMBER: _ClassVar[int]
- CREATION_TIME_FIELD_NUMBER: _ClassVar[int]
- TYPE_FIELD_NUMBER: _ClassVar[int]
- process_id: str
- workflow_id: str
- creation_time: int
- type: str
- def __init__(self, process_id: _Optional[str] = ..., workflow_id:
_Optional[str] = ..., creation_time: _Optional[int] = ..., type: _Optional[str]
= ...) -> None: ...
-
class ProcessModel(_message.Message):
- __slots__ = ("process_id", "experiment_id", "creation_time",
"last_update_time", "process_statuses", "process_detail",
"application_interface_id", "application_deployment_id", "compute_resource_id",
"process_inputs", "process_outputs", "process_resource_schedule", "tasks",
"task_dag", "process_errors", "gateway_execution_id",
"enable_email_notification", "email_addresses", "input_storage_resource_id",
"output_storage_resource_id", "user_dn", "generate_cert",
"experiment_data_dir", "u [...]
+ __slots__ = ("process_id", "experiment_id", "creation_time",
"last_update_time", "process_statuses", "process_detail",
"application_interface_id", "application_deployment_id", "compute_resource_id",
"process_inputs", "process_outputs", "process_resource_schedule", "tasks",
"task_dag", "process_errors", "gateway_execution_id",
"enable_email_notification", "email_addresses", "input_storage_resource_id",
"output_storage_resource_id", "experiment_data_dir", "user_name",
"use_user_cr_pref [...]
PROCESS_ID_FIELD_NUMBER: _ClassVar[int]
EXPERIMENT_ID_FIELD_NUMBER: _ClassVar[int]
CREATION_TIME_FIELD_NUMBER: _ClassVar[int]
@@ -45,13 +33,10 @@ class ProcessModel(_message.Message):
EMAIL_ADDRESSES_FIELD_NUMBER: _ClassVar[int]
INPUT_STORAGE_RESOURCE_ID_FIELD_NUMBER: _ClassVar[int]
OUTPUT_STORAGE_RESOURCE_ID_FIELD_NUMBER: _ClassVar[int]
- USER_DN_FIELD_NUMBER: _ClassVar[int]
- GENERATE_CERT_FIELD_NUMBER: _ClassVar[int]
EXPERIMENT_DATA_DIR_FIELD_NUMBER: _ClassVar[int]
USER_NAME_FIELD_NUMBER: _ClassVar[int]
USE_USER_CR_PREF_FIELD_NUMBER: _ClassVar[int]
GROUP_RESOURCE_PROFILE_ID_FIELD_NUMBER: _ClassVar[int]
- PROCESS_WORKFLOWS_FIELD_NUMBER: _ClassVar[int]
process_id: str
experiment_id: str
creation_time: int
@@ -72,11 +57,8 @@ class ProcessModel(_message.Message):
email_addresses: _containers.RepeatedScalarFieldContainer[str]
input_storage_resource_id: str
output_storage_resource_id: str
- user_dn: str
- generate_cert: bool
experiment_data_dir: str
user_name: str
use_user_cr_pref: bool
group_resource_profile_id: str
- process_workflows:
_containers.RepeatedCompositeFieldContainer[ProcessWorkflow]
- def __init__(self, process_id: _Optional[str] = ..., experiment_id:
_Optional[str] = ..., creation_time: _Optional[int] = ..., last_update_time:
_Optional[int] = ..., process_statuses:
_Optional[_Iterable[_Union[_status_pb2.ProcessStatus, _Mapping]]] = ...,
process_detail: _Optional[str] = ..., application_interface_id: _Optional[str]
= ..., application_deployment_id: _Optional[str] = ..., compute_resource_id:
_Optional[str] = ..., process_inputs: _Optional[_Iterable[_Union[_applicat [...]
+ def __init__(self, process_id: _Optional[str] = ..., experiment_id:
_Optional[str] = ..., creation_time: _Optional[int] = ..., last_update_time:
_Optional[int] = ..., process_statuses:
_Optional[_Iterable[_Union[_status_pb2.ProcessStatus, _Mapping]]] = ...,
process_detail: _Optional[str] = ..., application_interface_id: _Optional[str]
= ..., application_deployment_id: _Optional[str] = ..., compute_resource_id:
_Optional[str] = ..., process_inputs: _Optional[_Iterable[_Union[_applicat [...]
diff --git a/airavata-python-sdk/airavata_sdk/helpers/models.py
b/airavata-python-sdk/airavata_sdk/helpers/models.py
index 1d9ec71964..9e5844a667 100644
--- a/airavata-python-sdk/airavata_sdk/helpers/models.py
+++ b/airavata-python-sdk/airavata_sdk/helpers/models.py
@@ -90,8 +90,6 @@ class UserConfigurationDataCreate(_Base):
computational_resource_scheduling: Optional[
ComputationalResourceSchedulingCreate] = None
throttle_resources: Optional[bool] = None
- user_dn: Optional[str] = None
- generate_cert: Optional[bool] = None
input_storage_resource_id: Optional[str] = None
output_storage_resource_id: Optional[str] = None
experiment_data_dir: Optional[str] = None
diff --git a/airavata-python-sdk/airavata_sdk/helpers/research_resources.py
b/airavata-python-sdk/airavata_sdk/helpers/research_resources.py
index 939a7a7c94..4d016ebf76 100644
--- a/airavata-python-sdk/airavata_sdk/helpers/research_resources.py
+++ b/airavata-python-sdk/airavata_sdk/helpers/research_resources.py
@@ -504,8 +504,6 @@ def _build_user_configuration_data(data: dict):
share_experiment_publicly=bool(
data.get("share_experiment_publicly", False)),
throttle_resources=bool(data.get("throttle_resources", False)),
- user_dn=data.get("user_dn") or "",
- generate_cert=bool(data.get("generate_cert", False)),
input_storage_resource_id=data.get("input_storage_resource_id") or "",
output_storage_resource_id=data.get("output_storage_resource_id") or
"",
experiment_data_dir=data.get("experiment_data_dir") or "",
diff --git
a/airavata-server/src/main/resources/db/migration/airavata/V1__Baseline_schema.sql
b/airavata-server/src/main/resources/db/migration/airavata/V1__Baseline_schema.sql
index 355f9ae69d..fe7d6f0341 100644
---
a/airavata-server/src/main/resources/db/migration/airavata/V1__Baseline_schema.sql
+++
b/airavata-server/src/main/resources/db/migration/airavata/V1__Baseline_schema.sql
@@ -28,14 +28,6 @@
SET FOREIGN_KEY_CHECKS=0;
-CREATE TABLE `agent_deployment_info` (
- `AGENT_DEPLOYMENT_INFO_ID` varchar(255) NOT NULL,
- `AGENT_APPLICATION_ID` varchar(255) DEFAULT NULL,
- `COMPUTE_RESOURCE_ID` varchar(255) DEFAULT NULL,
- `USER_FRINEDLY_NAME` varchar(255) DEFAULT NULL,
- PRIMARY KEY (`AGENT_DEPLOYMENT_INFO_ID`),
- UNIQUE KEY `UKf9p10tqcpwt5y0tcjrhq7p8qr` (`USER_FRINEDLY_NAME`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
CREATE TABLE `app_io_param` (
`PARAM_ID` varchar(255) NOT NULL,
`APPLICATION_ARGUMENT` varchar(255) DEFAULT NULL,
@@ -256,7 +248,6 @@ CREATE TABLE `credentials` (
`GATEWAY_ID` varchar(256) NOT NULL,
`TOKEN_ID` varchar(256) NOT NULL,
`CREDENTIAL` mediumblob NOT NULL,
- `CREDENTIAL_OWNER_TYPE` varchar(50) DEFAULT NULL,
`DESCRIPTION` varchar(500) DEFAULT NULL,
`PORTAL_USER_ID` varchar(256) NOT NULL,
`TIME_PERSISTED` datetime(6) DEFAULT NULL,
@@ -582,6 +573,7 @@ CREATE TABLE `parsing_template` (
`APP_INTERFACE_ID` varchar(255) DEFAULT NULL,
`GATEWAY_ID` varchar(255) DEFAULT NULL,
`INITIAL_INPUTS_JSON` tinytext DEFAULT NULL,
+ `PARSER_CONNECTIONS_JSON` tinytext DEFAULT NULL,
PRIMARY KEY (`PARSING_TEMPLATE_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
CREATE TABLE `permission_type` (
@@ -611,7 +603,6 @@ CREATE TABLE `process` (
`EXPERIMENT_DATA_DIR` varchar(512) DEFAULT NULL,
`EXPERIMENT_ID` varchar(255) DEFAULT NULL,
`GATEWAY_EXECUTION_ID` varchar(255) DEFAULT NULL,
- `GENERATE_CERT` bit(1) DEFAULT NULL,
`GROUP_RESOURCE_PROFILE_ID` varchar(255) DEFAULT NULL,
`INPUT_STORAGE_RESOURCE_ID` varchar(255) DEFAULT NULL,
`LAST_UPDATE_TIME` datetime(6) DEFAULT NULL,
@@ -619,7 +610,6 @@ CREATE TABLE `process` (
`PROCESS_DETAIL` tinytext DEFAULT NULL,
`TASK_DAG` tinytext DEFAULT NULL,
`USE_USER_CR_PREF` bit(1) DEFAULT NULL,
- `USER_DN` varchar(255) DEFAULT NULL,
`USERNAME` varchar(255) DEFAULT NULL,
PRIMARY KEY (`PROCESS_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
@@ -638,16 +628,6 @@ CREATE TABLE `process_resource_schedule` (
`WALL_TIME_LIMIT` int(11) DEFAULT NULL,
PRIMARY KEY (`PROCESS_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
-CREATE TABLE `process_workflow` (
- `processId` varchar(255) NOT NULL,
- `workflowId` varchar(255) NOT NULL,
- `CREATION_TIME` datetime(6) DEFAULT NULL,
- `TYPE` varchar(255) DEFAULT NULL,
- `PROCESS_ID` varchar(255) DEFAULT NULL,
- PRIMARY KEY (`processId`,`workflowId`),
- KEY `FK3t3hw37ici9l1289hpcn4frcn` (`PROCESS_ID`),
- CONSTRAINT `FK3t3hw37ici9l1289hpcn4frcn` FOREIGN KEY (`PROCESS_ID`)
REFERENCES `process` (`PROCESS_ID`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
CREATE TABLE `project` (
`PROJECT_ID` varchar(255) NOT NULL,
`CREATION_TIME` datetime(6) DEFAULT NULL,
@@ -671,7 +651,7 @@ CREATE TABLE `queue_status` (
`CREATED_TIME` decimal(38,0) NOT NULL,
`QUEUE_UP` bit(1) DEFAULT NULL,
`QUEUED_JOBS` int(11) DEFAULT NULL,
- `RUNNING_JOBS` bit(1) DEFAULT NULL,
+ `RUNNING_JOBS` int(11) DEFAULT NULL,
PRIMARY KEY (`HOST_NAME`,`QUEUE_NAME`,`CREATED_TIME`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
CREATE TABLE `repository_resource` (
@@ -726,7 +706,6 @@ CREATE TABLE `resource` (
`name` varchar(255) NOT NULL,
`privacy` enum('PRIVATE','PUBLIC') NOT NULL,
`state` enum('ACTIVE','DELETED') NOT NULL,
- `status` enum('NONE','PENDING','REJECTED','VERIFIED') NOT NULL,
`updatedAt` datetime(6) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
@@ -750,6 +729,7 @@ CREATE TABLE `resource_star` (
`user_id` varchar(255) NOT NULL,
`resource_id` varchar(48) NOT NULL,
PRIMARY KEY (`id`),
+ UNIQUE KEY `UK_resource_star_user_resource` (`user_id`,`resource_id`),
KEY `FKe8g40jht9trlg7x979t2v0qm1` (`resource_id`),
CONSTRAINT `FKe8g40jht9trlg7x979t2v0qm1` FOREIGN KEY (`resource_id`)
REFERENCES `resource` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
@@ -826,7 +806,8 @@ CREATE TABLE `storage_resource` (
CREATE TABLE `tag` (
`id` varchar(48) NOT NULL,
`value` varchar(255) NOT NULL,
- PRIMARY KEY (`id`)
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `UK_tag_value` (`value`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
CREATE TABLE `task` (
`TASK_ID` varchar(255) NOT NULL,
@@ -862,7 +843,6 @@ CREATE TABLE `user_configuration_data` (
`EXPERIMENT_ID` varchar(255) NOT NULL,
`AIRAVATA_AUTO_SCHEDULE` bit(1) DEFAULT NULL,
`EXPERIMENT_DATA_DIR` varchar(512) DEFAULT NULL,
- `GENERATE_CERT` bit(1) DEFAULT NULL,
`GROUP_RESOURCE_PROFILE_ID` varchar(255) DEFAULT NULL,
`INPUT_STORAGE_RESOURCE_ID` varchar(255) DEFAULT NULL,
`NODE_COUNT` int(11) DEFAULT NULL,
@@ -880,7 +860,6 @@ CREATE TABLE `user_configuration_data` (
`TOTAL_CPU_COUNT` int(11) DEFAULT NULL,
`TOTAL_PHYSICAL_MEMORY` int(11) DEFAULT NULL,
`IS_USE_USER_CR_PREF` bit(1) DEFAULT NULL,
- `USER_DN` varchar(255) DEFAULT NULL,
`WALL_TIME_LIMIT` int(11) DEFAULT NULL,
PRIMARY KEY (`EXPERIMENT_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
diff --git a/conf/db/seed.sql b/conf/db/seed.sql
index 69c031385f..709e6b4324 100644
--- a/conf/db/seed.sql
+++ b/conf/db/seed.sql
@@ -94,7 +94,7 @@ SET @OLD_AUTOCOMMIT=@@AUTOCOMMIT, @@AUTOCOMMIT=0;
COMMIT;
SET AUTOCOMMIT=@OLD_AUTOCOMMIT;
SET @OLD_AUTOCOMMIT=@@AUTOCOMMIT, @@AUTOCOMMIT=0;
-INSERT INTO `credentials` (`GATEWAY_ID`, `TOKEN_ID`, `CREDENTIAL`,
`CREDENTIAL_OWNER_TYPE`, `DESCRIPTION`, `PORTAL_USER_ID`, `TIME_PERSISTED`)
VALUES
('default','24bc9035-9bf9-4f4e-ad0b-0ca18651c475',0x9E84F4E3E50D7B5F1D5F1942EC1729C57A7F9F96544EAAA7190EC3BD9FE7D10EF9ED3C2E4025CA58A3DD5116E4610D23F049E0343801A98C3B7F605702AA2F8730FCB5B5FD2F071581E56B4113CFEFC0BE76EE01588AEF931F39F4FDD2450C5B888794F2E5F5EDB3DB6EAD558F5A681DEE76C43716B5530C4CAAF7030FE38767DC64F0C26A5D628E675AC23BE0C8D10727
[...]
+INSERT INTO `credentials` (`GATEWAY_ID`, `TOKEN_ID`, `CREDENTIAL`,
`DESCRIPTION`, `PORTAL_USER_ID`, `TIME_PERSISTED`) VALUES
('default','24bc9035-9bf9-4f4e-ad0b-0ca18651c475',0x9E84F4E3E50D7B5F1D5F1942EC1729C57A7F9F96544EAAA7190EC3BD9FE7D10EF9ED3C2E4025CA58A3DD5116E4610D23F049E0343801A98C3B7F605702AA2F8730FCB5B5FD2F071581E56B4113CFEFC0BE76EE01588AEF931F39F4FDD2450C5B888794F2E5F5EDB3DB6EAD558F5A681DEE76C43716B5530C4CAAF7030FE38767DC64F0C26A5D628E675AC23BE0C8D10727E05416F8F40ED4EE807CD827C
[...]
COMMIT;
SET AUTOCOMMIT=@OLD_AUTOCOMMIT;
SET @OLD_AUTOCOMMIT=@@AUTOCOMMIT, @@AUTOCOMMIT=0;