From 720083614cc77ddb64ed83cb229b736ef747f20c Mon Sep 17 00:00:00 2001 From: OscarSotoSanchez Date: Mon, 18 May 2020 11:37:43 +0200 Subject: [PATCH] version and report command added in openvidu script --- .../docker-compose.yml | 4 +- .../docker/openvidu-docker-compose/openvidu | 174 +++++++++++++++++- 2 files changed, 169 insertions(+), 9 deletions(-) diff --git a/openvidu-server/docker/openvidu-docker-compose/docker-compose.yml b/openvidu-server/docker/openvidu-docker-compose/docker-compose.yml index 58bec954..fb72eb6a 100644 --- a/openvidu-server/docker/openvidu-docker-compose/docker-compose.yml +++ b/openvidu-server/docker/openvidu-docker-compose/docker-compose.yml @@ -13,6 +13,8 @@ # # Openvidu Version: 2.14.0 # +# Installation Mode: On Premises +# # ------------------------------------------------------------------------------ version: '3.1' @@ -20,7 +22,7 @@ version: '3.1' services: openvidu-server: - image: openvidu/openvidu-server:2.14.1-beta1 + image: openvidu/openvidu-server:2.14.1-beta2 restart: on-failure network_mode: host entrypoint: ['/bin/bash', '-c', 'export COTURN_IP=`/usr/local/bin/discover_my_public_ip.sh`; /usr/local/bin/entrypoint.sh'] diff --git a/openvidu-server/docker/openvidu-docker-compose/openvidu b/openvidu-server/docker/openvidu-docker-compose/openvidu index bf313559..66488c84 100755 --- a/openvidu-server/docker/openvidu-docker-compose/openvidu +++ b/openvidu-server/docker/openvidu-docker-compose/openvidu @@ -19,6 +19,147 @@ upgrade_ov() { fi } +collect_basic_information() { + LINUX_VERSION=$(lsb_release -d) + DOCKER_PS=$(docker ps) + DOCKER_VERSION=$(docker version --format '{{.Server.Version}}') + DOCKER_COMPOSE_VERSION=$(docker-compose version --short) + OV_FOLDER="${PWD}" + OV_VERSION=$(grep 'Openvidu Version:' "${OV_FOLDER}/docker-compose.yml" | awk '{ print $4 }') + + if [ ! -z "$(grep -E '^ image: openvidu/openvidu-call:.*$' "${OV_FOLDER}/docker-compose.override.yml" | tr -d '[:space:]')" ]; then + OV_CALL_VERSION=$(grep -E 'Openvidu-Call Version:' "${OV_FOLDER}/docker-compose.override.yml" | awk '{ print $4 }') + fi + [ -z "${OV_CALL_VERSION}" ] && OV_CALL_VERSION="No present" + + OV_TYPE_INSTALLATION=$(grep 'Installation Mode:' "${OV_FOLDER}/docker-compose.yml" | awk '{ print $4,$5 }') + TREE_OV_DIRECTORY=$(find "." | sed -e "s/[^-][^\/]*\// |/g" -e "s/|\([^ ]\)/|-\1/") +} + +version_ov() { + collect_basic_information + + printf '\nOpenvidu Information:' + printf '\n' + printf '\n Installation Type: %s' "${OV_TYPE_INSTALLATION}" + printf '\n Openvidu Version: %s' "${OV_VERSION}" + printf '\n Openvidu Call Version: %s' "${OV_CALL_VERSION}" + printf '\n' + printf '\nSystem Information:' + printf '\n' + printf '\n Linux Version:' + printf '\n - %s' "${LINUX_VERSION}" + printf '\n Docker Version: %s' "${DOCKER_VERSION}" + printf '\n Docker Compose Version: %s' "${DOCKER_COMPOSE_VERSION}" + printf '\n' + printf '\nInstallation Information:' + printf '\n' + printf '\n Installation Folder: %s' "${OV_FOLDER}" + printf '\n Installation Folder Tree:' + printf '\n%s' "$(echo "${TREE_OV_DIRECTORY}" | sed -e 's/.//' -e ':a' -e 'N;$!ba' -e 's/\n/\n\t/g')" + printf '\n' + printf '\nDocker Running Services:' + printf '\n' + printf '\n %s' "$(echo "${DOCKER_PS}" | sed -e ':a' -e 'N;$!ba' -e 's/\n/\n\t/g')" + printf '\n' +} + +generate_report() { + collect_basic_information + + REPORT_CREATION_DATE=$(date +"%d-%m-%Y") + REPORT_CREATION_TIME=$(date +"%H:%M:%S") + REPORT_NAME="openvidu-report-${REPORT_CREATION_DATE}-$(date +"%H-%M").txt" + REPORT_OUPUT="${OV_FOLDER}/${REPORT_NAME}" + + { + printf "\n =======================================" + printf "\n = REPORT INFORMATION =" + printf "\n =======================================" + printf '\n' + printf '\n Creation Date: %s' "${REPORT_CREATION_DATE}" + printf '\n Creation Time: %s' "${REPORT_CREATION_TIME}" + printf '\n' + printf "\n =======================================" + printf "\n = OPENVIDU INFORMATION =" + printf "\n =======================================" + printf '\n' + printf '\n Installation Type: %s' "${OV_TYPE_INSTALLATION}" + printf '\n Openvidu Version: %s' "${OV_VERSION}" + printf '\n Openvidu Call Version: %s' "${OV_CALL_VERSION}" + printf '\n' + printf "\n =======================================" + printf "\n = SYSTEM INFORMATION =" + printf "\n =======================================" + printf '\n' + printf '\n Linux Version:' + printf '\n - %s' "${LINUX_VERSION}" + printf '\n Docker Version: %s' "${DOCKER_VERSION}" + printf '\n Docker Compose Version: %s' "${DOCKER_COMPOSE_VERSION}" + printf '\n' + printf "\n =======================================" + printf "\n = INSTALLATION INFORMATION =" + printf "\n =======================================" + printf '\n' + printf '\n Installation Folder: %s' "${OV_FOLDER}" + printf '\n Installation Folder Tree:' + printf '\n%s' "$(echo "${TREE_OV_DIRECTORY}" | sed -e 's/.//' -e ':a' -e 'N;$!ba' -e 's/\n/\n\t/g')" + printf '\n' + printf "\n =======================================" + printf "\n = DOCKER RUNNING SERVICES =" + printf "\n =======================================" + printf '\n' + printf '\n %s' "$(echo "${DOCKER_PS}" | sed -e ':a' -e 'N;$!ba' -e 's/\n/\n\t/g')" + printf '\n' + printf "\n =======================================" + printf "\n = CONFIGURATION FILES =" + printf "\n =======================================" + printf '\n' + printf '\n ================ .env =================' + printf '\n' + printf '\n' + + cat < "${OV_FOLDER}/.env" | sed -r -e "s/OPENVIDU_SECRET=.+/OPENVIDU_SECRET=****/" + + printf '\n' + printf '\n ==== docker-compose.override.yml ====' + printf '\n' + printf '\n' + + if [ -f "${OV_FOLDER}/docker-compose.override.yml" ]; then + cat < "${OV_FOLDER}/docker-compose.override.yml" + else + printf '\n The docker-compose.override.yml file is not present' + fi + + printf '\n' + printf '\n' + printf "\n =======================================" + printf "\n = DOCKER LOGS =" + printf "\n =======================================" + printf '\n' + printf '\n ================ PROXY ================' + printf '\n' + printf '\n' + + docker-compose logs nginx + + printf '\n' + printf '\n' + printf '\n =========== OPENVIDU SERVER ============' + printf '\n' + printf '\n' + printf '\n' + + docker-compose logs openvidu-server + + } >> "${REPORT_OUPUT}" + + printf "\n Generation of the report completed with success" + printf "\n You can get your report at path '%s'" "${REPORT_OUPUT}" + printf "\n" +} + usage() { printf "Usage: \n\t openvidu [command]" printf "\n\nAvailable Commands:" @@ -28,12 +169,13 @@ usage() { printf "\n\tlogs\t\t\tShow openvidu-server logs" printf "\n\tupgrade\t\t\tUpgrade to the lastest Openvidu version" printf "\n\tupgrade [version]\tUpgrade to the specific Openvidu version" + printf "\n\tversion\t\t\tShow version of Openvidu Server" + printf "\n\treport\t\t\tGenerate a report with the current status of Openvidu" printf "\n\thelp\t\t\tShow help for openvidu command" printf "\n" } case $1 in - start) docker-compose up -d docker-compose logs -f openvidu-server @@ -61,13 +203,29 @@ case $1 in fi read -r -p " You're about to update Openvidu CE to '${UPGRADE_VERSION}' version. Are you sure? [y/N]: " response - case "$response" in - [yY][eE][sS]|[yY]) - upgrade_ov "${UPGRADE_VERSION}" - ;; - *) - exit 0 - ;; + case "$response" in + [yY][eE][sS]|[yY]) + upgrade_ov "${UPGRADE_VERSION}" + ;; + *) + exit 0 + ;; + esac + ;; + + version) + version_ov + ;; + + report) + read -r -p " You are about to generate a report on the current status of Openvidu, this may take some time. Do you want to continue? [y/N]: " response + case "$response" in + [yY][eE][sS]|[yY]) + generate_report + ;; + *) + exit 0 + ;; esac ;;