Refactoring the script for running OCI tests (#275)

This commit is contained in:
Evgeniy Antonyuk 2024-07-05 18:22:41 +03:00 committed by GitHub
parent 9c85615a6c
commit 4cbb9f028c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 58 additions and 186 deletions

View File

@ -15,6 +15,7 @@ Vagrant.configure("2") do |config|
config.vm.provision "file", source: "../../../DocSpace-buildtools/install/OneClickInstall/.", destination: "/tmp/docspace/" config.vm.provision "file", source: "../../../DocSpace-buildtools/install/OneClickInstall/.", destination: "/tmp/docspace/"
end end
config.vm.provision "file", source: "../../../DocSpace-buildtools/install/common/systemd/build.sh", destination: "/tmp/docspace/build.sh"
config.vm.provision "shell", path: './install.sh', :args => "#{ENV['DOWNLOAD_SCRIPT']} #{ENV['TEST_REPO']} #{ENV['ARGUMENTS']}" config.vm.provision "shell", path: './install.sh', :args => "#{ENV['DOWNLOAD_SCRIPT']} #{ENV['TEST_REPO']} #{ENV['ARGUMENTS']}"
# Prevent SharedFoldersEnableSymlinksCreate errors # Prevent SharedFoldersEnableSymlinksCreate errors

View File

@ -1,10 +1,9 @@
#!/bin/bash #!/bin/bash
set -ex set -e
while [ "$1" != "" ]; do while [ "$1" != "" ]; do
case $1 in case $1 in
-ds | --download-scripts ) -ds | --download-scripts )
if [ "$2" != "" ]; then if [ "$2" != "" ]; then
DOWNLOAD_SCRIPTS=$2 DOWNLOAD_SCRIPTS=$2
@ -19,14 +18,6 @@ while [ "$1" != "" ]; do
fi fi
;; ;;
-pi | --production-install )
if [ "$2" != "" ]; then
PRODUCTION_INSTALL=$2
shift
fi
;;
-li | --local-install ) -li | --local-install )
if [ "$2" != "" ]; then if [ "$2" != "" ]; then
LOCAL_INSTALL=$2 LOCAL_INSTALL=$2
@ -34,58 +25,21 @@ while [ "$1" != "" ]; do
fi fi
;; ;;
-lu | --local-update )
if [ "$2" != "" ]; then
LOCAL_UPDATE=$2
shift
fi
;;
-tr | --test-repo ) -tr | --test-repo )
if [ "$2" != "" ]; then if [ "$2" != "" ]; then
TEST_REPO_ENABLE=$2 TEST_REPO_ENABLE=$2
shift shift
fi fi
;; ;;
esac esac
shift shift
done done
export TERM=xterm-256color^M export TERM=xterm-256color^M
SERVICES_SYSTEMD=(
"docspace-api.service"
"docspace-doceditor.service"
"docspace-studio-notify.service"
"docspace-files.service"
"docspace-notify.service"
"docspace-studio.service"
"docspace-backup-background.service"
"docspace-files-services.service"
"docspace-people-server.service"
"docspace-backup.service"
"docspace-healthchecks.service"
"docspace-socket.service"
"docspace-clear-events.service"
"docspace-login.service"
"docspace-ssoauth.service"
"ds-converter.service"
"ds-docservice.service"
"ds-metrics.service")
function common::get_colors() { function common::get_colors() {
COLOR_BLUE=$'\e[34m' export LINE_SEPARATOR="-----------------------------------------"
COLOR_GREEN=$'\e[32m' export COLOR_BLUE=$'\e[34m' COLOR_GREEN=$'\e[32m' COLOR_RED=$'\e[31m' COLOR_RESET=$'\e[0m' COLOR_YELLOW=$'\e[33m'
COLOR_RED=$'\e[31m'
COLOR_RESET=$'\e[0m'
COLOR_YELLOW=$'\e[33m'
export COLOR_BLUE
export COLOR_GREEN
export COLOR_RED
export COLOR_RESET
export COLOR_YELLOW
} }
############################################################################################# #############################################################################################
@ -98,13 +52,10 @@ function common::get_colors() {
# None # None
############################################################################################# #############################################################################################
function check_hw() { function check_hw() {
local FREE_RAM=$(free -h) echo "${COLOR_RED} $(free -h) ${COLOR_RESET}"
local FREE_CPU=$(nproc) echo "${COLOR_RED} $(nproc) ${COLOR_RESET}"
echo "${COLOR_RED} ${FREE_RAM} ${COLOR_RESET}"
echo "${COLOR_RED} ${FREE_CPU} ${COLOR_RESET}"
} }
############################################################################################# #############################################################################################
# Add nexus repositories for test packages for .deb and .rpm packages # Add nexus repositories for test packages for .deb and .rpm packages
# Globals: None # Globals: None
@ -149,12 +100,8 @@ function prepare_vm() {
;; ;;
debian) debian)
if [ "$VERSION_CODENAME" == "bookworm" ]; then [ "$VERSION_CODENAME" == "bookworm" ] && apt-get update -y && apt install -y curl gnupg
apt-get update -y apt-get remove postfix -y && echo "${COLOR_GREEN}☑ PREPAVE_VM: Postfix was removed${COLOR_RESET}"
apt install -y curl gnupg
fi
apt-get remove postfix -y
echo "${COLOR_GREEN}☑ PREPAVE_VM: Postfix was removed${COLOR_RESET}"
[[ "${TEST_REPO_ENABLE}" == 'true' ]] && add-repo-deb [[ "${TEST_REPO_ENABLE}" == 'true' ]] && add-repo-deb
;; ;;
@ -163,10 +110,7 @@ function prepare_vm() {
;; ;;
centos) centos)
if [ "$VERSION_ID" == "9" ]; then [ "$VERSION_ID" == "8" ] && sed -i 's|^mirrorlist=|#&|; s|^#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|' /etc/yum.repos.d/CentOS-*
update-crypto-policies --set LEGACY
echo "${COLOR_GREEN}☑ PREPAVE_VM: sha1 gpg key chek enabled${COLOR_RESET}"
fi
[[ "${TEST_REPO_ENABLE}" == 'true' ]] && add-repo-rpm [[ "${TEST_REPO_ENABLE}" == 'true' ]] && add-repo-rpm
yum -y install centos*-release yum -y install centos*-release
;; ;;
@ -175,21 +119,16 @@ function prepare_vm() {
echo "${COLOR_RED}Failed to determine Linux dist${COLOR_RESET}"; exit 1 echo "${COLOR_RED}Failed to determine Linux dist${COLOR_RESET}"; exit 1
;; ;;
esac esac
else else
echo "${COLOR_RED}File /etc/os-release doesn't exist${COLOR_RESET}"; exit 1 echo "${COLOR_RED}File /etc/os-release doesn't exist${COLOR_RESET}"; exit 1
fi fi
# Clean up home folder # Clean up home folder
rm -rf /home/vagrant/* rm -rf /home/vagrant/*
[ -d /tmp/docspace ] && mv /tmp/docspace/* /home/vagrant
if [ -d /tmp/docspace ]; then
mv /tmp/docspace/* /home/vagrant
fi
echo '127.0.0.1 host4test' | sudo tee -a /etc/hosts echo '127.0.0.1 host4test' | sudo tee -a /etc/hosts
echo "${COLOR_GREEN}☑ PREPAVE_VM: Hostname was setting up${COLOR_RESET}" echo "${COLOR_GREEN}☑ PREPAVE_VM: Hostname was setting up${COLOR_RESET}"
} }
############################################################################################# #############################################################################################
@ -202,34 +141,23 @@ function prepare_vm() {
# Script log # Script log
############################################################################################# #############################################################################################
function install_docspace() { function install_docspace() {
if [ "${DOWNLOAD_SCRIPTS}" == 'true' ]; then [[ "${DOWNLOAD_SCRIPTS}" == 'true' ]] && wget https://download.onlyoffice.com/docspace/docspace-install.sh || sed 's/set -e/set -xe/' -i *.sh
wget https://download.onlyoffice.com/docspace/docspace-install.sh bash docspace-install.sh package ${ARGUMENTS} || { echo "Exit code non-zero. Exit with 1."; exit 1; }
else
sed 's/set -e/set -xe/' -i *.sh
fi
printf "N\nY\nY" | bash docspace-install.sh ${ARGUMENTS}
if [[ $? != 0 ]]; then
echo "Exit code non-zero. Exit with 1."
exit 1
else
echo "Exit code 0. Continue..." echo "Exit code 0. Continue..."
fi
} }
############################################################################################# #############################################################################################
# Healthcheck function for systemd services # Healthcheck function for systemd services
# Globals: # Globals:
# SERVICES_SYSTEMD # None
# Arguments: # Arguments:
# None # None
# Outputs: # Outputs:
# Message about service status # Message about service status
############################################################################################# #############################################################################################
function healthcheck_systemd_services() { function healthcheck_systemd_services() {
for service in ${SERVICES_SYSTEMD[@]} for service in ${SERVICES_SYSTEMD[@]}; do
do [[ "$service" == "docspace-migration-runner.service" ]] && continue;
if systemctl is-active --quiet ${service}; then if systemctl is-active --quiet ${service}; then
echo "${COLOR_GREEN}☑ OK: Service ${service} is running${COLOR_RESET}" echo "${COLOR_GREEN}☑ OK: Service ${service} is running${COLOR_RESET}"
else else
@ -239,7 +167,6 @@ function healthcheck_systemd_services() {
done done
} }
############################################################################################# #############################################################################################
# Set output if some services failed # Set output if some services failed
# Globals: # Globals:
@ -261,7 +188,7 @@ function healthcheck_general_status() {
############################################################################################# #############################################################################################
# Get logs for all services # Get logs for all services
# Globals: # Globals:
# $SERVICES_SYSTEMD # None
# Arguments: # Arguments:
# None # None
# Outputs: # Outputs:
@ -272,83 +199,27 @@ function healthcheck_general_status() {
# This function succeeds even if the file for cat was not found. For that use ${SKIP_EXIT} variable # This function succeeds even if the file for cat was not found. For that use ${SKIP_EXIT} variable
############################################################################################# #############################################################################################
function services_logs() { function services_logs() {
SERVICES_SYSTEMD=($(awk '/SERVICE_NAME=\(/{flag=1; next} /\)/{flag=0} flag' "build.sh" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//' | sed 's/^/docspace-/' | sed 's/$/.service/'))
SERVICES_SYSTEMD+=("ds-converter.service" "ds-docservice.service" "ds-metrics.service")
for service in ${SERVICES_SYSTEMD[@]}; do for service in ${SERVICES_SYSTEMD[@]}; do
echo ----------------------------------------- echo $LINE_SEPARATOR && echo "${COLOR_GREEN}Check logs for systemd service: $service${COLOR_RESET}" && echo $LINE_SEPARATOR
echo "${COLOR_GREEN}Check logs for systemd service: $service${COLOR_RESET}" journalctl -u $service -n 30 || true
echo ---------------------- -------------------
EXIT_CODE=0
journalctl -u $service || true
done done
local MAIN_LOGS_DIR="/var/log/onlyoffice" local DOCSPACE_LOGS_DIR="/var/log/onlyoffice/docspace"
local DOCSPACE_LOGS_DIR="${MAIN_LOGS_DIR}/docspace" local DOCUMENTSERVER_LOGS_DIR="/var/log/onlyoffice/documentserver"
local DOCUMENTSERVER_LOGS_DIR="${MAIN_LOGS_DIR}/documentserver"
local DOCSERVICE_LOGS_DIR="${DOCUMENTSERVER_LOGS_DIR}/docservice"
local CONVERTER_LOGS_DIR="${DOCUMENTSERVER_LOGS_DIR}/converter"
local METRICS_LOGS_DIR="${DOCUMENTSERVER_LOGS_DIR}/metrics"
ARRAY_MAIN_SERVICES_LOGS=($(ls ${MAIN_LOGS_DIR} | grep log | sed 's/web.sql.log//;s/web.api.log//;s/nginx.*//' )) for LOGS_DIR in "${DOCSPACE_LOGS_DIR}" "${DOCUMENTSERVER_LOGS_DIR}"; do
ARRAY_DOCSPACE_LOGS=($(ls ${DOCSPACE_LOGS_DIR})) echo $LINE_SEPARATOR && echo "${COLOR_YELLOW}Check logs for $(basename "${LOGS_DIR}"| tr '[:lower:]' '[:upper:]') ${COLOR_RESET}" && echo $LINE_SEPARATOR
ARRAY_DOCSERVICE_LOGS=($(ls ${DOCSERVICE_LOGS_DIR}))
ARRAY_CONVERTER_LOGS=($(ls ${CONVERTER_LOGS_DIR}))
ARRAY_METRICS_LOGS=($(ls ${METRICS_LOGS_DIR}))
echo "-----------------------------------" find "${LOGS_DIR}" -type f -name "*.log" ! -name "*sql*" ! -name "*nginx*" | while read -r FILE; do
echo "${COLOR_YELLOW} Check logs for main services ${COLOR_RESET}" echo $LINE_SEPARATOR && echo "${COLOR_GREEN}Logs from file: ${FILE}${COLOR_RESET}" && echo $LINE_SEPARATOR
echo "-----------------------------------" tail -30 "${FILE}" || true
for file in ${ARRAY_MAIN_SERVICES_LOGS[@]}; do
echo ---------------------------------------
echo "${COLOR_GREEN}logs from file: ${file}${COLOR_RESET}"
echo ---------------------------------------
cat ${MAIN_LOGS_DIR}/${file} || true
done done
echo "-----------------------------------"
echo "${COLOR_YELLOW} Check logs for Docservice ${COLOR_RESET}"
echo "-----------------------------------"
for file in ${ARRAY_DOCSERVICE_LOGS[@]}; do
echo ---------------------------------------
echo "${COLOR_GREEN}logs from file: ${file}${COLOR_RESET}"
echo ---------------------------------------
cat ${DOCSERVICE_LOGS_DIR}/${file} || true
done
echo "-----------------------------------"
echo "${COLOR_YELLOW} Check logs for Converter ${COLOR_RESET}"
echo "-----------------------------------"
for file in ${ARRAY_CONVERTER_LOGS[@]}; do
echo ---------------------------------------
echo "${COLOR_GREEN}logs from file ${file}${COLOR_RESET}"
echo ---------------------------------------
cat ${CONVERTER_LOGS_DIR}/${file} || true
done
echo "-----------------------------------"
echo "${COLOR_YELLOW} Start logs for Metrics ${COLOR_RESET}"
echo "-----------------------------------"
for file in ${ARRAY_METRICS_LOGS[@]}; do
echo ---------------------------------------
echo "${COLOR_GREEN}logs from file ${file}${COLOR_RESET}"
echo ---------------------------------------
cat ${METRICS_LOGS_DIR}/${file} || true
done
echo "-----------------------------------"
echo "${COLOR_YELLOW} Start logs for DocSpace ${COLOR_RESET}"
echo "-----------------------------------"
for file in ${ARRAY_DOCSPACE_LOGS[@]}; do
echo ---------------------------------------
echo "${COLOR_GREEN}logs from file ${file}${COLOR_RESET}"
echo ---------------------------------------
cat ${DOCSPACE_LOGS_DIR}/${file} || true
done done
} }
function healthcheck_docker_installation() {
exit 0
}
main() { main() {
common::get_colors common::get_colors
prepare_vm prepare_vm