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

Method SendAcknowledgementCleared

lib/icingadb/icingadb-objects.cpp:2507–2560  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2505}
2506
2507void IcingaDB::SendAcknowledgementCleared(const Checkable::Ptr& checkable, const String& removedBy, double changeTime, double ackLastChange)
2508{
2509 if (!GetActive()) {
2510 return;
2511 }
2512
2513 Host::Ptr host;
2514 Service::Ptr service;
2515 tie(host, service) = GetHostService(checkable);
2516
2517 /* Update checkable state as is_acknowledged may have changed. */
2518 EnqueueConfigObject(checkable, icingadb::task_queue::FullState);
2519
2520 RedisConnection::Query xAdd ({
2521 "XADD", "icinga:history:stream:acknowledgement", "*",
2522 "environment_id", m_EnvironmentId,
2523 "host_id", GetObjectIdentifier(host),
2524 "clear_time", Convert::ToString(TimestampToMilliseconds(changeTime)),
2525 "event_type", "ack_clear"
2526 });
2527
2528 if (service) {
2529 xAdd.emplace_back("object_type");
2530 xAdd.emplace_back("service");
2531 xAdd.emplace_back("service_id");
2532 xAdd.emplace_back(GetObjectIdentifier(checkable));
2533 } else {
2534 xAdd.emplace_back("object_type");
2535 xAdd.emplace_back("host");
2536 }
2537
2538 auto endpoint (Endpoint::GetLocalEndpoint());
2539
2540 if (endpoint) {
2541 xAdd.emplace_back("endpoint_id");
2542 xAdd.emplace_back(GetObjectIdentifier(endpoint));
2543 }
2544
2545 long long setTs = TimestampToMilliseconds(ackLastChange);
2546
2547 xAdd.emplace_back("set_time");
2548 xAdd.emplace_back(Convert::ToString(setTs));
2549 xAdd.emplace_back("event_id");
2550 xAdd.emplace_back(CalcEventID("ack_clear", checkable, ackLastChange));
2551 xAdd.emplace_back("id");
2552 xAdd.emplace_back(HashValue(new Array({m_EnvironmentId, checkable->GetName(), setTs})));
2553
2554 if (!removedBy.IsEmpty()) {
2555 xAdd.emplace_back("cleared_by");
2556 xAdd.emplace_back(removedBy);
2557 }
2558
2559 m_HistoryBulker.ProduceOne(std::move(xAdd));
2560}
2561
2562void IcingaDB::ForwardHistoryEntries()
2563{

Callers 1

Calls 3

ProduceOneMethod · 0.80
GetNameMethod · 0.45
IsEmptyMethod · 0.45

Tested by

no test coverage detected