MCPcopy Create free account
hub / github.com/Icinga/icinga2 / GetTypeOverwriteKeys

Method GetTypeOverwriteKeys

lib/icingadb/icingadb-objects.cpp:594–635  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

592}
593
594std::vector<RedisConnection::QueryArg> IcingaDB::GetTypeOverwriteKeys(const Type::Ptr& type, bool skipChecksums)
595{
596 auto customvarKey = GetRedisCustomVarKey(type);
597 if (static_cast<std::string_view>(customvarKey).empty()) {
598 return {};
599 }
600
601 std::vector keys{customvarKey};
602 if (Host::TypeInstance == type) {
603 keys.emplace_back(CONFIG_REDIS_KEY_PREFIX "hostgroup:member");
604 keys.emplace_back(CONFIG_REDIS_KEY_PREFIX "host:state");
605 if (!skipChecksums) {
606 keys.emplace_back(CHECKSUM_REDIS_KEY_PREFIX "host:state");
607 }
608 } else if (Service::TypeInstance == type) {
609 keys.emplace_back(CONFIG_REDIS_KEY_PREFIX "servicegroup:member");
610 keys.emplace_back(CONFIG_REDIS_KEY_PREFIX "service:state");
611 if (!skipChecksums) {
612 keys.emplace_back(CHECKSUM_REDIS_KEY_PREFIX "service:state");
613 }
614 } else if (User::TypeInstance == type) {
615 keys.emplace_back(CONFIG_REDIS_KEY_PREFIX "usergroup:member");
616 } else if (TimePeriod::TypeInstance == type) {
617 keys.emplace_back(CONFIG_REDIS_KEY_PREFIX "timeperiod:override:include");
618 keys.emplace_back(CONFIG_REDIS_KEY_PREFIX "timeperiod:override:exclude");
619 keys.emplace_back(CONFIG_REDIS_KEY_PREFIX "timeperiod:range");
620 } else if (Notification::TypeInstance == type) {
621 keys.emplace_back(CONFIG_REDIS_KEY_PREFIX "notification:user");
622 keys.emplace_back(CONFIG_REDIS_KEY_PREFIX "notification:usergroup");
623 keys.emplace_back(CONFIG_REDIS_KEY_PREFIX "notification:recipient");
624 } else if (Command::TypeInstance->IsAssignableFrom(type)) {
625 const auto& cmdRedisKeys = GetCmdEnvArgKeys(type);
626 keys.emplace_back(cmdRedisKeys.ArgObjectKey);
627 keys.emplace_back(cmdRedisKeys.EnvObjectKey);
628 if (!skipChecksums) {
629 keys.emplace_back(cmdRedisKeys.ArgChecksumKey);
630 keys.emplace_back(cmdRedisKeys.EnvChecksumKey);
631 }
632 }
633
634 return keys;
635}
636
637template<typename ConfigType>
638static ConfigObject::Ptr GetObjectByName(const String& name)

Callers

nothing calls this directly

Calls 3

GetRedisCustomVarKeyFunction · 0.85
IsAssignableFromMethod · 0.80
emptyMethod · 0.45

Tested by

no test coverage detected