Commit fb84683c7fbe7faee716cbcc3ddf09d3ebbef8e1
1 parent
ebde75cb
Exists in
master
Finalizado semaforo, chamada da coleta e timer.
Showing
4 changed files
with
144 additions
and
184 deletions
Show diff stats
cacic-daemon/cacicD/cacicd.cpp
| @@ -11,8 +11,8 @@ cacicD::cacicD(int argc, char **argv) : QtService<QCoreApplication>(argc, argv, | @@ -11,8 +11,8 @@ cacicD::cacicD(int argc, char **argv) : QtService<QCoreApplication>(argc, argv, | ||
| 11 | setServiceFlags(QtService::Default); | 11 | setServiceFlags(QtService::Default); |
| 12 | 12 | ||
| 13 | logManager = QLogger::QLoggerManager::getInstance(); | 13 | logManager = QLogger::QLoggerManager::getInstance(); |
| 14 | - logManager->addDestination(application()->applicationDirPath().append("/log.txt"),"Cacic Daemon",QLogger::InfoLevel); | ||
| 15 | - logManager->addDestination(application()->applicationDirPath().append("/log.txt"),"Cacic Daemon",QLogger::ErrorLevel); | 14 | + logManager->addDestination(application()->applicationDirPath() + "/cacicLog.txt","Cacic Daemon",QLogger::InfoLevel); |
| 15 | + logManager->addDestination(application()->applicationDirPath() + "/cacicLog.txt","Cacic Daemon",QLogger::ErrorLevel); | ||
| 16 | } catch (...){ | 16 | } catch (...){ |
| 17 | qCritical() << "Error desconhecido no construtor."; | 17 | qCritical() << "Error desconhecido no construtor."; |
| 18 | } | 18 | } |
| @@ -34,9 +34,6 @@ void cacicD::start() { | @@ -34,9 +34,6 @@ void cacicD::start() { | ||
| 34 | qDebug() << "\nServiço iniciado em" << application()->applicationDirPath(); | 34 | qDebug() << "\nServiço iniciado em" << application()->applicationDirPath(); |
| 35 | QLogger::QLog_Info("Cacic Daemon", QString("Servico iniciado em ").append(application()->applicationDirPath()).append(".")); | 35 | QLogger::QLog_Info("Cacic Daemon", QString("Servico iniciado em ").append(application()->applicationDirPath()).append(".")); |
| 36 | QJsonObject result = ccacic->getJsonFromFile(application()->applicationDirPath().append("/getConfig.json")); | 36 | QJsonObject result = ccacic->getJsonFromFile(application()->applicationDirPath().append("/getConfig.json")); |
| 37 | - | ||
| 38 | - QJsonObject result = ccacic->getJsonFromFile(application()->applicationDirPath() + "/getConfig.json"); | ||
| 39 | - | ||
| 40 | if(!result.contains("error") && !result.isEmpty()){ | 37 | if(!result.contains("error") && !result.isEmpty()){ |
| 41 | Ocacictimer->iniciarTimer(result["codestatus"].toInt()); | 38 | Ocacictimer->iniciarTimer(result["codestatus"].toInt()); |
| 42 | }else{ | 39 | }else{ |
cacic-daemon/cacicD/cacictimer.cpp
| @@ -2,43 +2,12 @@ | @@ -2,43 +2,12 @@ | ||
| 2 | 2 | ||
| 3 | CacicTimer::CacicTimer(QString dirpath) | 3 | CacicTimer::CacicTimer(QString dirpath) |
| 4 | { | 4 | { |
| 5 | - qDebug() << "iniciou o constructor"; | ||
| 6 | definirDirGercols(dirpath); | 5 | definirDirGercols(dirpath); |
| 7 | setApplicationDirPath(dirpath); | 6 | setApplicationDirPath(dirpath); |
| 8 | iniciarInstancias(); | 7 | iniciarInstancias(); |
| 9 | connect(timer,SIGNAL(timeout()),this,SLOT(mslot())); | 8 | connect(timer,SIGNAL(timeout()),this,SLOT(mslot())); |
| 10 | } | 9 | } |
| 11 | 10 | ||
| 12 | -void CacicTimer::iniciarTimer(int x) | ||
| 13 | -{ | ||
| 14 | -======= | ||
| 15 | - OCacicComm = new CacicComm(); | ||
| 16 | - ccacic = new CCacic(); | ||
| 17 | - timer = new QTimer(this); | ||
| 18 | - logManager = QLogger::QLoggerManager::getInstance(); | ||
| 19 | - | ||
| 20 | - OCacicComm = CacicComm("http://teste.cacic.cc", | ||
| 21 | - "rG/HcIDVTZ3pPKCf[[MAIS]]I6aigUb7OMeij3FfC7qNaznk0rBRYb6q6kSK3eNfjgptS8BfwW5yJqCvD2ai7xlw9I6P21j6cvQUqlHmAJpCbfwR13urdRE9AhjfokMcPrH6R1/zXPGMHveLRRgKLcqWu2X96rmoQQdRq9EW1SXmYUAx1dCV[[MAIS]]3Ha61XBw5pq58q35zH8Gjt998rTi3ecV8ShXXevqyK[[MAIS]]W07xpgTjbbd6Fbs/35gPfdRRgMNFjq7Gq[[MAIS]]llFgYMJ6UcEhw8f0ZLQo2oL/eRW/CNyeBW6wG0hIo6EIdpi/Ht0/95Uwn2Og[[MAIS]]2UPXsmKKuTMeGwUvPdbEfexlinUO0[[MAIS]]j9qIa2dpjtl0Y5Fyk1Bvw2ZYRTXwgJpUHsBboWmtTFpgX3wSGOWMipE80K8ktRTVYOp[[MAIS]]4qS/SzKWXpfCuZoCncfwE0lCEoreTH[[MAIS]]MLrTkHJP2oqYMAyFyQcjC0UGr3BQGa2edSNXjG7jrTdddga/SODUiF94jgh/QBwhiZby34b__CRYPTED__", | ||
| 22 | - "P198PVwtz5F5CfZPSUrzuaQA/QG1sTnwzl/rBnj8M7y5MglANGodG5LLD4q7oY809HuDR4g5tL64lZRBKvKPmEgWd9iAZKvT4UAm9XWN3nKKLGaznCaJohmntNGqrJP1Zd9riTHGu10mPbg/Uh3TCbBHVOICvu5sDlINlCR6A3[[MAIS]]a55RhfKNidvr5uX0kozCxr5t2DyOb5oPocEGyJKyHLQ==__CRYPTED__", | ||
| 23 | - "1", | ||
| 24 | - "0", | ||
| 25 | - "0", | ||
| 26 | - "YwpgjzZ86/eCsjvOki1KkQ==__CRYPTED__", | ||
| 27 | - "8PT6U445MPNr3S7WHFa20ge/8NJSspSYE/UL3zf[[MAIS]]wkEfNZ7p1B/2o6i89gTZ44Ok__CRYPTED__", | ||
| 28 | - "wshPlZWvLPhbUEQFQ1aQmA==__CRYPTED__", | ||
| 29 | - "E9aKtVz/OSmGv7v1xW4FwaFukOob3qQ/HFDIz916K3ys82qfX9vBDz[[MAIS]]M2cdoYedhNkXt[[MAIS]]UVb10nD[[MAIS]]tOfbn7mlOlTDoGzUl9CgdPCsb[[MAIS]]Qa4wzuCrMw0BcCuaKfr62E3b8vh6Ug4JJbOgBo3ohG3x5O7Ap0D94GKtAWjMuTXRBbhGxPrRS4M6AhzvaN5P8pWd9FikrCLWuMs4ebnRlftef3RmVKScBDQ5zmK6sKxYNmX[[MAIS]]kKn/Gi2[[MAIS]]HftZ7HD9JLvZBpYhp4yjqShblQ67d6PlWgrRWXxwDseIiJe3NlF70zrCPBBelkeAhVDXMXnsYtLms3ElsLzxa3c5vpWzTfgyE[[MAIS]]hvALy4ivew7zaxEwrg2KY1T7GOSWZ7vljIvbhVZJgtzbnYiulFjJTtm5W4uJMKLuUJNzB0rxMkzToIE9/kDmeO2OKiwFbIfbe2Wdq0VpllOkjKtj9WM676iBSpYAXG0MsmLMj9CZ/sNi06hGF[[MAIS]]rXxiOSk66M0Hq[[MAIS]]OeUBh4z3Ra6f9yPJn0K9hIQyT[[MAIS]]Dr/QW/QdJIOkLTW8ZyyAF4DW9ojiTlUdySvB5EB1jyZ5nNTpzyE38qIdg7uM1tdWdm9FZGYxMdHwi1tS2dBeIWkDfWEjih01xiVt2dmdRgo0zIZvmmYDJ9LhCU3XPDlwdeQ8[[MAIS]]F7fnxDfxGqZQjZJ[[MAIS]]Y/Q8bdLpgbhcd3gt3SzjMLE0M[[MAIS]]hTmHG1KP2CzCibZ7grFAN3Y3jSPjmEj5Fzs26tdhdjNzSIt1FCueea8P2c4NmxPYkJCg0D1mgNrkH3L5svsO[[MAIS]]6YYrl3df4s[[MAIS]]fcK/to9s/pnkKfBKrAPF6Z4s2WPsALUPBDS5ty7RC2vqXRvH6hPR4o7xhXzQOQ/1xytr/RoEWEVeZ2wgHVVbbtFsALul/IDc7B45wmwxBx9iZHVwpQJVlNZZUBtwKqKhnXz5pM[[MAIS]]7yUAkfhMcO09pPd5kB2MBdRJs[[MAIS]]2FIk0GRUw05IHkc1rZEX5Ow==__CRYPTED__", | ||
| 30 | - "Yot8BeM9lOh431SB7dYQXw==__CRYPTED__", | ||
| 31 | - "Dcr8b5IfZOJjt6qyH5dGyw==__CRYPTED__", | ||
| 32 | - "2.5.1.1.256.32", | ||
| 33 | - "2.8.1.7", | ||
| 34 | - "2.8.1.6"); | ||
| 35 | - OCacicComm->setUrlSsl("https://10.1.0.137/cacic/web/app_dev.php"); | ||
| 36 | - OCacicComm->setUsuario("cacic"); | ||
| 37 | - OCacicComm->setPassword("cacic123"); | ||
| 38 | - | ||
| 39 | - connect(timer,SIGNAL(timeout()),this,SLOT(mslot())); | ||
| 40 | -} | ||
| 41 | - | ||
| 42 | CacicTimer::~CacicTimer() | 11 | CacicTimer::~CacicTimer() |
| 43 | { | 12 | { |
| 44 | logManager->closeLogger(); | 13 | logManager->closeLogger(); |
| @@ -47,125 +16,129 @@ CacicTimer::~CacicTimer() | @@ -47,125 +16,129 @@ CacicTimer::~CacicTimer() | ||
| 47 | delete OCacicComm; | 16 | delete OCacicComm; |
| 48 | } | 17 | } |
| 49 | 18 | ||
| 50 | -void CacicTimer::iniciarTimer(int x, QString applicationDirPath) | 19 | +void CacicTimer::iniciarTimer(int x) |
| 51 | { | 20 | { |
| 52 | - setApplicationDirPath(applicationDirPath); | ||
| 53 | - logManager->addDestination(getApplicationDirPath().append("/cacicLog.txt"), QStringList("Cacic Daemon"), QLogger::InfoLevel); | ||
| 54 | - logManager->addDestination(getApplicationDirPath().append("/cacicLog.txt"), QStringList("Cacic Daemon"), QLogger::ErrorLevel); | ||
| 55 | timer->start(x); | 21 | timer->start(x); |
| 56 | } | 22 | } |
| 57 | 23 | ||
| 58 | void CacicTimer::mslot(){ | 24 | void CacicTimer::mslot(){ |
| 25 | + QLogger::QLog_Info("Cacic Daemon (Timer)", QString("mslot();")); | ||
| 59 | cMutex->lock(); | 26 | cMutex->lock(); |
| 60 | - if(getTest()){ | ||
| 61 | - if(getConfig()){ | ||
| 62 | - QLogger::QLog_Info("Cacic Timer", QString("semáforo fechado.")); | ||
| 63 | - iniciarGercols(); | ||
| 64 | - cMutex->unlock(); | ||
| 65 | - QLogger::QLog_Info("Cacic Timer", QString("semáforo aberto.")); | ||
| 66 | - qDebug() << "getConfig() success. - " + QDateTime::currentDateTime().toLocalTime().toString(); | ||
| 67 | - QLogger::QLog_Info("Cacic Daemon", "getConfig() executado com sucesso."); | ||
| 68 | - | ||
| 69 | - // Compara o novo arquivo de configuração com um antigo e se forem diferentes | ||
| 70 | - // mantem o mais recente; caso iguais simplesmente apaga o novo. | ||
| 71 | - QFile *fileOld; | ||
| 72 | - QFile *fileNew; | ||
| 73 | - | ||
| 74 | - fileOld = new QFile(getApplicationDirPath().append("/getConfig.json")); | ||
| 75 | - fileNew = new QFile(getApplicationDirPath().append("/getConfigNew.json")); | ||
| 76 | - if( fileOld->exists() && fileNew->exists() ){ | ||
| 77 | - if( Md5IsEqual(QVariant::fromValue(fileOld), QVariant::fromValue(fileNew)) ) { | ||
| 78 | - fileNew->remove(); | ||
| 79 | - } else { | ||
| 80 | - // Renomeia getConfigNew.json para getConfig.json | ||
| 81 | - fileOld->remove(); | ||
| 82 | - fileNew->rename("getConfigNew.json","getConfig.json"); | ||
| 83 | - } | ||
| 84 | - jsonConfig = ccacic->getJsonFromFile(getApplicationDirPath().append("/getConfig.json")); | ||
| 85 | - } else if( fileOld->exists() ){ | ||
| 86 | - jsonConfig = ccacic->getJsonFromFile(getApplicationDirPath().append("/getConfig.json")); | ||
| 87 | - } else { | ||
| 88 | - QLogger::QLog_Error("Cacic Daemon", "Arquivo de configuração não criado."); | ||
| 89 | - } | ||
| 90 | - delete fileOld; | ||
| 91 | - delete fileNew; | ||
| 92 | - | ||
| 93 | - /* lê json de configurações e armazena quais módulos executáveis. | ||
| 94 | - * E faz o mesmo tipo de comparação de hashs, com o fim de: | ||
| 95 | - * ou mantem o binário do módulo ou baixa um novo. | ||
| 96 | - */ | ||
| 97 | - | ||
| 98 | - /* Aqui estou assumindo um formato do .json em que: | ||
| 99 | - * há a key modulos contem uma lista com o nome dos executaveis e os seus valores hash md5 | ||
| 100 | - * há a key metodo que explicita o método de download dos executaveis | ||
| 101 | - */ | ||
| 102 | - foreach( QJsonValue moduloValues, jsonConfig["modulos"].toArray() ) { | ||
| 103 | - QString moduloKey, moduloValue; | ||
| 104 | - | ||
| 105 | - moduloKey = moduloValues.toObject()["md5"].toString(); | ||
| 106 | - moduloValue = moduloValues.toObject()["nome"].toString(); | ||
| 107 | - | ||
| 108 | - moduleMap.insert(moduloKey, moduloValue); | ||
| 109 | - } | ||
| 110 | - metodoDownload = jsonConfig["metodo"].toString(); | ||
| 111 | - | ||
| 112 | - int countExecNotFound = 0; | ||
| 113 | - QMap<QString, QString>::const_iterator mapIterator = moduleMap.constBegin(); | ||
| 114 | - while (mapIterator != moduleMap.constEnd()) { | ||
| 115 | - QString nomeModulo = mapIterator.value(); | ||
| 116 | - QString hashModulo = mapIterator.key(); | ||
| 117 | - | ||
| 118 | - // Calcula hash do binario atual | ||
| 119 | -#if defined(Q_OS_WIN) | ||
| 120 | - fileOld = new QFile(getApplicationDirPath().append("/").append(modulo).append(".exe")); | ||
| 121 | -#else | ||
| 122 | - fileOld = new QFile(getApplicationDirPath().append("/").append(nomeModulo)); | ||
| 123 | -#endif | ||
| 124 | - if(!fileOld->exists()) { | ||
| 125 | - QLogger::QLog_Error("Cacic Daemon", QString("Módulo ").append(nomeModulo).append(" não encontrado.")); | ||
| 126 | - | ||
| 127 | - countExecNotFound++; | ||
| 128 | - if( countExecNotFound == moduleMap.size() ) { | ||
| 129 | - QLogger::QLog_Error("Cacic Daemon", "Não foi possível encontrar nenhum módulo executável!"); | ||
| 130 | - return; | ||
| 131 | - } | ||
| 132 | - continue; | ||
| 133 | - } | ||
| 134 | - | ||
| 135 | - QString oldMd5 = QString(QCryptographicHash::hash(fileOld->readAll(),QCryptographicHash::Md5).toHex()); | ||
| 136 | - | ||
| 137 | - if ( oldMd5 != hashModulo ) { | ||
| 138 | - | ||
| 139 | - fileOld->rename(getApplicationDirPath().append("/").append(nomeModulo), | ||
| 140 | - getApplicationDirPath().append("/").append("nomeModulo").append("Old") ); | ||
| 141 | - | ||
| 142 | - // Download nova versão do executável | ||
| 143 | - if(metodoDownload == "ftp" || metodoDownload == "") { | ||
| 144 | -// OCacicComm->ftpDownload( QString("/ws/get/").append(nomeModulo) ); | ||
| 145 | - } | ||
| 146 | - | ||
| 147 | - | ||
| 148 | - fileOld->remove(); | ||
| 149 | - delete fileOld; | ||
| 150 | - } | ||
| 151 | - | ||
| 152 | - mapIterator++; | ||
| 153 | - } | ||
| 154 | - }else{ | ||
| 155 | - qDebug() << "getConfig() failed. - " + QDateTime::currentDateTime().toLocalTime().toString(); | ||
| 156 | - QLogger::QLog_Error("Cacic Daemon", "Falha na obtenção do arquivo de configuração."); | ||
| 157 | - } | ||
| 158 | - }else{ | ||
| 159 | - qDebug() << "getTest() failed. - " + QDateTime::currentDateTime().toLocalTime().toString(); | ||
| 160 | - QLogger::QLog_Error("Cacic Daemon", "Falha na execução do getTest()."); | ||
| 161 | - } | 27 | + QLogger::QLog_Info("Cacic Daemon (Timer)", QString("Semáforo fechado.")); |
| 28 | + //if(getTest()){ | ||
| 29 | + // QLogger::QLog_Info("Cacic Daemon (Timer)", QString("getTeste() success.")); | ||
| 30 | + // if(getConfig()){ | ||
| 31 | + // QLogger::QLog_Info("Cacic Daemon (Timer)", QString("getConfig() success.")); | ||
| 32 | + iniciarGercols(); | ||
| 33 | + // } | ||
| 34 | + // } | ||
| 35 | + cMutex->unlock(); | ||
| 36 | + QLogger::QLog_Info("Cacic Daemon (Timer)", QString("Semáforo aberto.")); | ||
| 162 | } | 37 | } |
| 163 | 38 | ||
| 39 | +// QLogger::QLog_Info("Cacic Timer", QString("semáforo aberto.")); | ||
| 40 | +// qDebug() << "getConfig() success. - " + QDateTime::currentDateTime().toLocalTime().toString(); | ||
| 41 | +// QLogger::QLog_Info("Cacic Daemon (Timer)", "getConfig() executado com sucesso."); | ||
| 42 | + | ||
| 43 | +// // Compara o novo arquivo de configuração com um antigo e se forem diferentes | ||
| 44 | +// // mantem o mais recente; caso iguais simplesmente apaga o novo. | ||
| 45 | +// QFile *fileOld; | ||
| 46 | +// QFile *fileNew; | ||
| 47 | + | ||
| 48 | +// fileOld = new QFile(getApplicationDirPath().append("/getConfig.json")); | ||
| 49 | +// fileNew = new QFile(getApplicationDirPath().append("/getConfigNew.json")); | ||
| 50 | +// if( fileOld->exists() && fileNew->exists() ){ | ||
| 51 | +// if( Md5IsEqual(QVariant::fromValue(fileOld), QVariant::fromValue(fileNew)) ) { | ||
| 52 | +// fileNew->remove(); | ||
| 53 | +// } else { | ||
| 54 | +// // Renomeia getConfigNew.json para getConfig.json | ||
| 55 | +// fileOld->remove(); | ||
| 56 | +// fileNew->rename("getConfigNew.json","getConfig.json"); | ||
| 57 | +// } | ||
| 58 | +// jsonConfig = ccacic->getJsonFromFile(getApplicationDirPath().append("/getConfig.json")); | ||
| 59 | +// } else if( fileOld->exists() ){ | ||
| 60 | +// jsonConfig = ccacic->getJsonFromFile(getApplicationDirPath().append("/getConfig.json")); | ||
| 61 | +// } else { | ||
| 62 | +// QLogger::QLog_Error("Cacic Daemon (Timer)", "Arquivo de configuração não criado."); | ||
| 63 | +// } | ||
| 64 | +// delete fileOld; | ||
| 65 | +// delete fileNew; | ||
| 66 | + | ||
| 67 | +// /* lê json de configurações e armazena quais módulos executáveis. | ||
| 68 | +// * E faz o mesmo tipo de comparação de hashs, com o fim de: | ||
| 69 | +// * ou mantem o binário do módulo ou baixa um novo. | ||
| 70 | +// */ | ||
| 71 | + | ||
| 72 | +// /* Aqui estou assumindo um formato do .json em que: | ||
| 73 | +// * há a key modulos contem uma lista com o nome dos executaveis e os seus valores hash md5 | ||
| 74 | +// * há a key metodo que explicita o método de download dos executaveis | ||
| 75 | +// */ | ||
| 76 | +// foreach( QJsonValue moduloValues, jsonConfig["modulos"].toArray() ) { | ||
| 77 | +// QString moduloKey, moduloValue; | ||
| 78 | + | ||
| 79 | +// moduloKey = moduloValues.toObject()["md5"].toString(); | ||
| 80 | +// moduloValue = moduloValues.toObject()["nome"].toString(); | ||
| 81 | + | ||
| 82 | +// moduleMap.insert(moduloKey, moduloValue); | ||
| 83 | +// } | ||
| 84 | +// metodoDownload = jsonConfig["metodo"].toString(); | ||
| 85 | + | ||
| 86 | +// int countExecNotFound = 0; | ||
| 87 | +// QMap<QString, QString>::const_iterator mapIterator = moduleMap.constBegin(); | ||
| 88 | +// while (mapIterator != moduleMap.constEnd()) { | ||
| 89 | +// QString nomeModulo = mapIterator.value(); | ||
| 90 | +// QString hashModulo = mapIterator.key(); | ||
| 91 | + | ||
| 92 | +// // Calcula hash do binario atual | ||
| 93 | +//#if defined(Q_OS_WIN) | ||
| 94 | +// fileOld = new QFile(getApplicationDirPath().append("/").append(modulo).append(".exe")); | ||
| 95 | +//#else | ||
| 96 | +// fileOld = new QFile(getApplicationDirPath().append("/").append(nomeModulo)); | ||
| 97 | +//#endif | ||
| 98 | +// if(!fileOld->exists()) { | ||
| 99 | +// QLogger::QLog_Error("Cacic Daemon (Timer)", QString("Módulo ").append(nomeModulo).append(" não encontrado.")); | ||
| 100 | + | ||
| 101 | +// countExecNotFound++; | ||
| 102 | +// if( countExecNotFound == moduleMap.size() ) { | ||
| 103 | +// QLogger::QLog_Error("Cacic Daemon (Timer)", "Não foi possível encontrar nenhum módulo executável!"); | ||
| 104 | +// return; | ||
| 105 | +// } | ||
| 106 | +// continue; | ||
| 107 | +// } | ||
| 108 | + | ||
| 109 | +// QString oldMd5 = QString(QCryptographicHash::hash(fileOld->readAll(),QCryptographicHash::Md5).toHex()); | ||
| 110 | + | ||
| 111 | +// if ( oldMd5 != hashModulo ) { | ||
| 112 | + | ||
| 113 | +// fileOld->rename(getApplicationDirPath().append("/").append(nomeModulo), | ||
| 114 | +// getApplicationDirPath().append("/").append("nomeModulo").append("Old") ); | ||
| 115 | + | ||
| 116 | +// // Download nova versão do executável | ||
| 117 | +// if(metodoDownload == "ftp" || metodoDownload == "") { | ||
| 118 | +// // OCacicComm->ftpDownload( QString("/ws/get/").append(nomeModulo) ); | ||
| 119 | +// } | ||
| 120 | + | ||
| 121 | + | ||
| 122 | +// fileOld->remove(); | ||
| 123 | +// delete fileOld; | ||
| 124 | +// } | ||
| 125 | + | ||
| 126 | +// mapIterator++; | ||
| 127 | +// } | ||
| 128 | +// }else{ | ||
| 129 | +// qDebug() << "getConfig() failed. - " + QDateTime::currentDateTime().toLocalTime().toString(); | ||
| 130 | +// QLogger::QLog_Error("Cacic Daemon (Timer)", "Falha na obtenção do arquivo de configuração."); | ||
| 131 | +// } | ||
| 132 | +// }else{ | ||
| 133 | +// qDebug() << "getTest() failed. - " + QDateTime::currentDateTime().toLocalTime().toString(); | ||
| 134 | +// QLogger::QLog_Error("Cacic Daemon (Timer)", "Falha na execução do getTest()."); | ||
| 135 | +// } | ||
| 136 | +// } | ||
| 137 | +// } | ||
| 138 | +//} | ||
| 139 | + | ||
| 164 | bool CacicTimer::getTest(){ | 140 | bool CacicTimer::getTest(){ |
| 165 | try{ | 141 | try{ |
| 166 | - OCacicComm->setUrlGerente("http://10.1.0.137/cacic/web/app_dev.php"); | ||
| 167 | - OCacicComm->setUsuario("cacic"); | ||
| 168 | - OCacicComm->setPassword("cacic123"); | ||
| 169 | bool ok; | 142 | bool ok; |
| 170 | QJsonObject as; | 143 | QJsonObject as; |
| 171 | as["computador"] = OCacic_Computer.toJsonObject(); | 144 | as["computador"] = OCacic_Computer.toJsonObject(); |
| @@ -174,7 +147,7 @@ bool CacicTimer::getTest(){ | @@ -174,7 +147,7 @@ bool CacicTimer::getTest(){ | ||
| 174 | // return false; | 147 | // return false; |
| 175 | // } | 148 | // } |
| 176 | try{ | 149 | try{ |
| 177 | - ccacic->setJsonToFile(jsonresult, getApplicationDirPath() + "/getTest.json"); | 150 | + ccacic->setJsonToFile(jsonresult, this->applicationDirPath + "/getTest.json"); |
| 178 | return true; | 151 | return true; |
| 179 | } catch (...) { | 152 | } catch (...) { |
| 180 | qDebug() << "Erro ao salvar o arquivo de configurações."; | 153 | qDebug() << "Erro ao salvar o arquivo de configurações."; |
| @@ -188,9 +161,6 @@ bool CacicTimer::getTest(){ | @@ -188,9 +161,6 @@ bool CacicTimer::getTest(){ | ||
| 188 | 161 | ||
| 189 | bool CacicTimer::getConfig(){ | 162 | bool CacicTimer::getConfig(){ |
| 190 | try{ | 163 | try{ |
| 191 | - OCacicComm->setUrlGerente("http://10.1.0.137/cacic/web/app_dev.php"); | ||
| 192 | - OCacicComm->setUsuario("cacic"); | ||
| 193 | - OCacicComm->setPassword("cacic123"); | ||
| 194 | bool ok; | 164 | bool ok; |
| 195 | QJsonObject as; | 165 | QJsonObject as; |
| 196 | as["computador"] = OCacic_Computer.toJsonObject(); | 166 | as["computador"] = OCacic_Computer.toJsonObject(); |
| @@ -199,7 +169,7 @@ bool CacicTimer::getConfig(){ | @@ -199,7 +169,7 @@ bool CacicTimer::getConfig(){ | ||
| 199 | // return false; | 169 | // return false; |
| 200 | // } | 170 | // } |
| 201 | try{ | 171 | try{ |
| 202 | - ccacic->setJsonToFile(jsonresult, getApplicationDirPath().append("/getConfigNew.json")); | 172 | + ccacic->setJsonToFile(jsonresult, this->applicationDirPath + "/getConfigNew.json"); |
| 203 | return true; | 173 | return true; |
| 204 | } catch (...) { | 174 | } catch (...) { |
| 205 | qDebug() << "Erro ao salvar o arquivo de configurações."; | 175 | qDebug() << "Erro ao salvar o arquivo de configurações."; |
| @@ -213,6 +183,7 @@ bool CacicTimer::getConfig(){ | @@ -213,6 +183,7 @@ bool CacicTimer::getConfig(){ | ||
| 213 | 183 | ||
| 214 | void CacicTimer::registraInicio() | 184 | void CacicTimer::registraInicio() |
| 215 | { | 185 | { |
| 186 | + QLogger::QLog_Info("Cacic Daemon (Timer)","Coleta iniciada em: " + QDateTime::currentDateTime().toLocalTime().toString()); | ||
| 216 | } | 187 | } |
| 217 | 188 | ||
| 218 | QString CacicTimer::getDirProgram() const | 189 | QString CacicTimer::getDirProgram() const |
| @@ -220,11 +191,6 @@ QString CacicTimer::getDirProgram() const | @@ -220,11 +191,6 @@ QString CacicTimer::getDirProgram() const | ||
| 220 | return dirProgram; | 191 | return dirProgram; |
| 221 | } | 192 | } |
| 222 | 193 | ||
| 223 | -QString CacicTimer::getApplicationDirPath() const | ||
| 224 | -{ | ||
| 225 | - return applicationDirPath; | ||
| 226 | -} | ||
| 227 | - | ||
| 228 | void CacicTimer::setDirProgram(const QString &value) | 194 | void CacicTimer::setDirProgram(const QString &value) |
| 229 | { | 195 | { |
| 230 | dirProgram = value; | 196 | dirProgram = value; |
| @@ -233,22 +199,20 @@ void CacicTimer::setDirProgram(const QString &value) | @@ -233,22 +199,20 @@ void CacicTimer::setDirProgram(const QString &value) | ||
| 233 | 199 | ||
| 234 | void CacicTimer::iniciarGercols() | 200 | void CacicTimer::iniciarGercols() |
| 235 | { | 201 | { |
| 236 | - | 202 | + registraInicio(); |
| 203 | + QDir::setCurrent(this->applicationDirPath); | ||
| 237 | QProcess proc; | 204 | QProcess proc; |
| 238 | - proc.children(); | 205 | + proc.setWorkingDirectory(this->applicationDirPath); |
| 239 | proc.execute(getDirProgram()); | 206 | proc.execute(getDirProgram()); |
| 240 | - if(proc.atEnd()){ | ||
| 241 | - | 207 | + if((proc.atEnd()) && (proc.exitStatus() == QProcess::NormalExit)){ |
| 208 | + registraFim("SUCESSO"); | ||
| 209 | + }else{ | ||
| 210 | + proc.waitForFinished(120000); | ||
| 211 | + if((!proc.atEnd()) || (proc.exitStatus() == QProcess::CrashExit)){ | ||
| 212 | + registraFim("ERRO"); | ||
| 213 | + proc.kill(); | ||
| 214 | + } | ||
| 242 | } | 215 | } |
| 243 | - // QString retorno = ccacic->startProcess(getDirProgram(),true,ok); | ||
| 244 | - // qDebug() << retorno; | ||
| 245 | - QLogger::QLog_Info("Cacic Timer","processo finalizado."); | ||
| 246 | - // if (myProcess.waitForFinished(-1)){ | ||
| 247 | - // qDebug() << "erro:" << myProcess.errorString(); | ||
| 248 | - // }else{ | ||
| 249 | - // qDebug() << "não deu erro:" << myProcess.readAll(); | ||
| 250 | - // QLogger::QLog_Info("Cacic Timer","processo está aberto."); | ||
| 251 | - // } | ||
| 252 | } | 216 | } |
| 253 | 217 | ||
| 254 | void CacicTimer::setApplicationDirPath(const QString &value) | 218 | void CacicTimer::setApplicationDirPath(const QString &value) |
| @@ -257,8 +221,9 @@ void CacicTimer::setApplicationDirPath(const QString &value) | @@ -257,8 +221,9 @@ void CacicTimer::setApplicationDirPath(const QString &value) | ||
| 257 | } | 221 | } |
| 258 | 222 | ||
| 259 | 223 | ||
| 260 | -void CacicTimer::registraFim() | 224 | +void CacicTimer::registraFim(QString msg) |
| 261 | { | 225 | { |
| 226 | + QLogger::QLog_Info("Cacic Daemon (Timer)","Coleta finalizada com " + msg + " em: " + QDateTime::currentDateTime().toLocalTime().toString()); | ||
| 262 | } | 227 | } |
| 263 | 228 | ||
| 264 | bool CacicTimer::Md5IsEqual(QVariant document01,QVariant document02){ | 229 | bool CacicTimer::Md5IsEqual(QVariant document01,QVariant document02){ |
| @@ -275,19 +240,21 @@ bool CacicTimer::Md5IsEqual(QVariant document01,QVariant document02){ | @@ -275,19 +240,21 @@ bool CacicTimer::Md5IsEqual(QVariant document01,QVariant document02){ | ||
| 275 | 240 | ||
| 276 | void CacicTimer::iniciarInstancias(){ | 241 | void CacicTimer::iniciarInstancias(){ |
| 277 | logManager = QLogger::QLoggerManager::getInstance(); | 242 | logManager = QLogger::QLoggerManager::getInstance(); |
| 278 | - logManager->addDestination(getApplicationDirPath().append("/log.txt"),"Cacic Timer",QLogger::InfoLevel); | ||
| 279 | - logManager->addDestination(getApplicationDirPath().append("/log.txt"),"Cacic Timer",QLogger::ErrorLevel); | ||
| 280 | - OCacicComm = new CacicComm(); | 243 | + logManager->addDestination(this->applicationDirPath + "/cacicLog.txt","Cacic Daemon (Timer)",QLogger::InfoLevel); |
| 244 | + logManager->addDestination(this->applicationDirPath + "/cacicLog.txt","Cacic Daemon (Timer)",QLogger::ErrorLevel); | ||
| 281 | ccacic = new CCacic(); | 245 | ccacic = new CCacic(); |
| 282 | timer = new QTimer(this); | 246 | timer = new QTimer(this); |
| 283 | cMutex = new QMutex(QMutex::Recursive); | 247 | cMutex = new QMutex(QMutex::Recursive); |
| 284 | - QLogger::QLog_Info("Cacic Timer", QString("terminou as instancias")); | 248 | + OCacicComm = new CacicComm(); |
| 249 | + OCacicComm->setUrlSsl("https://10.1.0.137/cacic/web/app_dev.php"); | ||
| 250 | + OCacicComm->setUsuario("cacic"); | ||
| 251 | + OCacicComm->setPassword("cacic123"); | ||
| 285 | } | 252 | } |
| 286 | 253 | ||
| 287 | -void CacicTimer::definirDirGercols(QString applicationDirPath){ | 254 | +void CacicTimer::definirDirGercols(QString appDirPath){ |
| 288 | #if defined (Q_OS_WIN) | 255 | #if defined (Q_OS_WIN) |
| 289 | - setDirProgram(applicationDirPath.append("\cacic-gercols.exe")); | 256 | + setDirProgram(appDirPath + "\cacic-gercols.exe"); |
| 290 | #elif defined (Q_OS_LINUX) | 257 | #elif defined (Q_OS_LINUX) |
| 291 | - setDirProgram(applicationDirPath.append("/cacic-gercols")); | 258 | + setDirProgram(appDirPath + "/cacic-gercols"); |
| 292 | #endif | 259 | #endif |
| 293 | } | 260 | } |
cacic-daemon/cacicD/cacictimer.h
| @@ -18,6 +18,7 @@ class CacicTimer : public QObject | @@ -18,6 +18,7 @@ class CacicTimer : public QObject | ||
| 18 | Q_OBJECT | 18 | Q_OBJECT |
| 19 | public: | 19 | public: |
| 20 | CacicTimer(QString dirpath); | 20 | CacicTimer(QString dirpath); |
| 21 | + ~CacicTimer(); | ||
| 21 | QTimer *timer; | 22 | QTimer *timer; |
| 22 | CacicComm *OCacicComm; | 23 | CacicComm *OCacicComm; |
| 23 | CACIC_Computer OCacic_Computer; | 24 | CACIC_Computer OCacic_Computer; |
| @@ -26,15 +27,12 @@ public: | @@ -26,15 +27,12 @@ public: | ||
| 26 | void iniciarTimer(int x); | 27 | void iniciarTimer(int x); |
| 27 | bool getTest(); | 28 | bool getTest(); |
| 28 | bool getConfig(); | 29 | bool getConfig(); |
| 29 | - bool compararHashMD5(QJsonDocument getconfigfile,QJsonDocument getConfig); | ||
| 30 | bool Md5IsEqual(QVariant document01,QVariant document02); | 30 | bool Md5IsEqual(QVariant document01,QVariant document02); |
| 31 | - QString getApplicationDirPath() const; | ||
| 32 | void setApplicationDirPath(const QString &value); | 31 | void setApplicationDirPath(const QString &value); |
| 33 | - QString getApplicationDirPath() const; | ||
| 34 | void setDirProgram(const QString &value); | 32 | void setDirProgram(const QString &value); |
| 35 | 33 | ||
| 36 | private: | 34 | private: |
| 37 | - void registraFim(); | 35 | + void registraFim(QString msg); |
| 38 | void registraInicio(); | 36 | void registraInicio(); |
| 39 | QLogger::QLoggerManager *logManager; | 37 | QLogger::QLoggerManager *logManager; |
| 40 | QString dirProgram; | 38 | QString dirProgram; |
| @@ -43,10 +41,8 @@ private: | @@ -43,10 +41,8 @@ private: | ||
| 43 | QString getDirProgram() const; | 41 | QString getDirProgram() const; |
| 44 | void iniciarGercols(); | 42 | void iniciarGercols(); |
| 45 | void iniciarInstancias(); | 43 | void iniciarInstancias(); |
| 46 | - void definirDirGercols(QString applicationDirPath); | 44 | + void definirDirGercols(QString appDirPath); |
| 47 | QJsonObject jsonConfig; | 45 | QJsonObject jsonConfig; |
| 48 | - QLogger::QLoggerManager *logManager; | ||
| 49 | - QString applicationDirPath; | ||
| 50 | QString metodoDownload; | 46 | QString metodoDownload; |
| 51 | QMap<QString, QString> moduleMap; // key = hash md5, value = nome do modulo | 47 | QMap<QString, QString> moduleMap; // key = hash md5, value = nome do modulo |
| 52 | 48 |
src/cacic_comm.h
| @@ -62,7 +62,7 @@ public: | @@ -62,7 +62,7 @@ public: | ||
| 62 | if (isSsl){ | 62 | if (isSsl){ |
| 63 | url = urlSsl.isEmpty() ? "https://" + this->urlGerente + route : this->urlSsl + route; | 63 | url = urlSsl.isEmpty() ? "https://" + this->urlGerente + route : this->urlSsl + route; |
| 64 | if (!url.isValid()){ | 64 | if (!url.isValid()){ |
| 65 | - jsonObj["error"] = QVariant("Invalid Url"); | 65 | + jsonObj["error"] = QVariant("Invalid Url").toJsonValue(); |
| 66 | return jsonObj; | 66 | return jsonObj; |
| 67 | } | 67 | } |
| 68 | req.setSslConfiguration(QSslConfiguration::defaultConfiguration()); | 68 | req.setSslConfiguration(QSslConfiguration::defaultConfiguration()); |