From 033bf5c7cb729106b4e66a5291db1c1d28ed5b69 Mon Sep 17 00:00:00 2001 From: pkupczyk <piotr.kupczyk@id.ethz.ch> Date: Fri, 26 Apr 2024 14:58:14 +0200 Subject: [PATCH] BIS-1047 : AFS installer --- app-openbis-installer/build.gradle | 4 ++- .../resource/installer/install.xml | 5 ++++ app-openbis-installer/settings.gradle | 4 +-- core-plugin-openbis/build.gradle | 6 ++++ core-plugin-openbis/settings.gradle | 4 +-- server-data-store/build.gradle | 4 +++ .../src/main/dist/etc/log4j2.xml | 13 +++++++++ .../src/main/dist/etc/service.properties | 29 +++++++++++++++++++ 8 files changed, 64 insertions(+), 5 deletions(-) create mode 100644 server-data-store/src/main/dist/etc/log4j2.xml create mode 100755 server-data-store/src/main/dist/etc/service.properties diff --git a/app-openbis-installer/build.gradle b/app-openbis-installer/build.gradle index deda8e6b4b2..dcab856c8f2 100644 --- a/app-openbis-installer/build.gradle +++ b/app-openbis-installer/build.gradle @@ -54,7 +54,7 @@ println "installerDir:${installerDistDir}" println "buildDir:${buildDir}" println "installer:${project.projectDir}/resource/installer" -task copyResources(type: Copy, dependsOn: [compileJava, ':core-plugin-openbis:zip', ':core-plugin-openbis:zipDss', ':core-plugin-openbis:zipBdlServer']) { +task copyResources(type: Copy, dependsOn: [compileJava, ':core-plugin-openbis:zip', ':core-plugin-openbis:zipDss', ':core-plugin-openbis:zipBdlServer', ':core-plugin-openbis:zipAfsServer']) { duplicatesStrategy 'include' from "${project.projectDir}/resource/installer" from "${project.projectDir}/../core-plugin-openbis/dist/tarball/installer" @@ -62,6 +62,8 @@ task copyResources(type: Copy, dependsOn: [compileJava, ':core-plugin-openbis:zi into installerDistDir from zipTree(project(':core-plugin-openbis').zipBdlServer.archivePath) into installerDistDir + from zipTree(project(':core-plugin-openbis').zipAfsServer.archivePath) + into installerDistDir from("${installerDistDir}/../BUILD-app-openbis-installer.INFO") { into 'bin' } diff --git a/app-openbis-installer/resource/installer/install.xml b/app-openbis-installer/resource/installer/install.xml index a738863b804..2facd281ca3 100644 --- a/app-openbis-installer/resource/installer/install.xml +++ b/app-openbis-installer/resource/installer/install.xml @@ -224,6 +224,11 @@ targetdir="$INSTALL_PATH/servers"/> </pack> + <pack name="AFS Server" required="yes" loose="yes"> + <description>The atomic filesystem server managing raw data</description> + <file src="@{installer.dist.dir}/afs-server" + targetdir="$INSTALL_PATH/servers"/> + </pack> <pack name="Administration Scripts" required="yes" loose="yes"> <description>Scripts to facilitate openBIS administration</description> diff --git a/app-openbis-installer/settings.gradle b/app-openbis-installer/settings.gradle index 810d325adaf..6a25368bcfb 100644 --- a/app-openbis-installer/settings.gradle +++ b/app-openbis-installer/settings.gradle @@ -1,4 +1,4 @@ -includeFlat 'lib-commonbase', 'lib-common', 'lib-json', +includeFlat 'lib-commonbase', 'lib-common', 'lib-json', 'lib-transactional-file-system', 'api-openbis-java', 'lib-openbis-common', 'lib-authentication', 'lib-dbmigration', 'server-application-server', - 'server-original-data-store', 'server-screening', 'core-plugin-openbis', 'server-external-data-store', + 'server-original-data-store', 'server-screening', 'core-plugin-openbis', 'server-external-data-store', 'server-data-store', 'ui-admin', 'lib-microservice-server', 'ui-eln-lims', 'api-openbis-javascript', 'api-openbis-typescript', 'api-data-store-server-java', 'api-data-store-server-javascript' diff --git a/core-plugin-openbis/build.gradle b/core-plugin-openbis/build.gradle index 112d7972f94..529b4c40249 100644 --- a/core-plugin-openbis/build.gradle +++ b/core-plugin-openbis/build.gradle @@ -38,6 +38,7 @@ evaluationDependsOn(':server-application-server') evaluationDependsOn(':server-original-data-store') evaluationDependsOn(':server-screening') evaluationDependsOn(':server-external-data-store') +evaluationDependsOn(':server-data-store') evaluationDependsOn(':ui-admin') evaluationDependsOn(':ui-eln-lims') @@ -467,6 +468,11 @@ task zipBdlServer(type: Zip, dependsOn: project(':server-external-data-store').t from zipTree('../server-external-data-store/build/distributions/server-external-data-store.zip') } +task zipAfsServer(type: Zip, dependsOn: project(':server-data-store').tasks.distZip) { + baseName 'afs_server' + from zipTree('../server-data-store/build/distributions/afs-server.zip') +} + task pybisZip(type: Zip) { baseName 'pybis' from '../api-openbis-python3-pybis/' diff --git a/core-plugin-openbis/settings.gradle b/core-plugin-openbis/settings.gradle index 0b4417685af..049b6410dab 100644 --- a/core-plugin-openbis/settings.gradle +++ b/core-plugin-openbis/settings.gradle @@ -1,3 +1,3 @@ -includeFlat 'lib-commonbase', 'lib-common', 'api-openbis-java', 'lib-openbis-common', 'lib-authentication', 'lib-dbmigration', 'lib-json', - 'server-application-server', 'server-original-data-store', 'server-screening', 'server-external-data-store', +includeFlat 'lib-commonbase', 'lib-common', 'api-openbis-java', 'lib-openbis-common', 'lib-authentication', 'lib-dbmigration', 'lib-json', 'lib-transactional-file-system', + 'server-application-server', 'server-original-data-store', 'server-screening', 'server-external-data-store', 'server-data-store', 'ui-admin', 'lib-microservice-server', 'ui-eln-lims', 'api-openbis-javascript', 'api-openbis-typescript', 'api-data-store-server-java', 'api-data-store-server-javascript' diff --git a/server-data-store/build.gradle b/server-data-store/build.gradle index 47b932d13dd..bdf4d9a642e 100644 --- a/server-data-store/build.gradle +++ b/server-data-store/build.gradle @@ -40,4 +40,8 @@ task AFSServerDevelopmentEnvironmentStart(type: JavaExec) { '--add-opens=java.base/java.nio=ALL-UNNAMED', '-Dio.netty.tryReflectionSetAccessible=true', '-Xmx256M', '-ea']) +} + +distZip { + baseName 'afs-server' } \ No newline at end of file diff --git a/server-data-store/src/main/dist/etc/log4j2.xml b/server-data-store/src/main/dist/etc/log4j2.xml new file mode 100644 index 00000000000..f8d0b493e95 --- /dev/null +++ b/server-data-store/src/main/dist/etc/log4j2.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Configuration status="INFO"> + <Appenders> + <File name="File" fileName="logs/afs-server.log" immediateFlush="false" append="false"> + <PatternLayout pattern="%d{yyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> + </File> + </Appenders> + <Loggers> + <Root level="ALL"> + <AppenderRef ref="File"/> + </Root> + </Loggers> +</Configuration> \ No newline at end of file diff --git a/server-data-store/src/main/dist/etc/service.properties b/server-data-store/src/main/dist/etc/service.properties new file mode 100755 index 00000000000..42655d82f66 --- /dev/null +++ b/server-data-store/src/main/dist/etc/service.properties @@ -0,0 +1,29 @@ +logFactoryClass=ch.ethz.sis.shared.log.log4j2.Log4J2LogFactory +logConfigFile=./etc/log4j2.xml + +jsonObjectMapperClass=ch.ethz.sis.afsjson.jackson.JacksonObjectMapper +# Where all the transactions information is written until the prepare step +# For performance reasons should be on the save volume as the configured storage +writeAheadLogRoot=./transactions +storageRoot=./store +storageUuid= + +httpServerClass=ch.ethz.sis.afsserver.http.impl.NettyHttpServer +httpServerUri=/afs-server +httpServerPort=8085 + +// 1 MiB of Base64 URL encoded data, 1 kiB of other data and 10% safety margin +httpMaxContentLength=1540165 + +maxReadSizeInBytes=1048576 +authenticationInfoProviderClass=ch.ethz.sis.afsserver.worker.providers.impl.OpenBISAuthenticationInfoProvider +authorizationInfoProviderClass=ch.ethz.sis.afsserver.worker.providers.impl.OpenBISAuthorizationInfoProvider +poolSize=50 +connectionFactoryClass=ch.ethz.sis.afsserver.worker.ConnectionFactory +workerFactoryClass=ch.ethz.sis.afsserver.worker.WorkerFactory +publicApiInterface=ch.ethz.sis.afsapi.api.PublicAPI +apiServerInteractiveSessionKey= +apiServerTransactionManagerKey= +apiServerWorkerTimeout=3600000 +openBISUrl=https://localhost:8443/ +openBISTimeout=30000 \ No newline at end of file -- GitLab