This is an automated email from the ASF dual-hosted git repository.
machristie pushed a commit to branch airavata-v2-refactoring
in repository https://gitbox.apache.org/repos/asf/airavata.git
The following commit(s) were added to refs/heads/airavata-v2-refactoring by
this push:
new a60db2652d WIP: fixed mappings, APIRunner now can start up
a60db2652d is described below
commit a60db2652d4497ddaa43fc65e5c473f6cf0e6126
Author: Marcus Christie <[email protected]>
AuthorDate: Tue May 30 17:49:58 2023 -0400
WIP: fixed mappings, APIRunner now can start up
---
.../apis/db/entity/ApplicationRunInfoEntity.java | 70 ++++++++++++++++++--
.../db/entity/DataMovementConfigurationEntity.java | 74 ++++++++++++++++++++--
.../airavata/apis/db/entity/ExperimentEntity.java | 7 +-
.../apis/db/entity/RunConfigurationEntity.java | 49 +++++---------
.../db/entity/backend/ComputeBackendEntity.java | 51 +++++++++++++++
.../apis/db/entity/backend/EC2BackendEntity.java | 37 ++++++++---
.../apis/db/entity/backend/LocalBackendEntity.java | 29 ++++++---
.../db/entity/backend/ServerBackendEntity.java | 61 ++++++++++++++----
.../entity/backend/iface/SCPInterfaceEntity.java | 32 +++++++++-
.../entity/backend/iface/SSHInterfaceEntity.java | 63 ++++++++++++++++++
.../apis/db/entity/data/FileLocationEntity.java | 64 ++++++++++++++++++-
.../apis/db/entity/data/InDataMovementEntity.java | 73 +++++++++++++++++++--
.../apis/db/entity/data/OutDataMovementEntity.java | 73 +++++++++++++++++++--
.../src/main/proto/execution/experiment_stub.proto | 6 +-
pom.xml | 4 +-
15 files changed, 598 insertions(+), 95 deletions(-)
diff --git
a/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/ApplicationRunInfoEntity.java
b/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/ApplicationRunInfoEntity.java
index 9aea690dfb..3d10974436 100644
---
a/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/ApplicationRunInfoEntity.java
+++
b/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/ApplicationRunInfoEntity.java
@@ -5,10 +5,7 @@ import
org.apache.airavata.apis.db.entity.application.runners.DockerRunnerEntity
import
org.apache.airavata.apis.db.entity.application.runners.SlurmRunnerEntity;
import org.hibernate.annotations.GenericGenerator;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
+import javax.persistence.*;
@Entity
public class ApplicationRunInfoEntity {
@@ -19,8 +16,73 @@ public class ApplicationRunInfoEntity {
@GenericGenerator(name = "uuid", strategy = "uuid2")
private String appRunnerId;
+ @OneToOne
+ @JoinColumn(name = "application_id", referencedColumnName =
"application_id")
private ApplicationEntity application;
+ @OneToOne
+ @JoinColumn(name = "docker_runner_id", referencedColumnName =
"docker_runner_id")
DockerRunnerEntity dockerRunner;
+
+ @OneToOne
+ @JoinColumn(name = "slurm_runner_id", referencedColumnName =
"slurm_runner_id")
SlurmRunnerEntity slurmRunner;
+
+ public String getAppRunnerId() {
+ return appRunnerId;
+ }
+
+ public void setAppRunnerId(String appRunnerId) {
+ this.appRunnerId = appRunnerId;
+ }
+
+ public ApplicationEntity getApplication() {
+ return application;
+ }
+
+ public void setApplication(ApplicationEntity application) {
+ this.application = application;
+ }
+
+ public DockerRunnerEntity getDockerRunner() {
+ return dockerRunner;
+ }
+
+ public void setDockerRunner(DockerRunnerEntity dockerRunner) {
+ this.dockerRunner = dockerRunner;
+ }
+
+ public SlurmRunnerEntity getSlurmRunner() {
+ return slurmRunner;
+ }
+
+ public void setSlurmRunner(SlurmRunnerEntity slurmRunner) {
+ this.slurmRunner = slurmRunner;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((appRunnerId == null) ? 0 :
appRunnerId.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ ApplicationRunInfoEntity other = (ApplicationRunInfoEntity) obj;
+ if (appRunnerId == null) {
+ if (other.appRunnerId != null)
+ return false;
+ } else if (!appRunnerId.equals(other.appRunnerId))
+ return false;
+ return true;
+ }
+
}
diff --git
a/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/DataMovementConfigurationEntity.java
b/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/DataMovementConfigurationEntity.java
index 6c405c2b25..0c49bb42b5 100644
---
a/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/DataMovementConfigurationEntity.java
+++
b/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/DataMovementConfigurationEntity.java
@@ -4,10 +4,8 @@ import
org.apache.airavata.apis.db.entity.data.InDataMovementEntity;
import org.apache.airavata.apis.db.entity.data.OutDataMovementEntity;
import org.hibernate.annotations.GenericGenerator;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
+import javax.persistence.*;
+
import java.util.Set;
@Entity
@@ -18,6 +16,72 @@ public class DataMovementConfigurationEntity {
@GeneratedValue(generator = "uuid")
@GenericGenerator(name = "uuid", strategy = "uuid2")
private String dmConfig;
+
+ @OneToMany(mappedBy = "dataMovementConfiguration")
Set<InDataMovementEntity> inMovements;
- Set<OutDataMovementEntity> ourMovements;
+
+ @OneToMany(mappedBy = "dataMovementConfiguration")
+ Set<OutDataMovementEntity> outMovements;
+
+ @ManyToOne
+ @JoinColumn(name = "run_config_id")
+ RunConfigurationEntity runConfiguration;
+
+ public String getDmConfig() {
+ return dmConfig;
+ }
+
+ public void setDmConfig(String dmConfig) {
+ this.dmConfig = dmConfig;
+ }
+
+ public Set<InDataMovementEntity> getInMovements() {
+ return inMovements;
+ }
+
+ public void setInMovements(Set<InDataMovementEntity> inMovements) {
+ this.inMovements = inMovements;
+ }
+
+ public Set<OutDataMovementEntity> getOutMovements() {
+ return outMovements;
+ }
+
+ public void setOutMovements(Set<OutDataMovementEntity> outMovements) {
+ this.outMovements = outMovements;
+ }
+
+ public RunConfigurationEntity getRunConfiguration() {
+ return runConfiguration;
+ }
+
+ public void setRunConfiguration(RunConfigurationEntity runConfiguration) {
+ this.runConfiguration = runConfiguration;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((dmConfig == null) ? 0 :
dmConfig.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ DataMovementConfigurationEntity other =
(DataMovementConfigurationEntity) obj;
+ if (dmConfig == null) {
+ if (other.dmConfig != null)
+ return false;
+ } else if (!dmConfig.equals(other.dmConfig))
+ return false;
+ return true;
+ }
+
}
diff --git
a/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/ExperimentEntity.java
b/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/ExperimentEntity.java
index d1073c0017..49f86691cf 100644
---
a/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/ExperimentEntity.java
+++
b/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/ExperimentEntity.java
@@ -2,10 +2,8 @@ package org.apache.airavata.apis.db.entity;
import org.hibernate.annotations.GenericGenerator;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
+import javax.persistence.*;
+
import java.util.List;
@Entity
@@ -31,6 +29,7 @@ public class ExperimentEntity {
@Column(name = "DESCRIPTION")
String description;
+ @OneToMany(mappedBy = "experiment")
List<RunConfigurationEntity> runConfigs;
public String getExperimentId() {
diff --git
a/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/RunConfigurationEntity.java
b/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/RunConfigurationEntity.java
index b4546b8066..e5b132cd8d 100644
---
a/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/RunConfigurationEntity.java
+++
b/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/RunConfigurationEntity.java
@@ -1,14 +1,10 @@
package org.apache.airavata.apis.db.entity;
-import org.apache.airavata.apis.db.entity.backend.EC2BackendEntity;
-import org.apache.airavata.apis.db.entity.backend.LocalBackendEntity;
-import org.apache.airavata.apis.db.entity.backend.ServerBackendEntity;
+import org.apache.airavata.apis.db.entity.backend.ComputeBackendEntity;
import org.hibernate.annotations.GenericGenerator;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
+import javax.persistence.*;
+
import java.util.List;
@Entity
@@ -19,12 +15,22 @@ public class RunConfigurationEntity {
@GeneratedValue(generator = "uuid")
@GenericGenerator(name = "uuid", strategy = "uuid2")
private String runConfigId;
- ServerBackendEntity server;
- EC2BackendEntity ec2;
- LocalBackendEntity local;
+
+ @OneToOne
+ @JoinColumn(name = "backend_id")
+ ComputeBackendEntity computeBackend;
+
+ @OneToOne
+ @JoinColumn(name = "app_runner_id")
ApplicationRunInfoEntity appRunInfo;
+
+ @OneToMany(mappedBy = "runConfiguration")
List<DataMovementConfigurationEntity> dataMovementConfigs;
+ @ManyToOne
+ @JoinColumn(name = "experiment_id")
+ ExperimentEntity experiment;
+
public String getRunConfigId() {
return runConfigId;
}
@@ -33,29 +39,6 @@ public class RunConfigurationEntity {
this.runConfigId = runConfigId;
}
- public ServerBackendEntity getServer() {
- return server;
- }
-
- public void setServer(ServerBackendEntity server) {
- this.server = server;
- }
-
- public EC2BackendEntity getEc2() {
- return ec2;
- }
-
- public void setEc2(EC2BackendEntity ec2) {
- this.ec2 = ec2;
- }
-
- public LocalBackendEntity getLocal() {
- return local;
- }
-
- public void setLocal(LocalBackendEntity local) {
- this.local = local;
- }
public ApplicationRunInfoEntity getAppRunInfo() {
return appRunInfo;
diff --git
a/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/backend/ComputeBackendEntity.java
b/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/backend/ComputeBackendEntity.java
new file mode 100644
index 0000000000..4939dc49f5
--- /dev/null
+++
b/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/backend/ComputeBackendEntity.java
@@ -0,0 +1,51 @@
+package org.apache.airavata.apis.db.entity.backend;
+
+import org.hibernate.annotations.GenericGenerator;
+
+import javax.persistence.*;
+
+@Entity
+@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
+@DiscriminatorColumn(name = "backend_type")
+public abstract class ComputeBackendEntity {
+
+ @Id
+ @Column(name = "BACKEND_ID")
+ @GeneratedValue(generator = "uuid")
+ @GenericGenerator(name = "uuid", strategy = "uuid2")
+ private String backendId;
+
+ public String getBackendId() {
+ return backendId;
+ }
+
+ public void setBackendId(String backendId) {
+ this.backendId = backendId;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((backendId == null) ? 0 :
backendId.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ ComputeBackendEntity other = (ComputeBackendEntity) obj;
+ if (backendId == null) {
+ if (other.backendId != null)
+ return false;
+ } else if (!backendId.equals(other.backendId))
+ return false;
+ return true;
+ }
+
+}
diff --git
a/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/backend/EC2BackendEntity.java
b/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/backend/EC2BackendEntity.java
index 919a21b00e..cdfde29b15 100644
---
a/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/backend/EC2BackendEntity.java
+++
b/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/backend/EC2BackendEntity.java
@@ -1,20 +1,13 @@
package org.apache.airavata.apis.db.entity.backend;
-import org.hibernate.annotations.GenericGenerator;
-
import javax.persistence.Column;
+import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
@Entity
-public class EC2BackendEntity {
+@DiscriminatorValue("EC2")
+public class EC2BackendEntity extends ComputeBackendEntity {
- @Id
- @Column(name = "BACKEND_ID")
- @GeneratedValue(generator = "uuid")
- @GenericGenerator(name = "uuid", strategy = "uuid2")
- private String backendId;
@Column
String flavor;
@Column
@@ -23,4 +16,28 @@ public class EC2BackendEntity {
@Column
String awsCredentialId;
+ public String getFlavor() {
+ return flavor;
+ }
+
+ public void setFlavor(String flavor) {
+ this.flavor = flavor;
+ }
+
+ public String getRegion() {
+ return region;
+ }
+
+ public void setRegion(String region) {
+ this.region = region;
+ }
+
+ public String getAwsCredentialId() {
+ return awsCredentialId;
+ }
+
+ public void setAwsCredentialId(String awsCredentialId) {
+ this.awsCredentialId = awsCredentialId;
+ }
+
}
diff --git
a/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/backend/LocalBackendEntity.java
b/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/backend/LocalBackendEntity.java
index 81d0cdd317..f129ea7165 100644
---
a/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/backend/LocalBackendEntity.java
+++
b/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/backend/LocalBackendEntity.java
@@ -1,24 +1,33 @@
package org.apache.airavata.apis.db.entity.backend;
-import org.hibernate.annotations.GenericGenerator;
-
import javax.persistence.Column;
+import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
@Entity
-public class LocalBackendEntity {
+@DiscriminatorValue("LOCAL")
+public class LocalBackendEntity extends ComputeBackendEntity {
- @Id
- @Column(name = "BACKEND_ID")
- @GeneratedValue(generator = "uuid")
- @GenericGenerator(name = "uuid", strategy = "uuid2")
- private String backendId;
@Column
String agentId;
@Column
String agentTokenId;
+ public String getAgentId() {
+ return agentId;
+ }
+
+ public void setAgentId(String agentId) {
+ this.agentId = agentId;
+ }
+
+ public String getAgentTokenId() {
+ return agentTokenId;
+ }
+
+ public void setAgentTokenId(String agentTokenId) {
+ this.agentTokenId = agentTokenId;
+ }
+
}
diff --git
a/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/backend/ServerBackendEntity.java
b/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/backend/ServerBackendEntity.java
index 7bf7f0b25f..e5e3646da2 100644
---
a/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/backend/ServerBackendEntity.java
+++
b/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/backend/ServerBackendEntity.java
@@ -2,30 +2,69 @@ package org.apache.airavata.apis.db.entity.backend;
import org.apache.airavata.apis.db.entity.backend.iface.SCPInterfaceEntity;
import org.apache.airavata.apis.db.entity.backend.iface.SSHInterfaceEntity;
-import org.hibernate.annotations.GenericGenerator;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
+import javax.persistence.*;
@Entity
-public class ServerBackendEntity {
+@DiscriminatorValue("SERVER")
+public class ServerBackendEntity extends ComputeBackendEntity {
- @Id
- @Column(name = "BACKEND_ID")
- @GeneratedValue(generator = "uuid")
- @GenericGenerator(name = "uuid", strategy = "uuid2")
- private String backendId;
@Column
String hostName;
+
@Column
int port;
+ @OneToOne
+ @JoinColumn(name = "command_interface_id", referencedColumnName =
"ssh_iface_id")
SSHInterfaceEntity commandInterface;
+
+ @OneToOne
+ @JoinColumn(name = "data_interface_id", referencedColumnName =
"scp_iface_id")
SCPInterfaceEntity dataInterface;
+
@Column
String workingDirectory;
+ public String getHostName() {
+ return hostName;
+ }
+
+ public void setHostName(String hostName) {
+ this.hostName = hostName;
+ }
+
+ public int getPort() {
+ return port;
+ }
+
+ public void setPort(int port) {
+ this.port = port;
+ }
+
+ public SSHInterfaceEntity getCommandInterface() {
+ return commandInterface;
+ }
+
+ public void setCommandInterface(SSHInterfaceEntity commandInterface) {
+ this.commandInterface = commandInterface;
+ }
+
+ public SCPInterfaceEntity getDataInterface() {
+ return dataInterface;
+ }
+
+ public void setDataInterface(SCPInterfaceEntity dataInterface) {
+ this.dataInterface = dataInterface;
+ }
+
+ public String getWorkingDirectory() {
+ return workingDirectory;
+ }
+
+ public void setWorkingDirectory(String workingDirectory) {
+ this.workingDirectory = workingDirectory;
+ }
+
}
diff --git
a/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/backend/iface/SCPInterfaceEntity.java
b/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/backend/iface/SCPInterfaceEntity.java
index f381b43d33..912d78a567 100644
---
a/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/backend/iface/SCPInterfaceEntity.java
+++
b/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/backend/iface/SCPInterfaceEntity.java
@@ -22,7 +22,7 @@ public class SCPInterfaceEntity {
String hostName;
@Column
- String port;
+ Integer port;
@Column
String sshCredentialId;
@@ -51,11 +51,11 @@ public class SCPInterfaceEntity {
this.hostName = hostName;
}
- public String getPort() {
+ public Integer getPort() {
return port;
}
- public void setPort(String port) {
+ public void setPort(Integer port) {
this.port = port;
}
@@ -66,4 +66,30 @@ public class SCPInterfaceEntity {
public void setSshCredentialId(String sshCredentialId) {
this.sshCredentialId = sshCredentialId;
}
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((scpInterfaceId == null) ? 0 :
scpInterfaceId.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ SCPInterfaceEntity other = (SCPInterfaceEntity) obj;
+ if (scpInterfaceId == null) {
+ if (other.scpInterfaceId != null)
+ return false;
+ } else if (!scpInterfaceId.equals(other.scpInterfaceId))
+ return false;
+ return true;
+ }
+
}
diff --git
a/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/backend/iface/SSHInterfaceEntity.java
b/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/backend/iface/SSHInterfaceEntity.java
index 6036265084..e2e37174ff 100644
---
a/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/backend/iface/SSHInterfaceEntity.java
+++
b/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/backend/iface/SSHInterfaceEntity.java
@@ -16,6 +16,69 @@ public class SSHInterfaceEntity {
@GenericGenerator(name = "uuid", strategy = "uuid2")
private String sshInterfaceId;
+ @Column
+ String hostName;
+ @Column
+ Integer port;
+ @Column
+ String sshCredentialId;
+
+ public String getSshInterfaceId() {
+ return sshInterfaceId;
+ }
+
+ public void setSshInterfaceId(String sshInterfaceId) {
+ this.sshInterfaceId = sshInterfaceId;
+ }
+
+ public String getHostName() {
+ return hostName;
+ }
+
+ public void setHostName(String hostName) {
+ this.hostName = hostName;
+ }
+
+ public Integer getPort() {
+ return port;
+ }
+
+ public void setPort(Integer port) {
+ this.port = port;
+ }
+
+ public String getSshCredentialId() {
+ return sshCredentialId;
+ }
+
+ public void setSshCredentialId(String sshCredentialId) {
+ this.sshCredentialId = sshCredentialId;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((sshInterfaceId == null) ? 0 :
sshInterfaceId.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ SSHInterfaceEntity other = (SSHInterfaceEntity) obj;
+ if (sshInterfaceId == null) {
+ if (other.sshInterfaceId != null)
+ return false;
+ } else if (!sshInterfaceId.equals(other.sshInterfaceId))
+ return false;
+ return true;
+ }
}
diff --git
a/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/data/FileLocationEntity.java
b/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/data/FileLocationEntity.java
index 83874d9f11..018f33ae1c 100644
---
a/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/data/FileLocationEntity.java
+++
b/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/data/FileLocationEntity.java
@@ -16,9 +16,67 @@ public class FileLocationEntity {
@GenericGenerator(name = "uuid", strategy = "uuid2")
private String fileLocationId;
@Column
- String storageId;
+ private String storageId;
@Column
- String path;
+ private String path;
@Column
- String storageCredentialId;
+ private String storageCredentialId;
+
+ public String getFileLocationId() {
+ return fileLocationId;
+ }
+
+ public void setFileLocationId(String fileLocationId) {
+ this.fileLocationId = fileLocationId;
+ }
+
+ public String getStorageId() {
+ return storageId;
+ }
+
+ public void setStorageId(String storageId) {
+ this.storageId = storageId;
+ }
+
+ public String getPath() {
+ return path;
+ }
+
+ public void setPath(String path) {
+ this.path = path;
+ }
+
+ public String getStorageCredentialId() {
+ return storageCredentialId;
+ }
+
+ public void setStorageCredentialId(String storageCredentialId) {
+ this.storageCredentialId = storageCredentialId;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((fileLocationId == null) ? 0 :
fileLocationId.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ FileLocationEntity other = (FileLocationEntity) obj;
+ if (fileLocationId == null) {
+ if (other.fileLocationId != null)
+ return false;
+ } else if (!fileLocationId.equals(other.fileLocationId))
+ return false;
+ return true;
+ }
+
}
diff --git
a/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/data/InDataMovementEntity.java
b/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/data/InDataMovementEntity.java
index 2a76d0739c..f646f36f70 100644
---
a/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/data/InDataMovementEntity.java
+++
b/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/data/InDataMovementEntity.java
@@ -1,12 +1,10 @@
package org.apache.airavata.apis.db.entity.data;
+import org.apache.airavata.apis.db.entity.DataMovementConfigurationEntity;
import org.hibernate.annotations.GenericGenerator;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
+import javax.persistence.*;
@Entity
public class InDataMovementEntity {
@@ -16,6 +14,73 @@ public class InDataMovementEntity {
@GeneratedValue(generator = "uuid")
@GenericGenerator(name = "uuid", strategy = "uuid2")
private String inDataMovementId;
+
+ @Column
int inputIndex;
+
+ @OneToOne
+ @JoinColumn(name = "source_location_id", referencedColumnName =
"file_location_id")
FileLocationEntity sourceLocation;
+
+ @ManyToOne
+ @JoinColumn(name = "dm_config_id", referencedColumnName = "dm_config_id")
+ DataMovementConfigurationEntity dataMovementConfiguration;
+
+ public String getInDataMovementId() {
+ return inDataMovementId;
+ }
+
+ public void setInDataMovementId(String inDataMovementId) {
+ this.inDataMovementId = inDataMovementId;
+ }
+
+ public int getInputIndex() {
+ return inputIndex;
+ }
+
+ public void setInputIndex(int inputIndex) {
+ this.inputIndex = inputIndex;
+ }
+
+ public FileLocationEntity getSourceLocation() {
+ return sourceLocation;
+ }
+
+ public void setSourceLocation(FileLocationEntity sourceLocation) {
+ this.sourceLocation = sourceLocation;
+ }
+
+ public DataMovementConfigurationEntity getDataMovementConfiguration() {
+ return dataMovementConfiguration;
+ }
+
+ public void setDataMovementConfiguration(DataMovementConfigurationEntity
dataMovementConfiguration) {
+ this.dataMovementConfiguration = dataMovementConfiguration;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((inDataMovementId == null) ? 0 :
inDataMovementId.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ InDataMovementEntity other = (InDataMovementEntity) obj;
+ if (inDataMovementId == null) {
+ if (other.inDataMovementId != null)
+ return false;
+ } else if (!inDataMovementId.equals(other.inDataMovementId))
+ return false;
+ return true;
+ }
+
}
diff --git
a/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/data/OutDataMovementEntity.java
b/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/data/OutDataMovementEntity.java
index fb4a724b0a..7a7fe28aa0 100644
---
a/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/data/OutDataMovementEntity.java
+++
b/modules/airavata-apis/airavata-apis-server/src/main/java/org/apache/airavata/apis/db/entity/data/OutDataMovementEntity.java
@@ -1,11 +1,9 @@
package org.apache.airavata.apis.db.entity.data;
+import org.apache.airavata.apis.db.entity.DataMovementConfigurationEntity;
import org.hibernate.annotations.GenericGenerator;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
+import javax.persistence.*;
@Entity
public class OutDataMovementEntity {
@@ -15,6 +13,73 @@ public class OutDataMovementEntity {
@GeneratedValue(generator = "uuid")
@GenericGenerator(name = "uuid", strategy = "uuid2")
private String outDataMovementId;
+
+ @Column
int outputIndex = 1;
+
+ @OneToOne
+ @JoinColumn(name = "destination_location_id", referencedColumnName =
"file_location_id")
FileLocationEntity destinationLocation;
+
+ @ManyToOne
+ @JoinColumn(name = "dm_config_id", referencedColumnName = "dm_config_id")
+ DataMovementConfigurationEntity dataMovementConfiguration;
+
+ public String getOutDataMovementId() {
+ return outDataMovementId;
+ }
+
+ public void setOutDataMovementId(String outDataMovementId) {
+ this.outDataMovementId = outDataMovementId;
+ }
+
+ public int getOutputIndex() {
+ return outputIndex;
+ }
+
+ public void setOutputIndex(int outputIndex) {
+ this.outputIndex = outputIndex;
+ }
+
+ public FileLocationEntity getDestinationLocation() {
+ return destinationLocation;
+ }
+
+ public void setDestinationLocation(FileLocationEntity destinationLocation)
{
+ this.destinationLocation = destinationLocation;
+ }
+
+ public DataMovementConfigurationEntity getDataMovementConfiguration() {
+ return dataMovementConfiguration;
+ }
+
+ public void setDataMovementConfiguration(DataMovementConfigurationEntity
dataMovementConfiguration) {
+ this.dataMovementConfiguration = dataMovementConfiguration;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((outDataMovementId == null) ? 0 :
outDataMovementId.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OutDataMovementEntity other = (OutDataMovementEntity) obj;
+ if (outDataMovementId == null) {
+ if (other.outDataMovementId != null)
+ return false;
+ } else if (!outDataMovementId.equals(other.outDataMovementId))
+ return false;
+ return true;
+ }
+
}
diff --git
a/modules/airavata-apis/airavata-apis-stub/src/main/proto/execution/experiment_stub.proto
b/modules/airavata-apis/airavata-apis-stub/src/main/proto/execution/experiment_stub.proto
index d8c9dc88c5..bd87663933 100644
---
a/modules/airavata-apis/airavata-apis-stub/src/main/proto/execution/experiment_stub.proto
+++
b/modules/airavata-apis/airavata-apis-stub/src/main/proto/execution/experiment_stub.proto
@@ -97,14 +97,14 @@ message ApplicationRunInfo {
message SSHInterface {
string interfaceId = 1;
string hostName = 2;
- string port = 3;
+ int32 port = 3;
string sshCredentialId = 4;
}
message SCPInterface {
string interfaceId = 1;
string hostName = 2;
- string port = 3;
+ int32 port = 3;
string sshCredentialId = 4;
}
@@ -149,7 +149,7 @@ message OutDataMovement {
message DataMovementConfiguration {
repeated InDataMovement inMovements = 1;
- repeated OutDataMovement ourMovements = 2;
+ repeated OutDataMovement outMovements = 2;
}
message Experiment {
diff --git a/pom.xml b/pom.xml
index 6f8d81cdd9..e74380166e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -87,7 +87,9 @@
<protobuf.maven.plugin>0.5.1</protobuf.maven.plugin>
<os.maven.plugin>1.5.0.Final</os.maven.plugin>
<protobuf.java>3.21.11</protobuf.java>
- <grpc.version>1.54.0</grpc.version>
+ <!-- This needs to match the grpc version used by grpc.spring.boot -->
+ <!-- see
https://github.com/LogNet/grpc-spring-boot-starter/blob/master/ReleaseNotes.md
-->
+ <grpc.version>1.47.0</grpc.version>
<h2>1.4.191</h2>
<spring.boot.data.jpa>2.2.1.RELEASE</spring.boot.data.jpa>
<grpc.spring.boot>4.7.1</grpc.spring.boot>