From f32634f6cb033d933b33b23410c7fcbbf954edcc Mon Sep 17 00:00:00 2001 From: eric Date: Tue, 14 Oct 2014 17:30:26 -0300 Subject: [PATCH] Modificação do instalador e testes. --- cacic-teste/testcacic.cpp | 1 + install-cacic/installcacic.cpp | 65 ++++++++++++++++++++++++++++++++++++++++++++--------------------- install-cacic/installcacic.h | 1 + src/cacic_comm.cpp | 2 +- src/cacic_comm.h | 6 +++--- src/ccoleta.cpp | 2 +- 6 files changed, 51 insertions(+), 26 deletions(-) diff --git a/cacic-teste/testcacic.cpp b/cacic-teste/testcacic.cpp index 309dc4a..efd4f36 100644 --- a/cacic-teste/testcacic.cpp +++ b/cacic-teste/testcacic.cpp @@ -326,6 +326,7 @@ void CTestCacic::testEnviaColeta() { bool ok; QJsonObject coletaEnvio = oColeta.toJsonObject(); + OCacic.setJsonToFile(oColeta.toJsonObject(), "coleta.json"); // qDebug() << coletaEnvio; qDebug() << OCacicComm->comm("/ws/neo/coleta", &ok, coletaEnvio, true); QVERIFY(ok); diff --git a/install-cacic/installcacic.cpp b/install-cacic/installcacic.cpp index 7d17774..86b0e30 100644 --- a/install-cacic/installcacic.cpp +++ b/install-cacic/installcacic.cpp @@ -39,14 +39,15 @@ void InstallCacic::run(QStringList argv, int argc) { jsonComm["computador"] = oCacicComputer.toJsonObject(); QJsonObject configs = oCacicComm->comm("/ws/neo/config", &ok, jsonComm); if (ok){ - oCacicComm->setUrlGerente(configs["reply"].toObject()["applicationUrl"].toString()); + QJsonObject configsJson = configs["reply"].toObject(); + oCacicComm->setUrlGerente(configsJson["applicationUrl"].toString()); #ifdef Q_OS_WIN - oCacic.setCacicMainFolder(configs["reply"].toObject()["cacic_main_folder"].isString() ? - configs["reply"].toObject()["cacic_main_folder"].toString() : + oCacic.setCacicMainFolder(configsJson["cacic_main_folder"].isString() ? + configsJson["cacic_main_folder"].toString() : "c:/cacic/"); #elif defined(Q_OS_LINUX) - oCacic.setCacicMainFolder(configs["reply"].toObject()["cacic_main_folder"].isString() ? - configs["reply"].toObject()["cacic_main_folder"].toString() : + oCacic.setCacicMainFolder(configsJson["cacic_main_folder"].isString() ? + configsJson["cacic_main_folder"].toString() : "/usr/cacic"); #endif @@ -59,28 +60,43 @@ void InstallCacic::run(QStringList argv, int argc) { //starta o processo do cacic. //TO DO: Fazer download do serviço + QJsonObject metodoDownload; + metodoDownload = configsJson["agentcomputer"].toObject()["metodoDownload"].toObject(); #ifdef Q_OS_WIN - oCacicComm->ftpDownload("agentes/cacic-service.exe", oCacic.getCacicMainFolder()); + oCacicComm->fileDownload(metodoDownload["tipo"].toString(), + metodoDownload["url"].toString(), + metodoDownload["path"].toString() + "/cacic-service.exe", + oCacic.getCacicMainFolder()); - QString exitStatus = oCacic.startProcess(oCacic.getCacicMainFolder() + "cacic-service.exe", + QString exitStatus = oCacic.startProcess(oCacic.getCacicMainFolder() + "/cacic-service.exe", false, &ok, QStringList("-install"); #else - oCacicComm->ftpDownload("agentes/cacic-service", oCacic.getCacicMainFolder()); - QJsonObject configsJson = configs["reply"].toObject(); - QString senhaAgente; - if ( !configsJson["te_senha_adm_agente"].isNull() ) - senhaAgente = configsJson["te_senha_adm_agente"].toString(); - else - senhaAgente = QString("ADMINCACIC"); + oCacicComm->fileDownload(metodoDownload["tipo"].toString(), + metodoDownload["url"].toString(), + metodoDownload["path"].toString() + "/cacic-service", + oCacic.getCacicMainFolder()); + + oCacicComm->fileDownload(metodoDownload["tipo"].toString(), + metodoDownload["url"].toString(), + metodoDownload["path"].toString() + "/cacic-script.sh", + oCacic.getCacicMainFolder()); + + QFile fileScript(oCacic.getCacicMainFolder()+"/cacic-script.sh"); + QFile fileService(oCacic.getCacicMainFolder()+"/cacic-service"); + if ((!fileScript.exists() || !fileScript.size() > 0) && + (!fileService.exists() || !fileService.size() > 0)) { + this->uninstall(); + return; + } + fileScript.close(); + fileService.close(); QStringList arguments; - arguments.append(QString("-install")); - arguments.append(QString("cacic")); - arguments.append(senhaAgente); - QString exitStatus = oCacic.startProcess(oCacic.getCacicMainFolder() + "cacic-service", + arguments.append(QString("start")); + QString exitStatus = oCacic.startProcess("/etc/init.d/cacic", false, &ok, arguments); @@ -91,6 +107,7 @@ void InstallCacic::run(QStringList argv, int argc) { else { std::cout << "Instalação realizada com sucesso." << "\n"; } + } else { std::cout << "Falha ao pegar configurações: " << configs["error"].toString().toStdString() << "\n"; } @@ -100,9 +117,7 @@ void InstallCacic::run(QStringList argv, int argc) { << " Código: " << jsonLogin["codestatus"].toString().toStdString() << "\n" << " " << jsonLogin["error"].toString().toStdString() << "\n"; } else if ((param.contains("default")) && (param["default"] == "uninstall")){ - oCacic.deleteFolder("c:/cacic"); - oCacic.removeRegistry("Lightbase", "Cacic"); - std::cout << "Cacic desinstalado com sucesso.\n"; + this->uninstall(); } else { std::cout << "\nInstalador do Agente Cacic.\n\n" << "Parametros incorretos. ( [opcional])\n\n" @@ -135,6 +150,14 @@ QMap InstallCacic::validaParametros(QStringList argv, int argc return map; } +void InstallCacic::uninstall() +{ + oCacic.deleteFolder("c:/cacic"); + oCacic.removeRegistry("Lightbase", "Cacic"); + std::cout << "\nCacic desinstalado com sucesso.\n"; + emit finished(); +} + QMap InstallCacic::getArgumentos() { return argumentos; diff --git a/install-cacic/installcacic.h b/install-cacic/installcacic.h index 50b3bec..a787a1d 100644 --- a/install-cacic/installcacic.h +++ b/install-cacic/installcacic.h @@ -24,6 +24,7 @@ public: void registro(); private: + void uninstall(); QMap argumentos; CacicComm *oCacicComm; CACIC_Computer oCacicComputer; diff --git a/src/cacic_comm.cpp b/src/cacic_comm.cpp index b4357e6..b027c0c 100644 --- a/src/cacic_comm.cpp +++ b/src/cacic_comm.cpp @@ -192,7 +192,7 @@ bool CacicComm::fileDownload(const QString &mode, const QString &urlServer, cons QStringList splitPath = path.split("/"); - fileHandler = new QFile(pathDownload + splitPath[splitPath.size() - 1]); + fileHandler = new QFile(pathDownload + "/" + splitPath[splitPath.size() - 1]); if( !fileHandler->open(QIODevice::WriteOnly) ) { qDebug() << "ftpDownload: fileHandler nâo pode abrir arquivo."; return false; diff --git a/src/cacic_comm.h b/src/cacic_comm.h index 9b30c6e..d69def0 100644 --- a/src/cacic_comm.h +++ b/src/cacic_comm.h @@ -31,6 +31,9 @@ public: bool ftpDownload(const QString &urlServer, const QString &path, const QString &pathDownload); bool httpDownload(const QString &path, const QString &pathDownload); bool httpDownload(const QString &urlServer, const QString &path,const QString &pathDownload); + bool fileDownload(const QString &mode, const QString &path, const QString &pathDownload); + bool fileDownload(const QString &mode, const QString &urlServer, const QString &path, const QString &pathDownload); + QString getUrlSsl (); void setUrlSsl(const QString &value); QString getUrlGerente (); @@ -53,9 +56,6 @@ private slots: private: - bool fileDownload(const QString &mode, const QString &path, const QString &pathDownload); - bool fileDownload(const QString &mode, const QString &urlServer, const QString &path, const QString &pathDownload); - QUrlQuery params; QString urlGerente; QString urlSsl; diff --git a/src/ccoleta.cpp b/src/ccoleta.cpp index f7fb619..35673ab 100644 --- a/src/ccoleta.cpp +++ b/src/ccoleta.cpp @@ -65,8 +65,8 @@ QJsonObject CColeta::toJsonObject() QJsonObject coletaJson; if (this->hardwareIsFinish && this->softwareIsFinish){ coletaJson["computador"] = oComputer.toJsonObject(); - coletaJson["software"] = oSoftware.toJsonObject(); coletaJson["hardware"] = oHardware.toJsonObject(); + coletaJson["software"] = oSoftware.toJsonObject(); } return coletaJson; } -- libgit2 0.21.2