You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sh...@apache.org on 2015/06/04 22:37:04 UTC
[18/52] [abbrv] [partial] airavata git commit: registry refactoring
http://git-wip-us.apache.org/repos/asf/airavata/blob/ec8c6202/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UnicoreJobSubmission.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UnicoreJobSubmission.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UnicoreJobSubmission.java
new file mode 100644
index 0000000..8395e40
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UnicoreJobSubmission.java
@@ -0,0 +1,66 @@
+/*
+ *
+ * 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.registry.core.app.catalog.model;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+@Entity
+@Table(name = "UNICORE_SUBMISSION")
+public class UnicoreJobSubmission {
+ @Id
+ @Column(name = "SUBMISSION_ID")
+ private String submissionID;
+ @Column(name = "SECURITY_PROTOCAL")
+ private String securityProtocol;
+
+ @Column(name = "UNICORE_ENDPOINT_URL")
+ private String unicoreEndpointUrl;
+
+ public String getUnicoreEndpointUrl() {
+ return unicoreEndpointUrl;
+ }
+
+ public void setUnicoreEndpointUrl(String unicoreEndpointUrl) {
+ this.unicoreEndpointUrl = unicoreEndpointUrl;
+ }
+
+
+ public String getSubmissionID() {
+ return submissionID;
+ }
+
+ public void setSubmissionID(String submissionID) {
+ this.submissionID = submissionID;
+ }
+
+ public String getSecurityProtocol() {
+ return securityProtocol;
+ }
+
+ public void setSecurityProtocol(String securityProtocol) {
+ this.securityProtocol = securityProtocol;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/ec8c6202/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/Workflow.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/Workflow.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/Workflow.java
new file mode 100644
index 0000000..6520fd2
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/Workflow.java
@@ -0,0 +1,126 @@
+/*
+ *
+ * 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.registry.core.app.catalog.model;
+
+import org.apache.openjpa.persistence.DataCache;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.sql.Timestamp;
+
+@DataCache
+@Entity
+@Table(name = "WORKFLOW")
+public class Workflow implements Serializable {
+
+ @Column(name = "WF_NAME")
+ private String wfName;
+
+ @Column(name = "CREATED_USER")
+ private String createdUser;
+
+ @Lob
+ @Column(name = "GRAPH")
+ private char[] graph;
+
+ @Id
+ @Column(name = "WF_TEMPLATE_ID")
+ private String wfTemplateId;
+
+ @Column(name = "CREATION_TIME")
+ private Timestamp creationTime;
+
+ @Column(name = "UPDATE_TIME")
+ private Timestamp updateTime;
+
+ @Lob
+ @Column(name = "IMAGE")
+ private byte[] image;
+
+ @Column(name = "GATEWAY_ID")
+ private String gatewayId;
+
+ public String getGatewayId() {
+ return gatewayId;
+ }
+
+ public void setGatewayId(String gatewayId) {
+ this.gatewayId = gatewayId;
+ }
+
+ public Timestamp getCreationTime() {
+ return creationTime;
+ }
+
+ public void setCreationTime(Timestamp creationTime) {
+ this.creationTime = creationTime;
+ }
+
+ public Timestamp getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(Timestamp updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getWfName() {
+ return wfName;
+ }
+
+ public String getCreatedUser() {
+ return createdUser;
+ }
+
+ public char[] getGraph() {
+ return graph;
+ }
+
+ public String getWfTemplateId() {
+ return wfTemplateId;
+ }
+
+ public void setWfName(String wfName) {
+ this.wfName=wfName;
+ }
+
+ public void setCreatedUser(String createdUser) {
+ this.createdUser=createdUser;
+ }
+
+ public void setGraph(char[] graph) {
+ this.graph=graph;
+ }
+
+ public void setWfTemplateId(String wfTemplateId) {
+ this.wfTemplateId=wfTemplateId;
+ }
+
+ public byte[] getImage() {
+ return image;
+ }
+
+ public void setImage(byte[] image) {
+ this.image = image;
+ }
+}
+
http://git-wip-us.apache.org/repos/asf/airavata/blob/ec8c6202/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/WorkflowInput.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/WorkflowInput.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/WorkflowInput.java
new file mode 100644
index 0000000..c559906
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/WorkflowInput.java
@@ -0,0 +1,167 @@
+/*
+ *
+ * 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.registry.core.app.catalog.model;
+
+
+import javax.persistence.*;
+import java.io.Serializable;
+
+@Entity
+@Table(name = "WORKFLOW_INPUT")
+@IdClass(WorkflowInput_PK.class)
+public class WorkflowInput implements Serializable {
+ @Id
+ @Column(name = "WF_TEMPLATE_ID")
+ private String wfTemplateId;
+ @Id
+ @Column(name = "INPUT_KEY")
+ private String inputKey;
+ @Lob
+ @Column(name = "INPUT_VALUE")
+ private char[] inputVal;
+ @Column(name = "DATA_TYPE")
+ private String dataType;
+ @Column(name = "METADATA")
+ private String metadata;
+ @Column(name = "APP_ARGUMENT")
+ private String appArgument;
+ @Column(name = "USER_FRIENDLY_DESC")
+ private String userFriendlyDesc;
+ @Column(name = "STANDARD_INPUT")
+ private boolean standardInput;
+ @Column(name = "INPUT_ORDER")
+ private int inputOrder;
+ @Column(name="IS_REQUIRED")
+ private boolean isRequired;
+ @Column(name="REQUIRED_TO_COMMANDLINE")
+ private boolean requiredToCMD;
+ @Column(name = "DATA_STAGED")
+ private boolean dataStaged;
+
+ @ManyToOne(cascade = CascadeType.MERGE)
+ @JoinColumn(name = "WF_TEMPLATE_ID")
+ private Workflow workflow;
+
+ public String getWfTemplateId() {
+ return wfTemplateId;
+ }
+
+ public void setWfTemplateId(String wfTemplateId) {
+ this.wfTemplateId = wfTemplateId;
+ }
+
+ public String getInputKey() {
+ return inputKey;
+ }
+
+ public void setInputKey(String inputKey) {
+ this.inputKey = inputKey;
+ }
+
+ public char[] getInputVal() {
+ return inputVal;
+ }
+
+ public void setInputVal(char[] inputVal) {
+ this.inputVal = inputVal;
+ }
+
+ public String getDataType() {
+ return dataType;
+ }
+
+ public void setDataType(String dataType) {
+ this.dataType = dataType;
+ }
+
+ public String getMetadata() {
+ return metadata;
+ }
+
+ public void setMetadata(String metadata) {
+ this.metadata = metadata;
+ }
+
+ public String getAppArgument() {
+ return appArgument;
+ }
+
+ public void setAppArgument(String appArgument) {
+ this.appArgument = appArgument;
+ }
+
+ public String getUserFriendlyDesc() {
+ return userFriendlyDesc;
+ }
+
+ public void setUserFriendlyDesc(String userFriendlyDesc) {
+ this.userFriendlyDesc = userFriendlyDesc;
+ }
+
+ public Workflow getWorkflow() {
+ return workflow;
+ }
+
+ public void setWorkflow(Workflow workflow) {
+ this.workflow = workflow;
+ }
+
+ public boolean isStandardInput() {
+ return standardInput;
+ }
+
+ public void setStandardInput(boolean standardInput) {
+ this.standardInput = standardInput;
+ }
+
+ public int getInputOrder() {
+ return inputOrder;
+ }
+
+ public void setInputOrder(int inputOrder) {
+ this.inputOrder = inputOrder;
+ }
+
+ public boolean isRequired() {
+ return isRequired;
+ }
+
+ public void setRequired(boolean isRequired) {
+ this.isRequired = isRequired;
+ }
+
+ public boolean isRequiredToCMD() {
+ return requiredToCMD;
+ }
+
+ public void setRequiredToCMD(boolean requiredToCMD) {
+ this.requiredToCMD = requiredToCMD;
+ }
+
+ public boolean isDataStaged() {
+ return dataStaged;
+ }
+
+ public void setDataStaged(boolean dataStaged) {
+ this.dataStaged = dataStaged;
+ }
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/ec8c6202/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/WorkflowInput_PK.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/WorkflowInput_PK.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/WorkflowInput_PK.java
new file mode 100644
index 0000000..d72799c
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/WorkflowInput_PK.java
@@ -0,0 +1,64 @@
+/*
+ *
+ * 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.registry.core.app.catalog.model;
+
+import java.io.Serializable;
+
+public class WorkflowInput_PK implements Serializable {
+ private String wfTemplateId;
+ private String inputKey;
+
+ public WorkflowInput_PK(String wfTemplateId, String inputKey) {
+ this.wfTemplateId = wfTemplateId;
+ this.inputKey = inputKey;
+ }
+
+ public WorkflowInput_PK() {
+ ;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ return false;
+ }
+
+ @Override
+ public int hashCode() {
+ return 1;
+ }
+
+ public String getWfTemplateId() {
+ return wfTemplateId;
+ }
+
+ public void setWfTemplateId(String wfTemplateId) {
+ this.wfTemplateId = wfTemplateId;
+ }
+
+ public String getInputKey() {
+ return inputKey;
+ }
+
+ public void setInputKey(String inputKey) {
+ this.inputKey = inputKey;
+ }
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/ec8c6202/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/WorkflowOutput.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/WorkflowOutput.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/WorkflowOutput.java
new file mode 100644
index 0000000..3080b0f
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/WorkflowOutput.java
@@ -0,0 +1,117 @@
+/*
+ *
+ * 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.registry.core.app.catalog.model;
+
+
+import javax.persistence.*;
+import java.io.Serializable;
+
+@Entity
+@Table(name = "WORKFLOW_OUTPUT")
+@IdClass(WorkflowOutput_PK.class)
+public class WorkflowOutput implements Serializable {
+ @Id
+ @Column(name = "WF_TEMPLATE_ID")
+ private String wfTemplateId;
+ @Id
+ @Column(name = "OUTPUT_KEY")
+ private String outputKey;
+ @Lob
+ @Column(name = "OUTPUT_VALUE")
+ private char[] outputVal;
+ @Column(name = "DATA_TYPE")
+ private String dataType;
+ @Column(name = "VALIDITY_TYPE")
+ private String validityType;
+ @Column(name = "DATA_MOVEMENT")
+ private boolean dataMovement;
+ @Column(name = "DATA_NAME_LOCATION")
+ private String dataNameLocation;
+
+ @ManyToOne(cascade= CascadeType.MERGE)
+ @JoinColumn(name = "WF_TEMPLATE_ID")
+ private Workflow workflow;
+
+ public String getWfTemplateId() {
+ return wfTemplateId;
+ }
+
+ public void setWfTemplateId(String wfTemplateId) {
+ this.wfTemplateId = wfTemplateId;
+ }
+
+ public String getDataType() {
+ return dataType;
+ }
+
+ public void setDataType(String dataType) {
+ this.dataType = dataType;
+ }
+
+ public Workflow getWorkflow() {
+ return workflow;
+ }
+
+ public void setWorkflow(Workflow workflow) {
+ this.workflow = workflow;
+ }
+
+ public String getOutputKey() {
+ return outputKey;
+ }
+
+ public void setOutputKey(String outputKey) {
+ this.outputKey = outputKey;
+ }
+
+ public char[] getOutputVal() {
+ return outputVal;
+ }
+
+ public void setOutputVal(char[] outputVal) {
+ this.outputVal = outputVal;
+ }
+
+ public String getValidityType() {
+ return validityType;
+ }
+
+ public void setValidityType(String validityType) {
+ this.validityType = validityType;
+ }
+
+ public boolean isDataMovement() {
+ return dataMovement;
+ }
+
+ public void setDataMovement(boolean dataMovement) {
+ this.dataMovement = dataMovement;
+ }
+
+ public String getDataNameLocation() {
+ return dataNameLocation;
+ }
+
+ public void setDataNameLocation(String dataNameLocation) {
+ this.dataNameLocation = dataNameLocation;
+ }
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/ec8c6202/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/WorkflowOutput_PK.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/WorkflowOutput_PK.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/WorkflowOutput_PK.java
new file mode 100644
index 0000000..183afe8
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/WorkflowOutput_PK.java
@@ -0,0 +1,64 @@
+/*
+ *
+ * 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.registry.core.app.catalog.model;
+
+import java.io.Serializable;
+
+public class WorkflowOutput_PK implements Serializable {
+ private String wfTemplateId;
+ private String outputKey;
+
+ public WorkflowOutput_PK(String wfTemplateId, String outputKey) {
+ this.wfTemplateId = wfTemplateId;
+ this.outputKey = outputKey;
+ }
+
+ public WorkflowOutput_PK() {
+ ;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ return false;
+ }
+
+ @Override
+ public int hashCode() {
+ return 1;
+ }
+
+ public String getWfTemplateId() {
+ return wfTemplateId;
+ }
+
+ public void setWfTemplateId(String wfTemplateId) {
+ this.wfTemplateId = wfTemplateId;
+ }
+
+ public String getOutputKey() {
+ return outputKey;
+ }
+
+ public void setOutputKey(String outputKey) {
+ this.outputKey = outputKey;
+ }
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/ec8c6202/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/AbstractResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/AbstractResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/AbstractResource.java
new file mode 100644
index 0000000..e1b042d
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/AbstractResource.java
@@ -0,0 +1,382 @@
+/*
+ *
+ * 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.aiaravata.application.catalog.data.resources;
+
+public abstract class AbstractResource implements Resource {
+ // table names
+ public static final String COMPUTE_RESOURCE = "ComputeResource";
+ public static final String HOST_ALIAS = "HostAlias";
+ public static final String HOST_IPADDRESS = "HostIPAddress";
+ public static final String GSISSH_SUBMISSION = "GSISSHSubmission";
+ public static final String GSISSH_EXPORT = "GSISSHExport";
+ public static final String PRE_JOBCOMMAND = "PreJobCommand";
+ public static final String POST_JOBCOMMAND = "PostJobCommand";
+ public static final String GLOBUS_SUBMISSION = "GlobusJobSubmission";
+ public static final String UNICORE_JOB_SUBMISSION = "UnicoreJobSubmission";
+ public static final String UNICORE_DATA_MOVEMENT = "UnicoreDataMovement";
+ public static final String GLOBUS_GK_ENDPOINT = "GlobusGKEndpoint";
+ public static final String SSH_SUBMISSION = "SSHSubmission";
+ public static final String SCP_DATA_MOVEMENT = "ScpDataMovement";
+ public static final String GRIDFTP_DATA_MOVEMENT = "GridftpDataMovement";
+ public static final String GRIDFTP_ENDPOINT = "GridftpEndpoint";
+ public static final String JOB_SUBMISSION_PROTOCOL = "JobSubmissionProtocol";
+ public static final String DATA_MOVEMENT_PROTOCOL = "DataMovementProtocol";
+ public static final String APPLICATION_MODULE = "ApplicationModule";
+ public static final String APPLICATION_DEPLOYMENT = "ApplicationDeployment";
+ public static final String LIBRARY_PREPAND_PATH = "LibraryPrepandPath";
+ public static final String LIBRARY_APEND_PATH = "LibraryApendPath";
+ public static final String APP_ENVIRONMENT = "AppEnvironment";
+ public static final String APPLICATION_INTERFACE = "ApplicationInterface";
+ public static final String APP_MODULE_MAPPING = "AppModuleMapping";
+ public static final String APPLICATION_INPUT = "ApplicationInput";
+ public static final String WORKFLOW_INPUT = "WorkflowInput";
+ public static final String APPLICATION_OUTPUT = "ApplicationOutput";
+ public static final String WORKFLOW_OUTPUT = "WorkflowOutput";
+ public static final String GATEWAY_PROFILE = "GatewayProfile";
+ public static final String COMPUTE_RESOURCE_PREFERENCE = "ComputeResourcePreference";
+ public static final String BATCH_QUEUE = "BatchQueue";
+ public static final String COMPUTE_RESOURCE_FILE_SYSTEM = "ComputeResourceFileSystem";
+ public static final String JOB_SUBMISSION_INTERFACE = "JobSubmissionInterface";
+ public static final String DATA_MOVEMENT_INTERFACE = "DataMovementInterface";
+ public static final String RESOURCE_JOB_MANAGER = "ResourceJobManager";
+ public static final String JOB_MANAGER_COMMAND = "JobManagerCommand";
+ public static final String LOCAL_SUBMISSION = "LocalSubmission";
+ public static final String LOCAL_DATA_MOVEMENT = "LocalDataMovement";
+ public static final String SSH_JOB_SUBMISSION = "SshJobSubmission";
+ public static final String EMAIL_PROPERTY = "EmailMonitorProperty";
+ public static final String CLOUD_JOB_SUBMISSION = "CloudJobSubmission";
+ public static final String MODULE_LOAD_CMD = "ModuleLoadCmd";
+ public static final String WORKFLOW = "Workflow";
+
+ public final class EmailMonitorPropertyConstants {
+ public static final String JOB_SUBMISSION_INTERFACE_ID = "jobSubmissionId";
+ }
+
+ // Compute Resource Table
+ public final class ComputeResourceConstants {
+ public static final String RESOURCE_DESCRIPTION = "resourceDescription";
+ public static final String RESOURCE_ID = "resourceId";
+ public static final String HOST_NAME = "hostName";
+ }
+
+ // Host Alias Table
+ public final class HostAliasConstants {
+ public static final String RESOURCE_ID = "resourceID";
+ public static final String ALIAS = "alias";
+ }
+
+ // Host IPAddress Table
+ public final class HostIPAddressConstants {
+ public static final String RESOURCE_ID = "resourceID";
+ public static final String IP_ADDRESS = "ipaddress";
+ }
+
+ // GSSISSH Submission Table
+ public final class GSISSHSubmissionConstants {
+ public static final String SUBMISSION_ID = "submissionID";
+ public static final String RESOURCE_JOB_MANAGER = "resourceJobManager";
+ public static final String SSH_PORT = "sshPort";
+ public static final String INSTALLED_PATH = "installedPath";
+ public static final String MONITOR_MODE = "monitorMode";
+ }
+
+ // GSSISSH Export Table
+ public final class GSISSHExportConstants {
+ public static final String SUBMISSION_ID = "submissionID";
+ public static final String EXPORT = "export";
+ }
+
+ // GSSISSH Pre Job Command Table
+ public final class PreJobCommandConstants {
+ public static final String DEPLOYMENT_ID = "deploymentId";
+ public static final String COMMAND = "command";
+ }
+
+ // GSSISSH Post Job Command Table
+ public final class PostJobCommandConstants {
+ public static final String DEPLOYMENT_ID = "deploymentId";
+ public static final String COMMAND = "command";
+ }
+
+ // GSSISSH Post Job Command Table
+ public final class GlobusJobSubmissionConstants {
+ public static final String SUBMISSION_ID = "submissionID";
+ public static final String RESOURCE_JOB_MANAGER = "resourceJobManager";
+ public static final String SECURITY_PROTOCAL = "securityProtocol";
+ public static final String GLOBUS_GATEKEEPER_EP = "globusEP";
+ }
+
+ // Unicore Post Job Command Table
+ public final class UnicoreJobSubmissionConstants {
+ public static final String SUBMISSION_ID = "submissionID";
+ public static final String SECURITY_PROTOCAL = "securityProtocol";
+ public static final String UNICORE_ENDPOINT_URL = "unicoreEndpointUrl";
+
+ }
+
+ public final class UnicoreDataMovementConstants {
+ public static final String DATAMOVEMENT_ID = "dataMovementId";
+ public static final String SECURITY_PROTOCAL = "securityProtocol";
+ public static final String UNICORE_ENDPOINT_URL = "unicoreEndpointUrl";
+ }
+
+
+ public final class GlobusEPConstants{
+ public static final String SUBMISSION_ID = "submissionID";
+ public static final String ENDPOINT = "endpoint";
+ }
+
+ // GSSISSH Post Job Command Table
+ public final class SSHSubmissionConstants {
+ public static final String SUBMISSION_ID = "submissionID";
+ public static final String RESOURCE_JOB_MANAGER = "resourceJobManager";
+ public static final String SSH_PORT = "sshPort";
+ }
+
+ // Scp Data Movement Table
+ public final class ScpDataMovementConstants {
+ public static final String QUEUE_DESCRIPTION = "queueDescription";
+ public static final String DATA_MOVEMENT_INTERFACE_ID = "dataMovementInterfaceId";
+ public static final String SECURITY_PROTOCOL = "securityProtocol";
+ public static final String ALTERNATIVE_SCP_HOSTNAME = "alternativeScpHostname";
+ public static final String SSH_PORT = "sshPort";
+ }
+
+ public final class GridFTPDataMovementConstants {
+ public static final String DATA_MOVE_ID = "dataMoveID";
+ public static final String SECURITY_PROTOCOL = "securityProtocol";
+ public static final String GRID_FTP_EP = "gridFTPEP";
+ }
+
+ public final class GridFTPDMEPConstants{
+ public static final String DATA_MOVE_ID = "dataMoveId";
+ public static final String ENDPOINT = "endpoint";
+ }
+
+ public final class JobSubmissionProtocolConstants {
+ public static final String RESOURCE_ID = "resourceID";
+ public static final String SUBMISSION_ID = "submissionID";
+ public static final String JOB_TYPE = "jobType";
+ }
+
+ public final class DataMoveProtocolConstants {
+ public static final String RESOURCE_ID = "resourceID";
+ public static final String DATA_MOVE_ID = "dataMoveID";
+ public static final String DATA_MOVE_TYPE = "dataMoveType";
+ }
+
+ public final class ApplicationModuleConstants {
+ public static final String MODULE_ID = "moduleID";
+ public static final String GATEWAY_ID = "gatewayId";
+ public static final String MODULE_NAME = "moduleName";
+ public static final String MODULE_VERSION = "moduleVersion";
+ public static final String MODULE_DESC = "moduleDesc";
+ }
+
+ public final class ApplicationDeploymentConstants {
+ public static final String APP_MODULE_ID = "appModuleID";
+ public static final String DEPLOYMENT_ID = "deploymentID";
+ public static final String COMPUTE_HOST_ID = "hostID";
+ public static final String GATEWAY_ID = "gatewayId";
+ public static final String EXECUTABLE_PATH = "executablePath";
+ public static final String APPLICATION_DESC = "applicationDesc";
+ public static final String ENV_MODULE_LOAD_CMD = "envModuleLoaString";
+ public static final String PARALLELISM = "parallelism";
+ }
+
+ public final class LibraryPrepandPathConstants {
+ public static final String DEPLOYMENT_ID = "deploymentID";
+ public static final String NAME = "name";
+ public static final String VALUE = "value";
+ }
+
+ public final class LibraryApendPathConstants {
+ public static final String DEPLOYMENT_ID = "deploymentID";
+ public static final String NAME = "name";
+ public static final String VALUE = "value";
+ }
+
+ public final class AppEnvironmentConstants {
+ public static final String DEPLOYMENT_ID = "deploymentID";
+ public static final String NAME = "name";
+ public static final String VALUE = "value";
+ }
+
+ public final class ApplicationInterfaceConstants {
+ public static final String INTERFACE_ID = "interfaceID";
+ public static final String APPLICATION_NAME = "appName";
+ public static final String GATEWAY_ID = "gatewayId";
+ }
+
+ public final class AppModuleMappingConstants {
+ public static final String INTERFACE_ID = "interfaceID";
+ public static final String MODULE_ID = "moduleID";
+ }
+
+ public final class AppInputConstants {
+ public static final String INTERFACE_ID = "interfaceID";
+ public static final String INPUT_KEY = "inputKey";
+ public static final String INPUT_VALUE = "inputVal";
+ public static final String DATA_TYPE = "dataType";
+ public static final String METADATA = "metadata";
+ public static final String APP_ARGUMENT = "appArgument";
+ public static final String USER_FRIENDLY_DESC = "userFriendlyDesc";
+ public static final String STANDARD_INPUT = "standardInput";
+ }
+
+ public final class AppOutputConstants {
+ public static final String INTERFACE_ID = "interfaceID";
+ public static final String OUTPUT_KEY = "outputKey";
+ public static final String OUTPUT_VALUE = "outputVal";
+ public static final String DATA_TYPE = "dataType";
+ }
+
+ public final class WFInputConstants {
+ public static final String WF_TEMPLATE_ID = "wfTemplateId";
+ public static final String INPUT_KEY = "inputKey";
+ public static final String INPUT_VALUE = "inputVal";
+ public static final String DATA_TYPE = "dataType";
+ public static final String METADATA = "metadata";
+ public static final String APP_ARGUMENT = "appArgument";
+ public static final String USER_FRIENDLY_DESC = "userFriendlyDesc";
+ public static final String STANDARD_INPUT = "standardInput";
+ }
+
+ public final class WFOutputConstants {
+ public static final String WF_TEMPLATE_ID = "wfTemplateId";
+ public static final String OUTPUT_KEY = "outputKey";
+ public static final String OUTPUT_VALUE = "outputVal";
+ public static final String DATA_TYPE = "dataType";
+ }
+
+ public final class GatewayProfileConstants {
+ public static final String GATEWAY_ID = "gatewayID";
+ public static final String GATEWAY_DESC = "gatewayDesc";
+ }
+
+ public final class ComputeResourcePreferenceConstants {
+ public static final String GATEWAY_ID = "gatewayId";
+ public static final String RESOURCE_ID = "resourceId";
+ public static final String OVERRIDE_BY_AIRAVATA = "overrideByAiravata";
+ public static final String PREFERED_JOB_SUB_PROTOCOL = "preferedJobSubmissionProtocol";
+ public static final String PREFERED_DATA_MOVE_PROTOCOL = "preferedDataMoveProtocol";
+ public static final String PREFERED_BATCH_QUEUE = "batchQueue";
+ public static final String SCRATCH_LOCATION = "scratchLocation";
+ public static final String ALLOCATION_PROJECT_NUMBER = "projectNumber";
+ }
+
+ // Batch Queue Table
+ public final class BatchQueueConstants {
+ public static final String COMPUTE_RESOURCE_ID = "computeResourceId";
+ public static final String MAX_RUNTIME = "maxRuntime";
+ public static final String MAX_JOB_IN_QUEUE = "maxJobInQueue";
+ public static final String QUEUE_DESCRIPTION = "queueDescription";
+ public static final String QUEUE_NAME = "queueName";
+ public static final String MAX_PROCESSORS = "maxProcessors";
+ public static final String MAX_NODES = "maxNodes";
+ }
+
+ // Compute Resource File System Table
+ public final class ComputeResourceFileSystemConstants {
+ public static final String COMPUTE_RESOURCE_ID = "computeResourceId";
+ public static final String PATH = "path";
+ public static final String FILE_SYSTEM = "fileSystem";
+ }
+
+ // Job Submission Interface Table
+ public final class JobSubmissionInterfaceConstants {
+ public static final String JOB_SUBMISSION_INTERFACE_ID = "jobSubmissionInterfaceId";
+ public static final String COMPUTE_RESOURCE_ID = "computeResourceId";
+ public static final String JOB_SUBMISSION_PROTOCOL = "jobSubmissionProtocol";
+ public static final String PRIORITY_ORDER = "priorityOrder";
+ }
+
+ // Data Movement Interface Table
+ public final class DataMovementInterfaceConstants {
+ public static final String COMPUTE_RESOURCE_ID = "computeResourceId";
+ public static final String DATA_MOVEMENT_PROTOCOL = "dataMovementProtocol";
+ public static final String DATA_MOVEMENT_INTERFACE_ID = "dataMovementInterfaceId";
+ public static final String PRIORITY_ORDER = "priorityOrder";
+ }
+
+ // Resource Job Manager Table
+ public final class ResourceJobManagerConstants {
+ public static final String RESOURCE_JOB_MANAGER_ID = "resourceJobManagerId";
+ public static final String PUSH_MONITORING_ENDPOINT = "pushMonitoringEndpoint";
+ public static final String JOB_MANAGER_BIN_PATH = "jobManagerBinPath";
+ public static final String RESOURCE_JOB_MANAGER_TYPE = "resourceJobManagerType";
+ }
+
+ // Job Manager Command Table
+ public final class JobManagerCommandConstants {
+ public static final String RESOURCE_JOB_MANAGER_ID = "resourceJobManagerId";
+ public static final String COMMAND_TYPE = "commandType";
+ public static final String COMMAND = "command";
+ }
+
+ // Gridftp Data Movement Table
+ public final class GridftpDataMovementConstants {
+ public static final String DATA_MOVEMENT_INTERFACE_ID = "dataMovementInterfaceId";
+ public static final String SECURITY_PROTOCOL = "securityProtocol";
+ }
+
+ // Gridftp Endpoint Table
+ public final class GridftpEndpointConstants {
+ public static final String ENDPOINT = "endpoint";
+ public static final String DATA_MOVEMENT_INTERFACE_ID = "dataMovementInterfaceId";
+ }
+
+ // Local Submission Table
+ public final class LocalSubmissionConstants {
+ public static final String RESOURCE_JOB_MANAGER_ID = "resourceJobManagerId";
+ public static final String JOB_SUBMISSION_INTERFACE_ID = "jobSubmissionInterfaceId";
+ }
+
+ // Local Data Movement Table
+ public final class LocalDataMovementConstants {
+ public static final String DATA_MOVEMENT_INTERFACE_ID = "dataMovementInterfaceId";
+ }
+
+ // Ssh Job Submission Table
+ public final class SshJobSubmissionConstants {
+ public static final String RESOURCE_JOB_MANAGER_ID = "resourceJobManagerId";
+ public static final String JOB_SUBMISSION_INTERFACE_ID = "jobSubmissionInterfaceId";
+ public static final String ALTERNATIVE_SSH_HOSTNAME = "alternativeSshHostname";
+ public static final String SECURITY_PROTOCOL = "securityProtocol";
+ public static final String SSH_PORT = "sshPort";
+ }
+
+ // Module Load Cmd Table
+ public final class ModuleLoadCmdConstants {
+ public static final String CMD = "cmd";
+ public static final String APP_DEPLOYMENT_ID = "appDeploymentId";
+ }
+
+ // Workflow Table
+ public final class WorkflowConstants {
+ public static final String WF_NAME = "wfName";
+ public static final String CREATED_USER = "createdUser";
+ public static final String GRAPH = "graph";
+ public static final String WF_TEMPLATE_ID = "wfTemplateId";
+ public static final String GATEWAY_ID = "gatewayId";
+ }
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/ec8c6202/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/AppCatAbstractResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/AppCatAbstractResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/AppCatAbstractResource.java
new file mode 100644
index 0000000..7db1eb7
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/AppCatAbstractResource.java
@@ -0,0 +1,382 @@
+/*
+ *
+ * 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.registry.core.app.catalog.resources;
+
+public abstract class AppCatAbstractResource implements AppCatalogResource {
+ // table names
+ public static final String COMPUTE_RESOURCE = "ComputeResource";
+ public static final String HOST_ALIAS = "HostAlias";
+ public static final String HOST_IPADDRESS = "HostIPAddress";
+ public static final String GSISSH_SUBMISSION = "GSISSHSubmission";
+ public static final String GSISSH_EXPORT = "GSISSHExport";
+ public static final String PRE_JOBCOMMAND = "PreJobCommand";
+ public static final String POST_JOBCOMMAND = "PostJobCommand";
+ public static final String GLOBUS_SUBMISSION = "GlobusJobSubmission";
+ public static final String UNICORE_JOB_SUBMISSION = "UnicoreJobSubmission";
+ public static final String UNICORE_DATA_MOVEMENT = "UnicoreDataMovement";
+ public static final String GLOBUS_GK_ENDPOINT = "GlobusGKEndpoint";
+ public static final String SSH_SUBMISSION = "SSHSubmission";
+ public static final String SCP_DATA_MOVEMENT = "ScpDataMovement";
+ public static final String GRIDFTP_DATA_MOVEMENT = "GridftpDataMovement";
+ public static final String GRIDFTP_ENDPOINT = "GridftpEndpoint";
+ public static final String JOB_SUBMISSION_PROTOCOL = "JobSubmissionProtocol";
+ public static final String DATA_MOVEMENT_PROTOCOL = "DataMovementProtocol";
+ public static final String APPLICATION_MODULE = "ApplicationModule";
+ public static final String APPLICATION_DEPLOYMENT = "ApplicationDeployment";
+ public static final String LIBRARY_PREPAND_PATH = "LibraryPrepandPath";
+ public static final String LIBRARY_APEND_PATH = "LibraryApendPath";
+ public static final String APP_ENVIRONMENT = "AppEnvironment";
+ public static final String APPLICATION_INTERFACE = "ApplicationInterface";
+ public static final String APP_MODULE_MAPPING = "AppModuleMapping";
+ public static final String APPLICATION_INPUT = "ApplicationInput";
+ public static final String WORKFLOW_INPUT = "WorkflowInput";
+ public static final String APPLICATION_OUTPUT = "ApplicationOutput";
+ public static final String WORKFLOW_OUTPUT = "WorkflowOutput";
+ public static final String GATEWAY_PROFILE = "GatewayProfile";
+ public static final String COMPUTE_RESOURCE_PREFERENCE = "ComputeResourcePreference";
+ public static final String BATCH_QUEUE = "BatchQueue";
+ public static final String COMPUTE_RESOURCE_FILE_SYSTEM = "ComputeResourceFileSystem";
+ public static final String JOB_SUBMISSION_INTERFACE = "JobSubmissionInterface";
+ public static final String DATA_MOVEMENT_INTERFACE = "DataMovementInterface";
+ public static final String RESOURCE_JOB_MANAGER = "ResourceJobManager";
+ public static final String JOB_MANAGER_COMMAND = "JobManagerCommand";
+ public static final String LOCAL_SUBMISSION = "LocalSubmission";
+ public static final String LOCAL_DATA_MOVEMENT = "LocalDataMovement";
+ public static final String SSH_JOB_SUBMISSION = "SshJobSubmission";
+ public static final String EMAIL_PROPERTY = "EmailMonitorProperty";
+ public static final String CLOUD_JOB_SUBMISSION = "CloudJobSubmission";
+ public static final String MODULE_LOAD_CMD = "ModuleLoadCmd";
+ public static final String WORKFLOW = "Workflow";
+
+ public final class EmailMonitorPropertyConstants {
+ public static final String JOB_SUBMISSION_INTERFACE_ID = "jobSubmissionId";
+ }
+
+ // Compute Resource Table
+ public final class ComputeResourceConstants {
+ public static final String RESOURCE_DESCRIPTION = "resourceDescription";
+ public static final String RESOURCE_ID = "resourceId";
+ public static final String HOST_NAME = "hostName";
+ }
+
+ // Host Alias Table
+ public final class HostAliasConstants {
+ public static final String RESOURCE_ID = "resourceID";
+ public static final String ALIAS = "alias";
+ }
+
+ // Host IPAddress Table
+ public final class HostIPAddressConstants {
+ public static final String RESOURCE_ID = "resourceID";
+ public static final String IP_ADDRESS = "ipaddress";
+ }
+
+ // GSSISSH Submission Table
+ public final class GSISSHSubmissionConstants {
+ public static final String SUBMISSION_ID = "submissionID";
+ public static final String RESOURCE_JOB_MANAGER = "resourceJobManager";
+ public static final String SSH_PORT = "sshPort";
+ public static final String INSTALLED_PATH = "installedPath";
+ public static final String MONITOR_MODE = "monitorMode";
+ }
+
+ // GSSISSH Export Table
+ public final class GSISSHExportConstants {
+ public static final String SUBMISSION_ID = "submissionID";
+ public static final String EXPORT = "export";
+ }
+
+ // GSSISSH Pre Job Command Table
+ public final class PreJobCommandConstants {
+ public static final String DEPLOYMENT_ID = "deploymentId";
+ public static final String COMMAND = "command";
+ }
+
+ // GSSISSH Post Job Command Table
+ public final class PostJobCommandConstants {
+ public static final String DEPLOYMENT_ID = "deploymentId";
+ public static final String COMMAND = "command";
+ }
+
+ // GSSISSH Post Job Command Table
+ public final class GlobusJobSubmissionConstants {
+ public static final String SUBMISSION_ID = "submissionID";
+ public static final String RESOURCE_JOB_MANAGER = "resourceJobManager";
+ public static final String SECURITY_PROTOCAL = "securityProtocol";
+ public static final String GLOBUS_GATEKEEPER_EP = "globusEP";
+ }
+
+ // Unicore Post Job Command Table
+ public final class UnicoreJobSubmissionConstants {
+ public static final String SUBMISSION_ID = "submissionID";
+ public static final String SECURITY_PROTOCAL = "securityProtocol";
+ public static final String UNICORE_ENDPOINT_URL = "unicoreEndpointUrl";
+
+ }
+
+ public final class UnicoreDataMovementConstants {
+ public static final String DATAMOVEMENT_ID = "dataMovementId";
+ public static final String SECURITY_PROTOCAL = "securityProtocol";
+ public static final String UNICORE_ENDPOINT_URL = "unicoreEndpointUrl";
+ }
+
+
+ public final class GlobusEPConstants{
+ public static final String SUBMISSION_ID = "submissionID";
+ public static final String ENDPOINT = "endpoint";
+ }
+
+ // GSSISSH Post Job Command Table
+ public final class SSHSubmissionConstants {
+ public static final String SUBMISSION_ID = "submissionID";
+ public static final String RESOURCE_JOB_MANAGER = "resourceJobManager";
+ public static final String SSH_PORT = "sshPort";
+ }
+
+ // Scp Data Movement Table
+ public final class ScpDataMovementConstants {
+ public static final String QUEUE_DESCRIPTION = "queueDescription";
+ public static final String DATA_MOVEMENT_INTERFACE_ID = "dataMovementInterfaceId";
+ public static final String SECURITY_PROTOCOL = "securityProtocol";
+ public static final String ALTERNATIVE_SCP_HOSTNAME = "alternativeScpHostname";
+ public static final String SSH_PORT = "sshPort";
+ }
+
+ public final class GridFTPDataMovementConstants {
+ public static final String DATA_MOVE_ID = "dataMoveID";
+ public static final String SECURITY_PROTOCOL = "securityProtocol";
+ public static final String GRID_FTP_EP = "gridFTPEP";
+ }
+
+ public final class GridFTPDMEPConstants{
+ public static final String DATA_MOVE_ID = "dataMoveId";
+ public static final String ENDPOINT = "endpoint";
+ }
+
+ public final class JobSubmissionProtocolConstants {
+ public static final String RESOURCE_ID = "resourceID";
+ public static final String SUBMISSION_ID = "submissionID";
+ public static final String JOB_TYPE = "jobType";
+ }
+
+ public final class DataMoveProtocolConstants {
+ public static final String RESOURCE_ID = "resourceID";
+ public static final String DATA_MOVE_ID = "dataMoveID";
+ public static final String DATA_MOVE_TYPE = "dataMoveType";
+ }
+
+ public final class ApplicationModuleConstants {
+ public static final String MODULE_ID = "moduleID";
+ public static final String GATEWAY_ID = "gatewayId";
+ public static final String MODULE_NAME = "moduleName";
+ public static final String MODULE_VERSION = "moduleVersion";
+ public static final String MODULE_DESC = "moduleDesc";
+ }
+
+ public final class ApplicationDeploymentConstants {
+ public static final String APP_MODULE_ID = "appModuleID";
+ public static final String DEPLOYMENT_ID = "deploymentID";
+ public static final String COMPUTE_HOST_ID = "hostID";
+ public static final String GATEWAY_ID = "gatewayId";
+ public static final String EXECUTABLE_PATH = "executablePath";
+ public static final String APPLICATION_DESC = "applicationDesc";
+ public static final String ENV_MODULE_LOAD_CMD = "envModuleLoaString";
+ public static final String PARALLELISM = "parallelism";
+ }
+
+ public final class LibraryPrepandPathConstants {
+ public static final String DEPLOYMENT_ID = "deploymentID";
+ public static final String NAME = "name";
+ public static final String VALUE = "value";
+ }
+
+ public final class LibraryApendPathConstants {
+ public static final String DEPLOYMENT_ID = "deploymentID";
+ public static final String NAME = "name";
+ public static final String VALUE = "value";
+ }
+
+ public final class AppEnvironmentConstants {
+ public static final String DEPLOYMENT_ID = "deploymentID";
+ public static final String NAME = "name";
+ public static final String VALUE = "value";
+ }
+
+ public final class ApplicationInterfaceConstants {
+ public static final String INTERFACE_ID = "interfaceID";
+ public static final String APPLICATION_NAME = "appName";
+ public static final String GATEWAY_ID = "gatewayId";
+ }
+
+ public final class AppModuleMappingConstants {
+ public static final String INTERFACE_ID = "interfaceID";
+ public static final String MODULE_ID = "moduleID";
+ }
+
+ public final class AppInputConstants {
+ public static final String INTERFACE_ID = "interfaceID";
+ public static final String INPUT_KEY = "inputKey";
+ public static final String INPUT_VALUE = "inputVal";
+ public static final String DATA_TYPE = "dataType";
+ public static final String METADATA = "metadata";
+ public static final String APP_ARGUMENT = "appArgument";
+ public static final String USER_FRIENDLY_DESC = "userFriendlyDesc";
+ public static final String STANDARD_INPUT = "standardInput";
+ }
+
+ public final class AppOutputConstants {
+ public static final String INTERFACE_ID = "interfaceID";
+ public static final String OUTPUT_KEY = "outputKey";
+ public static final String OUTPUT_VALUE = "outputVal";
+ public static final String DATA_TYPE = "dataType";
+ }
+
+ public final class WFInputConstants {
+ public static final String WF_TEMPLATE_ID = "wfTemplateId";
+ public static final String INPUT_KEY = "inputKey";
+ public static final String INPUT_VALUE = "inputVal";
+ public static final String DATA_TYPE = "dataType";
+ public static final String METADATA = "metadata";
+ public static final String APP_ARGUMENT = "appArgument";
+ public static final String USER_FRIENDLY_DESC = "userFriendlyDesc";
+ public static final String STANDARD_INPUT = "standardInput";
+ }
+
+ public final class WFOutputConstants {
+ public static final String WF_TEMPLATE_ID = "wfTemplateId";
+ public static final String OUTPUT_KEY = "outputKey";
+ public static final String OUTPUT_VALUE = "outputVal";
+ public static final String DATA_TYPE = "dataType";
+ }
+
+ public final class GatewayProfileConstants {
+ public static final String GATEWAY_ID = "gatewayID";
+ public static final String GATEWAY_DESC = "gatewayDesc";
+ }
+
+ public final class ComputeResourcePreferenceConstants {
+ public static final String GATEWAY_ID = "gatewayId";
+ public static final String RESOURCE_ID = "resourceId";
+ public static final String OVERRIDE_BY_AIRAVATA = "overrideByAiravata";
+ public static final String PREFERED_JOB_SUB_PROTOCOL = "preferedJobSubmissionProtocol";
+ public static final String PREFERED_DATA_MOVE_PROTOCOL = "preferedDataMoveProtocol";
+ public static final String PREFERED_BATCH_QUEUE = "batchQueue";
+ public static final String SCRATCH_LOCATION = "scratchLocation";
+ public static final String ALLOCATION_PROJECT_NUMBER = "projectNumber";
+ }
+
+ // Batch Queue Table
+ public final class BatchQueueConstants {
+ public static final String COMPUTE_RESOURCE_ID = "computeResourceId";
+ public static final String MAX_RUNTIME = "maxRuntime";
+ public static final String MAX_JOB_IN_QUEUE = "maxJobInQueue";
+ public static final String QUEUE_DESCRIPTION = "queueDescription";
+ public static final String QUEUE_NAME = "queueName";
+ public static final String MAX_PROCESSORS = "maxProcessors";
+ public static final String MAX_NODES = "maxNodes";
+ }
+
+ // Compute Resource File System Table
+ public final class ComputeResourceFileSystemConstants {
+ public static final String COMPUTE_RESOURCE_ID = "computeResourceId";
+ public static final String PATH = "path";
+ public static final String FILE_SYSTEM = "fileSystem";
+ }
+
+ // Job Submission Interface Table
+ public final class JobSubmissionInterfaceConstants {
+ public static final String JOB_SUBMISSION_INTERFACE_ID = "jobSubmissionInterfaceId";
+ public static final String COMPUTE_RESOURCE_ID = "computeResourceId";
+ public static final String JOB_SUBMISSION_PROTOCOL = "jobSubmissionProtocol";
+ public static final String PRIORITY_ORDER = "priorityOrder";
+ }
+
+ // Data Movement Interface Table
+ public final class DataMovementInterfaceConstants {
+ public static final String COMPUTE_RESOURCE_ID = "computeResourceId";
+ public static final String DATA_MOVEMENT_PROTOCOL = "dataMovementProtocol";
+ public static final String DATA_MOVEMENT_INTERFACE_ID = "dataMovementInterfaceId";
+ public static final String PRIORITY_ORDER = "priorityOrder";
+ }
+
+ // Resource Job Manager Table
+ public final class ResourceJobManagerConstants {
+ public static final String RESOURCE_JOB_MANAGER_ID = "resourceJobManagerId";
+ public static final String PUSH_MONITORING_ENDPOINT = "pushMonitoringEndpoint";
+ public static final String JOB_MANAGER_BIN_PATH = "jobManagerBinPath";
+ public static final String RESOURCE_JOB_MANAGER_TYPE = "resourceJobManagerType";
+ }
+
+ // Job Manager Command Table
+ public final class JobManagerCommandConstants {
+ public static final String RESOURCE_JOB_MANAGER_ID = "resourceJobManagerId";
+ public static final String COMMAND_TYPE = "commandType";
+ public static final String COMMAND = "command";
+ }
+
+ // Gridftp Data Movement Table
+ public final class GridftpDataMovementConstants {
+ public static final String DATA_MOVEMENT_INTERFACE_ID = "dataMovementInterfaceId";
+ public static final String SECURITY_PROTOCOL = "securityProtocol";
+ }
+
+ // Gridftp Endpoint Table
+ public final class GridftpEndpointConstants {
+ public static final String ENDPOINT = "endpoint";
+ public static final String DATA_MOVEMENT_INTERFACE_ID = "dataMovementInterfaceId";
+ }
+
+ // Local Submission Table
+ public final class LocalSubmissionConstants {
+ public static final String RESOURCE_JOB_MANAGER_ID = "resourceJobManagerId";
+ public static final String JOB_SUBMISSION_INTERFACE_ID = "jobSubmissionInterfaceId";
+ }
+
+ // Local Data Movement Table
+ public final class LocalDataMovementConstants {
+ public static final String DATA_MOVEMENT_INTERFACE_ID = "dataMovementInterfaceId";
+ }
+
+ // Ssh Job Submission Table
+ public final class SshJobSubmissionConstants {
+ public static final String RESOURCE_JOB_MANAGER_ID = "resourceJobManagerId";
+ public static final String JOB_SUBMISSION_INTERFACE_ID = "jobSubmissionInterfaceId";
+ public static final String ALTERNATIVE_SSH_HOSTNAME = "alternativeSshHostname";
+ public static final String SECURITY_PROTOCOL = "securityProtocol";
+ public static final String SSH_PORT = "sshPort";
+ }
+
+ // Module Load Cmd Table
+ public final class ModuleLoadCmdConstants {
+ public static final String CMD = "cmd";
+ public static final String APP_DEPLOYMENT_ID = "appDeploymentId";
+ }
+
+ // Workflow Table
+ public final class WorkflowConstants {
+ public static final String WF_NAME = "wfName";
+ public static final String CREATED_USER = "createdUser";
+ public static final String GRAPH = "graph";
+ public static final String WF_TEMPLATE_ID = "wfTemplateId";
+ public static final String GATEWAY_ID = "gatewayId";
+ }
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/ec8c6202/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/AppCatalogResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/AppCatalogResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/AppCatalogResource.java
new file mode 100644
index 0000000..7492d9a
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/AppCatalogResource.java
@@ -0,0 +1,90 @@
+/*
+*
+* 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.registry.core.app.catalog.resources;
+
+
+import org.apache.airavata.registry.cpi.AppCatalogException;
+
+import java.util.List;
+
+public interface AppCatalogResource {
+
+ /**
+ * This method will remove the given resource from the database
+ *
+ * @param identifier identifier that can uniquely identify a single instance of the resource
+ */
+ void remove(Object identifier) throws AppCatalogException;
+
+ /**
+ * This method will return the given resource from the database
+ *
+ * @param identifier identifier that can uniquely identify a single instance of the resource
+ * @return associate resource
+ */
+ AppCatalogResource get(Object identifier) throws AppCatalogException;
+
+ /**
+ * This method will list all the resources according to the filtering criteria
+ * @param fieldName field name
+ * @param value value of the field
+ * @return list of resources
+ */
+ List<AppCatalogResource> get(String fieldName, Object value) throws AppCatalogException;
+
+ /**
+ *
+ * @return
+ * @throws AppCatalogException
+ */
+ List<AppCatalogResource> getAll() throws AppCatalogException;
+
+ /**
+ *
+ * @return
+ * @throws AppCatalogException
+ */
+ List<String> getAllIds() throws AppCatalogException;
+
+ /** This method will return list of resource ids according to given criteria
+ * @param fieldName field name
+ * @param value value of the field
+ * @return list of resource Ids
+ * @throws AppCatalogException
+ */
+ List<String> getIds(String fieldName, Object value) throws AppCatalogException;
+
+ /**
+ * This method will save the resource to the database.
+ */
+ void save() throws AppCatalogException;
+
+ /**
+ * This method will check whether an entry from the given resource and resource name
+ * exists in the database
+ *
+ * @param identifier identifier that can uniquely identify a single instance of the resource
+ * @return whether the entry exists in the database or not
+ */
+ boolean isExists(Object identifier) throws AppCatalogException;
+
+
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/ec8c6202/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/AppDeploymentAppCatalogResourceAppCat.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/AppDeploymentAppCatalogResourceAppCat.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/AppDeploymentAppCatalogResourceAppCat.java
new file mode 100644
index 0000000..50136de
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/AppDeploymentAppCatalogResourceAppCat.java
@@ -0,0 +1,446 @@
+/*
+ *
+ * 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.registry.core.app.catalog.resources;
+
+import org.apache.airavata.common.exception.ApplicationSettingsException;
+import org.apache.airavata.common.utils.AiravataUtils;
+import org.apache.airavata.registry.core.app.catalog.model.ApplicationDeployment;
+import org.apache.airavata.registry.core.app.catalog.model.ApplicationModule;
+import org.apache.airavata.registry.core.app.catalog.model.ComputeResource;
+import org.apache.airavata.registry.core.app.catalog.util.AppCatalogJPAUtils;
+import org.apache.airavata.registry.core.app.catalog.util.AppCatalogQueryGenerator;
+import org.apache.airavata.registry.core.app.catalog.util.AppCatalogResourceType;
+import org.apache.airavata.registry.cpi.AppCatalogException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.persistence.EntityManager;
+import javax.persistence.Query;
+import java.sql.Timestamp;
+import java.util.ArrayList;
+import java.util.List;
+
+public class AppDeploymentAppCatalogResourceAppCat extends AppCatAbstractResource {
+ private final static Logger logger = LoggerFactory.getLogger(AppDeploymentAppCatalogResourceAppCat.class);
+ private String deploymentId;
+ private String appModuleId;
+ private String hostId;
+ private String executablePath;
+ private String parallelism;
+ private String appDes;
+ private String gatewayId;
+ private ComputeResourceAppCatalogResourceAppCat hostResource;
+ private AppModuleAppCatalogResourceAppCat moduleResource;
+ private Timestamp createdTime;
+ private Timestamp updatedTime;
+
+ public String getGatewayId() {
+ return gatewayId;
+ }
+
+ public void setGatewayId(String gatewayId) {
+ this.gatewayId = gatewayId;
+ }
+
+ public Timestamp getCreatedTime() {
+ return createdTime;
+ }
+
+ public void setCreatedTime(Timestamp createdTime) {
+ this.createdTime = createdTime;
+ }
+
+ public Timestamp getUpdatedTime() {
+ return updatedTime;
+ }
+
+ public void setUpdatedTime(Timestamp updatedTime) {
+ this.updatedTime = updatedTime;
+ }
+
+ public String getDeploymentId() {
+ return deploymentId;
+ }
+
+ public void setDeploymentId(String deploymentId) {
+ this.deploymentId = deploymentId;
+ }
+
+ public String getAppModuleId() {
+ return appModuleId;
+ }
+
+ public void setAppModuleId(String appModuleId) {
+ this.appModuleId = appModuleId;
+ }
+
+ public String getHostId() {
+ return hostId;
+ }
+
+ public void setHostId(String hostId) {
+ this.hostId = hostId;
+ }
+
+ public String getExecutablePath() {
+ return executablePath;
+ }
+
+ public void setExecutablePath(String executablePath) {
+ this.executablePath = executablePath;
+ }
+
+ public String getAppDes() {
+ return appDes;
+ }
+
+ public void setAppDes(String appDes) {
+ this.appDes = appDes;
+ }
+
+ public ComputeResourceAppCatalogResourceAppCat getHostResource() {
+ return hostResource;
+ }
+
+ public void setHostResource(ComputeResourceAppCatalogResourceAppCat hostResource) {
+ this.hostResource = hostResource;
+ }
+
+ public AppModuleAppCatalogResourceAppCat getModuleResource() {
+ return moduleResource;
+ }
+
+ public void setModuleResource(AppModuleAppCatalogResourceAppCat moduleResource) {
+ this.moduleResource = moduleResource;
+ }
+
+ @Override
+ public void remove(Object identifier) throws AppCatalogException {
+ EntityManager em = null;
+ try {
+ em = AppCatalogJPAUtils.getEntityManager();
+ em.getTransaction().begin();
+ AppCatalogQueryGenerator generator= new AppCatalogQueryGenerator(APPLICATION_DEPLOYMENT);
+ generator.setParameter(ApplicationDeploymentConstants.DEPLOYMENT_ID, identifier);
+ Query q = generator.deleteQuery(em);
+ q.executeUpdate();
+ em.getTransaction().commit();
+ em.close();
+ } catch (ApplicationSettingsException e) {
+ logger.error(e.getMessage(), e);
+ throw new AppCatalogException(e);
+ } finally {
+ if (em != null && em.isOpen()) {
+ if (em.getTransaction().isActive()){
+ em.getTransaction().rollback();
+ }
+ em.close();
+ }
+ }
+ }
+
+ @Override
+ public AppCatalogResource get(Object identifier) throws AppCatalogException {
+ EntityManager em = null;
+ try {
+ em = AppCatalogJPAUtils.getEntityManager();
+ em.getTransaction().begin();
+ AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(APPLICATION_DEPLOYMENT);
+ generator.setParameter(ApplicationDeploymentConstants.DEPLOYMENT_ID, identifier);
+ Query q = generator.selectQuery(em);
+ ApplicationDeployment deployment = (ApplicationDeployment) q.getSingleResult();
+ AppDeploymentAppCatalogResourceAppCat deploymentResource =
+ (AppDeploymentAppCatalogResourceAppCat) AppCatalogJPAUtils.getResource(AppCatalogResourceType.APPLICATION_DEPLOYMENT, deployment);
+ em.getTransaction().commit();
+ em.close();
+ return deploymentResource;
+ } catch (ApplicationSettingsException e) {
+ logger.error(e.getMessage(), e);
+ throw new AppCatalogException(e);
+ } finally {
+ if (em != null && em.isOpen()) {
+ if (em.getTransaction().isActive()) {
+ em.getTransaction().rollback();
+ }
+ em.close();
+ }
+ }
+ }
+
+ @Override
+ public List<AppCatalogResource> get(String fieldName, Object value) throws AppCatalogException {
+ List<AppCatalogResource> appDeployments = new ArrayList<AppCatalogResource>();
+ EntityManager em = null;
+ try {
+ em = AppCatalogJPAUtils.getEntityManager();
+ em.getTransaction().begin();
+ Query q;
+ AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(APPLICATION_DEPLOYMENT);
+ List results;
+ if (fieldName.equals(ApplicationDeploymentConstants.APP_MODULE_ID)) {
+ generator.setParameter(ApplicationDeploymentConstants.APP_MODULE_ID, value);
+ q = generator.selectQuery(em);
+ results = q.getResultList();
+ if (results.size() != 0) {
+ for (Object result : results) {
+ ApplicationDeployment deployment = (ApplicationDeployment) result;
+ AppDeploymentAppCatalogResourceAppCat deploymentResource =
+ (AppDeploymentAppCatalogResourceAppCat) AppCatalogJPAUtils.getResource(AppCatalogResourceType.APPLICATION_DEPLOYMENT, deployment);
+ appDeployments.add(deploymentResource);
+ }
+ }
+ } else if (fieldName.equals(ApplicationDeploymentConstants.COMPUTE_HOST_ID)) {
+ generator.setParameter(ApplicationDeploymentConstants.COMPUTE_HOST_ID, value);
+ q = generator.selectQuery(em);
+ results = q.getResultList();
+ if (results.size() != 0) {
+ for (Object result : results) {
+ ApplicationDeployment deployment = (ApplicationDeployment) result;
+ AppDeploymentAppCatalogResourceAppCat deploymentResource =
+ (AppDeploymentAppCatalogResourceAppCat) AppCatalogJPAUtils.getResource(AppCatalogResourceType.APPLICATION_DEPLOYMENT, deployment);
+ appDeployments.add(deploymentResource);
+ }
+ }
+ }else {
+ em.getTransaction().commit();
+ em.close();
+ logger.error("Unsupported field name for app deployment resource.", new IllegalArgumentException());
+ throw new IllegalArgumentException("Unsupported field name for app deployment resource.");
+ }
+ em.getTransaction().commit();
+ em.close();
+ } catch (Exception e) {
+ logger.error(e.getMessage(), e);
+ throw new AppCatalogException(e);
+ } finally {
+ if (em != null && em.isOpen()) {
+ if (em.getTransaction().isActive()) {
+ em.getTransaction().rollback();
+ }
+ em.close();
+ }
+ }
+ return appDeployments;
+ }
+
+ @Override
+ public List<AppCatalogResource> getAll() throws AppCatalogException {
+ List<AppCatalogResource> appDeployments = new ArrayList<AppCatalogResource>();
+ EntityManager em = null;
+ try {
+ em = AppCatalogJPAUtils.getEntityManager();
+ em.getTransaction().begin();
+ AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(APPLICATION_DEPLOYMENT);
+ generator.setParameter(ApplicationDeploymentConstants.GATEWAY_ID, gatewayId);
+ Query q = generator.selectQuery(em);
+ List results = q.getResultList();
+ if (results.size() != 0) {
+ for (Object result : results) {
+ ApplicationDeployment deployment = (ApplicationDeployment) result;
+ AppDeploymentAppCatalogResourceAppCat deploymentResource =
+ (AppDeploymentAppCatalogResourceAppCat) AppCatalogJPAUtils.getResource(AppCatalogResourceType.APPLICATION_DEPLOYMENT, deployment);
+ appDeployments.add(deploymentResource);
+ }
+ }
+ em.getTransaction().commit();
+ em.close();
+ } catch (Exception e) {
+ logger.error(e.getMessage(), e);
+ throw new AppCatalogException(e);
+ } finally {
+ if (em != null && em.isOpen()) {
+ if (em.getTransaction().isActive()) {
+ em.getTransaction().rollback();
+ }
+ em.close();
+ }
+ }
+ return appDeployments;
+ }
+
+ @Override
+ public List<String> getAllIds() throws AppCatalogException {
+ List<String> appDeployments = new ArrayList<String>();
+ EntityManager em = null;
+ try {
+ em = AppCatalogJPAUtils.getEntityManager();
+ em.getTransaction().begin();
+ AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(APPLICATION_DEPLOYMENT);
+ Query q = generator.selectQuery(em);
+ List results = q.getResultList();
+ if (results.size() != 0) {
+ for (Object result : results) {
+ ApplicationDeployment deployment = (ApplicationDeployment) result;
+ appDeployments.add(deployment.getDeploymentID());
+ }
+ }
+ em.getTransaction().commit();
+ em.close();
+ } catch (Exception e) {
+ logger.error(e.getMessage(), e);
+ throw new AppCatalogException(e);
+ } finally {
+ if (em != null && em.isOpen()) {
+ if (em.getTransaction().isActive()) {
+ em.getTransaction().rollback();
+ }
+ em.close();
+ }
+ }
+ return appDeployments;
+ }
+
+ @Override
+ public List<String> getIds(String fieldName, Object value) throws AppCatalogException {
+ List<String> appDeployments = new ArrayList<String>();
+ EntityManager em = null;
+ try {
+ em = AppCatalogJPAUtils.getEntityManager();
+ em.getTransaction().begin();
+ Query q;
+ AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(APPLICATION_DEPLOYMENT);
+ List results;
+ if (fieldName.equals(ApplicationDeploymentConstants.APP_MODULE_ID)) {
+ generator.setParameter(ApplicationDeploymentConstants.APP_MODULE_ID, value);
+ q = generator.selectQuery(em);
+ results = q.getResultList();
+ if (results.size() != 0) {
+ for (Object result : results) {
+ ApplicationDeployment deployment = (ApplicationDeployment) result;
+ appDeployments.add(deployment.getDeploymentID());
+ }
+ }
+ } else if (fieldName.equals(ApplicationDeploymentConstants.COMPUTE_HOST_ID)) {
+ generator.setParameter(ApplicationDeploymentConstants.COMPUTE_HOST_ID, value);
+ q = generator.selectQuery(em);
+ results = q.getResultList();
+ if (results.size() != 0) {
+ for (Object result : results) {
+ ApplicationDeployment deployment = (ApplicationDeployment) result;
+ appDeployments.add(deployment.getDeploymentID());
+ }
+ }
+ }else {
+ em.getTransaction().commit();
+ em.close();
+ logger.error("Unsupported field name for app deployment resource.", new IllegalArgumentException());
+ throw new IllegalArgumentException("Unsupported field name for app deployment resource.");
+ }
+ em.getTransaction().commit();
+ em.close();
+ } catch (Exception e) {
+ logger.error(e.getMessage(), e);
+ throw new AppCatalogException(e);
+ } finally {
+ if (em != null && em.isOpen()) {
+ if (em.getTransaction().isActive()) {
+ em.getTransaction().rollback();
+ }
+ em.close();
+ }
+ }
+ return appDeployments;
+ }
+
+ @Override
+ public void save() throws AppCatalogException {
+ EntityManager em = null;
+ try {
+ em = AppCatalogJPAUtils.getEntityManager();
+ ApplicationDeployment existingDeployment = em.find(ApplicationDeployment.class, deploymentId);
+ em.close();
+
+ em = AppCatalogJPAUtils.getEntityManager();
+ em.getTransaction().begin();
+ ApplicationModule applicationModule = em.find(ApplicationModule.class, appModuleId);
+ ComputeResource computeHost = em.find(ComputeResource.class, hostId);
+ if (existingDeployment != null){
+ existingDeployment.setDeploymentID(deploymentId);
+ existingDeployment.setApplicationDesc(appDes);
+ existingDeployment.setAppModuleID(appModuleId);
+ existingDeployment.setApplicationModule(applicationModule);
+ existingDeployment.setComputeResource(computeHost);
+ existingDeployment.setHostID(hostId);
+ existingDeployment.setExecutablePath(executablePath);
+ existingDeployment.setParallelism(parallelism);
+ existingDeployment.setGatewayId(gatewayId);
+ existingDeployment.setUpdateTime(AiravataUtils.getCurrentTimestamp());
+ em.merge(existingDeployment);
+ }else {
+ ApplicationDeployment deployment = new ApplicationDeployment();
+ deployment.setApplicationDesc(appDes);
+ deployment.setDeploymentID(deploymentId);
+ deployment.setAppModuleID(appModuleId);
+ deployment.setHostID(hostId);
+ deployment.setApplicationModule(applicationModule);
+ deployment.setComputeResource(computeHost);
+ deployment.setExecutablePath(executablePath);
+ deployment.setParallelism(parallelism);
+ deployment.setGatewayId(gatewayId);
+ deployment.setCreationTime(AiravataUtils.getCurrentTimestamp());
+ em.persist(deployment);
+ }
+ em.getTransaction().commit();
+ em.close();
+ } catch (Exception e) {
+ logger.error(e.getMessage(), e);
+ throw new AppCatalogException(e);
+ } finally {
+ if (em != null && em.isOpen()) {
+ if (em.getTransaction().isActive()){
+ em.getTransaction().rollback();
+ }
+ em.close();
+ }
+ }
+
+ }
+
+ @Override
+ public boolean isExists(Object identifier) throws AppCatalogException {
+ EntityManager em = null;
+ try {
+ em = AppCatalogJPAUtils.getEntityManager();
+ ApplicationDeployment deployment = em.find(ApplicationDeployment.class, identifier);
+ em.close();
+ return deployment != null;
+ } catch (ApplicationSettingsException e) {
+ logger.error(e.getMessage(), e);
+ throw new AppCatalogException(e);
+ } finally {
+ if (em != null && em.isOpen()) {
+ if (em.getTransaction().isActive()){
+ em.getTransaction().rollback();
+ }
+ em.close();
+ }
+ }
+ }
+
+ public String getParallelism() {
+ return parallelism;
+ }
+
+ public void setParallelism(String parallelism) {
+ this.parallelism = parallelism;
+ }
+}