From cf8b04ec1616f37432b82864b03cd5fb34c4ee11 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Steffen=20K=C3=B6hler?= <steffen.koehler@uni-leipzig.de>
Date: Sat, 22 Feb 2025 00:28:12 +0100
Subject: [PATCH] try new installation method.

---
 .gitlab-ci.yml                 |  8 ++++----
 assets/scripts/register-tenant | 36 ++++++++++++++++++++++++++++++++--
 2 files changed, 38 insertions(+), 6 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 2c613b2..d5bd3eb 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -13,7 +13,7 @@ variables:
 
 docker_build:
   stage: build
-  image: ubleipzig/deployer:1.5.0-rc2
+  image: ubleipzig/deployer:1.5.1
   services:
   - docker:dind
   script: |
@@ -31,7 +31,7 @@ docker_build:
 
 docker_publish_alpha:
   stage: publish
-  image: ubleipzig/deployer:1.5.0-rc2
+  image: ubleipzig/deployer:1.5.1
   services:
   - docker:dind
   script: |
@@ -52,7 +52,7 @@ docker_publish_alpha:
 
 docker_publish_staging:
   stage: publish
-  image: ubleipzig/deployer:1.5.0-rc2
+  image: ubleipzig/deployer:1.5.1
   services:
   - docker:dind
   script: |
@@ -70,7 +70,7 @@ docker_publish_staging:
 
 docker_publish_production:
   stage: publish
-  image: ubleipzig/deployer:1.5.0-rc2
+  image: ubleipzig/deployer:1.5.1
   services:
   - docker:dind
   script: |
diff --git a/assets/scripts/register-tenant b/assets/scripts/register-tenant
index 3eb1dce..13ee6f1 100755
--- a/assets/scripts/register-tenant
+++ b/assets/scripts/register-tenant
@@ -14,6 +14,7 @@ permissions=""
 module_descriptor=""
 loadSample=false
 loadReference=false
+jsonfile=/etc/registertenant/install.json
 
 parse_cmdline_parameters() {
 	! getopt --test >/dev/null
@@ -352,6 +353,37 @@ EOF
 	return 12
 }
 
+install_modules_new() {
+	echo -ne "Installing modules for tenant ... the new way"
+
+	debug "install_modules() new style" 
+	while true; do
+		if [ $INSTALL_TRY_COUNT = 0 ]; then break; fi
+		result=`curl \
+			-s \
+			-X POST \
+			-w "|%{http_code}" \
+			-H 'Content-type: application/json' \
+			--connect-timeout ${CURL_CONNECT_TIMEOUT} \
+			"${OKAPI_URL}/_/proxy/tenants/${tenant_id}/install?tenantParameters=loadSample=${loadSample},loadReference=${loadReference}" \
+			-d @${jsonfile} 2>&1`
+
+		case "${result##*|}" in
+			200|201)
+				echo "done."
+				return 0
+				;;
+		esac
+
+		let INSTALL_TRY_COUNT=$INSTALL_TRY_COUNT-1
+		sleep 1
+	done
+
+	echo "${result##*|} ("${result%|*}")"
+	return 12
+}
+
+
 find_module_authtoken() {
 	echo -ne "Find module authtoken for tenant..."
 
@@ -637,13 +669,13 @@ main() {
 		&& wait_for_okapi \
 		&& register_frontend_modules $frontend_modules \
 		&& (tenant_exists || create_tenant) \
-		&& wait_for_backend_modules $backend_modules && install_modules $modules \
+		&& wait_for_backend_modules $backend_modules && install_modules_new \
 		&& find_module_authtoken \
 		&& disable_module_for_tenant $authtoken \
 		&& create_admin \
 		&& create_admin_credentials \
 		&& create_admin_permission '"perms.all", "perms.users.item.post", "perms.users.assign.immutable", "perms.users.assign.mutable", "perms.users.assign.okapi"' \
-		&& install_modules $modules \
+		&& install_modules_new \
 		&& login \
 		&& get_permissions \
 		&& assign_permissions $permissions
-- 
GitLab