#include "initialization.h" #include "dds_handler.h" #include #include #include #include namespace ComponentMonitor { Initialization::Initialization() : m_logger(getLogger("Initialization")) { TRACE_LOG(m_logger) << Q_FUNC_INFO << " START"; TRACE_LOG(m_logger) << Q_FUNC_INFO << " END"; } Initialization::~Initialization() { TRACE_LOG(m_logger) << Q_FUNC_INFO << " START"; m_checkmkHandler = nullptr; m_componentStatusHandler = nullptr; m_ddsHandler = nullptr; TRACE_LOG(m_logger) << Q_FUNC_INFO << " END"; } bool Initialization::initialize(const std::shared_ptr &ddsHandler) { INFO_LOG(m_logger) << Q_FUNC_INFO << " START"; m_ddsHandler = ddsHandler; DEBUG_LOG(m_logger) << Q_FUNC_INFO << "ddsHandler referenced"; m_componentStatusHandler = std::make_shared(); m_ddsHandler->enableDtcs(); QTimer::singleShot(5000, nullptr, [this]() { this->delayedInit(); }); m_checkmkHandler = std::make_shared(); const QString host = Settings::checkMkHost(); const int port = Settings::checkMkPort(); const int intervalSec = Settings::checkMkIntervalSec(); if (!m_checkmkHandler->initialize(host, port, intervalSec)) { ERROR_LOG(m_logger) << Q_FUNC_INFO << " CheckmkHandler::initialize failed"; return false; } INFO_LOG(m_logger) << Q_FUNC_INFO << " CheckmkHandler:initialize succesful"; QObject::connect(m_checkmkHandler.get(), &CheckmkHandler::newState, m_componentStatusHandler.get(), &ComponentStatusHandler::onNewState, Qt::UniqueConnection); m_checkmkHandlerScheduleCheck = std::make_shared(m_ddsHandler); if (!m_checkmkHandlerScheduleCheck->initialize(host, port)) { ERROR_LOG(m_logger) << Q_FUNC_INFO << " CheckmkHandlerScheduleCheck::initialize failed"; return false; } INFO_LOG(m_logger) << Q_FUNC_INFO << " CheckmkHandlerScheduleCheck:initialize succesful"; #ifdef LTS_DEBUG QTimer::singleShot(20000, m_checkmkHandlerScheduleCheck.get(), [this](){ qCritical() << " trigger Update"; m_checkmkHandlerScheduleCheck->addScheduleCheckHostnames({QStringLiteral("REF_GUEZ_ECVMAVS01")}); m_checkmkHandlerScheduleCheck->addScheduleCheckHostnames({QStringLiteral("REF_GUEZ_ECVMADB01")}); m_checkmkHandlerScheduleCheck->addScheduleCheckHostnames({QStringLiteral("REF_GUEZ_ECMAPWS11")}); m_checkmkHandlerScheduleCheck->run(1000); }); #endif INFO_LOG(m_logger) << Q_FUNC_INFO << " END"; return true; } bool Initialization::delayedInit() { INFO_LOG(m_logger) << Q_FUNC_INFO << " START"; bool success = true; if (!m_componentStatusHandler->initialize(m_ddsHandler)) { ERROR_LOG(m_logger) << Q_FUNC_INFO << " initialize failed for ComponentStatusHandler"; success = false; } INFO_LOG(m_logger) << Q_FUNC_INFO << " ComponentStatusHandler, statusMapSize=" << m_componentStatusHandler->getHostnames().size(); m_checkmkHandler->run(); QObject::connect(m_checkmkHandlerScheduleCheck.get(), &CheckmkHandlerScheduleCheck::newCheckScheduled, m_checkmkHandler.get(), &CheckmkHandler::onImmediateGetStateRequested, Qt::UniqueConnection); const bool updateLastCheckTimeDirect = Settings::updateLastCheckTimeDirect(); NOTICE_LOG(m_logger) << Q_FUNC_INFO << " updateLastCheckTimeDirect [bool] = " << updateLastCheckTimeDirect; if (updateLastCheckTimeDirect) { NOTICE_LOG(m_logger) << Q_FUNC_INFO << " updateLastCheckTimeDirect is enabled"; QObject::connect(m_checkmkHandlerScheduleCheck.get(), &CheckmkHandlerScheduleCheck::updateLastCheckTimeDirect, m_componentStatusHandler.get(), &ComponentStatusHandler::onUpdateLastCheckTimeDirect, Qt::DirectConnection); } INFO_LOG(m_logger) << Q_FUNC_INFO << " END"; return success; } }