Compare commits

..

15 Commits

Author SHA1 Message Date
22e751e197 Minor: add comment 2024-05-03 13:35:33 +02:00
05c7d11ef8 Only create m_update-object if it is configured to update hardware (JSONs and DC). 2024-05-03 13:32:39 +02:00
63dc70dda9 Check if it has to be possible to update hardware (JSONs, DC). If yes, then exit(). 2024-05-03 13:31:04 +02:00
e5ab9b98cd Set Version to 1.4.7 2024-05-03 13:14:57 +02:00
4477647acf Check m_hw before its use 2024-05-03 13:11:33 +02:00
d64b029a2d loadDCPlugin(): never call exit() inside a library. 2024-05-03 13:08:25 +02:00
e24022a612 Set version to 1.4.6. Fix: do not send all jsons down to DC unconditionally 2024-04-29 15:05:10 +02:00
60d78790ba Minor: remove trailing ")" in msg 2024-04-29 15:03:43 +02:00
543e712c62 Minor: Replace trailing "," 2024-04-29 15:02:37 +02:00
8402fde6b5 Reformat m_versionInfo in case a version is included in the commit-message. 2024-04-29 15:00:52 +02:00
f15cc636c6 FIX: set m_pulledNewBranch = false in case no new branch has to be fetched from remote repository. 2024-04-29 14:59:10 +02:00
adaa12395e Trigger CHECK_ISMAS_TRIGGER_SUCCESS-message to ISMAS. 2024-04-29 14:58:29 +02:00
853c29e448 Set result code NO_UPDATE_NECESSARY instead of just SUCCESS. 2024-04-29 14:54:27 +02:00
78c214ceb4 CHECK_ISMAS_TRIGGER_SUCCESS: send message to ISMAS if WAIT-button as been set to "WAIT". 2024-04-29 14:52:50 +02:00
88bec387c5 Minor: formatted code for readability. 2024-04-29 14:50:43 +02:00
7 changed files with 263 additions and 172 deletions

View File

@@ -117,7 +117,13 @@ 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.
VERSION="1.4.6"
# : Fix: do not send the json-files to dc in any case. Bug introduced
# when pulling new branch, but branch already existed locally.
# 1.4.6 : No exit()-call if loading CA-plugin fails.
# Check m_hw (pointer to CA-(Slave)Plugin) before its use.
# Only exit() if firmware is configured to be possibly updated, but
# loading the CA-plugin failed.
VERSION="1.4.7"
# PLANNED TODOS:
# 1: Das Repository wird repariert bwz. neu geklont. Unabhaengig vom WAIT.
# 2: Wenn der WAIT-Button aktiv ist, dann wird ein Repository repariert (neu

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

@@ -130,7 +130,9 @@ int main(int argc, char *argv[]) {
if (!QDir(plugInDir).exists()) {
qCritical() << plugInDir
<< "does not exists, but has to contain dc-library";
exit(-1);
if (noUpdatePsaHardware == false) {
exit(-1);
}
}
// before loading the library, delete all possible shared memory segments

View File

@@ -52,7 +52,6 @@ hwinf *Update::loadDCPlugin(QDir const &plugInDir, QString const &fname) {
qCritical() << "in directory" << plugInDir.absolutePath();
qCritical() << "cannot load plugin" << pluginLoader.fileName();
qCritical() << pluginLoader.errorString();
exit(-1);
}
qCritical() << "loadDCPlugin() plugin directory:" << plugInDir.absolutePath();
@@ -60,25 +59,20 @@ hwinf *Update::loadDCPlugin(QDir const &plugInDir, QString const &fname) {
if (!pluginLoader.isLoaded()) {
qCritical() << pluginLoader.errorString();
exit(-2);
}
QObject *plugin = pluginLoader.instance();
if (!plugin) {
qCritical() << "cannot start instance";
exit(-3);
}
if (! (hw = qobject_cast<hwinf *>(plugin))) {
qCritical() << "cannot cast plugin" << plugin << "to hwinf";
exit(-4);
}
} else {
qCritical() << pluginLibName << "does not exist";
exit(-5);
}
} else {
qCritical() << "plugins directory" << plugInDir.absolutePath()
<< "does not exist";
exit(-6);
}
return hw;
}
@@ -124,7 +118,7 @@ Update::Update(Worker *worker,
, m_sys_areDCdataValid(false) {
if (!m_hw) {
qCritical() << "(" << __func__ << ":" << __LINE__ << ") m_hw == nullptr -> ca-slave plugin loaded ???";
qCritical() << "(" << __func__ << ":" << __LINE__ << ") m_hw == nullptr -> ca-slave plugin not loaded";
} else {
int tries = 20;
while ((m_sys_areDCdataValid = m_hw->sys_areDCdataValid()) == false) {
@@ -191,33 +185,37 @@ void Update::onReportDCDownloadFailure(QString const &errorMsg) {
// br is a index into a table, used for historical reasons.
bool Update::openSerial(int br, QString baudrate, QString comPort) const {
qDebug() << "opening serial" << br << baudrate << comPort << "...";
if (m_hw->dc_openSerial(br, baudrate, comPort, 1) == true) { // 1 for connect
Utils::printInfoMsg(
if (m_hw) {
qDebug() << "opening serial" << br << baudrate << comPort << "...";
if (m_hw->dc_openSerial(br, baudrate, comPort, 1) == true) { // 1 for connect
Utils::printInfoMsg(
QString("OPENING SERIAL %1").arg(br)
+ " " + baudrate + " " + comPort + "...OK");
// m_hw->dc_autoRequest(true);
m_hw->dc_autoRequest(false);
QThread::sleep(1);
Utils::printInfoMsg(QString("IS PORT OPEN %1").arg(m_hw->dc_isPortOpen()));
return true;
}
Utils::printCriticalErrorMsg(
QString("OPENING SERIAL %1").arg(br)
+ " " + baudrate + " " + comPort + "...OK");
// m_hw->dc_autoRequest(true);
m_hw->dc_autoRequest(false);
QThread::sleep(1);
Utils::printInfoMsg(QString("IS PORT OPEN %1").arg(m_hw->dc_isPortOpen()));
return true;
+ " " + baudrate + " " + comPort + "...FAILED");
}
Utils::printCriticalErrorMsg(
QString("OPENING SERIAL %1").arg(br)
+ " " + baudrate + " " + comPort + "...FAILED");
return false;
}
void Update::closeSerial() const {
qInfo() << "CLOSED SERIAL" << m_baudrate << m_serialInterface;
m_hw->dc_closeSerial();
if (m_hw) {
m_hw->dc_closeSerial();
}
}
bool Update::isSerialOpen() const {
return m_hw->dc_isPortOpen();
return m_hw ? m_hw->dc_isPortOpen() : false;
}
/*
@@ -396,78 +394,88 @@ bool Update::downloadJson(enum FileTypeJson type,
int templateIdx,
QString jsFileToSendToDC) const {
m_hw->dc_autoRequest(true); // downloading Json needs the AutoEmission flag
qDebug() << "SET AUTO-REQUEST=TRUE";
QThread::sleep(1); // make sure the auto-request flag is acknowledged
QStringList lst;
bool ready = false;
int nTry = 25;
while ((ready = m_hw->sys_ready4sending()) == false) {
QThread::msleep(200);
if (--nTry <= 0) {
QString msg("SYS NOT READY FOR SENDING AFTER 5 SECONDS");
Utils::printCriticalErrorMsg(msg);
lst << msg;
if (m_worker) {
m_worker->ISMAS(lst) << (m_worker->GUI(lst) << (m_worker->CONSOLE(lst) << Worker::UPDATE_STEP::DOWNLOAD_FILES_TO_PSA_HARDWARE));
}
break;
}
}
bool ret = false;
QString msg;
lst.clear();
if (ready) {
QFile file(jsFileToSendToDC);
QFileInfo fi(jsFileToSendToDC); // max. size of template file is 800 bytes
if (file.exists()) {
if (file.open(QIODevice::ReadOnly)) {
if (fi.size() > 0 && fi.size() <= 800) {
QByteArray ba = file.readAll();
// kindOfFile: 1=config, 2=device, 3=cash, 4=serial, 5=time, 6=printer
// nrOfTemplate=1...32 if kindOfFile==6
// content = content of the Json file, max 800byte ascii signs
if (m_hw->sys_sendJsonFileToDc((uint8_t)(type),
templateIdx,
(uint8_t *)ba.data())) {
if (m_hw) {
m_hw->dc_autoRequest(true); // downloading Json needs the AutoEmission flag
qDebug() << "SET AUTO-REQUEST=TRUE";
QThread::sleep(1); // make sure the auto-request flag is acknowledged
/*
* Note: the machine id is contained in DC2C_conf.json.
* The idea was to use this to check if the download of
* the json-file was correct. It did not work, as the
* update of the PSA (to reflect a change in the
* machine id) did not happen immediately.
*
m_hw->dc_autoRequest(true);
QThread::msleep(500);
QStringList lst;
bool ready = false;
int nTry = 25;
while ((ready = m_hw->sys_ready4sending()) == false) {
QThread::msleep(200);
if (--nTry <= 0) {
QString msg("SYS NOT READY FOR SENDING AFTER 5 SECONDS");
Utils::printCriticalErrorMsg(msg);
lst << msg;
// testing
m_hw->request_ReadbackMachineID();
QThread::msleep(500);
if (m_worker) {
m_worker->ISMAS(lst) << (m_worker->GUI(lst) << (m_worker->CONSOLE(lst) << Worker::UPDATE_STEP::DOWNLOAD_FILES_TO_PSA_HARDWARE));
}
break;
}
}
uint8_t data[64];
memset(data, 0x00, sizeof(data));
uint8_t length = 0;
QString msg;
lst.clear();
if (ready) {
QFile file(jsFileToSendToDC);
QFileInfo fi(jsFileToSendToDC); // max. size of template file is 800 bytes
if (file.exists()) {
if (file.open(QIODevice::ReadOnly)) {
if (fi.size() > 0 && fi.size() <= 800) {
QByteArray ba = file.readAll();
// kindOfFile: 1=config, 2=device, 3=cash, 4=serial, 5=time, 6=printer
// nrOfTemplate=1...32 if kindOfFile==6
// content = content of the Json file, max 800byte ascii signs
if (m_hw->sys_sendJsonFileToDc((uint8_t)(type),
templateIdx,
(uint8_t *)ba.data())) {
m_hw->readback_machineIDdata(&length, data);
/*
* Note: the machine id is contained in DC2C_conf.json.
* The idea was to use this to check if the download of
* the json-file was correct. It did not work, as the
* update of the PSA (to reflect a change in the
* machine id) did not happen immediately.
*
m_hw->dc_autoRequest(true);
QThread::msleep(500);
QThread::msleep(500);
// testing
m_hw->request_ReadbackMachineID();
QThread::msleep(500);
QByteArray ba((const char*)data, length);
uint8_t data[64];
memset(data, 0x00, sizeof(data));
uint8_t length = 0;
qCritical() << length << "MACHINE ID =" << ba.toHex(':');
*/
m_hw->readback_machineIDdata(&length, data);
if (m_worker) {
m_worker->ISMAS(lst) << (m_worker->GUI(lst) << (m_worker->CONSOLE(lst) << Worker::UPDATE_STEP::DOWNLOAD_FILES_TO_PSA_HARDWARE));
QThread::msleep(500);
QByteArray ba((const char*)data, length);
qCritical() << length << "MACHINE ID =" << ba.toHex(':');
*/
if (m_worker) {
m_worker->ISMAS(lst) << (m_worker->GUI(lst) << (m_worker->CONSOLE(lst) << Worker::UPDATE_STEP::DOWNLOAD_FILES_TO_PSA_HARDWARE));
}
ret = true;
} else {
msg = QString("ERROR SEND JSON-FILE %1 TO DC").arg(file.fileName());
Utils::printCriticalErrorMsg(msg);
lst << msg;
if (m_worker) {
m_worker->ISMAS(lst) << (m_worker->GUI(lst) << (m_worker->CONSOLE(lst)
<< Worker::UPDATE_STEP::DOWNLOAD_FILES_TO_PSA_HARDWARE));
}
}
ret = true;
} else {
msg = QString("ERROR SEND JSON-FILE %1 TO DC").arg(file.fileName());
msg = QString("SIZE OF %1 TOO BIG (%2 BYTES)").arg(jsFileToSendToDC).arg(fi.size());
Utils::printCriticalErrorMsg(msg);
lst << msg;
if (m_worker) {
@@ -476,16 +484,17 @@ bool Update::downloadJson(enum FileTypeJson type,
}
}
} else {
msg = QString("SIZE OF %1 TOO BIG (%2 BYTES)").arg(jsFileToSendToDC).arg(fi.size());
msg = QString("CAN NOT OPEN ") + jsFileToSendToDC + " FOR READING";
Utils::printCriticalErrorMsg(msg);
lst << msg;
if (m_worker) {
m_worker->ISMAS(lst) << (m_worker->GUI(lst) << (m_worker->CONSOLE(lst)
<< Worker::UPDATE_STEP::DOWNLOAD_FILES_TO_PSA_HARDWARE));
}
}
} else {
msg = QString("CAN NOT OPEN ") + jsFileToSendToDC + " FOR READING";
msg = QString(jsFileToSendToDC) + " DOES NOT EXIST";
Utils::printCriticalErrorMsg(msg);
lst << msg;
@@ -494,21 +503,12 @@ bool Update::downloadJson(enum FileTypeJson type,
<< Worker::UPDATE_STEP::DOWNLOAD_FILES_TO_PSA_HARDWARE));
}
}
} else {
msg = QString(jsFileToSendToDC) + " DOES NOT EXIST";
Utils::printCriticalErrorMsg(msg);
lst << msg;
if (m_worker) {
m_worker->ISMAS(lst) << (m_worker->GUI(lst) << (m_worker->CONSOLE(lst)
<< Worker::UPDATE_STEP::DOWNLOAD_FILES_TO_PSA_HARDWARE));
}
}
}
m_hw->dc_autoRequest(false);
qDebug() << "SET AUTO-REQUEST=FALSE";
QThread::sleep(1); // make sure the auto-request flag is acknowledged
m_hw->dc_autoRequest(false);
qDebug() << "SET AUTO-REQUEST=FALSE";
QThread::sleep(1); // make sure the auto-request flag is acknowledged
}
return ret;
}
@@ -564,24 +564,26 @@ void Update::finished(int /*exitCode*/, QProcess::ExitStatus /*exitStatus*/) {
}
QStringList Update::getDcSoftAndHardWareVersion() {
m_hw->dc_autoRequest(true);
QThread::sleep(1); // make sure the timer-slots are active
if (m_hw) {
m_hw->dc_autoRequest(true);
QThread::sleep(1); // make sure the timer-slots are active
for (int i=0; i < 3; ++i) { // send explicit reuests to get
// current SW/HW-versions
m_hw->request_DC2_SWversion();
m_hw->request_DC2_HWversion();
QThread::sleep(1);
}
for (int i=0; i < 3; ++i) { // send explicit reuests to get
// current SW/HW-versions
m_hw->request_DC2_SWversion();
m_hw->request_DC2_HWversion();
QThread::sleep(1);
}
QString const &hwVersion = m_hw->dc_getHWversion().toLower().trimmed();
QString const &swVersion = m_hw->dc_getSWversion().toLower().trimmed();
QString const &hwVersion = m_hw->dc_getHWversion().toLower().trimmed();
QString const &swVersion = m_hw->dc_getSWversion().toLower().trimmed();
m_hw->dc_autoRequest(false);
QThread::sleep(1); // make sure the timer-slots are inactive
m_hw->dc_autoRequest(false);
QThread::sleep(1); // make sure the timer-slots are inactive
if (!hwVersion.isEmpty() && !swVersion.isEmpty()) {
return QStringList() << hwVersion << swVersion;
if (!hwVersion.isEmpty() && !swVersion.isEmpty()) {
return QStringList() << hwVersion << swVersion;
}
}
return QStringList() << "DC HW-version not available"
@@ -671,6 +673,11 @@ bool Update::checkDownloadedJsonVersions(QStringList const& jsonFileNames) {
}
bool Update::doUpdate(int &displayIndex, QStringList const &filesToWorkOn) {
if (!m_hw) {
Utils::printInfoMsg("CA-PLUGIN NOT LOADED");
return false;
}
int tries = 20;
while ((m_sys_areDCdataValid = m_hw->sys_areDCdataValid()) == false) {
// must deliver 'true', only then are all data from hwapi valid

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>
@@ -169,13 +170,16 @@ Worker::Worker(int customerNr,
// TODO: turn object into singleton
instance = this;
m_lastFailedUpdateStep = UPDATE_STEP::NONE;
m_update = new Update(this,
QDir::cleanPath(m_workingDirectory + QDir::separator() + m_customerNrStr),
m_customerNrStr,
m_branchName,
m_pluginDir,
m_pluginName,
m_workingDirectory);
if (m_noUpdatePsaHardware == false) {
m_update = new Update(this,
QDir::cleanPath(m_workingDirectory + QDir::separator() + m_customerNrStr),
m_customerNrStr,
m_branchName,
m_pluginDir,
m_pluginName,
m_workingDirectory);
}
this->setObjectName("worker-object");
QDir::setCurrent(m_workingDirectory);
@@ -300,13 +304,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 +739,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 +1259,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],