This is an automated email from the ASF dual-hosted git repository. machristie pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/airavata.git
The following commit(s) were added to refs/heads/develop by this push: new ceb4cdb AIRAVATA-2932 Fix saving job submission protocol ceb4cdb is described below commit ceb4cdb04fa2a0ed1f090fad0d344df655e9f3c2 Author: Marcus Christie <machris...@apache.org> AuthorDate: Thu Nov 1 15:23:39 2018 -0400 AIRAVATA-2932 Fix saving job submission protocol --- .../appcatalog/JobSubmissionInterfaceEntity.java | 4 +- .../JobSubmissionInterfaceRepository.java | 5 -- .../JobSubmissionInterfaceRepositoryTest.java | 88 ++++++++++++++++++++++ 3 files changed, 90 insertions(+), 7 deletions(-) diff --git a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/JobSubmissionInterfaceEntity.java b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/JobSubmissionInterfaceEntity.java index c1733d7..2f1e28e 100644 --- a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/JobSubmissionInterfaceEntity.java +++ b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/JobSubmissionInterfaceEntity.java @@ -56,8 +56,8 @@ public class JobSubmissionInterfaceEntity implements Serializable { @Column(name = "UPDATE_TIME") private Timestamp updateTime; - @ManyToOne(targetEntity = ComputeResourceEntity.class, cascade = CascadeType.MERGE) - @JoinColumn(name = "COMPUTE_RESOURCE_ID") + @ManyToOne(targetEntity = ComputeResourceEntity.class) + @JoinColumn(name = "COMPUTE_RESOURCE_ID", nullable = false, updatable = false) private ComputeResourceEntity computeResource; public JobSubmissionInterfaceEntity() { diff --git a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/JobSubmissionInterfaceRepository.java b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/JobSubmissionInterfaceRepository.java index ed22893..62c6e79 100644 --- a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/JobSubmissionInterfaceRepository.java +++ b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/JobSubmissionInterfaceRepository.java @@ -19,9 +19,7 @@ */ package org.apache.airavata.registry.core.repositories.appcatalog; -import org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription; import org.apache.airavata.model.appcatalog.computeresource.JobSubmissionInterface; -import org.apache.airavata.registry.core.entities.appcatalog.ComputeResourceEntity; import org.apache.airavata.registry.core.entities.appcatalog.JobSubmissionInterfaceEntity; import org.apache.airavata.registry.core.entities.appcatalog.JobSubmissionInterfacePK; import org.apache.airavata.registry.core.utils.ObjectMapperSingleton; @@ -36,9 +34,6 @@ public class JobSubmissionInterfaceRepository extends AppCatAbstractRepository<J public String addJobSubmission(String computeResourceId, JobSubmissionInterface jobSubmissionInterface) { Mapper mapper = ObjectMapperSingleton.getInstance(); JobSubmissionInterfaceEntity jobSubmissionInterfaceEntity = mapper.map(jobSubmissionInterface, JobSubmissionInterfaceEntity.class); - ComputeResourceDescription computeResourceDescription = new ComputeResourceRepository().get(computeResourceId); - ComputeResourceEntity computeResourceEntity = mapper.map(computeResourceDescription, ComputeResourceEntity.class); - jobSubmissionInterfaceEntity.setComputeResource(computeResourceEntity); jobSubmissionInterfaceEntity.setComputeResourceId(computeResourceId); execute(entityManager -> entityManager.merge(jobSubmissionInterfaceEntity)); diff --git a/modules/registry-refactoring/src/test/java/org/apache/airavata/registry/core/repositories/appcatalog/JobSubmissionInterfaceRepositoryTest.java b/modules/registry-refactoring/src/test/java/org/apache/airavata/registry/core/repositories/appcatalog/JobSubmissionInterfaceRepositoryTest.java new file mode 100644 index 0000000..0a5dada --- /dev/null +++ b/modules/registry-refactoring/src/test/java/org/apache/airavata/registry/core/repositories/appcatalog/JobSubmissionInterfaceRepositoryTest.java @@ -0,0 +1,88 @@ +/* + * 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.repositories.appcatalog; + +import org.apache.airavata.model.appcatalog.computeresource.BatchQueue; +import org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription; +import org.apache.airavata.model.appcatalog.computeresource.JobSubmissionInterface; +import org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol; +import org.apache.airavata.registry.core.entities.appcatalog.JobSubmissionInterfacePK; +import org.apache.airavata.registry.core.repositories.common.TestBase; +import org.apache.airavata.registry.cpi.AppCatalogException; +import org.junit.After; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class JobSubmissionInterfaceRepositoryTest extends TestBase { + private static final Logger logger = LoggerFactory.getLogger(ComputeResourceRepositoryTest.class); + + private JobSubmissionInterfaceRepository jobSubmissionInterfaceRepository; + private ComputeResourceRepository computeResourceRepository; + private String computeResourceId; + + public JobSubmissionInterfaceRepositoryTest() { + super(Database.APP_CATALOG); + jobSubmissionInterfaceRepository = new JobSubmissionInterfaceRepository(); + computeResourceRepository = new ComputeResourceRepository(); + } + + @Before + public void createTestComputeResource() throws AppCatalogException { + + ComputeResourceDescription description = new ComputeResourceDescription(); + description.setHostName("localhost"); + description.addToBatchQueues(new BatchQueue("queue1")); + description.addToBatchQueues(new BatchQueue("queue2")); + computeResourceId = computeResourceRepository.addComputeResource(description); + } + + @After + public void removeTestComputeResource() throws AppCatalogException { + + computeResourceRepository.removeComputeResource(computeResourceId); + } + + @Test + public void testAddJobSubmissionInterface() throws AppCatalogException { + + JobSubmissionInterface jobSubmissionInterface = new JobSubmissionInterface(); + jobSubmissionInterface.setJobSubmissionInterfaceId("test"); + jobSubmissionInterface.setPriorityOrder(1); + jobSubmissionInterface.setJobSubmissionProtocol(JobSubmissionProtocol.SSH); + + String jobSubmissionInterfaceId = jobSubmissionInterfaceRepository.addJobSubmission(computeResourceId, jobSubmissionInterface); + + JobSubmissionInterfacePK pk = new JobSubmissionInterfacePK(); + pk.setComputeResourceId(computeResourceId); + pk.setJobSubmissionInterfaceId(jobSubmissionInterfaceId); + + JobSubmissionInterface retrievedJobSubmissionInterface = jobSubmissionInterfaceRepository.get(pk); + Assert.assertEquals("test", retrievedJobSubmissionInterface.getJobSubmissionInterfaceId()); + Assert.assertEquals(1, retrievedJobSubmissionInterface.getPriorityOrder()); + Assert.assertEquals(JobSubmissionProtocol.SSH, retrievedJobSubmissionInterface.getJobSubmissionProtocol()); + + + jobSubmissionInterfaceRepository.delete(pk); + } +}