| 592 | } |
| 593 | |
| 594 | std::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 | |
| 637 | template<typename ConfigType> |
| 638 | static ConfigObject::Ptr GetObjectByName(const String& name) |
nothing calls this directly
no test coverage detected