Skip to content

Commit a079a2c

Browse files
MCOL-5496: Merge CMAPI code to engine repo.
[add] cmapi code to engine
1 parent 77eedd1 commit a079a2c

File tree

93 files changed

+15218
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

93 files changed

+15218
-0
lines changed

cmapi/.gitignore

+89
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
# Byte-compiled / optimized / DLL files
2+
__pycache__/
3+
*.py[cod]
4+
*$py.class
5+
6+
# C extensions
7+
*.so
8+
9+
# Distribution / packaging
10+
.Python
11+
env/
12+
build/
13+
develop-eggs/
14+
dist/
15+
downloads/
16+
eggs/
17+
.eggs/
18+
lib/
19+
lib64/
20+
parts/
21+
sdist/
22+
var/
23+
*.egg-info/
24+
.installed.cfg
25+
*.egg
26+
27+
# PyInstaller
28+
# Usually these files are written by a python script from a template
29+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
30+
*.manifest
31+
*.spec
32+
33+
# Installer logs
34+
pip-log.txt
35+
pip-delete-this-directory.txt
36+
37+
# Unit test / coverage reports
38+
htmlcov/
39+
.tox/
40+
.coverage
41+
.coverage.*
42+
.cache
43+
nosetests.xml
44+
coverage.xml
45+
*,cover
46+
.hypothesis/
47+
venv/
48+
.python-version
49+
50+
# Translations
51+
*.mo
52+
*.pot
53+
54+
# Django stuff:
55+
*.log
56+
57+
# Sphinx documentation
58+
docs/_build/
59+
60+
# PyBuilder
61+
target/
62+
63+
#Ipython Notebook
64+
.ipynb_checkpoints
65+
66+
*.py.swp
67+
python/
68+
deps/
69+
engine/
70+
cmapi_server/test/tmp.xml
71+
systemd.env
72+
mariadb-columnstore-cmapi.service
73+
prerm
74+
postinst
75+
conffiles
76+
77+
CMakeCache.txt
78+
CMakeFiles
79+
CMakeScripts
80+
Makefile
81+
cmake_install.cmake
82+
install_manifest.txt
83+
*CPack*
84+
*.rpm
85+
*.deb
86+
result
87+
centos8
88+
ubuntu20.04
89+
buildinfo.txt

cmapi/CMakeLists.txt

+107
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
CMAKE_MINIMUM_REQUIRED(VERSION 3.11)
2+
PROJECT(cmapi NONE)
3+
4+
SET(CPACK_PACKAGE_NAME "MariaDB-columnstore-cmapi")
5+
6+
FILE(STRINGS VERSION CRUDE_CMAPI_VERSION_MAJOR REGEX "^CMAPI_VERSION_MAJOR=")
7+
FILE(STRINGS VERSION CRUDE_CMAPI_VERSION_MINOR REGEX "^CMAPI_VERSION_MINOR=")
8+
FILE(STRINGS VERSION CRUDE_CMAPI_VERSION_PATCH REGEX "^CMAPI_VERSION_PATCH=")
9+
STRING(REPLACE "CMAPI_VERSION_MAJOR=" "" CMAPI_VERSION_MAJOR ${CRUDE_CMAPI_VERSION_MAJOR})
10+
STRING(REPLACE "CMAPI_VERSION_MINOR=" "" CMAPI_VERSION_MINOR ${CRUDE_CMAPI_VERSION_MINOR})
11+
STRING(REPLACE "CMAPI_VERSION_PATCH=" "" CMAPI_VERSION_PATCH ${CRUDE_CMAPI_VERSION_PATCH})
12+
SET(PACKAGE_VERSION "${CMAPI_VERSION_MAJOR}.${CMAPI_VERSION_MINOR}.${CMAPI_VERSION_PATCH}")
13+
SET(CMAPI_USER "root")
14+
15+
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "MariaDB ColumnStore CMAPI: cluster management API and command line tool.")
16+
SET(CPACK_PACKAGE_URL "http://www.mariadb.com")
17+
SET(CPACK_PACKAGE_CONTACT "MariaDB Corporation Ab")
18+
SET(CPACK_PACKAGE_SUMMARY "MariaDB ColumnStore CMAPI: cluster management API and command line tool.")
19+
SET(CPACK_PACKAGE_VENDOR "MariaDB Corporation Ab")
20+
SET(CPACK_PACKAGE_LICENSE "Copyright (c) 2023 MariaDB Corporation Ab.; redistributable under the terms of the GPLv2, see the file LICENSE.GPL2 for details.")
21+
22+
SET(BIN_DIR "/usr/bin")
23+
SET(ETC_DIR "/etc/columnstore")
24+
SET(SHARE_DIR "/usr/share/columnstore")
25+
SET(CMAPI_DIR "${SHARE_DIR}/cmapi")
26+
SET(SYSTEMD_UNIT_DIR "/usr/lib/systemd/system")
27+
SET(SYSTEMD_ENGINE_UNIT_NAME "mariadb-columnstore")
28+
SET(CMAPI_CONF_FILEPATH "${ETC_DIR}/cmapi_server.conf")
29+
30+
STRING(TOLOWER ${CPACK_PACKAGE_NAME} SYSTEMD_UNIT_NAME)
31+
32+
CONFIGURE_FILE(service.template ${SYSTEMD_UNIT_NAME}.service)
33+
CONFIGURE_FILE(systemd.env.template systemd.env)
34+
CONFIGURE_FILE(postinst.template postinst)
35+
CONFIGURE_FILE(prerm.template prerm)
36+
CONFIGURE_FILE(conffiles.template conffiles)
37+
CONFIGURE_FILE(mcs.template mcs)
38+
39+
INSTALL(DIRECTORY python deps mcs_node_control failover cmapi_server engine_files mcs_cluster_tool
40+
DESTINATION ${CMAPI_DIR}
41+
USE_SOURCE_PERMISSIONS
42+
PATTERN "test" EXCLUDE
43+
PATTERN "cmapi_server.conf" EXCLUDE)
44+
INSTALL(FILES LICENSE.GPL2 VERSION
45+
DESTINATION ${CMAPI_DIR})
46+
INSTALL(FILES check_ready.sh
47+
PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
48+
DESTINATION ${CMAPI_DIR})
49+
INSTALL(FILES cmapi_server/cmapi_server.conf systemd.env
50+
DESTINATION ${ETC_DIR})
51+
INSTALL(FILES ${SYSTEMD_UNIT_NAME}.service
52+
DESTINATION ${SYSTEMD_UNIT_DIR})
53+
INSTALL(FILES mcs
54+
PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
55+
DESTINATION ${BIN_DIR})
56+
57+
OPTION(RPM "Build an RPM" OFF)
58+
IF(RPM)
59+
SET(CPACK_GENERATOR "RPM")
60+
61+
SET(CPACK_RPM_PACKAGE_VERSION ${PACKAGE_VERSION})
62+
SET(CPACK_RPM_PACKAGE_NAME ${CPACK_PACKAGE_NAME})
63+
64+
SET(CPACK_RPM_PACKAGE_LICENSE "GPLv2")
65+
SET(CPACK_RPM_PACKAGE_GROUP "Applications/Databases")
66+
SET(CPACK_RPM_PACKAGE_URL ${CPACK_PACKAGE_URL})
67+
SET(CPACK_RPM_PACKAGE_SUMMARY ${CPACK_PACKAGE_SUMMARY})
68+
SET(CPACK_RPM_PACKAGE_VENDOR ${CPACK_PACKAGE_VENDOR})
69+
SET(CPACK_RPM_PACKAGE_LICENSE ${CPACK_PACKAGE_LICENSE})
70+
SET(CPACK_RPM_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION_SUMMARY})
71+
72+
SET(CPACK_RPM_SPEC_MORE_DEFINE "%undefine __brp_mangle_shebangs")
73+
SET(CPACK_RPM_PACKAGE_AUTOREQ "no")
74+
75+
SET(CPACK_RPM_POST_INSTALL_SCRIPT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/postinst)
76+
SET(CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/prerm)
77+
SET(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION ${ETC_DIR} ${SHARE_DIR})
78+
SET(CPACK_RPM_USER_FILELIST "%config(noreplace) ${CMAPI_CONF_FILEPATH}")
79+
80+
SET(CPACK_RPM_PACKAGE_OBSOLETES "mariadb-columnstore-cmapi")
81+
SET(CPACK_DEBIAN_PACKAGE_DEPENDS "curl")
82+
ENDIF()
83+
84+
OPTION(DEB "Build a DEB" OFF)
85+
IF(DEB)
86+
87+
SET(CPACK_GENERATOR "DEB")
88+
89+
SET(CPACK_DEBIAN_PACKAGE_VERSION ${PACKAGE_VERSION})
90+
# TODO: different names in deb and rpm packages, fix it in next releases.
91+
STRING(TOLOWER ${CPACK_PACKAGE_NAME} CPACK_DEBIAN_PACKAGE_NAME)
92+
STRING(TOLOWER ${CPACK_PACKAGE_NAME} CPACK_PACKAGE_NAME)
93+
SET(CPACK_DEBIAN_PACKAGE_LICENSE "GPLv2")
94+
SET(CPACK_DEBIAN_PACKAGE_URL ${CPACK_PACKAGE_URL})
95+
SET(CPACK_DEBIAN_PACKAGE_SUMMARY ${CPACK_PACKAGE_SUMMARY})
96+
SET(CPACK_DEBIAN_PACKAGE_VENDOR ${CPACK_PACKAGE_VENDOR})
97+
SET(CPACK_DEBIAN_PACKAGE_LICENSE ${CPACK_PACKAGE_LICENSE})
98+
SET(CPACK_DEBIAN_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION_SUMMARY})
99+
100+
SET(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_SOURCE_DIR}/prerm;${CMAKE_CURRENT_SOURCE_DIR}/postinst;${CMAKE_CURRENT_SOURCE_DIR}/conffiles")
101+
102+
SET(CPACK_DEBIAN_PACKAGE_REPLACES "mariadb-columnstore-cmapi")
103+
SET(CPACK_RPM_PACKAGE_REQUIRES "curl")
104+
ENDIF()
105+
106+
SET(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${PACKAGE_VERSION}.${CMAKE_HOST_SYSTEM_PROCESSOR}")
107+
INCLUDE (CPack)

0 commit comments

Comments
 (0)