From a6ce32a29a978ff69cb440d26ef2ab262cf4f1f2 Mon Sep 17 00:00:00 2001 From: Pavel Czerny Date: Fri, 22 May 2020 09:22:30 +0200 Subject: [PATCH 1/3] F #3859: Allow empty string in monitor success --- src/common/NebulaUtil.cc | 6 ++++++ src/monitor/src/monitor/MonitorDriverProtocol.cc | 10 +++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/common/NebulaUtil.cc b/src/common/NebulaUtil.cc index b30b1048b5..9086fc85cd 100644 --- a/src/common/NebulaUtil.cc +++ b/src/common/NebulaUtil.cc @@ -401,6 +401,12 @@ string one_util::trim(const string& str) string::const_reverse_iterator rwlast; wfirst = find_if(str.begin(), str.end(), not_space); + + if (wfirst == str.end()) + { + return string(); + } + rwlast = find_if(str.rbegin(),str.rend(),not_space); string::const_iterator wlast(rwlast.base()); diff --git a/src/monitor/src/monitor/MonitorDriverProtocol.cc b/src/monitor/src/monitor/MonitorDriverProtocol.cc index 1fb8ec220b..c6c30a64eb 100644 --- a/src/monitor/src/monitor/MonitorDriverProtocol.cc +++ b/src/monitor/src/monitor/MonitorDriverProtocol.cc @@ -46,9 +46,9 @@ void MonitorDriverProtocol::_monitor_vm(message_t msg) if (rc != 0) { - NebulaLog::error("MDP", msg->payload()); NebulaLog::error("MDP", string("Error parsing VM monitoring template: ") + error_msg); + NebulaLog::error("MDP", "Received monitoring message: " + msg->payload()); free(error_msg); return; @@ -213,6 +213,14 @@ void MonitorDriverProtocol::_start_monitor(message_t msg) return; } + auto data = one_util::trim(msg->payload()); + if (data.empty()) + { + hm->start_monitor_success(msg->oid()); + + return; + } + ObjectXML msg_xml; if ( msg_xml.update_from_str(msg->payload()) != 0 ) From fb20d5b18b15445c1ecc5c22c64464bab99fa58d Mon Sep 17 00:00:00 2001 From: Pavel Czerny Date: Fri, 22 May 2020 11:19:56 +0200 Subject: [PATCH 2/3] F #3859: Improve monitoring error msgs --- src/im/InformationManager.cc | 3 ++- src/im_mad/remotes/common.d/monitord-client.rb | 4 ++-- .../src/monitor/MonitorDriverProtocol.cc | 17 +++++++++++------ 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/im/InformationManager.cc b/src/im/InformationManager.cc index 68ee898e98..b0fa230c95 100644 --- a/src/im/InformationManager.cc +++ b/src/im/InformationManager.cc @@ -262,7 +262,8 @@ void InformationManager::_host_system(unique_ptr> ms { ostringstream oss; oss << "Error parsing monitoring template for host " << msg->oid() - << ", error: " << error_msg; + << "\nMessage: " << msg->payload() + << "Error: " << error_msg; NebulaLog::error("InM", oss.str()); free(error_msg); diff --git a/src/im_mad/remotes/common.d/monitord-client.rb b/src/im_mad/remotes/common.d/monitord-client.rb index ec695cabcb..b697cf0386 100644 --- a/src/im_mad/remotes/common.d/monitord-client.rb +++ b/src/im_mad/remotes/common.d/monitord-client.rb @@ -184,8 +184,8 @@ class ProbeRunner runner = ProbeRunner.new(hyperv, probe[:path], stdin) rc, dt = runner.run_probes - dt64 = Base64.encode64(dt).gsub("\n", '') - ret += "<#{probe[:elem_name]}>#{dt64}\n" + dt = Base64.encode64(dt).gsub("\n", '') if rc == 0 + ret += "<#{probe[:elem_name]}>#{dt}\n" return rc, ret if rc == -1 end diff --git a/src/monitor/src/monitor/MonitorDriverProtocol.cc b/src/monitor/src/monitor/MonitorDriverProtocol.cc index c6c30a64eb..7a56735c19 100644 --- a/src/monitor/src/monitor/MonitorDriverProtocol.cc +++ b/src/monitor/src/monitor/MonitorDriverProtocol.cc @@ -46,9 +46,11 @@ void MonitorDriverProtocol::_monitor_vm(message_t msg) if (rc != 0) { - NebulaLog::error("MDP", string("Error parsing VM monitoring template: ") - + error_msg); - NebulaLog::error("MDP", "Received monitoring message: " + msg->payload()); + ostringstream oss; + oss << "Error parsing VM monitoring template from host " << msg->oid() + << "\nMessage: " << msg->payload() + << "\nError: " << error_msg; + NebulaLog::error("MDP", oss.str()); free(error_msg); return; @@ -143,8 +145,11 @@ void MonitorDriverProtocol::_monitor_host(message_t msg) if (rc != 0) { - NebulaLog::error("MDP", string("Error parsing monitoring template: ") - + error_msg); + ostringstream oss; + oss << "Error parsing monitoring template for host " << msg->oid() + << "\nMessage: " << msg->payload() + << "\nError: " << error_msg; + NebulaLog::error("MDP", oss.str()); free(error_msg); return; @@ -200,7 +205,7 @@ void MonitorDriverProtocol::_state_vm(message_t msg) */ void MonitorDriverProtocol::_start_monitor(message_t msg) { - NebulaLog::ddebug("MDP", "Received start monitor for host " + + NebulaLog::debug("MDP", "Received start monitor for host " + to_string(msg->oid()) + ": " + msg->payload()); if (msg->status() != "SUCCESS") From 2f614c64f33623efd2e2360a91d9a6be05f2f812 Mon Sep 17 00:00:00 2001 From: Pavel Czerny Date: Fri, 22 May 2020 11:20:19 +0200 Subject: [PATCH 3/3] F #3859: Fix default DATASTORE_LOCATION --- src/monitor/src/monitor/Monitor.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/monitor/src/monitor/Monitor.cc b/src/monitor/src/monitor/Monitor.cc index c9a65fbe17..08aee12606 100644 --- a/src/monitor/src/monitor/Monitor.cc +++ b/src/monitor/src/monitor/Monitor.cc @@ -35,7 +35,7 @@ void Monitor::start() // ------------------------------------------------------------------------- // Configuration File // ------------------------------------------------------------------------- - OpenNebulaTemplate oned_config(get_defaults_location(), oned_filename); + OpenNebulaTemplate oned_config(get_defaults_location(), get_var_location()); if (oned_config.load_configuration() != 0) {