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()); |