From 50bb8369013f8dd7f0ac1441fea101b20cbafb0e Mon Sep 17 00:00:00 2001 From: jean-christophe81 <98889244+jean-christophe81@users.noreply.github.com> Date: Thu, 26 Sep 2024 10:28:06 +0200 Subject: [PATCH] MON-148688-telegraf-certificate-parameters-harmonization (#1716) REFS:MON-148688 --- .../opentelemetry/doc/opentelemetry.md | 4 +-- .../opentelemetry/doc/otel_configuration.odg | Bin 23305 -> 23241 bytes .../opentelemetry/doc/otel_configuration.pdf | Bin 18890 -> 18877 bytes .../opentelemetry/telegraf/conf_server.hh | 8 ++--- .../opentelemetry/src/open_telemetry.cc | 2 +- .../opentelemetry/src/telegraf/conf_server.cc | 28 +++++++++--------- tests/broker-engine/opentelemetry.robot | 2 +- tests/resources/resources.resource | 12 ++++---- 8 files changed, 27 insertions(+), 29 deletions(-) diff --git a/engine/modules/opentelemetry/doc/opentelemetry.md b/engine/modules/opentelemetry/doc/opentelemetry.md index 73568749bb..f83f8bb24c 100644 --- a/engine/modules/opentelemetry/doc/opentelemetry.md +++ b/engine/modules/opentelemetry/doc/opentelemetry.md @@ -190,8 +190,8 @@ An example of configuration: "http_server" : { "port": 1443, "encryption": true, - "certificate_path": "server.crt", - "key_path": "server.key" + "public_cert": "server.crt", + "private_key": "server.key" }, "engine_otel_endpoint": "172.17.0.1:4317", "check_interval":60 diff --git a/engine/modules/opentelemetry/doc/otel_configuration.odg b/engine/modules/opentelemetry/doc/otel_configuration.odg index eaf01c1bf0c82bb863611afb94e9938fa024d75c..14831418dac86b2bf84ee98f6ef90a93307911c7 100644 GIT binary patch delta 20807 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 KAkJ#P$-e+Setwkz delta 20824 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 JbeSA>`af~vj`IKj diff --git a/engine/modules/opentelemetry/doc/otel_configuration.pdf b/engine/modules/opentelemetry/doc/otel_configuration.pdf index b4107e644a12753e8367bd6a9d15c323ab9df21d..10105d81fca1275e246623026da869a330508ac3 100644 GIT binary patch delta 1135 zcmX>#nQ`xA#tl~l>aXuhRD9ni_phz>PLYy8{g17;`uQU_NIlabs#3A_lB@|(S|)AU+dMd`(B!C_hnu8rHoI4E7)Ut`THK%Z~Z20HCgD4 zL0$M~t1=GpZ^?3Zf7b7DK9Ci|y2|NQ|AY3X)gMD5ranpdwY4eq^Cz)KV!^Jg_6^Ew zST->@?Q*zZXP2|;`YQI567#(#zx0WUi_=SgHqlc5{I>%_2Tyj!aRw-J8Qu=u@Zn`= z*8z{^9q|iu<}Y4-RsEpy^~8hOQETcwXU}~e_o(s!i|zbvyU#od{P^>W&DjeY?M6}a zXYg;zcE#+m20L5VT-}-tCsFY|8t?_&01g z`*}fq@3!>}S*Ew_%z2b8Q-AyJuw69c=E1a=(_}WtZWQA-O>enrzvOpFNWtSrAMbvQ zN`7%b!ZB#W!|k(!zL_VnrS14DbFY1VRrltrC5{^>?fTxCxn#mb`u%gaZtsTVsoJkT%Va;5I@nR~Hf6^XeIdzAvu%fLbyu8z z>>?l<>KB}4Kl8!65T=RK&h5Hm)aLQO{PT%-YCA%fozXgeDupSsvP}12&8KI*z8k)7 z5Eb>hk!O1KAXnmV=dAlIX{9YI_cqxc+t0ta-ORjc=k?XyjRMUZbdQ(XxgN=M^&RUEr&hUt_bbMxI359chdVN1`oKOC@XUZ?Jl!XNrNN@Ab5Qu9)ZONvqxb3v^9 zq%1BjV+8{R5W~d6(roi&VF42kBNIatBO@b|$*bKhnSj(YceQ#8GX(<>P{>o@0y7NF z%}p)P#0*Rg49wBQ49$#;4KT$_jWEPaObju^EX^SH)+1YNY>Z)vxv`lgx@L1zOQ7G- z9BpQTsm{UzL!E_z5t6!+qRCvIhV^ES&Q7jw#*PLi7EZ>FPA&$9&ISgquBK)#W~Pp2 zZiaSTHUyO@#B%Ao8kibe7(1Jp7#Nzmxf&Qa kJ6jl9a@pB&6_+Fyl~f26rKWKiS{R!ebE&Gj`nz!f0Ohg3WdHyG delta 1133 zcmdlxneo(Q#tl~l>cyF3E}vO#!{hz3(B4%+|G3DL7d%1_(qC^_=A!WLL-lrf`O68W z=RSYVIo%lZ+;&~=`DrG{SIR5DYVho{Us|?Bl;i3gIfLkXw_hGGU1Q($nRDH-P`S!Z zP9`Or`K!bih@Jm(oLiYM&Hc0h*NNAT)eB9N{9|4o{50#SaAj=M`=1Nz_i){Jn%wW; z`5>#N;K#cA4wD>aPElz8Xg%k;qVtXdh0hr-2Oi5Zg+12N5e=$m`7aXFyL{0~752^R zL_20p-!5=|hL+Y3#w!V`2UrCzwSN8fIgxvBn61aLA6sVmq+k8Csn{~P|IE*-G6s8f z^(t+LUX3F;?gtMoSJ!0{oU2sVx~aaFZ$sF8mj0M7*7cbi)pD=RtM2^FDEz(V);q6m z_Y==Ae=~7jEORZRHr4LWIu`}D(@z%5PWSI=scACiomaRs?QclCs@25VADe$(nYNIP z>;A;#9}A2tJ@rErGuK_>)~G3-^f0FXYw($!Pk%5>+RV25vy)Yh*haJU(o*3~zKw@= z)#nI@N%#DTvORFf?0mBs*M6oIS2h0JG3a?R<*j+*kB+1?_Ss9Liw=|>iPE_;M=uIl7_l%cK3_2yA zK4HPF{gpk&S*MGc-Y6Z3+vsXozp(bj-*2biK7YTh-sDhU=(-i>>(@-pW>J<3d^G8h zN6M0$H@LoUS)jLH*fAtzr{BuIDNVaCbGbxWy)HT@q4f9uS>@fc9|X-YS}mhJnKR|- z&8;k-J?EO69lUlpEJP!5_tg+~y_UE9D{F;kToqjQjq97lf4d&JTX#5~#qHK(bK*I) zP3HPf5y9o6ngaJ+jHj(pTT$&hWx>?|ue)#D_%`=`nmKptUmoX`RchNF9DlgqSx3f< zD>W~rxTGjGF&D(jPs-xrGFC8905MD~4JKGnwlA#PM+s($z*Ik`KG&C zy``ms0SGAMDR6-qhUVtxhG=32rUpg^XkvzDMkYWjQ1zM_nVDjUnV6bjh*_FL?5#(( z*w_@q5_4k+}Op<%+1Ng z*u>b-($v+`$=KD%(cI0+!j8*^kdn!Tp2C)H&gQO`mPUpy#%2a4W~N3it|k`dCawmq kj&5d7jwW1oc3j0JiA5z9MX70Ah8D(VW?ZVOuKsRZ0RHHget_certificate_path(), telegraf_conf->get_key_path()); + telegraf_conf->get_public_cert(), telegraf_conf->get_private_key()); if (telegraf_conf->is_crypted()) { _telegraf_conf_server = http::server::load( diff --git a/engine/modules/opentelemetry/src/telegraf/conf_server.cc b/engine/modules/opentelemetry/src/telegraf/conf_server.cc index 65d3f62522..26c8208c45 100644 --- a/engine/modules/opentelemetry/src/telegraf/conf_server.cc +++ b/engine/modules/opentelemetry/src/telegraf/conf_server.cc @@ -62,12 +62,12 @@ static constexpr std::string_view _config_schema(R"( "minimum": 0, "maximum": 3600 }, - "certificate_path": { + "public_cert": { "description": "path of the certificate file of the server", "type": "string", "minLength": 5 }, - "key_path": { + "private_key": { "description": "path of the key file", "type": "string", "minLength": 5 @@ -122,10 +122,10 @@ conf_server_config::conf_server_config(const rapidjson::Value& json_config_v, _second_keep_alive_interval = http_json_config.get_unsigned("keepalive_interval", 30); - _certificate_path = http_json_config.get_string("certificate_path", ""); - _key_path = http_json_config.get_string("key_path", ""); + _public_cert = http_json_config.get_string("public_cert", ""); + _private_key = http_json_config.get_string("private_key", ""); if (_crypted) { - if (_certificate_path.empty()) { + if (_public_cert.empty()) { SPDLOG_LOGGER_ERROR(config_logger, "telegraf conf server encryption activated and no " "certificate path " @@ -135,7 +135,7 @@ conf_server_config::conf_server_config(const rapidjson::Value& json_config_v, "path " "provided"); } - if (_key_path.empty()) { + if (_private_key.empty()) { SPDLOG_LOGGER_ERROR(config_logger, "telegraf conf server encryption activated and no " "certificate key path provided"); @@ -144,23 +144,23 @@ conf_server_config::conf_server_config(const rapidjson::Value& json_config_v, "telegraf conf server encryption activated and no certificate key " "path provided"); } - if (::access(_certificate_path.c_str(), R_OK)) { + if (::access(_public_cert.c_str(), R_OK)) { SPDLOG_LOGGER_ERROR( config_logger, "telegraf conf server unable to read certificate file {}", - _certificate_path); + _public_cert); throw exceptions::msg_fmt( "telegraf conf server unable to read certificate file {}", - _certificate_path); + _public_cert); } - if (::access(_key_path.c_str(), R_OK)) { + if (::access(_private_key.c_str(), R_OK)) { SPDLOG_LOGGER_ERROR( config_logger, "telegraf conf server unable to read certificate key file {}", - _key_path); + _private_key); throw exceptions::msg_fmt( "telegraf conf server unable to read certificate key file {}", - _key_path); + _private_key); } } } else { @@ -175,8 +175,8 @@ bool conf_server_config::operator==(const conf_server_config& right) const { return _listen_endpoint == right._listen_endpoint && _crypted == right._crypted && _second_keep_alive_interval == right._second_keep_alive_interval && - _certificate_path == right._certificate_path && - _key_path == right._key_path && + _public_cert == right._public_cert && + _private_key == right._private_key && _check_interval == right._check_interval; } diff --git a/tests/broker-engine/opentelemetry.robot b/tests/broker-engine/opentelemetry.robot index 5c435e6d9a..1a4910ec1b 100644 --- a/tests/broker-engine/opentelemetry.robot +++ b/tests/broker-engine/opentelemetry.robot @@ -222,7 +222,7 @@ BEOTEL_SERVE_TELEGRAF_CONFIGURATION_CRYPTED Ctn Config Engine ${1} ${3} ${2} Ctn Add Otl ServerModule ... 0 - ... {"otel_server":{"host": "0.0.0.0","port": 4317},"max_length_grpc_log":0, "telegraf_conf_server": {"http_server":{"port": 1443, "encryption": true, "certificate_path": "/tmp/otel/server.crt", "key_path": "/tmp/otel/server.key"}, "check_interval":60, "engine_otel_endpoint": "127.0.0.1:4317"}} + ... {"otel_server":{"host": "0.0.0.0","port": 4317},"max_length_grpc_log":0, "telegraf_conf_server": {"http_server":{"port": 1443, "encryption": true, "public_cert": "/tmp/otel/server.crt", "private_key": "/tmp/otel/server.key"}, "check_interval":60, "engine_otel_endpoint": "127.0.0.1:4317"}} Ctn Config Add Otl Connector ... 0 ... OTEL connector diff --git a/tests/resources/resources.resource b/tests/resources/resources.resource index c2930b7a3c..d1143f9da9 100644 --- a/tests/resources/resources.resource +++ b/tests/resources/resources.resource @@ -73,9 +73,9 @@ Ctn Clear Broker Logs Ctn Start Broker [Arguments] ${only_central}=False - Start Process /usr/sbin/cbd ${EtcRoot}/centreon-broker/central-broker.json alias=b1 + Start Process /usr/sbin/cbd ${EtcRoot}/centreon-broker/central-broker.json alias=b1 stdout=${BROKER_LOG}/central-broker-master-stdout.log stderr=${BROKER_LOG}/central-broker-master-stderr.log IF not ${only_central} - Start Process /usr/sbin/cbd ${EtcRoot}/centreon-broker/central-rrd.json alias=b2 + Start Process /usr/sbin/cbd ${EtcRoot}/centreon-broker/central-rrd.json alias=b2 stdout=${BROKER_LOG}/central-rrd-stdout.log stderr=${BROKER_LOG}/central-rrd-stderr.log END Ctn Restart Broker @@ -156,7 +156,7 @@ Ctn Start Engine EXCEPT Log can't remove ${lib}/rw/centengine.cmd don't worry END - Start Process /usr/sbin/centengine ${conf} alias=${alias} + Start Process /usr/sbin/centengine ${conf} alias=${alias} stdout=${log}/centengine-stdout.log stderr=${log}/centengine-stderr.log END Ctn Start Engine With Extend Conf @@ -285,10 +285,8 @@ Ctn Save Logs Create Directory failed ${failDir} Catenate SEPARATOR= failed/ ${Test Name} Create Directory ${failDir} - Copy Files ${centralLog} ${failDir} - Copy Files ${rrdLog} ${failDir} - Copy Files ${moduleLog0} ${failDir} - Copy Files ${engineLog0} ${failDir} + Copy Files ${BROKER_LOG}/* ${failDir} + Copy Files ${ENGINE_LOG}/config0/*.log ${failDir} Copy Files ${ENGINE_LOG}/*.log ${failDir} Copy Files ${EtcRoot}/centreon-engine/config0/*.cfg ${failDir}/etc/centreon-engine/config0 Copy Files ${EtcRoot}/centreon-engine/*.json ${failDir}/etc/centreon-engine