From 25f57e15da13bad207d95adf61607867aad3001c Mon Sep 17 00:00:00 2001 From: Juan Camilo Rada Mesa Date: Tue, 14 Jul 2020 07:12:33 -0500 Subject: [PATCH 1/2] removed base path --- .../uk/paths/SubmissionFolderResolverTest.kt | 14 ++++---- .../ac/uk/paths/SubmissionFolderResolver.kt | 19 +++++------ .../ac/uk/model/paths/FolderResolverTest.kt | 11 +++++- .../service/filesystem/FileSystemService.kt | 4 +-- .../service/filesystem/FtpFilesService.kt | 15 ++++---- .../service/filesystem/FilesServiceTest.kt | 5 ++- .../service/filesystem/FtpFilesServiceTest.kt | 34 ++++++++----------- .../integration/SecurityProperties.kt | 1 + .../assertions/AllInOneSubmissionHelper.kt | 4 +-- .../itest/common/BaseIntegrationTest.kt | 9 +++-- .../test/project/submit/ProjectSubmitTest.kt | 2 +- .../AllInOneMultipartFileSubmissionTest.kt | 2 +- .../submit/AllInOneSubmissionTest.kt | 2 +- .../submit/FileListSubmissionTest.kt | 2 +- .../submit/MultipartFileSubmissionApiTest.kt | 2 +- .../src/itest/resources/application.yml | 4 ++- .../ebi/biostd/common/config/GeneralConfig.kt | 1 + .../biostd/common/config/PersistenceConfig.kt | 3 +- .../biostd/common/config/SubmitterConfig.kt | 4 ++- .../common/property/ApplicationProperties.kt | 10 ++---- .../src/main/resources/application-local.yml | 5 +-- .../src/main/resources/application.yml | 3 +- 22 files changed, 82 insertions(+), 74 deletions(-) diff --git a/client/bio-commandline/src/test/kotlin/ebi/ac/uk/paths/SubmissionFolderResolverTest.kt b/client/bio-commandline/src/test/kotlin/ebi/ac/uk/paths/SubmissionFolderResolverTest.kt index 834561a213..59a982f02e 100644 --- a/client/bio-commandline/src/test/kotlin/ebi/ac/uk/paths/SubmissionFolderResolverTest.kt +++ b/client/bio-commandline/src/test/kotlin/ebi/ac/uk/paths/SubmissionFolderResolverTest.kt @@ -1,8 +1,5 @@ package ebi.ac.uk.paths -import ebi.ac.uk.extended.model.ExtSubmission -import io.mockk.every -import io.mockk.impl.annotations.MockK import io.mockk.junit5.MockKExtension import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -10,22 +7,23 @@ import org.junit.jupiter.api.extension.ExtendWith import java.nio.file.Paths @ExtendWith(MockKExtension::class) -internal class SubmissionFolderResolverTest(@MockK val submission: ExtSubmission) { - private val testInstance = SubmissionFolderResolver(Paths.get("/tmp/nfs")) +internal class SubmissionFolderResolverTest { + private val testInstance = SubmissionFolderResolver( + Paths.get("/tmp/nfs/submission"), + Paths.get("/tmp/nfs/submission/ftp") + ) @Test fun getSubmissionFolder() { val submissionPath = "part1/part2" - every { submission.relPath } returns submissionPath - assertThat(testInstance.getSubmissionFolder(submission).toString()) + assertThat(testInstance.getSubmissionFolder(submissionPath).toString()) .isEqualTo("/tmp/nfs/submission/part1/part2") } @Test fun getSubFilePath() { val submissionPath = "part1/part2" - every { submission.relPath } returns submissionPath assertThat(testInstance.getSubFilePath(submissionPath, "/test-file.txt").toString()) .isEqualTo("/tmp/nfs/submission/part1/part2/Files/test-file.txt") diff --git a/commons/commons-bio/src/main/kotlin/ebi/ac/uk/paths/SubmissionFolderResolver.kt b/commons/commons-bio/src/main/kotlin/ebi/ac/uk/paths/SubmissionFolderResolver.kt index 92a133442b..4879c9e8a7 100644 --- a/commons/commons-bio/src/main/kotlin/ebi/ac/uk/paths/SubmissionFolderResolver.kt +++ b/commons/commons-bio/src/main/kotlin/ebi/ac/uk/paths/SubmissionFolderResolver.kt @@ -1,25 +1,22 @@ package ebi.ac.uk.paths -import ebi.ac.uk.extended.model.ExtSubmission import java.nio.file.Path const val FILES_PATH = "Files" -const val SUBMISSION_PATH = "submission" -const val FTP_FOLDER = "submission/ftp" -class SubmissionFolderResolver(private val basePath: Path) { +class SubmissionFolderResolver( + private val submissionFolder: Path, + private val ftpFolder: Path +) { - fun getSubmissionFtpFolder(submission: ExtSubmission): Path = - basePath.resolve(FTP_FOLDER).resolve(submission.relPath) - - fun getSubmissionFolder(submission: ExtSubmission): Path = - basePath.resolve(SUBMISSION_PATH).resolve(submission.relPath) + fun getSubmissionFtpFolder(submissionRelPath: String): Path = + ftpFolder.resolve(submissionRelPath) fun getSubmissionFolder(submissionRelPath: String): Path = - basePath.resolve(SUBMISSION_PATH).resolve(submissionRelPath) + submissionFolder.resolve(submissionRelPath) fun getSubFilePath(relPath: String, fileName: String): Path = - basePath.resolve(SUBMISSION_PATH).resolve(relPath).resolve(FILES_PATH).resolve(escapeFileName(fileName)) + submissionFolder.resolve(relPath).resolve(FILES_PATH).resolve(escapeFileName(fileName)) private fun escapeFileName(fileName: String) = fileName.removePrefix("/") } diff --git a/commons/commons-bio/src/test/kotlin/ebi/ac/uk/model/paths/FolderResolverTest.kt b/commons/commons-bio/src/test/kotlin/ebi/ac/uk/model/paths/FolderResolverTest.kt index ed491bdfd2..026a608e71 100644 --- a/commons/commons-bio/src/test/kotlin/ebi/ac/uk/model/paths/FolderResolverTest.kt +++ b/commons/commons-bio/src/test/kotlin/ebi/ac/uk/model/paths/FolderResolverTest.kt @@ -6,7 +6,9 @@ import org.junit.jupiter.api.Test import java.nio.file.Paths class FolderResolverTest { - private val testInstance = SubmissionFolderResolver(Paths.get("/nfs/biostudies")) + private val testInstance = SubmissionFolderResolver( + submissionFolder = Paths.get("/nfs/biostudies/submission"), + ftpFolder = Paths.get("/nfs/bisotudies/ftp")) @Test fun `get submission file path`() { @@ -14,4 +16,11 @@ class FolderResolverTest { .getSubFilePath("ABCxxx123/ABC-123", "File1.txt")) .isEqualTo(Paths.get("/nfs/biostudies/submission/ABCxxx123/ABC-123/Files/File1.txt")) } + + @Test + fun `get submission ftp path`() { + assertThat(testInstance + .getSubmissionFtpFolder("ABCxxx123/ABC-123")) + .isEqualTo(Paths.get("/nfs/bisotudies/ftp/ABCxxx123/ABC-123")) + } } diff --git a/submission/persistence/src/main/kotlin/ac/uk/ebi/biostd/persistence/service/filesystem/FileSystemService.kt b/submission/persistence/src/main/kotlin/ac/uk/ebi/biostd/persistence/service/filesystem/FileSystemService.kt index 8b6dbf76ad..0ab76e5405 100644 --- a/submission/persistence/src/main/kotlin/ac/uk/ebi/biostd/persistence/service/filesystem/FileSystemService.kt +++ b/submission/persistence/src/main/kotlin/ac/uk/ebi/biostd/persistence/service/filesystem/FileSystemService.kt @@ -8,8 +8,8 @@ class FileSystemService( private val ftpLinksService: FtpFilesService ) { fun persistSubmissionFiles(submission: ExtSubmission, mode: FileMode) { - ftpLinksService.cleanFtpFolder(submission) + ftpLinksService.cleanFtpFolder(submission.relPath) filesService.persistSubmissionFiles(submission, mode) - if (submission.released) ftpLinksService.createFtpFolder(submission) + if (submission.released) ftpLinksService.createFtpFolder(submission.relPath) } } diff --git a/submission/persistence/src/main/kotlin/ac/uk/ebi/biostd/persistence/service/filesystem/FtpFilesService.kt b/submission/persistence/src/main/kotlin/ac/uk/ebi/biostd/persistence/service/filesystem/FtpFilesService.kt index 7b5e8c0683..961fdb02cb 100644 --- a/submission/persistence/src/main/kotlin/ac/uk/ebi/biostd/persistence/service/filesystem/FtpFilesService.kt +++ b/submission/persistence/src/main/kotlin/ac/uk/ebi/biostd/persistence/service/filesystem/FtpFilesService.kt @@ -1,6 +1,5 @@ package ac.uk.ebi.biostd.persistence.service.filesystem -import ebi.ac.uk.extended.model.ExtSubmission import ebi.ac.uk.io.FileUtils import ebi.ac.uk.paths.SubmissionFolderResolver import java.io.File @@ -11,19 +10,19 @@ private val ALL_READ: Set = PosixFilePermissions.fromString class FtpFilesService(private val folderResolver: SubmissionFolderResolver) { - fun createFtpFolder(submission: ExtSubmission) { - val submissionFolder = folderResolver.getSubmissionFolder(submission.relPath).toFile() - val ftpFolder = getFtpFolder(submission) + fun createFtpFolder(relPath: String) { + val submissionFolder = folderResolver.getSubmissionFolder(relPath).toFile() + val ftpFolder = getFtpFolder(relPath) FileUtils.createHardLink(submissionFolder, ftpFolder) } - private fun getFtpFolder(submission: ExtSubmission): File = + private fun getFtpFolder(relPath: String): File = FileUtils.getOrCreateFolder( - folderResolver.getSubmissionFtpFolder(submission), + folderResolver.getSubmissionFtpFolder(relPath), ALL_READ ).toFile() - fun cleanFtpFolder(submission: ExtSubmission) { - FileUtils.deleteFile(folderResolver.getSubmissionFtpFolder(submission).toFile()) + fun cleanFtpFolder(relPath: String) { + FileUtils.deleteFile(folderResolver.getSubmissionFtpFolder(relPath).toFile()) } } diff --git a/submission/persistence/src/test/kotlin/ac/uk/ebi/biostd/persistence/service/filesystem/FilesServiceTest.kt b/submission/persistence/src/test/kotlin/ac/uk/ebi/biostd/persistence/service/filesystem/FilesServiceTest.kt index 43d02389c0..826a610a64 100644 --- a/submission/persistence/src/test/kotlin/ac/uk/ebi/biostd/persistence/service/filesystem/FilesServiceTest.kt +++ b/submission/persistence/src/test/kotlin/ac/uk/ebi/biostd/persistence/service/filesystem/FilesServiceTest.kt @@ -40,7 +40,10 @@ class FilesServiceTest( private lateinit var extSubmission: ExtSubmission private val testInstance = - FilesService(SubmissionFolderResolver(temporaryFolder.root.toPath()), mockSerializationService) + FilesService(SubmissionFolderResolver( + Paths.get("${temporaryFolder.root.toPath()}/submission"), + Paths.get("${temporaryFolder.root.toPath()}/ftp") + ), mockSerializationService) @BeforeEach fun beforeEach() { diff --git a/submission/persistence/src/test/kotlin/ac/uk/ebi/biostd/persistence/service/filesystem/FtpFilesServiceTest.kt b/submission/persistence/src/test/kotlin/ac/uk/ebi/biostd/persistence/service/filesystem/FtpFilesServiceTest.kt index 414deb70f2..11a583cff2 100644 --- a/submission/persistence/src/test/kotlin/ac/uk/ebi/biostd/persistence/service/filesystem/FtpFilesServiceTest.kt +++ b/submission/persistence/src/test/kotlin/ac/uk/ebi/biostd/persistence/service/filesystem/FtpFilesServiceTest.kt @@ -1,6 +1,5 @@ package ac.uk.ebi.biostd.persistence.service.filesystem -import ebi.ac.uk.extended.model.ExtSubmission import ebi.ac.uk.io.ext.asFileList import ebi.ac.uk.io.ext.createDirectory import ebi.ac.uk.io.ext.createNewFile @@ -9,39 +8,34 @@ import ebi.ac.uk.test.clean import ebi.ac.uk.util.collections.second import io.github.glytching.junit.extension.folder.TemporaryFolder import io.github.glytching.junit.extension.folder.TemporaryFolderExtension -import io.mockk.every -import io.mockk.impl.annotations.MockK import io.mockk.junit5.MockKExtension import org.assertj.core.api.Assertions.assertThat -import org.junit.jupiter.api.BeforeAll import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test import org.junit.jupiter.api.extension.ExtendWith import java.io.File +private const val REL_PATH = "My/Path/To/Submission" + @ExtendWith(TemporaryFolderExtension::class, MockKExtension::class) internal class FtpFilesServiceTest( - private val temporaryFolder: TemporaryFolder, - @MockK private val submission: ExtSubmission + private val temporaryFolder: TemporaryFolder ) { private lateinit var expectedDirectory: File private lateinit var expectedFile1: File private lateinit var expectedFile2: File - private val folderResolver = SubmissionFolderResolver(temporaryFolder.root.toPath()) + private val folderResolver = SubmissionFolderResolver( + temporaryFolder.root.toPath().resolve("submission"), + temporaryFolder.root.toPath().resolve("ftp")) private val testInstance = FtpFilesService(folderResolver) - @BeforeAll - fun beforeAll() { - every { submission.relPath } returns "My/Path/To/Submission" - } - @BeforeEach fun beforeEach() { temporaryFolder.clean() - val submissionFolder = folderResolver.getSubmissionFolder(submission).toFile().apply { mkdirs() } + val submissionFolder = folderResolver.getSubmissionFolder(REL_PATH).toFile().apply { mkdirs() } expectedDirectory = submissionFolder.createDirectory("my-directory") expectedFile1 = expectedDirectory.createNewFile("file.txt", "file-content") expectedFile2 = expectedDirectory.createNewFile("file-2.txt", "file-text") @@ -49,19 +43,19 @@ internal class FtpFilesServiceTest( @Test fun createFtpFolder() { - testInstance.createFtpFolder(submission) + testInstance.createFtpFolder(REL_PATH) - assertFolder(folderResolver.getSubmissionFolder(submission).toFile()) - assertFolder(folderResolver.getSubmissionFtpFolder(submission).toFile()) + assertFolder(folderResolver.getSubmissionFolder(REL_PATH).toFile()) + assertFolder(folderResolver.getSubmissionFtpFolder(REL_PATH).toFile()) } @Test fun cleanFtpFolder() { - testInstance.createFtpFolder(submission) - testInstance.cleanFtpFolder(submission) + testInstance.createFtpFolder(REL_PATH) + testInstance.cleanFtpFolder(REL_PATH) - assertFolder(folderResolver.getSubmissionFolder(submission).toFile()) - assertThat(folderResolver.getSubmissionFtpFolder(submission).toFile()).doesNotExist() + assertFolder(folderResolver.getSubmissionFolder(REL_PATH).toFile()) + assertThat(folderResolver.getSubmissionFtpFolder(REL_PATH).toFile()).doesNotExist() } private fun assertFolder(ftpFolder: File) { diff --git a/submission/submission-security/src/main/kotlin/ebi/ac/uk/security/integration/SecurityProperties.kt b/submission/submission-security/src/main/kotlin/ebi/ac/uk/security/integration/SecurityProperties.kt index a2f28a731f..1c2589d0a7 100644 --- a/submission/submission-security/src/main/kotlin/ebi/ac/uk/security/integration/SecurityProperties.kt +++ b/submission/submission-security/src/main/kotlin/ebi/ac/uk/security/integration/SecurityProperties.kt @@ -6,6 +6,7 @@ class SecurityProperties { lateinit var environment: String lateinit var filesDirPath: String lateinit var captchaKey: String + lateinit var magicFolderPath: String var checkCaptcha: Boolean = false var requireActivation: Boolean = false diff --git a/submission/submission-webapp/src/itest/kotlin/ac/uk/ebi/biostd/itest/assertions/AllInOneSubmissionHelper.kt b/submission/submission-webapp/src/itest/kotlin/ac/uk/ebi/biostd/itest/assertions/AllInOneSubmissionHelper.kt index 1158aff818..2852420285 100644 --- a/submission/submission-webapp/src/itest/kotlin/ac/uk/ebi/biostd/itest/assertions/AllInOneSubmissionHelper.kt +++ b/submission/submission-webapp/src/itest/kotlin/ac/uk/ebi/biostd/itest/assertions/AllInOneSubmissionHelper.kt @@ -13,7 +13,7 @@ import org.assertj.core.api.Assertions.assertThat import java.nio.file.Paths internal class AllInOneSubmissionHelper( - private val basePath: String, + private val submissionPath: String, private val submissionRepository: SubmissionRepository ) { internal fun assertSavedSubmission(accNo: String, method: ExtSubmissionMethod = ExtSubmissionMethod.PAGE_TAB) { @@ -25,7 +25,7 @@ internal class AllInOneSubmissionHelper( } private fun assertSubmissionFiles(submission: ExtSubmission) { - val submissionFolderPath = "$basePath/submission/${submission.relPath}" + val submissionFolderPath = "$submissionPath/${submission.relPath}" val accNo = submission.accNo assertAllInOneSubmissionXml(getSubFileContent("$submissionFolderPath/$accNo.xml"), accNo) diff --git a/submission/submission-webapp/src/itest/kotlin/ac/uk/ebi/biostd/itest/common/BaseIntegrationTest.kt b/submission/submission-webapp/src/itest/kotlin/ac/uk/ebi/biostd/itest/common/BaseIntegrationTest.kt index ecaca7efe9..27e5278622 100644 --- a/submission/submission-webapp/src/itest/kotlin/ac/uk/ebi/biostd/itest/common/BaseIntegrationTest.kt +++ b/submission/submission-webapp/src/itest/kotlin/ac/uk/ebi/biostd/itest/common/BaseIntegrationTest.kt @@ -7,15 +7,18 @@ import io.github.glytching.junit.extension.folder.TemporaryFolder import org.junit.jupiter.api.BeforeAll internal open class BaseIntegrationTest(private val tempFolder: TemporaryFolder) { - protected lateinit var basePath: String + protected lateinit var submissionPath: String + protected lateinit var ftpPath: String @BeforeAll fun init() { val dropbox = tempFolder.createDirectory("dropbox") val temp = tempFolder.createDirectory("tmp") - basePath = tempFolder.root.absolutePath + submissionPath = "${tempFolder.root.absolutePath}/submission" + ftpPath = "${tempFolder.root.absolutePath}/ftpPath" - System.setProperty("app.basepath", tempFolder.root.absolutePath) + System.setProperty("app.submissionPath", submissionPath) + System.setProperty("app.ftpPath", ftpPath) System.setProperty("app.tempDirPath", temp.absolutePath) System.setProperty("app.security.filesDirPath", dropbox.absolutePath) } diff --git a/submission/submission-webapp/src/itest/kotlin/ac/uk/ebi/biostd/itest/test/project/submit/ProjectSubmitTest.kt b/submission/submission-webapp/src/itest/kotlin/ac/uk/ebi/biostd/itest/test/project/submit/ProjectSubmitTest.kt index 8eddae9c6b..b184f88458 100644 --- a/submission/submission-webapp/src/itest/kotlin/ac/uk/ebi/biostd/itest/test/project/submit/ProjectSubmitTest.kt +++ b/submission/submission-webapp/src/itest/kotlin/ac/uk/ebi/biostd/itest/test/project/submit/ProjectSubmitTest.kt @@ -30,7 +30,7 @@ import org.springframework.test.annotation.DirtiesContext import org.springframework.test.context.junit.jupiter.SpringExtension @ExtendWith(TemporaryFolderExtension::class) -internal class ProjectSubmitTest(private val tempFolder: TemporaryFolder) : BaseIntegrationTest(tempFolder) { +internal class ProjectSubmitTest(tempFolder: TemporaryFolder) : BaseIntegrationTest(tempFolder) { @Nested @Import(PersistenceConfig::class) @ExtendWith(SpringExtension::class) diff --git a/submission/submission-webapp/src/itest/kotlin/ac/uk/ebi/biostd/itest/test/submission/submit/AllInOneMultipartFileSubmissionTest.kt b/submission/submission-webapp/src/itest/kotlin/ac/uk/ebi/biostd/itest/test/submission/submit/AllInOneMultipartFileSubmissionTest.kt index a30ae7067d..7d9eb9eeca 100644 --- a/submission/submission-webapp/src/itest/kotlin/ac/uk/ebi/biostd/itest/test/submission/submit/AllInOneMultipartFileSubmissionTest.kt +++ b/submission/submission-webapp/src/itest/kotlin/ac/uk/ebi/biostd/itest/test/submission/submit/AllInOneMultipartFileSubmissionTest.kt @@ -45,7 +45,7 @@ internal class AllInOneMultipartFileSubmissionTest( @BeforeAll fun init() { webClient = getWebClient(serverPort, SuperUser) - allInOneSubmissionHelper = AllInOneSubmissionHelper(basePath, submissionRepository) + allInOneSubmissionHelper = AllInOneSubmissionHelper(submissionPath, submissionRepository) } @Test diff --git a/submission/submission-webapp/src/itest/kotlin/ac/uk/ebi/biostd/itest/test/submission/submit/AllInOneSubmissionTest.kt b/submission/submission-webapp/src/itest/kotlin/ac/uk/ebi/biostd/itest/test/submission/submit/AllInOneSubmissionTest.kt index e1cbc35dd0..716f1b1a32 100644 --- a/submission/submission-webapp/src/itest/kotlin/ac/uk/ebi/biostd/itest/test/submission/submit/AllInOneSubmissionTest.kt +++ b/submission/submission-webapp/src/itest/kotlin/ac/uk/ebi/biostd/itest/test/submission/submit/AllInOneSubmissionTest.kt @@ -40,7 +40,7 @@ internal class AllInOneSubmissionTest(private val tempFolder: TemporaryFolder) : @BeforeAll fun init() { webClient = getWebClient(serverPort, SuperUser) - allInOneSubmissionHelper = AllInOneSubmissionHelper(basePath, submissionRepository) + allInOneSubmissionHelper = AllInOneSubmissionHelper(submissionPath, submissionRepository) } @Test diff --git a/submission/submission-webapp/src/itest/kotlin/ac/uk/ebi/biostd/itest/test/submission/submit/FileListSubmissionTest.kt b/submission/submission-webapp/src/itest/kotlin/ac/uk/ebi/biostd/itest/test/submission/submit/FileListSubmissionTest.kt index 7222365cc7..545cd8cff5 100644 --- a/submission/submission-webapp/src/itest/kotlin/ac/uk/ebi/biostd/itest/test/submission/submit/FileListSubmissionTest.kt +++ b/submission/submission-webapp/src/itest/kotlin/ac/uk/ebi/biostd/itest/test/submission/submit/FileListSubmissionTest.kt @@ -161,7 +161,7 @@ internal class FileListSubmissionTest(private val tempFolder: TemporaryFolder) : private fun assertSubmissionFiles(accNo: String, testFile: String) { val fileListName = "FileList" val createdSubmission = submissionRepository.getActiveExtByAccNo(accNo) - val submissionFolderPath = "$basePath/submission/${createdSubmission.relPath}" + val submissionFolderPath = "$submissionPath/${createdSubmission.relPath}" assertThat(createdSubmission.section.fileList?.fileName).isEqualTo(fileListName) assertThat(createdSubmission.section.fileList).isEqualTo( diff --git a/submission/submission-webapp/src/itest/kotlin/ac/uk/ebi/biostd/itest/test/submission/submit/MultipartFileSubmissionApiTest.kt b/submission/submission-webapp/src/itest/kotlin/ac/uk/ebi/biostd/itest/test/submission/submit/MultipartFileSubmissionApiTest.kt index 597489019f..50ca45eb6c 100644 --- a/submission/submission-webapp/src/itest/kotlin/ac/uk/ebi/biostd/itest/test/submission/submit/MultipartFileSubmissionApiTest.kt +++ b/submission/submission-webapp/src/itest/kotlin/ac/uk/ebi/biostd/itest/test/submission/submit/MultipartFileSubmissionApiTest.kt @@ -255,7 +255,7 @@ internal class MultipartFileSubmissionApiTest( private fun assertSubmissionFiles(accNo: String, testFile: String) { val fileListName = "FileList" val createdSubmission = submissionRepository.getActiveExtByAccNo(accNo) - val submissionFolderPath = "$basePath/submission/${createdSubmission.relPath}" + val submissionFolderPath = "$submissionPath/${createdSubmission.relPath}" assertThat(createdSubmission.section.fileList?.fileName).isEqualTo(fileListName) assertThat(createdSubmission.section.fileList).isEqualTo( diff --git a/submission/submission-webapp/src/itest/resources/application.yml b/submission/submission-webapp/src/itest/resources/application.yml index 0e0945f54d..130751c356 100644 --- a/submission/submission-webapp/src/itest/resources/application.yml +++ b/submission/submission-webapp/src/itest/resources/application.yml @@ -18,7 +18,9 @@ spring: port: 5672 app: - basepath: + submissionPath: + ftpPath: + magicPath: tempDirPath: instanceBaseUrl: http://localhost:8080 security: diff --git a/submission/submission-webapp/src/main/kotlin/ac/uk/ebi/biostd/common/config/GeneralConfig.kt b/submission/submission-webapp/src/main/kotlin/ac/uk/ebi/biostd/common/config/GeneralConfig.kt index f444472193..a090f51d2e 100644 --- a/submission/submission-webapp/src/main/kotlin/ac/uk/ebi/biostd/common/config/GeneralConfig.kt +++ b/submission/submission-webapp/src/main/kotlin/ac/uk/ebi/biostd/common/config/GeneralConfig.kt @@ -10,6 +10,7 @@ import org.springframework.context.annotation.Configuration @Configuration @EnableConfigurationProperties(ApplicationProperties::class) internal class GeneralConfig { + @Bean fun tempFileGenerator(properties: ApplicationProperties) = TempFileGenerator(properties) diff --git a/submission/submission-webapp/src/main/kotlin/ac/uk/ebi/biostd/common/config/PersistenceConfig.kt b/submission/submission-webapp/src/main/kotlin/ac/uk/ebi/biostd/common/config/PersistenceConfig.kt index 816928cccc..d9afda3ff6 100644 --- a/submission/submission-webapp/src/main/kotlin/ac/uk/ebi/biostd/common/config/PersistenceConfig.kt +++ b/submission/submission-webapp/src/main/kotlin/ac/uk/ebi/biostd/common/config/PersistenceConfig.kt @@ -33,6 +33,7 @@ import org.springframework.context.annotation.Configuration import org.springframework.data.jpa.repository.config.EnableJpaRepositories import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate import uk.ac.ebi.stats.persistence.repositories.SubmissionStatsRepository +import java.nio.file.Paths @Suppress("TooManyFunctions") @Configuration @@ -65,7 +66,7 @@ class PersistenceConfig( ) = ToDbSubmissionMapper(tagsRepo, tagsRefRepo, userRepo) @Bean - fun toExtSubmissionMapper() = ToExtSubmissionMapper(applicationProperties.submissionsPath) + fun toExtSubmissionMapper() = ToExtSubmissionMapper(Paths.get(applicationProperties.submissionPath)) @Bean fun submissionRepository(toExtSubmissionMapper: ToExtSubmissionMapper) = diff --git a/submission/submission-webapp/src/main/kotlin/ac/uk/ebi/biostd/common/config/SubmitterConfig.kt b/submission/submission-webapp/src/main/kotlin/ac/uk/ebi/biostd/common/config/SubmitterConfig.kt index 80e1fd63c7..8ee7a7d658 100644 --- a/submission/submission-webapp/src/main/kotlin/ac/uk/ebi/biostd/common/config/SubmitterConfig.kt +++ b/submission/submission-webapp/src/main/kotlin/ac/uk/ebi/biostd/common/config/SubmitterConfig.kt @@ -45,7 +45,9 @@ class SubmitterConfig { class FilesHandlerConfig(private val appProperties: ApplicationProperties) { @Bean @Lazy - fun folderResolver() = SubmissionFolderResolver(Paths.get(appProperties.basepath)) + fun folderResolver() = SubmissionFolderResolver( + submissionFolder = Paths.get(appProperties.submissionPath), + ftpFolder = Paths.get(appProperties.ftpPath)) } @Configuration diff --git a/submission/submission-webapp/src/main/kotlin/ac/uk/ebi/biostd/common/property/ApplicationProperties.kt b/submission/submission-webapp/src/main/kotlin/ac/uk/ebi/biostd/common/property/ApplicationProperties.kt index 88fb9d9024..ed132c3d14 100644 --- a/submission/submission-webapp/src/main/kotlin/ac/uk/ebi/biostd/common/property/ApplicationProperties.kt +++ b/submission/submission-webapp/src/main/kotlin/ac/uk/ebi/biostd/common/property/ApplicationProperties.kt @@ -1,22 +1,18 @@ package ac.uk.ebi.biostd.common.property import ebi.ac.uk.notifications.integration.NotificationProperties -import ebi.ac.uk.paths.SUBMISSION_PATH import ebi.ac.uk.security.integration.SecurityProperties import org.springframework.boot.context.properties.ConfigurationProperties import org.springframework.boot.context.properties.NestedConfigurationProperty -import java.nio.file.Path -import java.nio.file.Paths @ConfigurationProperties(prefix = "app") open class ApplicationProperties { - lateinit var basepath: String lateinit var tempDirPath: String + lateinit var submissionPath: String + lateinit var ftpPath: String + lateinit var magicPath: String lateinit var instanceBaseUrl: String - val submissionsPath: Path - get() = Paths.get(basepath).resolve(SUBMISSION_PATH) - @NestedConfigurationProperty var security: SecurityProperties = SecurityProperties() diff --git a/submission/submission-webapp/src/main/resources/application-local.yml b/submission/submission-webapp/src/main/resources/application-local.yml index a63883a559..5eee853296 100644 --- a/submission/submission-webapp/src/main/resources/application-local.yml +++ b/submission/submission-webapp/src/main/resources/application-local.yml @@ -24,8 +24,9 @@ spring: max-request-size: 10240MB app: - basepath: # Absolute path to the folder to be used as storage - tempDirPath: # Absolute of the temp folder to store files + submissionPath: + ftpPath: + tempDirPath: instanceBaseUrl: http://localhost:8080 security: captchaKey: # Captcha validation token. Not required for local environment diff --git a/submission/submission-webapp/src/main/resources/application.yml b/submission/submission-webapp/src/main/resources/application.yml index c2a8f8850a..bf9617b2fe 100644 --- a/submission/submission-webapp/src/main/resources/application.yml +++ b/submission/submission-webapp/src/main/resources/application.yml @@ -36,7 +36,8 @@ logging: name: logs/application_logs.txt app: - basepath: # Absolute path to the folder to be used as storage + submissionPath: # Absolute path to the folder to be used as submission storage + ftpPath: # Absolute path to the folder to be used ftp hardlinks tempDirPath: # Absolute of the temp folder to store files instanceBaseUrl: # Instance base url e.g. http://server.ebi.ac.uk:5541 security: From 18a473b3a9122968acbd97e437c1cc5c9e62f5ca Mon Sep 17 00:00:00 2001 From: Juan Camilo Rada Mesa Date: Tue, 14 Jul 2020 08:59:52 -0500 Subject: [PATCH 2/2] code review changes --- .../main/kotlin/ebi/ac/uk/paths/SubmissionFolderResolver.kt | 6 ++---- .../submission-webapp/src/itest/resources/application.yml | 1 - .../kotlin/ac/uk/ebi/biostd/common/config/GeneralConfig.kt | 1 - .../uk/ebi/biostd/common/property/ApplicationProperties.kt | 1 - 4 files changed, 2 insertions(+), 7 deletions(-) diff --git a/commons/commons-bio/src/main/kotlin/ebi/ac/uk/paths/SubmissionFolderResolver.kt b/commons/commons-bio/src/main/kotlin/ebi/ac/uk/paths/SubmissionFolderResolver.kt index 4879c9e8a7..7aed35c1af 100644 --- a/commons/commons-bio/src/main/kotlin/ebi/ac/uk/paths/SubmissionFolderResolver.kt +++ b/commons/commons-bio/src/main/kotlin/ebi/ac/uk/paths/SubmissionFolderResolver.kt @@ -9,11 +9,9 @@ class SubmissionFolderResolver( private val ftpFolder: Path ) { - fun getSubmissionFtpFolder(submissionRelPath: String): Path = - ftpFolder.resolve(submissionRelPath) + fun getSubmissionFtpFolder(submissionRelPath: String): Path = ftpFolder.resolve(submissionRelPath) - fun getSubmissionFolder(submissionRelPath: String): Path = - submissionFolder.resolve(submissionRelPath) + fun getSubmissionFolder(submissionRelPath: String): Path = submissionFolder.resolve(submissionRelPath) fun getSubFilePath(relPath: String, fileName: String): Path = submissionFolder.resolve(relPath).resolve(FILES_PATH).resolve(escapeFileName(fileName)) diff --git a/submission/submission-webapp/src/itest/resources/application.yml b/submission/submission-webapp/src/itest/resources/application.yml index 130751c356..1fa20c698e 100644 --- a/submission/submission-webapp/src/itest/resources/application.yml +++ b/submission/submission-webapp/src/itest/resources/application.yml @@ -20,7 +20,6 @@ spring: app: submissionPath: ftpPath: - magicPath: tempDirPath: instanceBaseUrl: http://localhost:8080 security: diff --git a/submission/submission-webapp/src/main/kotlin/ac/uk/ebi/biostd/common/config/GeneralConfig.kt b/submission/submission-webapp/src/main/kotlin/ac/uk/ebi/biostd/common/config/GeneralConfig.kt index a090f51d2e..f444472193 100644 --- a/submission/submission-webapp/src/main/kotlin/ac/uk/ebi/biostd/common/config/GeneralConfig.kt +++ b/submission/submission-webapp/src/main/kotlin/ac/uk/ebi/biostd/common/config/GeneralConfig.kt @@ -10,7 +10,6 @@ import org.springframework.context.annotation.Configuration @Configuration @EnableConfigurationProperties(ApplicationProperties::class) internal class GeneralConfig { - @Bean fun tempFileGenerator(properties: ApplicationProperties) = TempFileGenerator(properties) diff --git a/submission/submission-webapp/src/main/kotlin/ac/uk/ebi/biostd/common/property/ApplicationProperties.kt b/submission/submission-webapp/src/main/kotlin/ac/uk/ebi/biostd/common/property/ApplicationProperties.kt index ed132c3d14..856b89ca21 100644 --- a/submission/submission-webapp/src/main/kotlin/ac/uk/ebi/biostd/common/property/ApplicationProperties.kt +++ b/submission/submission-webapp/src/main/kotlin/ac/uk/ebi/biostd/common/property/ApplicationProperties.kt @@ -10,7 +10,6 @@ open class ApplicationProperties { lateinit var tempDirPath: String lateinit var submissionPath: String lateinit var ftpPath: String - lateinit var magicPath: String lateinit var instanceBaseUrl: String @NestedConfigurationProperty