fix(oracle): replace 'database' field by 'service name'

Fixes https://emqx.atlassian.net/browse/EMQX-9980
This commit is contained in:
Paulo Zulato 2023-05-23 12:16:23 -03:00
parent 50ff6c4aa4
commit 8d3d3e523b
9 changed files with 43 additions and 16 deletions

View File

@ -1,6 +1,6 @@
{application, emqx_bridge_oracle, [
{description, "EMQX Enterprise Oracle Database Bridge"},
{vsn, "0.1.0"},
{vsn, "0.1.1"},
{registered, []},
{applications, [
kernel,

View File

@ -20,7 +20,7 @@
]).
-define(DEFAULT_SQL, <<
"insert into t_mqtt_msg(msgid, topic, qos, payload)"
"insert into t_mqtt_msgs(msgid, topic, qos, payload) "
"values (${id}, ${topic}, ${qos}, ${payload})"
>>).
@ -41,7 +41,7 @@ values(_Method) ->
name => <<"foo">>,
server => <<"127.0.0.1:1521">>,
pool_size => 8,
database => <<"ORCL">>,
service_name => <<"ORCL">>,
sid => <<"ORCL">>,
username => <<"root">>,
password => <<"******">>,

View File

@ -14,7 +14,7 @@
-define(BRIDGE_TYPE_BIN, <<"oracle">>).
-define(APPS, [emqx_bridge, emqx_resource, emqx_rule_engine, emqx_oracle, emqx_bridge_oracle]).
-define(DATABASE, "XE").
-define(SID, "XE").
-define(RULE_TOPIC, "mqtt/rule").
% -define(RULE_TOPIC_BIN, <<?RULE_TOPIC>>).
@ -196,7 +196,6 @@ oracle_config(TestCase, _ConnectionType, Config) ->
io_lib:format(
"bridges.oracle.~s {\n"
" enable = true\n"
" database = \"~s\"\n"
" sid = \"~s\"\n"
" server = \"~s\"\n"
" username = \"system\"\n"
@ -215,8 +214,7 @@ oracle_config(TestCase, _ConnectionType, Config) ->
"}\n",
[
Name,
?DATABASE,
?DATABASE,
?SID,
ServerURL,
sql_insert_template_for_bridge()
]

View File

@ -75,8 +75,6 @@ on_start(
InstId,
#{
server := Server,
database := DB,
sid := Sid,
username := User
} = Config
) ->
@ -91,15 +89,19 @@ on_start(
jamdb_oracle_conn:set_max_cursors_number(?MAX_CURSORS),
#{hostname := Host, port := Port} = emqx_schema:parse_server(Server, oracle_host_options()),
ServiceName = maps:get(<<"service_name">>, Config, Sid),
Sid = maps:get(sid, Config, ""),
ServiceName =
case maps:get(service_name, Config, undefined) of
undefined -> undefined;
ServiceName0 -> emqx_plugin_libs_rule:str(ServiceName0)
end,
Options = [
{host, Host},
{port, Port},
{user, emqx_plugin_libs_rule:str(User)},
{password, jamdb_secret:wrap(maps:get(password, Config, ""))},
{sid, emqx_plugin_libs_rule:str(Sid)},
{service_name, emqx_plugin_libs_rule:str(ServiceName)},
{database, DB},
{service_name, ServiceName},
{pool_size, maps:get(<<"pool_size">>, Config, ?DEFAULT_POOL_SIZE)},
{timeout, ?OPT_TIMEOUT},
{app_name, "EMQX Data To Oracle Database Action"}

View File

@ -19,9 +19,11 @@ roots() ->
[{config, #{type => hoconsc:ref(?REF_MODULE, config)}}].
fields(config) ->
[{server, server()}, {sid, fun sid/1}] ++
emqx_connector_schema_lib:relational_db_fields() ++
emqx_connector_schema_lib:prepare_statement_fields().
Fields =
[{server, server()}, {sid, fun sid/1}, {service_name, fun service_name/1}] ++
emqx_connector_schema_lib:relational_db_fields() ++
emqx_connector_schema_lib:prepare_statement_fields(),
proplists:delete(database, Fields).
server() ->
Meta = #{desc => ?DESC(?REF_MODULE, "server")},
@ -29,5 +31,10 @@ server() ->
sid(type) -> binary();
sid(desc) -> ?DESC(?REF_MODULE, "sid");
sid(required) -> true;
sid(required) -> false;
sid(_) -> undefined.
service_name(type) -> binary();
service_name(desc) -> ?DESC(?REF_MODULE, "service_name");
service_name(required) -> false;
service_name(_) -> undefined.

View File

@ -29,6 +29,11 @@ emqx_bridge_oracle {
label = "Oracle Database Sid."
}
service_name {
desc = "Service Name for Oracle Database."
label = "Oracle Database Service Name"
}
config_enable {
desc = "Enable or disable this bridge"
label = "Enable Or Disable Bridge"

View File

@ -12,4 +12,9 @@ emqx_oracle {
label = "Oracle Database Sid"
}
service_name {
desc = "Service Name for Oracle Database."
label = "Oracle Database Service Name"
}
}

View File

@ -28,6 +28,11 @@ emqx_bridge_oracle {
label = "Oracle Database Sid"
}
service_name {
desc = "Oracle Database 服务名称。"
label = "Oracle Database 服务名称"
}
config_enable {
desc = "启用/禁用桥接"
label = "启用/禁用桥接"

View File

@ -12,4 +12,9 @@ emqx_oracle {
label = "Oracle Database Sid"
}
service_name {
desc = "Oracle Database 服务名称。"
label = "Oracle Database 服务名称"
}
}