#!/bin/bash -ex SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" DASHBOARD_FRONTEND_DIR=${SCRIPT_DIR}/../../../src/pybind/mgr/dashboard/frontend [ -z "$SUDO" ] && SUDO=sudo install_common () { if grep -q debian /etc/*-release; then $SUDO apt-get update $SUDO apt-get install -y jq npm elif grep -q rhel /etc/*-release; then $SUDO yum install -y jq npm else echo "Unsupported distribution." exit 1 fi } install_chrome () { if grep -q debian /etc/*-release; then $SUDO bash -c 'echo "deb [arch=amd64] https://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google-chrome.list' curl -fsSL https://dl.google.com/linux/linux_signing_key.pub | $SUDO apt-key add - $SUDO apt-get update $SUDO apt-get install -y google-chrome-stable $SUDO apt-get install -y xvfb $SUDO rm /etc/apt/sources.list.d/google-chrome.list elif grep -q rhel /etc/*-release; then $SUDO dd of=/etc/yum.repos.d/google-chrome.repo status=none < "${DASHBOARD_ADMIN_SECRET_FILE}" ceph dashboard ac-user-set-password admin -i "${DASHBOARD_ADMIN_SECRET_FILE}" --force-password # Run Dashboard e2e tests. # These tests are designed with execution order in mind, since orchestrator operations # are likely to change cluster state, we can't just run tests in arbitrarily order. # See /ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/orchestrator/ folder. find cypress # List all specs cypress_run "orchestrator/01-hosts.e2e-spec.ts" # Hosts are removed and added in the previous step. Do a refresh again. ceph orch device ls --refresh sleep 10 ceph orch device ls --format=json | tee cypress/fixtures/orchestrator/inventory.json cypress_run "orchestrator/02-hosts-inventory.e2e-spec.ts" cypress_run "orchestrator/03-inventory.e2e-spec.ts" cypress_run "orchestrator/04-osds.e2e-spec.ts" 300000