commit 1e242024ee7a547943355b11398c686c52cf4c98 from: Sergey Bronnikov date: Thu May 04 10:26:48 2023 UTC lua: embed conf module tarantool/conf [1] is a Lua module for configuring tarantool instance. Proposed patch embeds conf module to tarantool and adds regression tests for conf module. 1. https://github.com/tarantool/conf Part of #8613 @TarantoolBot document Title: embedded conf module Now tarantool has a conf module on its board. conf is a Lua module which is widely used by Tarantool users for configuration clusters with Tarantool instances. commit - 52f6ed4d768614b02d5c132c661adf408c239d7e commit + 1e242024ee7a547943355b11398c686c52cf4c98 blob - 0ea146c554f9d2f6ae0d618f5de6c2dd26d7997c blob + 4388b6ae42ba7e473c11071e9135138504a4b262 --- .gitmodules +++ .gitmodules @@ -69,3 +69,6 @@ [submodule "third_party/metrics"] path = third_party/metrics url = https://github.com/tarantool/metrics.git +[submodule "conf"] + path = src/lua/conf + url = https://github.com/tarantool/conf blob - 93892bae56794721d05f5d900b219fc0c5e64a7a blob + 161ad18e267c59b919068416347beba7ddd4cb71 --- debian/copyright +++ debian/copyright @@ -392,6 +392,10 @@ License: MIT Files: third_party/metrics/* Copyright: 2018-2023 Tarantool License: MIT + +Files: src/lua/conf/* +Copyright: 2023 Tarantool +License: BSD-2-Clause License: BSD-2-Clause Redistribution and use in source and binary forms, with or without blob - bfa2ba999c9bbcb8afdfb113fef6266e1d11e17d blob + 0c63213f74bc0fe50c3b1b81ce4630a577537f8c --- src/CMakeLists.txt +++ src/CMakeLists.txt @@ -90,7 +90,19 @@ if (ENABLE_ETCD_CLIENT) lua_source(lua_sources ${ETCD_CLIENT_DIR}/etcd-client/utils.lua etcd_client_utils_lua) lua_source(lua_sources ${ETCD_CLIENT_DIR}/etcd-client/version.lua etcd_client_version_lua) endif() - +lua_source(lua_sources lua/conf/conf/cluster_config.lua cluster_config_lua) +lua_source(lua_sources lua/conf/conf/conf_section_config.lua conf_section_config_lua) +lua_source(lua_sources lua/conf/conf/conf_section_credentials.lua conf_section_credentials_lua) +lua_source(lua_sources lua/conf/conf/conf_template.lua conf_template_lua) +lua_source(lua_sources lua/conf/conf/helpers.lua conf_helpers_lua) +lua_source(lua_sources lua/conf/conf/init.lua conf_init_lua) +lua_source(lua_sources lua/conf/conf/instance_config.lua conf_instance_config_lua) +lua_source(lua_sources lua/conf/conf/instance.lua conf_instance_lua) +lua_source(lua_sources lua/conf/conf/instance_state.lua conf_instance_state_lua) +lua_source(lua_sources lua/conf/conf/mainloop.lua conf_mainloop_lua) +lua_source(lua_sources lua/conf/conf/utils/schema.lua conf_utils_schema_lua) +lua_source(lua_sources lua/conf/conf/source/env.lua conf_source_env_lua) +lua_source(lua_sources lua/conf/conf/source/yaml_file.lua conf_source_yaml_file_lua) # 3rd party lua sources lua_source(lua_sources ../third_party/luafun/fun.lua fun_lua) lua_source(lua_sources ../third_party/lua/luadebug.lua luadebug_lua) blob - df19ecdf69bd8f2e2c08a1fc39c526542a721568 blob + 5148475d6d7ab1a8d3b717c9bb47618e4c40bdaa --- src/box/lua/init.c +++ src/box/lua/init.c @@ -172,7 +172,20 @@ extern char session_lua[], metrics_tarantool_vinyl_lua[], metrics_tarantool_lua[], metrics_utils_lua[], - metrics_version_lua[]; + metrics_version_lua[], + conf_source_yaml_file_lua[], + conf_source_env_lua[], + conf_section_config_lua[], + conf_section_credentials_lua[], + cluster_config_lua[], + conf_template_lua[], + conf_utils_schema_lua[], + conf_helpers_lua[], + conf_instance_lua[], + conf_instance_state_lua[], + conf_instance_config_lua[], + conf_mainloop_lua[], + conf_init_lua[]; /** * List of box's built-in modules written using Lua. @@ -321,6 +334,33 @@ static const char *lua_sources[] = { "metrics.plugins.prometheus", metrics_plugins_prometheus_lua, "third_party/metrics/metrics/plugins/json", "metrics.plugins.json", metrics_plugins_json_lua, + "lua/conf/conf/helpers", + "conf.helpers", conf_helpers_lua, + "lua/conf/conf/utils/schema", + "conf.utils.schema", conf_utils_schema_lua, + "lua/conf/conf/conf_section_config", + "conf.conf_section_config", conf_section_config_lua, + "lua/conf/conf/conf_section_credentials", + "conf.conf_section_credentials", conf_section_credentials_lua, + "lua/conf/conf/cluster_config", + "conf.cluster_config", cluster_config_lua, + "lua/conf/conf/conf_template", + "conf.conf_template", conf_template_lua, + "lua/conf/conf/instance_config", "conf.instance_config", + conf_instance_config_lua, + "lua/conf/conf/instance", "conf.instance", + conf_instance_lua, + "lua/conf/conf/instance_state", "conf.instance_state", + conf_instance_state_lua, + "lua/conf/conf/source/env", + "conf.source.env", conf_source_env_lua, + "lua/conf/conf/source/yaml_file", + "conf.source.yaml_file", conf_source_yaml_file_lua, + "lua/conf/conf/mainloop", + "conf.mainloop", conf_mainloop_lua, + "lua/conf/init", + "conf", conf_init_lua, + NULL }; blob - 73c8a3d518aaa123cf75d98adaab9b608e0ccb30 blob + bd2fb1adfc55be536947ce53d79f3b15f2b80304 --- test/app-luatest/tnt_debug_getsources_test.lua +++ test/app-luatest/tnt_debug_getsources_test.lua @@ -64,6 +64,19 @@ local files = { 'third_party/metrics/metrics/tarantool', 'third_party/metrics/metrics/utils', 'third_party/metrics/metrics/version', + 'conf/conf/cluster_config', + 'conf/conf/conf_section_config', + 'conf/conf/conf_section_credentials', + 'conf/conf/conf_template', + 'conf/conf/helpers', + 'conf/conf/init', + 'conf/conf/instance', + 'conf/conf/instance_config', + 'conf/conf/instance_state', + 'conf/conf/mainloop', + 'conf/conf/source/env', + 'conf/conf/source/yaml_file', + 'conf/conf/utils/schema', } -- calculate reporsitory root using directory of a current blob - /dev/null blob + 1f5f22ae37178df4c71945d5b84ddb745cc0981f (mode 644) --- /dev/null +++ test/conf-luatest/cluster_config_unit_test.lua @@ -0,0 +1,3 @@ +require('src.lua.conf.test.utils') + +require('src.lua.conf.test.cluster_config_unit_test') blob - /dev/null blob + c1af6ec39fd3c24dacdbf9410d0525e62a84189d (mode 644) --- /dev/null +++ test/conf-luatest/conf_section_config_unit_test.lua @@ -0,0 +1,3 @@ +require('src.lua.conf.test.utils') + +require('src.lua.conf.test.conf_section_config_unit_test') blob - /dev/null blob + 4cd080a6df83a46dcb81ad1592d2b1d92af7feda (mode 644) --- /dev/null +++ test/conf-luatest/helpers_unit_test.lua @@ -0,0 +1,3 @@ +require('src.lua.conf.test.utils') + +require('src.lua.conf.test.helpers_unit_test') blob - /dev/null blob + 5d81e63df7eb3abcd063046b176fd99a402ceecb (mode 644) --- /dev/null +++ test/conf-luatest/instance_state_unit_test.lua @@ -0,0 +1,3 @@ +require('src.lua.conf.test.utils') + +require('src.lua.conf.test.instance_state_unit_test') blob - /dev/null blob + 00dfe72684382791b88387212ac14c419bad852e (mode 644) --- /dev/null +++ test/conf-luatest/source_env_unit_test.lua @@ -0,0 +1,3 @@ +require('src.lua.conf.test.utils') + +require('src.lua.conf.test.source_env_unit_test') blob - /dev/null blob + 4edd77eb97651f372678da1dd6df98fb2c1fcc26 (mode 644) --- /dev/null +++ test/conf-luatest/suite.ini @@ -0,0 +1,4 @@ +[default] +core = luatest +description = conf module tests on luatest +is_parallel = True