Added fetching apism-version. Fixed calls to final_result().
This commit is contained in:
parent
12ffa71455
commit
507586f9dc
137
worker.cpp
137
worker.cpp
@ -205,12 +205,10 @@ void Worker::privateUpdate() {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
m_ismasClient.setProgressInPercent(10);
|
m_ismasClient.setProgressInPercent(10);
|
||||||
if (backendConnected()) {
|
|
||||||
m_ismasClient.setProgressInPercent(20);
|
|
||||||
if (updateTriggerSet()) {
|
if (updateTriggerSet()) {
|
||||||
m_ismasClient.setProgressInPercent(30);
|
m_ismasClient.setProgressInPercent(20);
|
||||||
if (customerEnvironment()) {
|
if (customerEnvironment()) {
|
||||||
m_ismasClient.setProgressInPercent(40);
|
m_ismasClient.setProgressInPercent(30);
|
||||||
if (filesToUpdate()) {
|
if (filesToUpdate()) {
|
||||||
// send message to ISMAS about files which have been
|
// send message to ISMAS about files which have been
|
||||||
// checked in into git repository
|
// checked in into git repository
|
||||||
@ -220,16 +218,16 @@ void Worker::privateUpdate() {
|
|||||||
QString("#M=APISM#C=CMD_EVENT#J=") +
|
QString("#M=APISM#C=CMD_EVENT#J=") +
|
||||||
m_ismasClient.updateOfPSAContinues("CHECK-FILES-TO-UPDATE",
|
m_ismasClient.updateOfPSAContinues("CHECK-FILES-TO-UPDATE",
|
||||||
m_updateStatus.m_statusDescription));
|
m_updateStatus.m_statusDescription));
|
||||||
m_ismasClient.setProgressInPercent(50);
|
m_ismasClient.setProgressInPercent(40);
|
||||||
if (updateFiles(50)) {
|
if (updateFiles(50)) {
|
||||||
m_ismasClient.setProgressInPercent(60);
|
m_ismasClient.setProgressInPercent(50);
|
||||||
if (syncCustomerRepositoryAndFS()) {
|
if (syncCustomerRepositoryAndFS()) {
|
||||||
m_ismasClient.setProgressInPercent(70);
|
m_ismasClient.setProgressInPercent(60);
|
||||||
if (sendIsmasLastVersionNotification()) {
|
if (sendIsmasLastVersionNotification()) {
|
||||||
m_ismasClient.setProgressInPercent(80);
|
m_ismasClient.setProgressInPercent(70);
|
||||||
sentIsmasLastVersionNotification = true;
|
sentIsmasLastVersionNotification = true;
|
||||||
if (saveLogFile()) {
|
if (saveLogFile()) {
|
||||||
m_ismasClient.setProgressInPercent(90);
|
m_ismasClient.setProgressInPercent(80);
|
||||||
|
|
||||||
IsmasClient::sendRequestReceiveResponse(IsmasClient::APISM::DB_PORT,
|
IsmasClient::sendRequestReceiveResponse(IsmasClient::APISM::DB_PORT,
|
||||||
QString("#M=APISM#C=CMD_EVENT#J=") +
|
QString("#M=APISM#C=CMD_EVENT#J=") +
|
||||||
@ -312,16 +310,6 @@ void Worker::privateUpdate() {
|
|||||||
m_updateStatus.m_statusDescription));
|
m_updateStatus.m_statusDescription));
|
||||||
m_returnCode = -5;
|
m_returnCode = -5;
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
m_updateStatus = UpdateStatus(UPDATE_STATUS::BACKEND_CHECK_FAILURE,
|
|
||||||
QString("ISMAS backend not available"));
|
|
||||||
IsmasClient::sendRequestReceiveResponse(IsmasClient::APISM::DB_PORT,
|
|
||||||
QString("#M=APISM#C=CMD_EVENT#J=") +
|
|
||||||
m_ismasClient.updateOfPSAFailed(IsmasClient::RESULT_CODE::INSTALL_ERROR,
|
|
||||||
"ISMAS-BACKEND-CHECK",
|
|
||||||
m_updateStatus.m_statusDescription));
|
|
||||||
m_returnCode = -4;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
m_ismasClient.setProgressInPercent(100);
|
m_ismasClient.setProgressInPercent(100);
|
||||||
@ -334,7 +322,6 @@ void Worker::privateUpdate() {
|
|||||||
m_updateStatus = UpdateStatus(UPDATE_STATUS::UPDATE_PROCESS_FAILURE,
|
m_updateStatus = UpdateStatus(UPDATE_STATUS::UPDATE_PROCESS_FAILURE,
|
||||||
QString("Update process failed"));
|
QString("Update process failed"));
|
||||||
if (std::optional<QString> s = m_ismasClient.finalResult(IsmasClient::RESULT_CODE::INSTALL_ERROR,
|
if (std::optional<QString> s = m_ismasClient.finalResult(IsmasClient::RESULT_CODE::INSTALL_ERROR,
|
||||||
"FINAL-UPDATE-RESULT",
|
|
||||||
m_updateStatus.m_statusDescription)) {
|
m_updateStatus.m_statusDescription)) {
|
||||||
IsmasClient::sendRequestReceiveResponse(IsmasClient::APISM::DB_PORT,
|
IsmasClient::sendRequestReceiveResponse(IsmasClient::APISM::DB_PORT,
|
||||||
QString("#M=APISM#C=CMD_EVENT#J=") + s.value());
|
QString("#M=APISM#C=CMD_EVENT#J=") + s.value());
|
||||||
@ -343,9 +330,8 @@ void Worker::privateUpdate() {
|
|||||||
emit appendText(QString("UPDATE "), UPDATE_STEP_SUCCESS);
|
emit appendText(QString("UPDATE "), UPDATE_STEP_SUCCESS);
|
||||||
|
|
||||||
m_updateStatus = UpdateStatus(UPDATE_STATUS::UPDATE_PROCESS_SUCCESS,
|
m_updateStatus = UpdateStatus(UPDATE_STATUS::UPDATE_PROCESS_SUCCESS,
|
||||||
QString("Update process succeeded"));
|
QString("Update process succeeded. Reset WAIT."));
|
||||||
if (std::optional<QString> s = m_ismasClient.finalResult(IsmasClient::RESULT_CODE::SUCCESS,
|
if (std::optional<QString> s = m_ismasClient.finalResult(IsmasClient::RESULT_CODE::SUCCESS,
|
||||||
"FINAL-UPDATE-RESULT",
|
|
||||||
m_updateStatus.m_statusDescription)) {
|
m_updateStatus.m_statusDescription)) {
|
||||||
IsmasClient::sendRequestReceiveResponse(IsmasClient::APISM::DB_PORT,
|
IsmasClient::sendRequestReceiveResponse(IsmasClient::APISM::DB_PORT,
|
||||||
QString("#M=APISM#C=CMD_EVENT#J=") + s.value());
|
QString("#M=APISM#C=CMD_EVENT#J=") + s.value());
|
||||||
@ -362,34 +348,20 @@ void Worker::privateUpdate() {
|
|||||||
emit restartExitTimer();
|
emit restartExitTimer();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Worker::backendConnected() {
|
std::optional<QString> Worker::getApismVersion() {
|
||||||
// deactivated: REQ_SELF does not really help. Observation was that even
|
for (int repeat = 0; repeat < 10; ++repeat) {
|
||||||
// id ISMAS is reported as 'true', a following check of the update-trigger
|
qInfo() << "REPEAT" << repeat << "In getApismVersion() -> #M=APISM#C=REQ_SELF#J={}";
|
||||||
// button has no access to ISMAS.
|
|
||||||
return true;
|
|
||||||
|
|
||||||
emit appendText("\nConnecting backend ...");
|
|
||||||
|
|
||||||
if (false) { // so linker removes dead code
|
|
||||||
for (int repeat = 0; repeat < 100; ++repeat) {
|
|
||||||
qInfo() << "REPEAT" << repeat << "In backendConnected() -> #M=APISM#C=REQ_SELF#J={}";
|
|
||||||
startProgressLoop();
|
|
||||||
std::optional<QString> result
|
std::optional<QString> result
|
||||||
= IsmasClient::sendRequestReceiveResponse(
|
= IsmasClient::sendRequestReceiveResponse(
|
||||||
IsmasClient::APISM::DIRECT_PORT, "#M=APISM#C=REQ_SELF#J={}");
|
IsmasClient::APISM::DIRECT_PORT, "#M=APISM#C=REQ_SELF#J={}");
|
||||||
if (result) {
|
if (result) {
|
||||||
stopProgressLoop();
|
|
||||||
int progress = (m_mainWindow->progressValue()/10) + 10;
|
|
||||||
setProgress(progress);
|
|
||||||
|
|
||||||
QString msg = result.value();
|
QString msg = result.value();
|
||||||
qInfo() << "In backendConnected() -> APISM response" << msg;
|
qInfo() << "In getApismVersion() -> APISM response" << msg;
|
||||||
QJsonParseError parseError;
|
QJsonParseError parseError;
|
||||||
QJsonDocument document(QJsonDocument::fromJson(msg.toUtf8(), &parseError));
|
QJsonDocument document(QJsonDocument::fromJson(msg.toUtf8(), &parseError));
|
||||||
if (parseError.error != QJsonParseError::NoError) {
|
if (parseError.error != QJsonParseError::NoError) {
|
||||||
qCritical() << "(1) INVALID JSON MSG: PARSING FAILED (msg=" << msg << "):"
|
qCritical() << "(1) INVALID JSON MSG: PARSING FAILED (msg=" << msg << "):"
|
||||||
<< parseError.error << parseError.errorString();
|
<< parseError.error << parseError.errorString();
|
||||||
setProgress(100);
|
|
||||||
m_updateStatus = UpdateStatus(UPDATE_STATUS::JSON_PARSE_FAILURE,
|
m_updateStatus = UpdateStatus(UPDATE_STATUS::JSON_PARSE_FAILURE,
|
||||||
QString("(2) INVALID JSON %1 %2 %3")
|
QString("(2) INVALID JSON %1 %2 %3")
|
||||||
.arg(msg)
|
.arg(msg)
|
||||||
@ -399,100 +371,39 @@ bool Worker::backendConnected() {
|
|||||||
QString("#M=APISM#C=CMD_EVENT#J=") +
|
QString("#M=APISM#C=CMD_EVENT#J=") +
|
||||||
m_ismasClient.jsonParseFailed(IsmasClient::RESULT_CODE::INSTALL_ERROR,
|
m_ismasClient.jsonParseFailed(IsmasClient::RESULT_CODE::INSTALL_ERROR,
|
||||||
m_updateStatus.m_statusDescription));
|
m_updateStatus.m_statusDescription));
|
||||||
emit replaceLast("Connecting backend ...", UPDATE_STEP_FAIL);
|
return std::nullopt;
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
if (!document.isObject()) {
|
if (!document.isObject()) {
|
||||||
qCritical() << "FILE IS NOT A JSON OBJECT!";
|
qCritical() << "FILE IS NOT A JSON OBJECT!";
|
||||||
setProgress(100);
|
|
||||||
m_updateStatus = UpdateStatus(UPDATE_STATUS::JSON_PARSE_FAILURE,
|
m_updateStatus = UpdateStatus(UPDATE_STATUS::JSON_PARSE_FAILURE,
|
||||||
QString("NOT A JSON-OBJECT %1").arg(msg));
|
QString("NOT A JSON-OBJECT %1").arg(msg));
|
||||||
IsmasClient::sendRequestReceiveResponse(IsmasClient::APISM::DB_PORT,
|
IsmasClient::sendRequestReceiveResponse(IsmasClient::APISM::DB_PORT,
|
||||||
QString("#M=APISM#C=CMD_EVENT#J=") +
|
QString("#M=APISM#C=CMD_EVENT#J=") +
|
||||||
m_ismasClient.jsonParseFailed(IsmasClient::RESULT_CODE::INSTALL_ERROR,
|
m_ismasClient.jsonParseFailed(IsmasClient::RESULT_CODE::INSTALL_ERROR,
|
||||||
m_updateStatus.m_statusDescription));
|
m_updateStatus.m_statusDescription));
|
||||||
emit replaceLast("Connecting backend ...", UPDATE_STEP_FAIL);
|
return std::nullopt;
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
setProgress(progress + 1);
|
|
||||||
|
|
||||||
QJsonObject obj = document.object();
|
QJsonObject obj = document.object();
|
||||||
QStringList keys = obj.keys().filter("CMD_GET_APISMSTATUS_RESPONSE");
|
QStringList keys = obj.keys().filter("CMD_GET_APISMSTATUS_RESPONSE");
|
||||||
if (keys.size() == 1) {
|
if (keys.size() != 1) {
|
||||||
QString const key = keys.at(0);
|
|
||||||
QJsonValue v = obj.value(key);
|
|
||||||
if (v.isObject()) {
|
|
||||||
obj = v.toObject();
|
|
||||||
bool ismas = obj.value("ISMAS").toBool();
|
|
||||||
QString status = obj.value("Broker").toString();
|
|
||||||
qInfo() << "REPEAT" << repeat << "In backendConnected() Broker=<"
|
|
||||||
<< status << ">, ISMAS=<" << (ismas ? "true>" : "false>");
|
|
||||||
if (ismas) {
|
|
||||||
if (status == "Connected") {
|
|
||||||
// do not send, as this would result in a corrupted wait button
|
|
||||||
// but update the user-interface
|
|
||||||
setProgress(100);
|
|
||||||
emit replaceLast("Connecting backend ...", UPDATE_STEP_OK);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
m_updateStatus = UpdateStatus(UPDATE_STATUS::BACKEND_CHECK,
|
|
||||||
QString ("REPEAT %1 Broker=<").arg(repeat)
|
|
||||||
+ status + ">, ISMAS=<" + (ismas ? "true>" : "false>"));
|
|
||||||
//IsmasClient::sendRequestReceiveResponse(IsmasClient::APISM::DB_PORT,
|
|
||||||
// QString("#M=APISM#C=CMD_EVENT#J=") +
|
|
||||||
// m_ismasClient.updateOfPSAContinues("BACKEND-CHECK", m_updateStatus.m_statusDescription));
|
|
||||||
|
|
||||||
qInfo() << "BACKEND-CHECK" << m_updateStatus.m_statusDescription;
|
|
||||||
emit showErrorMessage("Check backend connection", m_updateStatus.m_statusDescription);
|
|
||||||
QThread::sleep(6);
|
|
||||||
continue;
|
|
||||||
} else {
|
|
||||||
setProgress(100);
|
|
||||||
m_updateStatus = UpdateStatus(UPDATE_STATUS::BACKEND_CHECK_FAILURE,
|
|
||||||
"CMD_GET_APISM_STATUS_RESPONSE KEY NOT A JSON-OBJECT");
|
|
||||||
IsmasClient::sendRequestReceiveResponse(IsmasClient::APISM::DB_PORT,
|
|
||||||
QString("#M=APISM#C=CMD_EVENT#J=") +
|
|
||||||
m_ismasClient.sanityCheckFailed(IsmasClient::RESULT_CODE::INSTALL_ERROR,
|
|
||||||
m_updateStatus.m_statusDescription));
|
|
||||||
emit showErrorMessage("check backend connection", m_updateStatus.m_statusDescription);
|
|
||||||
emit replaceLast("Connecting backend ...", UPDATE_STEP_FAIL);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
setProgress(100);
|
|
||||||
m_updateStatus = UpdateStatus(UPDATE_STATUS::BACKEND_CHECK_FAILURE,
|
m_updateStatus = UpdateStatus(UPDATE_STATUS::BACKEND_CHECK_FAILURE,
|
||||||
"CMD_GET_APISMSTATUS_RESPONSE KEY NOT AVAILABLE");
|
"CMD_GET_APISMSTATUS_RESPONSE KEY NOT AVAILABLE");
|
||||||
IsmasClient::sendRequestReceiveResponse(IsmasClient::APISM::DB_PORT,
|
IsmasClient::sendRequestReceiveResponse(IsmasClient::APISM::DB_PORT,
|
||||||
QString("#M=APISM#C=CMD_EVENT#J=") +
|
QString("#M=APISM#C=CMD_EVENT#J=") +
|
||||||
m_ismasClient.sanityCheckFailed(IsmasClient::RESULT_CODE::INSTALL_ERROR,
|
m_ismasClient.sanityCheckFailed(IsmasClient::RESULT_CODE::INSTALL_ERROR,
|
||||||
m_updateStatus.m_statusDescription));
|
m_updateStatus.m_statusDescription));
|
||||||
emit showErrorMessage("check backend connection", m_updateStatus.m_statusDescription);
|
emit showErrorMessage("apism response", m_updateStatus.m_statusDescription);
|
||||||
emit replaceLast("Connecting backend ...", UPDATE_STEP_FAIL);
|
return std::nullopt;
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
stopProgressLoop();
|
QString const key = keys.at(0);
|
||||||
int progress = (m_mainWindow->progressValue()/10) + 10;
|
QJsonValue v = obj.value(key);
|
||||||
setProgress(progress);
|
return v.toObject().value("Version").toString();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
QThread::sleep(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return std::nullopt;
|
||||||
setProgress(100);
|
|
||||||
|
|
||||||
emit replaceLast("Connecting backend", UPDATE_STEP_FAIL);
|
|
||||||
emit showErrorMessage("Error", "Backend not available");
|
|
||||||
|
|
||||||
m_updateStatus = UpdateStatus(UPDATE_STATUS::BACKEND_NOT_CONNECTED,
|
|
||||||
QString("NO BACKEND CONNECTION"));
|
|
||||||
IsmasClient::sendRequestReceiveResponse(IsmasClient::APISM::DB_PORT,
|
|
||||||
QString("#M=APISM#C=CMD_EVENT#J=") +
|
|
||||||
m_ismasClient.errorBackendNotConnected(m_updateStatus.m_statusDescription, ""));
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#define CHECK_UPDATE_TRIGGER_SET "Check update trigger ..."
|
#define CHECK_UPDATE_TRIGGER_SET "Check update trigger ..."
|
||||||
|
Loading…
Reference in New Issue
Block a user