Compare commits

..

10 Commits

6 changed files with 127 additions and 52 deletions

View File

@@ -24,7 +24,7 @@ INCLUDEPATH += \
plugins \
$${INCLUDEINTERFACES} \
$${_PRO_FILE_PWD_}/../UpdatePTUDevCtrl \
$${_PRO_FILE_PWD_}/../../ATBUpdateTool/common/include
$${_PRO_FILE_PWD_}/../common/include
CONFIG += c++17
@@ -81,13 +81,13 @@ SOURCES += \
../UpdatePTUDevCtrl/message_handler.cpp \
../UpdatePTUDevCtrl/commandline_parser.cpp \
update.cpp \
../../ATBUpdateTool/common/src/System.cpp
../common/src/System.cpp
HEADERS += \
../UpdatePTUDevCtrl/message_handler.h \
../UpdatePTUDevCtrl/commandline_parser.h \
update.h \
../../ATBUpdateTool/common/include/System.h
../common/include/System.h
OTHER_FILES += \
ATBDownloadDCJsonFiles.ini

View File

@@ -117,6 +117,8 @@ DEFINES += QT_DEPRECATED_WARNINGS
# customer-repository (e.g. origin/zg1/zone101), then fetch/pull
# this branch before switching to this now locally existen branch.
# : Improve output of GUI/Console and messages sent to ISMAS.
# : Fix: do not send the json-files to dc in any case. Bug introduced
# when pulling new branch, but branch already existed locally.
VERSION="1.4.6"
# PLANNED TODOS:
# 1: Das Repository wird repariert bwz. neu geklont. Unabhaengig vom WAIT.

View File

@@ -193,7 +193,7 @@ QStringList GitClient::gitShowReason(QString branchName) {
int const m = s.indexOf("m=");
int const d = s.indexOf("d=");
QString msg = IsmasClient::getReasonForLastSendVersion();
QString msg{""}; // IsmasClient::getReasonForLastSendVersion();
QString commit{""}, date{""};
if (c != -1) {
@@ -205,9 +205,9 @@ QStringList GitClient::gitShowReason(QString branchName) {
start = m + 2;
if (d >= start) {
length = d - start;
msg += " (";
// msg = " (";
msg = s.mid(start, length).trimmed();
msg += ")";
// msg += ")";
start = d + 2;
date = s.mid(start);

View File

@@ -44,6 +44,7 @@ QString Utils::getLocation(QString fileName) {
if (c != -1) {
location = line.mid(c+1);
if (!location.isEmpty()) {
location = location.replace(QChar(','), QString(""));
return location.replace(QChar('"'), QString("")).trimmed();
}
}
@@ -69,6 +70,7 @@ QString Utils::getTariffVersion(QString fileName) {
if (c != -1) {
version = line.mid(c+1);
if (!version.isEmpty()) {
version = version.replace(QChar(','), QString(""));
return version.replace(QChar('"'), QString("")).trimmed();
}
}
@@ -94,6 +96,7 @@ QString Utils::getTariffInfo(QString fileName) {
if (c != -1) {
info = line.mid(c+1);
if (!info.isEmpty()) {
info = info.replace(QChar(','), QString(""));
return info.replace(QChar('"'), QString("")).trimmed();
}
}

View File

@@ -17,6 +17,7 @@
#include <QJsonParseError>
#include <Qt>
#include <QScopedPointer>
#include <QRegularExpression>
#include "message_handler.h"
#include <DeviceController/interfaces.h>
@@ -300,13 +301,18 @@ void Worker::privateUpdate() {
m_updateNotNecessary = true;
m_ismasTriggerStatusMessage = QStringList(QString("NO UPDATE NECESSARY (%1)").arg(current.toString(Qt::ISODate)));
qCritical() << "privateUpdate m_ismasTriggerStatusMessage:" << QStringList(QString("NO UPDATE NECESSARY (%1)").arg(current.toString(Qt::ISODate)));
qCritical() << "privateUpdate m_ismasTriggerStatusMessage:"
<< QStringList(m_ismasTriggerStatusMessage);
qCritical() << "***";
// the customer-repository does exist, but the ISMAS-trigger is
// the customer-repository does exist, and the ISMAS-trigger is
// *NOT* "WAIT", but from 00:00:00 - 00:03:59 this counts as an
// automatic update
QStringList lst = m_ismasTriggerStatusMessage;
// trigger message to ISMAS and CONSOLE
ISMAS(lst) << (CONSOLE(lst) << (m_lastFailedUpdateStep = UPDATE_STEP::CHECK_ISMAS_TRIGGER_SUCCESS));
// overwrite m_lastFailedUpdateStep
m_lastFailedUpdateStep = UPDATE_STEP::NONE;
return;
}
@@ -730,29 +736,28 @@ bool Worker::customerEnvironment() {
if (QDir(m_customerRepository).exists()) {
if (m_clone == false) {
if (m_gc.branchExistsRemotely()) {
QString msg("PULL NEW BRANCH " + m_branchName);
QStringList lst(msg);
ISMAS(lst) << (GUI(lst) << (CONSOLE(lst) << UPDATE_STEP::PULL_NEW_BRANCH));
QString msg;
QStringList lst;
if (!m_gc.branchExistsLocally()) {
lst.clear();
msg = QString("PULLING OF NEW BRANCH " + m_branchName + " DOES NOT EXIST LOCALLY");
QStringList lst(msg);
lst << msg;
CONSOLE(lst) << UPDATE_STEP::PULL_NEW_BRANCH;
if (!m_gc.gitPullNewBranches()) {
msg = QString("PULLING OF NEW BRANCH " + m_branchName + "FAILED");
QStringList lst(msg);
lst.clear();
msg = QString("PULLING OF NEW BRANCH " + m_branchName + " FAILED");
lst << msg;
ISMAS(lst) << (GUI(lst) << (CONSOLE(lst) << (m_lastFailedUpdateStep = UPDATE_STEP::PULL_NEW_BRANCH_FAILURE)));
return false;
} else {
msg = QString("PULLING OF NEW BRANCH " + m_branchName + "SUCCESS");
QStringList lst(msg);
lst.clear();
msg = QString("PULLING OF NEW BRANCH " + m_branchName + " SUCCESS");
lst << msg;
ISMAS(lst) << (GUI(lst) << (CONSOLE(lst) << (m_lastFailedUpdateStep = UPDATE_STEP::PULL_NEW_BRANCH_SUCCESS)));
m_pulledNewBranch = true;
}
} else {
msg = QString("PULLING ALREADY EXISTING LOCAL BRANCH " + m_branchName + "SUCCESS");
QStringList lst(msg);
ISMAS(lst) << (GUI(lst) << (CONSOLE(lst) << (m_lastFailedUpdateStep = UPDATE_STEP::PULL_NEW_BRANCH_SUCCESS)));
m_pulledNewBranch = true;
m_pulledNewBranch = false;
}
}
}
@@ -1251,15 +1256,48 @@ PSAInstalled Worker::getPSAInstalled() {
psaInstalled.versionInfo.created = "N/A";
if (m_versionInfo.size() == 3) {
qCritical() << QString("***** %1:%2").arg(__func__).arg(__LINE__)
<< "m_versionInfo" << m_versionInfo << "*****";
psaInstalled.versionInfo.lastCommit = QString("%1-%2")
.arg(QCoreApplication::applicationPid())
.arg(m_versionInfo.at(0));
psaInstalled.versionInfo.reason = m_versionInfo.at(1);
QString const &lastCommit = m_versionInfo.at(0);
QString reason = m_versionInfo.at(1);
QDateTime const dt = QDateTime::fromString(m_versionInfo.at(2), Qt::ISODate);
QString version{""};
QString date{""};
if (dt.isValid()) {
date += " ";
date += dt.date().toString(Qt::ISODate);
}
static const QRegularExpression re("^\\s*(\\d+)\\.(\\d+)\\.(\\d+)(.*$)");
QRegularExpressionMatch match = re.match(reason);
if (match.hasMatch()) {
int const lastCapturedIndex = match.lastCapturedIndex();
if (lastCapturedIndex >= 1) {
version += " v";
version += match.captured(1); // major
}
if (lastCapturedIndex >= 2) {
version += ".";
version += match.captured(2); // minor
}
if (lastCapturedIndex >= 3) {
version += ".";
version += match.captured(3); // patch
}
if (lastCapturedIndex >= 4) { // rest after version
reason = match.captured(4);
}
}
psaInstalled.versionInfo.lastCommit = QString("%1%2").arg(lastCommit).arg(version);
psaInstalled.versionInfo.reason = reason;
psaInstalled.versionInfo.created = m_versionInfo.at(2);
}
//qCritical() << "";
//qCritical() << "VERSION-INFO";
//qCritical() << "LAST-COMMIT" << psaInstalled.versionInfo.lastCommit;
//qCritical() << "REASON" << psaInstalled.versionInfo.reason;
//qCritical() << "CREATED" << psaInstalled.versionInfo.created;
//qCritical() << "";
if (m_zoneNr != 0) {
QString const &n = QString("%1").arg(m_zoneNr).rightJustified(2, '0');
psaInstalled.tariff.name = QString("tariff%1.json").arg(n);

View File

@@ -733,7 +733,7 @@ private:
}
Worker::instance->m_currentStep = step;
QStringList lst = QStringList(smap[step]);
// QStringList lst = QStringList(smap[step]);
switch (step) {
case UPDATE_STEP::NONE: {
@@ -756,7 +756,8 @@ private:
QString("REPOSITORY %1 AND BRANCH %2 OK")
.arg(instance->m_customerRepository)
.arg(instance->m_gc.branchName()).toStdString().c_str(),
instance->m_versionInfo.size() >= 1 ? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
instance->m_versionInfo.size() >= 1
? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
ismasClient.sendRequestReceiveResponse(
IsmasClient::APISM::DB_PORT, ismasUpdateNews);
} break;
@@ -772,7 +773,8 @@ private:
QString("REPOSITORY %1 and BRANCH %2 ***NOT OK***")
.arg(instance->m_customerRepository)
.arg(instance->m_gc.branchName()).toStdString().c_str(),
instance->m_versionInfo.size() >= 1 ? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
instance->m_versionInfo.size() >= 1
? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
ismasClient.sendRequestReceiveResponse(
IsmasClient::APISM::DB_PORT, ismasUpdateNews);
} break;
@@ -791,7 +793,8 @@ private:
QString("SANITY OF %1 (BRANCH %2) OK")
.arg(instance->m_customerRepository)
.arg(instance->m_gc.branchName()).toStdString().c_str(),
instance->m_versionInfo.size() >= 1 ? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
instance->m_versionInfo.size() >= 1
? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
ismasClient.sendRequestReceiveResponse(
IsmasClient::APISM::DB_PORT, ismasUpdateNews);
} break;
@@ -807,7 +810,8 @@ private:
QString("SANITY OF %1 and BRANCH %2 ***NOT*** OK")
.arg(instance->m_customerRepository)
.arg(instance->m_gc.branchName()).toStdString().c_str(),
instance->m_versionInfo.size() >= 1 ? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
instance->m_versionInfo.size() >= 1
? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
ismasClient.sendRequestReceiveResponse(
IsmasClient::APISM::DB_PORT, ismasUpdateNews);
} break;
@@ -832,7 +836,8 @@ private:
QString("CLONED REPOSITORY %1 AND CHECKED OUT BRANCH %2")
.arg(instance->m_customerRepository)
.arg(instance->m_gc.branchName()).toStdString().c_str(),
instance->m_versionInfo.size() >= 1 ? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
instance->m_versionInfo.size() >= 1
? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
ismasClient.sendRequestReceiveResponse(IsmasClient::APISM::DB_PORT,
ismasUpdateNews);
} break;
@@ -848,7 +853,8 @@ private:
QString("CLONING REPOSITORY %1 OR CHECKING OUT BRANCH %2 FAILED")
.arg(instance->m_customerRepository)
.arg(instance->m_gc.branchName()).toStdString().c_str(),
instance->m_versionInfo.size() >= 1 ? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
instance->m_versionInfo.size() >= 1
? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
ismasClient.sendRequestReceiveResponse(
IsmasClient::APISM::DB_PORT, ismasUpdateNews);
} break;
@@ -863,7 +869,8 @@ private:
QString("CHECKED OUT REPOSITORY %1 AND CHECKED OUT BRANCH %2")
.arg(instance->m_customerRepository)
.arg(instance->m_gc.branchName()),
instance->m_versionInfo.size() >= 1 ? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A"));
instance->m_versionInfo.size() >= 1
? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A"));
} break;
case UPDATE_STEP::CHECKOUT_REPOSITORY_FAILURE: {
ismasClient.setProgressInPercent(_CHECKOUT_REPOSITORY_FAILURE);
@@ -877,7 +884,8 @@ private:
QString("%1: CHECKING OUT BRANCH %2 FAILED")
.arg(instance->m_customerRepository)
.arg(instance->m_gc.branchName()).toStdString().c_str(),
instance->m_versionInfo.size() >= 1 ? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
instance->m_versionInfo.size() >= 1
? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
ismasClient.sendRequestReceiveResponse(
IsmasClient::APISM::DB_PORT, ismasUpdateNews);
} break;
@@ -886,10 +894,24 @@ private:
} break;
case UPDATE_STEP::CHECK_ISMAS_TRIGGER_SUCCESS: {
ismasClient.setProgressInPercent(_CHECK_ISMAS_TRIGGER_SUCCESS);
ismasClient.sendRequestReceiveResponse(IsmasClient::APISM::DB_PORT,
QString const &ismasUpdateNews =
QString("#M=APISM#C=CMD_EVENT#J=") +
ismasClient.updateTriggerSet("ISMAS TRIGGER SET",
instance->m_versionInfo.size() >= 1 ? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A"));
ismasClient.updateNewsToIsmas(
_ISMAS_CONTINUE, //
_CHECK_ISMAS_TRIGGER_SUCCESS,
(instance->m_updateNotNecessary)
? IsmasClient::RESULT_CODE::NO_UPDATE_NECESSARY
: IsmasClient::RESULT_CODE::SUCCESS,
smap[UPDATE_STEP::CHECK_ISMAS_TRIGGER_SUCCESS],
instance->m_updateNotNecessary
? QString("NO-UPDATE-NECESSARY (%1:%2)")
.arg(instance->m_customerRepository)
.arg(instance->m_gc.branchName()).toStdString().c_str()
: QString("ISMAS-TRIGGER ON WAIT").toStdString().c_str(),
instance->m_versionInfo.size() >= 1
? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
ismasClient.sendRequestReceiveResponse(
IsmasClient::APISM::DB_PORT, ismasUpdateNews);
} break;
case UPDATE_STEP::CHECK_ISMAS_TRIGGER_WRONG_VALUE: {
ismasClient.setProgressInPercent(_CHECK_ISMAS_TRIGGER_WRONG_VALUE);
@@ -901,7 +923,8 @@ private:
IsmasClient::RESULT_CODE::ISMAS_TRIGGER_ERROR,
smap[UPDATE_STEP::CHECK_ISMAS_TRIGGER],
instance->m_ismasMsg.join(' ').toStdString().c_str(),
instance->m_versionInfo.size() >= 1 ? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
instance->m_versionInfo.size() >= 1
? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
ismasClient.sendRequestReceiveResponse(
IsmasClient::APISM::DB_PORT, ismasUpdateNews);
} break;
@@ -915,7 +938,8 @@ private:
IsmasClient::RESULT_CODE::ISMAS_TRIGGER_ERROR,
smap[UPDATE_STEP::CHECK_ISMAS_TRIGGER],
instance->m_ismasMsg.join(' ').toStdString().c_str(),
instance->m_versionInfo.size() >= 1 ? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
instance->m_versionInfo.size() >= 1
? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
ismasClient.sendRequestReceiveResponse(
IsmasClient::APISM::DB_PORT, ismasUpdateNews);
} break;
@@ -929,7 +953,8 @@ private:
IsmasClient::RESULT_CODE::SUCCESS,
smap[UPDATE_STEP::INITIAL_CLONE_WITHOUT_ACTIVE_ISMAS_TRIGGER],
instance->m_ismasMsg.join(' ').toStdString().c_str(),
instance->m_versionInfo.size() >= 1 ? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
instance->m_versionInfo.size() >= 1
? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
ismasClient.sendRequestReceiveResponse(
IsmasClient::APISM::DB_PORT, ismasUpdateNews);
} break;
@@ -943,7 +968,8 @@ private:
IsmasClient::RESULT_CODE::SUCCESS,
smap[UPDATE_STEP::INITIAL_CLONE_WITH_ACTIVE_ISMAS_TRIGGER],
instance->m_ismasMsg.join(' ').toStdString().c_str(),
instance->m_versionInfo.size() >= 1 ? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
instance->m_versionInfo.size() >= 1
? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
ismasClient.sendRequestReceiveResponse(
IsmasClient::APISM::DB_PORT, ismasUpdateNews);
} break;
@@ -957,7 +983,8 @@ private:
IsmasClient::RESULT_CODE::SUCCESS,
smap[UPDATE_STEP::CHECKOUT_BRANCH],
instance->m_ismasMsg.join(' ').toStdString().c_str(),
instance->m_versionInfo.size() >= 1 ? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
instance->m_versionInfo.size() >= 1
? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
ismasClient.sendRequestReceiveResponse(
IsmasClient::APISM::DB_PORT, ismasUpdateNews);
}
@@ -972,7 +999,8 @@ private:
IsmasClient::RESULT_CODE::GIT_PULL_ERROR,
smap[UPDATE_STEP::CHECKOUT_BRANCH],
instance->m_ismasMsg.join(' ').toStdString().c_str(),
instance->m_versionInfo.size() >= 1 ? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
instance->m_versionInfo.size() >= 1
? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
ismasClient.sendRequestReceiveResponse(
IsmasClient::APISM::DB_PORT, ismasUpdateNews);
}
@@ -987,7 +1015,8 @@ private:
IsmasClient::RESULT_CODE::SUCCESS,
smap[UPDATE_STEP::CHECKOUT_BRANCH],
instance->m_ismasMsg.join(' ').toStdString().c_str(),
instance->m_versionInfo.size() >= 1 ? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
instance->m_versionInfo.size() >= 1
? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
ismasClient.sendRequestReceiveResponse(
IsmasClient::APISM::DB_PORT, ismasUpdateNews);
}
@@ -1002,7 +1031,8 @@ private:
IsmasClient::RESULT_CODE::SUCCESS,
smap[UPDATE_STEP::CHECKOUT_BRANCH],
instance->m_ismasMsg.join(' ').toStdString().c_str(),
instance->m_versionInfo.size() >= 1 ? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
instance->m_versionInfo.size() >= 1
? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
ismasClient.sendRequestReceiveResponse(
IsmasClient::APISM::DB_PORT, ismasUpdateNews);
} break;
@@ -1016,7 +1046,8 @@ private:
IsmasClient::RESULT_CODE::SUCCESS,
smap[UPDATE_STEP::CHECKOUT_BRANCH],
instance->m_ismasMsg.join(' ').toStdString().c_str(),
instance->m_versionInfo.size() >= 1 ? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
instance->m_versionInfo.size() >= 1
? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
ismasClient.sendRequestReceiveResponse(
IsmasClient::APISM::DB_PORT, ismasUpdateNews);
} break;
@@ -1030,7 +1061,8 @@ private:
IsmasClient::RESULT_CODE::GIT_SWITCH_BRANCH_ERROR,
smap[UPDATE_STEP::CHECKOUT_BRANCH],
instance->m_ismasMsg.join(' ').toStdString().c_str(),
instance->m_versionInfo.size() >= 1 ? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
instance->m_versionInfo.size() >= 1
? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
ismasClient.sendRequestReceiveResponse(
IsmasClient::APISM::DB_PORT, ismasUpdateNews);
} break;
@@ -1307,7 +1339,7 @@ private:
QString const &ismasUpdateNews =
QString("#M=APISM#C=CMD_EVENT#J=") +
ismasClient.updateNewsToIsmas(
_ISMAS_SET_WAIT_OK,
_ISMAS_SET_WAIT_OK, // U0002
ismasClient.getProgressInPercent(),
IsmasClient::RESULT_CODE::SUCCESS,
smap[UPDATE_STEP::UPDATE_FINALIZE],
@@ -1321,9 +1353,9 @@ private:
QString const &ismasUpdateNews =
QString("#M=APISM#C=CMD_EVENT#J=") +
ismasClient.updateNewsToIsmas(
_ISMAS_SET_WAIT_OK,
_ISMAS_SET_WAIT_OK, // U0002
ismasClient.getProgressInPercent(),
IsmasClient::RESULT_CODE::SUCCESS,
IsmasClient::RESULT_CODE::NO_UPDATE_NECESSARY,
smap[UPDATE_STEP::UPDATE_FINALIZE],
instance->m_ismasMsg.join(' ').toStdString().c_str(),
instance->m_versionInfo.size() >= 1 ? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
@@ -1335,7 +1367,7 @@ private:
QString const &ismasUpdateNews =
QString("#M=APISM#C=CMD_EVENT#J=") +
ismasClient.updateNewsToIsmas(
_ISMAS_FAILURE,
_ISMAS_FAILURE, // U0003 is sent only once
ismasClient.getProgressInPercent(),
IsmasClient::RESULT_CODE::UPDATE_IN_ERROR_STATE,
smap[UPDATE_STEP::UPDATE_FINALIZE],