Files
qt-migration-legatus/qt6-after/qt6-migrated-legatus/Lts/Proxies/ComponentMonitor/initialization.cpp
T

152 lines
3.9 KiB
C++
Executable File

#include "initialization.h"
#include "dds_handler.h"
#include <ComponentMonitor/cmo.hpp>
#include <ComponentMonitor/cmo_dts.h>
#include <ComponentMonitor/settings.h>
#include <QTimer>
namespace ComponentMonitor
{
Initialization::Initialization()
: m_logger(getLogger("Initialization"))
{
TRACE_LOG(m_logger) << LOGFUNCTION << " START";
TRACE_LOG(m_logger) << LOGFUNCTION << " END";
}
Initialization::~Initialization()
{
TRACE_LOG(m_logger) << LOGFUNCTION << " START";
m_checkmkHandler = nullptr;
m_componentStatusHandler = nullptr;
m_ddsHandler = nullptr;
TRACE_LOG(m_logger) << LOGFUNCTION << " END";
}
bool Initialization::initialize(const std::shared_ptr<DdsHandler> &ddsHandler)
{
INFO_LOG(m_logger) << LOGFUNCTION << " START";
m_ddsHandler = ddsHandler;
DEBUG_LOG(m_logger) << LOGFUNCTION << "ddsHandler referenced";
m_componentStatusHandler = std::make_shared<ComponentStatusHandler>();
m_ddsHandler->enableDtcs();
QTimer::singleShot(5000, nullptr, [this]()
{
this->delayedInit();
});
m_checkmkHandler = std::make_shared<CheckmkHandler>();
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) << LOGFUNCTION << " CheckmkHandler::initialize failed";
return false;
}
INFO_LOG(m_logger) << LOGFUNCTION << " CheckmkHandler:initialize succesful";
QObject::connect(m_checkmkHandler.get(), &CheckmkHandler::newState,
m_componentStatusHandler.get(), &ComponentStatusHandler::onNewState, Qt::UniqueConnection);
m_checkmkHandlerScheduleCheck = std::make_shared<CheckmkHandlerScheduleCheck>(m_ddsHandler);
if (!m_checkmkHandlerScheduleCheck->initialize(host, port))
{
ERROR_LOG(m_logger) << LOGFUNCTION << " CheckmkHandlerScheduleCheck::initialize failed";
return false;
}
INFO_LOG(m_logger) << LOGFUNCTION << " 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) << LOGFUNCTION << " END";
return true;
}
bool Initialization::delayedInit()
{
INFO_LOG(m_logger) << LOGFUNCTION << " START";
bool success = true;
if (!m_componentStatusHandler->initialize(m_ddsHandler))
{
ERROR_LOG(m_logger) << LOGFUNCTION << " initialize failed for ComponentStatusHandler";
success = false;
}
INFO_LOG(m_logger) << LOGFUNCTION << " 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) << LOGFUNCTION << " updateLastCheckTimeDirect [bool] = " << updateLastCheckTimeDirect;
if (updateLastCheckTimeDirect)
{
NOTICE_LOG(m_logger) << LOGFUNCTION << " updateLastCheckTimeDirect is enabled";
QObject::connect(m_checkmkHandlerScheduleCheck.get(), &CheckmkHandlerScheduleCheck::updateLastCheckTimeDirect,
m_componentStatusHandler.get(), &ComponentStatusHandler::onUpdateLastCheckTimeDirect, Qt::DirectConnection);
}
INFO_LOG(m_logger) << LOGFUNCTION << " END";
return success;
}
}