1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-11-02 06:13:16 +03:00
Files
mariadb-columnstore-engine/cmapi/updater/cmapi_updater.sh
mariadb-AlanMologorsky a76e153a1d feat(upgrade): MCOL-6028 upgrade MVP with repo-managed flow, prechecks, and other enhancements
Implements the initial upgrade capability across CMAPI and the CLI, including
repository setup, package operations, environment prechecks, and coordinated
cluster steps with progress reporting.

Details:
- CMAPI upgrade manager:
  - Add `cmapi/cmapi_server/managers/upgrade/` modules:
    - `repo.py`, `packages.py`, `preinstall.py`, `upgrade.py`, `utils.py` and `__init__.py`
  - Extend endpoints and routing to expose upgrade operations and status:
    - `cmapi_server/controllers/{endpoints.py, dispatcher.py, api_clients.py}`
    - `cmapi_server/managers/{application.py, process.py}`
    - Add improved constants and helpers for upgrade flow
- Backup/restore and safety:
  - Add `cmapi_server/managers/backup_restore.py`
  - Fix pre-upgrade backup regressions (due to `mcs_backup_manager.sh 3.17 changes`)
  - Improve cluster version validation; add `ignore_missmatch` override
- CLI enhancements:
  - Progress UI and richer feedback (`mcs_cluster_tool/tools_commands.py`, `README.md`, `mcs.1`)
  - Add steps to start MDB and start MCS during/after upgrade
  - Improved error surfacing for version validation
- Platform and packaging:
  - Ubuntu and Rocky Linux support
  - RHEL/DNF dry-run support
  - Distro detection and platform-dependent logic hardened
  - Logging improvements
- Updater service:
  - Add `cmapi/updater/cmapi_updater.service.template` and `cmapi_updater.sh` to make CMAPI update itself
- Docs:
  - Update mcs cli README and mcs.1 man file
  - Add `cmapi/updater/README.md`
2025-09-30 18:48:32 +04:00

31 lines
810 B
Bash

#!/bin/bash
set -e
VERSION="${CMAPI_VERSION}"
if [[ -z "$VERSION" ]]; then
echo "[Updater] Error: CMAPI_VERSION is not set"
exit 1
fi
# Wait for a few seconds to allow endpoint to respond
sleep 5s
echo "[CMAPI Updater] Stopping CMAPI service..."
systemctl stop mariadb-columnstore-cmapi
echo "[CMAPI Updater] Removing existing package..."
if command -v apt >/dev/null; then
apt remove -y mariadb-columnstore-cmapi
apt install -y mariadb-columnstore-cmapi=${VERSION}
elif command -v yum >/dev/null; then
yum remove -y MariaDB-columnstore-cmapi
yum install -y MariaDB-columnstore-cmapi-${VERSION}
else
echo "Unsupported package manager"
exit 1
fi
echo "[CMAPI Updater] Restarting CMAPI service..."
systemctl start mariadb-columnstore-cmapi
echo "[CMAPI Updater] Done."
exit 0