From c01c22ae760a3e84b6413e3630846a13ab75b8a4 Mon Sep 17 00:00:00 2001 From: "Alexander A. Klimov" Date: Tue, 26 Nov 2019 13:21:50 +0100 Subject: [PATCH] IcingaDB: don't always set icinga:config:*command:{argument,envvar}#value --- lib/icingadb/icingadb-objects.cpp | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/lib/icingadb/icingadb-objects.cpp b/lib/icingadb/icingadb-objects.cpp index 0f8c01717..b1d2c7cb6 100644 --- a/lib/icingadb/icingadb-objects.cpp +++ b/lib/icingadb/icingadb-objects.cpp @@ -698,7 +698,15 @@ void IcingaDB::InsertObjectDependencies(const ConfigObject::Ptr& object, const S values = new Dictionary({{"value", kv.second}}); } - values->Set("value", JsonEncode(values->Get("value"))); + { + Value value; + + // JsonEncode() the value if it's set. + if (values->Get("value", &value)) { + values->Set("value", JsonEncode(value)); + } + } + values->Set("command_id", objectKey); values->Set("argument_key", kv.first); values->Set("environment_id", envId); @@ -737,7 +745,15 @@ void IcingaDB::InsertObjectDependencies(const ConfigObject::Ptr& object, const S values = new Dictionary({{"value", kv.second}}); } - values->Set("value", JsonEncode(values->Get("value"))); + { + Value value; + + // JsonEncode() the value if it's set. + if (values->Get("value", &value)) { + values->Set("value", JsonEncode(value)); + } + } + values->Set("command_id", objectKey); values->Set("envvar_key", kv.first); values->Set("environment_id", envId);