From 316d943d392bebf0aea56bbb56597608eb055e1f Mon Sep 17 00:00:00 2001 From: Mustafa Baser Date: Fri, 31 Dec 2021 21:43:06 +0300 Subject: [PATCH] feat: install admin-ui frontend --- install.py | 6 ++++-- setup_app/installers/config_api.py | 26 ++++++++++++++++++++++---- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/install.py b/install.py index 1014c025a78..fce0803b989 100644 --- a/install.py +++ b/install.py @@ -25,8 +25,8 @@ "JYTHON_VERSION": "2.7.3", "OPENDJ_VERSION": "4.4.12", "SETUP_BRANCH": "master", - "ADMIN_UI_FRONTEND_BRANCH": "master", - "NODE_VERSION": "v14.16.1" + "ADMIN_UI_FRONTEND_BRANCH": "main", + "NODE_VERSION": "v14.18.2" } jans_dir = '/opt/jans' @@ -157,6 +157,8 @@ def download_gcs(): download(urljoin(maven_base_url, 'admin-ui-plugin/{0}{1}/admin-ui-plugin-{0}{1}-distribution.jar'.format(app_versions['JANS_APP_VERSION'], app_versions['JANS_BUILD'])), os.path.join(jans_app_dir, 'admin-ui-plugin-distribution.jar')) download('https://raw.githubusercontent.com/JanssenProject/jans-config-api/master/server/src/main/resources/log4j2.xml', os.path.join(jans_app_dir, 'log4j2.xml')) download('https://raw.githubusercontent.com/JanssenProject/jans-config-api/master/plugins/admin-ui-plugin/config/log4j2-adminui.xml', os.path.join(jans_app_dir, 'log4j2-adminui.xml')) + download('https://github.com/GluuFederation/gluu-admin-ui/archive/refs/heads/{}.zip'.format(app_versions['ADMIN_UI_FRONTEND_BRANCH']), os.path.join(jans_app_dir, 'gluu-admin-ui.zip')) + if argsp.profile == 'jans': download('https://maven.gluu.org/maven/org/gluufederation/opendj/opendj-server-legacy/{0}/opendj-server-legacy-{0}.zip'.format(app_versions['OPENDJ_VERSION']), os.path.join(app_dir, 'opendj-server-legacy-{0}.zip'.format(app_versions['OPENDJ_VERSION']))) diff --git a/setup_app/installers/config_api.py b/setup_app/installers/config_api.py index 7b917d903df..0828c9d5b63 100644 --- a/setup_app/installers/config_api.py +++ b/setup_app/installers/config_api.py @@ -5,7 +5,7 @@ import ruamel.yaml import base64 import shutil - +import zipfile from string import Template from setup_app import paths @@ -46,11 +46,9 @@ def __init__(self): (os.path.join(Config.distJansFolder, 'admin-ui-plugin-distribution.jar'), 'https://maven.jans.io/maven/io/jans/admin-ui-plugin/{0}/admin-ui-plugin-{0}-distribution.jar'.format(Config.oxVersion)), (os.path.join(Config.distJansFolder, 'log4j2.xml'), 'https://raw.githubusercontent.com/JanssenProject/jans-config-api/master/server/src/main/resources/log4j2.xml'), (os.path.join(Config.distJansFolder, 'log4j2-adminui.xml'), 'https://raw.githubusercontent.com/JanssenProject/jans-config-api/master/plugins/admin-ui-plugin/config/log4j2-adminui.xml'), + (os.path.join(Config.distJansFolder, 'gluu-admin-ui.zip'), 'https://github.com/GluuFederation/gluu-admin-ui/archive/refs/heads/main.zip'), ] - - - def install(self): self.installJettyService(self.jetty_app_configuration[self.service_name], True) self.logIt("Copying fido.war into jetty webapps folder...") @@ -60,6 +58,7 @@ def install(self): self.copyFile(self.source_files[1][0], self.libDir) scim_plugin_path = os.path.join(self.libDir, os.path.basename(self.source_files[1][0])) self.add_extra_class(scim_plugin_path) + self.install_admin_ui_frontend() self.enable() def installed(self): @@ -256,3 +255,22 @@ def service_post_setup(self): for logfn in (self.source_files[3][0], self.source_files[4][0]): self.copyFile(logfn, self.custom_config_dir) + + + def install_admin_ui_frontend(self): + package_zip = zipfile.ZipFile(self.source_files[5][0], "r") + package_par_dir = package_zip.namelist()[0] + source_dir = os.path.join(Config.outputFolder, package_par_dir) + package_zip.extractall(Config.outputFolder) + + self.renderTemplateInOut(os.path.join(source_dir, '.env.tmp'), source_dir, source_dir) + self.copyFile(os.path.join(source_dir, '.env.tmp'), os.path.join(source_dir, '.env')) + self.run([paths.cmd_chown, '-R', 'node:node', source_dir]) + cmd_path = 'PATH=$PATH:{}/bin:{}/bin'.format(Config.jre_home, Config.node_home) + + for cmd in ('npm install @openapitools/openapi-generator-cli', 'npm run api', 'npm install', 'npm run build:prod'): + self.logIt("Executing command `{}`".format(cmd), pbar=self.service_name) + run_cmd = '{} {}'.format(cmd_path, cmd) + self.run(['/bin/su', 'node','-c', run_cmd], source_dir) + + self.run(['cp', '-r', '-f', os.path.join(source_dir, 'dist'), '/var/www/html/admin'])