]> granicus.if.org Git - icinga2/commitdiff
Allow using --name to match against internal names (__name)
authorGunnar Beutner <gunnar@beutner.name>
Wed, 15 Oct 2014 16:31:05 +0000 (18:31 +0200)
committerGunnar Beutner <gunnar@beutner.name>
Wed, 15 Oct 2014 16:34:00 +0000 (18:34 +0200)
refs #7251

lib/cli/objectlistcommand.cpp

index 9a57cea06be5f7bf8432016a3b4e1fca1c1b4af2..69d4e3a2098d70b3b3683d16cacd23c08236014c 100644 (file)
@@ -89,7 +89,7 @@ int ObjectListCommand::Run(const boost::program_options::variables_map& vm, cons
        std::map<String, int> type_count;
 
        String message;
-       String name_filter, type_filter = "";
+       String name_filter, type_filter;
 
        if (vm.count("name"))
                name_filter = vm["name"].as<std::string>();
@@ -116,16 +116,18 @@ void ObjectListCommand::ReadObject(const String& message, std::map<String, int>&
 {
        Dictionary::Ptr object = JsonDeserialize(message);
 
+       Dictionary::Ptr properties = object->Get("properties");
+
+       String internal_name = properties->Get("__name");
        String name = object->Get("name");
        String type = object->Get("type");
 
-       if(!name_filter.IsEmpty() && !Utility::Match(name_filter, name))
+       if (!name_filter.IsEmpty() && !Utility::Match(name_filter, name) && !Utility::Match(name_filter, internal_name))
                return;
-       if(!type_filter.IsEmpty() && !Utility::Match(type_filter, type))
+       if (!type_filter.IsEmpty() && !Utility::Match(type_filter, type))
                return;
 
        bool abstract = object->Get("abstract");
-       Dictionary::Ptr properties = object->Get("properties");
        Dictionary::Ptr debug_hints = object->Get("debug_hints");
 
        std::ostringstream msgbuf;
@@ -135,7 +137,7 @@ void ObjectListCommand::ReadObject(const String& message, std::map<String, int>&
        else
                msgbuf << "Object '";
 
-       msgbuf << "\x1b[1;34m" << properties->Get("__name") << "\x1b[0m" << "'"; //blue
+       msgbuf << "\x1b[1;34m" << internal_name << "\x1b[0m" << "'"; //blue
        msgbuf << " of type '" << "\x1b[1;34m" << type << "\x1b[0m" << "':\n"; //blue
 
        msgbuf << FormatProperties(properties, debug_hints, 2);