From 1398cf20d6c40f46a38f61d83fcfca19025b190d Mon Sep 17 00:00:00 2001 From: Roman Nozdrin Date: Wed, 17 Jun 2020 11:41:20 +0000 Subject: [PATCH] MCS server python code uses python3 by default in (RHEL|Centos)8, (Suse|SLES)15 and Fedora whilst other distributions use default python interpreter. RPM now restarts MDB on uninstall. systemd logs a message if SM is not configured. --- .gitignore | 2 ++ build/postUn_storage_engine.sh | 31 +++++++++++++++++++ cmake/cpackEngineRPM.cmake | 1 + oam/install_scripts/CMakeLists.txt | 2 +- .../mcs-start-storagemanager.py.in | 2 ++ 5 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 build/postUn_storage_engine.sh diff --git a/.gitignore b/.gitignore index 2da248da3..8c48084c0 100644 --- a/.gitignore +++ b/.gitignore @@ -148,6 +148,8 @@ oam/install_scripts/mcs-writeengineserver.service oam/install_scripts/mcs-storagemanager.service oam/install_scripts/mcs_module_installer.sh oam/install_scripts/slave-rep-columnstore.sh +oam/install_scripts/mcs-loadbrm.py +oam/install_scripts/mcs-start-storagemanager.py oam/install_scripts/startupTests.sh oam/post/mcstest-001.sh oam/post/mcstest-002.sh diff --git a/build/postUn_storage_engine.sh b/build/postUn_storage_engine.sh new file mode 100644 index 000000000..99564f249 --- /dev/null +++ b/build/postUn_storage_engine.sh @@ -0,0 +1,31 @@ +running_systemd() { + if [ "$(ps --no-headers -o comm 1)" = "systemd" ]; then + echo 0 + else + echo 1 + fi +} + +rpmmode=upgrade +if [ "$1" -eq "$1" 2> /dev/null ]; then + if [ $1 -ne 1 ]; then + rpmmode=erase + fi +else + rpmmode=erase +fi + +if [ $rpmmode = erase ]; then + if [ ! -z "$(pgrep -x mysqld)" ];then + systemctl cat mariadb.service > /dev/null 2>&1 + if [ $? -eq 0 ] && [ $(running_systemd) -eq 0 ]; then + systemctl restart mariadb.service > /dev/null 2>&1 + else + pkill mysqld > /dev/null 2>&1 + /usr/bin/mysqld_safe & + fi + fi +fi + +exit 0 + diff --git a/cmake/cpackEngineRPM.cmake b/cmake/cpackEngineRPM.cmake index c624143a3..913d9f584 100644 --- a/cmake/cpackEngineRPM.cmake +++ b/cmake/cpackEngineRPM.cmake @@ -89,6 +89,7 @@ endif() SET(CPACK_RPM_columnstore-engine_PRE_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/build/preInstall_storage_engine.sh) SET(CPACK_RPM_columnstore-engine_POST_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/build/postInstall_storage_engine.sh) SET(CPACK_RPM_columnstore-engine_PRE_UNINSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/build/preUn_storage_engine.sh) +SET(CPACK_RPM_columnstore-engine_POST_UNINSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/build/postUn_storage_engine.sh) SET(CPACK_RPM_SPEC_MORE_DEFINE "${CPACK_RPM_SPEC_MORE_DEFINE} %define ignore \# diff --git a/oam/install_scripts/CMakeLists.txt b/oam/install_scripts/CMakeLists.txt index 6e185b79f..17ad87c9b 100644 --- a/oam/install_scripts/CMakeLists.txt +++ b/oam/install_scripts/CMakeLists.txt @@ -23,7 +23,7 @@ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/mcs-loadbrm.service.in" "${CMAKE_CUR configure_file("${CMAKE_CURRENT_SOURCE_DIR}/mcs-storagemanager.service.in" "${CMAKE_CURRENT_SOURCE_DIR}/mcs-storagemanager.service" @ONLY) configure_file("${CMAKE_CURRENT_SOURCE_DIR}/mcs-stop-controllernode.sh.in" "${CMAKE_CURRENT_SOURCE_DIR}/mcs-stop-controllernode.sh" @ONLY) -IF(RPM MATCHES "(rhel|centos)8") +IF(RPM MATCHES "(rhel|centos)8|(sles|suse)15|fedora") SET(PYTHON_SHEBANG "#!/usr/bin/env python3") ELSE() SET(PYTHON_SHEBANG "#!/usr/bin/env python") diff --git a/oam/install_scripts/mcs-start-storagemanager.py.in b/oam/install_scripts/mcs-start-storagemanager.py.in index 160a45ea5..d6d1b2a62 100644 --- a/oam/install_scripts/mcs-start-storagemanager.py.in +++ b/oam/install_scripts/mcs-start-storagemanager.py.in @@ -29,5 +29,7 @@ if __name__ == '__main__': if storage.lower() == 's3' and not bucket.lower() == 'some_bucket': + print("Using S3 storage.") sys.exit(0) + print("S3 storage has not been set up for MariaDB ColumnStore. StorageManager service fails to start.") sys.exit(1)