diff --git a/lib/icingadb/icingadb-objects.cpp b/lib/icingadb/icingadb-objects.cpp index 5793f9762..c62f5916e 100644 --- a/lib/icingadb/icingadb-objects.cpp +++ b/lib/icingadb/icingadb-objects.cpp @@ -972,12 +972,20 @@ void IcingaDB::InsertObjectDependencies(const ConfigObject::Ptr& object, const S values = new Dictionary({{"value", kv.second}}); } - { + for (const char *attr : {"value", "set_if"}) { Value value; - // JsonEncode() the value if it's set. - if (values->Get("value", &value)) { - values->Set("value", JsonEncode(value)); + // Stringify if set. + if (values->Get(attr, &value)) { + switch (value.GetType()) { + case ValueString: + break; + case ValueObject: + values->Set(attr, value.Get()->ToString()); + break; + default: + values->Set(attr, JsonEncode(value)); + } } }