From baa8fb424fea320a63edc8c3a05195fff4f7053c Mon Sep 17 00:00:00 2001 From: Michael Friedrich Date: Fri, 15 May 2015 15:59:02 +0200 Subject: [PATCH] Fix missing custom attributes in backends if name is equal to object attribute fixes #9222 --- lib/compat/statusdatawriter.cpp | 7 +---- lib/icinga/compatutility.cpp | 46 +-------------------------------- lib/icinga/compatutility.hpp | 1 - 3 files changed, 2 insertions(+), 52 deletions(-) diff --git a/lib/compat/statusdatawriter.cpp b/lib/compat/statusdatawriter.cpp index e5e5f24ba..a28e1ceb5 100644 --- a/lib/compat/statusdatawriter.cpp +++ b/lib/compat/statusdatawriter.cpp @@ -533,12 +533,7 @@ void StatusDataWriter::DumpCustomAttributes(std::ostream& fp, const CustomVarObj } else value = kv.second; - fp << "\t"; - - if (!CompatUtility::IsLegacyAttribute(object, kv.first)) - fp << "_"; - - fp << kv.first << "\t" << value << "\n"; + fp << "\t" "_" << kv.first << "\t" << value << "\n"; } if (is_json) diff --git a/lib/icinga/compatutility.cpp b/lib/icinga/compatutility.cpp index 688560110..d2cbd8630 100644 --- a/lib/icinga/compatutility.cpp +++ b/lib/icinga/compatutility.cpp @@ -352,58 +352,14 @@ int CompatUtility::GetCheckableInNotificationPeriod(const Checkable::Ptr& checka } /* vars attr */ - -bool CompatUtility::IsLegacyAttribute(const CustomVarObject::Ptr& object, const String& name) -{ - if ((name == "address" || - name == "address6") && - object->GetType() == DynamicType::GetByName("Host")) - return true; - - if ((name == "address1" || - name == "address2" || - name == "address3" || - name == "address4" || - name == "address5" || - name == "address6" || - name == "email" || - name == "pager") && - object->GetType() == DynamicType::GetByName("User")) - return true; - - if ((name == "notes" || - name == "action_url" || - name == "notes_url" || - name == "icon_image" || - name == "icon_image_alt") && - (object->GetType() == DynamicType::GetByName("Host") || - object->GetType() == DynamicType::GetByName("Service"))) - return true; - - return false; -} - Dictionary::Ptr CompatUtility::GetCustomAttributeConfig(const CustomVarObject::Ptr& object) { Dictionary::Ptr vars = object->GetVars(); - Dictionary::Ptr varsvars = new Dictionary(); - if (!vars) return Dictionary::Ptr(); - String key; - Value value; - - ObjectLock olock(vars); - BOOST_FOREACH(const Dictionary::Pair& kv, vars) { - if (kv.first.IsEmpty() || IsLegacyAttribute(object, kv.first)) - continue; - - varsvars->Set(kv.first, kv.second); - } - - return varsvars; + return vars; } String CompatUtility::GetCustomAttributeConfig(const CustomVarObject::Ptr& object, const String& name) diff --git a/lib/icinga/compatutility.hpp b/lib/icinga/compatutility.hpp index 669c5fe10..edba4b9f9 100644 --- a/lib/icinga/compatutility.hpp +++ b/lib/icinga/compatutility.hpp @@ -103,7 +103,6 @@ public: static std::set GetCheckableNotificationUserGroups(const Checkable::Ptr& checkable); /* custom attribute */ - static bool IsLegacyAttribute(const CustomVarObject::Ptr& object, const String& name); static String GetCustomAttributeConfig(const CustomVarObject::Ptr& object, const String& name); static Dictionary::Ptr GetCustomAttributeConfig(const CustomVarObject::Ptr& object);