Commit b3f29df01cdfed37cc4d1e4e973ce8795228350d

Authored by LightBase Consultoria em Software Publico
1 parent 48bd8e5a
Exists in master

refactoring

cacic-daemon/cacicD/cacictimer.cpp
... ... @@ -22,93 +22,14 @@ void CacicTimer::iniciarTimer(int x)
22 22 }
23 23  
24 24 void CacicTimer::mslot(){
25   - QLogger::QLog_Info("Cacic Daemon (Timer)", QString("mslot();"));
26 25 cMutex->lock();
27 26 QLogger::QLog_Info("Cacic Daemon (Timer)", QString("Semáforo fechado."));
28   -
29 27 if(getTest()){
30 28 QLogger::QLog_Info("Cacic Daemon (Timer)", QString("getTeste() success."));
31   -
32 29 if(getConfig()){
33 30 QLogger::QLog_Info("Cacic Daemon (Timer)", QString("getConfig() success."));
34   -
35   - // Compara o novo arquivo de configuração com um antigo e se forem diferentes
36   - // mantem o mais recente; caso iguais simplesmente apaga o novo.
37   - QFile *fileOld;
38   - QFile *fileNew;
39   -
40   - fileOld = new QFile(getApplicationDirPath().append("/getConfig.json"));
41   - fileNew = new QFile(getApplicationDirPath().append("/getConfigNew.json"));
42   - if( fileOld->exists() && fileNew->exists() ){
43   - if( Md5IsEqual(QVariant::fromValue(fileOld), QVariant::fromValue(fileNew)) ) {
44   - fileNew->remove();
45   - } else {
46   - // Renomeia getConfigNew.json para getConfig.json
47   - fileOld->remove();
48   - fileNew->rename("getConfigNew.json","getConfig.json");
49   - }
50   - jsonConfig = ccacic->getJsonFromFile(getApplicationDirPath().append("/getConfig.json"));
51   - } else if( fileOld->exists() ){
52   - jsonConfig = ccacic->getJsonFromFile(getApplicationDirPath().append("/getConfig.json"));
53   - } else {
54   - QLogger::QLog_Error("Cacic Daemon (Timer)", "Arquivo de configuração não criado.");
55   - }
56   - delete fileOld;
57   - delete fileNew;
58   -
59   - lerArquivoConfig(jsonConfig);
60   -
61   - int countExecNotFound = 0;
62   - QMap<QString, QString>::const_iterator mapIterator = moduleMap.constBegin();
63   - while (mapIterator != moduleMap.constEnd()) {
64   - QString nomeModulo = mapIterator.value();
65   - QString hashModulo = mapIterator.key();
66   -
67   - // Calcula hash do binario atual
68   -#if defined(Q_OS_WIN)
69   - fileOld = new QFile(getApplicationDirPath().append("/").append(modulo).append(".exe"));
70   -#else
71   - fileOld = new QFile(getApplicationDirPath().append("/").append(nomeModulo));
72   -#endif
73   - if(!fileOld->exists()) {
74   - QLogger::QLog_Error("Cacic Daemon (Timer)", QString("Módulo ").append(nomeModulo).append(" não encontrado."));
75   -
76   - countExecNotFound++;
77   - if( countExecNotFound == moduleMap.size() ) {
78   - QLogger::QLog_Error("Cacic Daemon (Timer)", "Não foi possível encontrar nenhum módulo executável!");
79   - return;
80   - }
81   - continue;
82   - }
83   -
84   - QString oldMd5 = QString(QCryptographicHash::hash(fileOld->readAll(),QCryptographicHash::Md5).toHex());
85   -
86   - if ( oldMd5 != hashModulo ) {
87   -
88   - fileOld->rename(getApplicationDirPath().append("/").append(nomeModulo),
89   - getApplicationDirPath().append("/").append("nomeModulo").append("Old") );
90   -
91   - // Download nova versão do executável
92   - QList<QMap<QString,QString> >::const_iterator metodosIterator = metodosDownload.constBegin();
93   - bool downloadSucess = false;
94   - while ( !downloadSucess && metodosIterator != metodosDownload.constEnd() ) {
95   -
96   - if( metodosIterator->value("tipo") == "ftp" || metodosIterator->value("tipo") == "" ) {
97   - if ( OCacicComm->ftpDownload( metodosIterator->value("url"), metodosIterator->value("path") ) )
98   - downloadSucess = true;
99   -
100   - } else if ( metodosIterator->value("tipo") == "http" ) {
101   - if( OCacicComm->httpDownload( metodosIterator->value("url"), metodosIterator->value("path") ) )
102   - downloadSucess = true;
103   - }
104   - metodosIterator++;
105   - }
106   - fileOld->remove();
107   - delete fileOld;
108   - }
109   -
110   - mapIterator++;
111   - }
  31 + verificarModulos();
  32 + iniciarGercols();
112 33 }else{
113 34 qDebug() << "getConfig() failed. - " + QDateTime::currentDateTime().toLocalTime().toString();
114 35 QLogger::QLog_Error("Cacic Daemon (Timer)", "Falha na obtenção do arquivo de configuração.");
... ... @@ -117,7 +38,6 @@ void CacicTimer::mslot(){
117 38 qDebug() << "getTest() failed. - " + QDateTime::currentDateTime().toLocalTime().toString();
118 39 QLogger::QLog_Error("Cacic Daemon (Timer)", "Falha na execução do getTest().");
119 40 }
120   -
121 41 cMutex->unlock();
122 42 QLogger::QLog_Info("Cacic Daemon (Timer)", QString("Semáforo aberto."));
123 43 }
... ... @@ -277,3 +197,71 @@ void CacicTimer::definirDirGercols(QString appDirPath){
277 197 setDirProgram(appDirPath + "/cacic-gercols");
278 198 #endif
279 199 }
  200 +
  201 +void CacicTimer::verificarModulos(){
  202 + // Compara o novo arquivo de configuração com um antigo e se forem diferentes
  203 + // mantem o mais recente; caso iguais simplesmente apaga o novo.
  204 + QFile *fileOld;
  205 + QFile *fileNew;
  206 + fileOld = new QFile(this->applicationDirPath + "/getConfig.json");
  207 + fileNew = new QFile(this->applicationDirPath + "/getConfigNew.json");
  208 + if( fileOld->exists() && fileNew->exists() ){
  209 + if( Md5IsEqual(QVariant::fromValue(fileOld), QVariant::fromValue(fileNew)) ) {
  210 + fileNew->remove();
  211 + } else {
  212 + // Renomeia getConfigNew.json para getConfig.json
  213 + fileOld->remove();
  214 + fileNew->rename("getConfigNew.json","getConfig.json");
  215 + }
  216 + jsonConfig = ccacic->getJsonFromFile(this->applicationDirPath + "/getConfig.json");
  217 + } else if( fileOld->exists() ){
  218 + jsonConfig = ccacic->getJsonFromFile(this->applicationDirPath + "/getConfig.json");
  219 + } else {
  220 + QLogger::QLog_Error("Cacic Daemon (Timer)", "Arquivo de configuração não criado.");
  221 + }
  222 + delete fileOld;
  223 + delete fileNew;
  224 + lerArquivoConfig(jsonConfig);
  225 + int countExecNotFound = 0;
  226 + QMap<QString, QString>::const_iterator mapIterator = moduleMap.constBegin();
  227 + while (mapIterator != moduleMap.constEnd()) {
  228 + QString nomeModulo = mapIterator.value();
  229 + QString hashModulo = mapIterator.key();
  230 + // Calcula hash do binario atual
  231 +#if defined(Q_OS_WIN)
  232 + fileOld = new QFile(this->applicationDirPath + "/" + modulo + ".exe");
  233 +#else
  234 + fileOld = new QFile(this->applicationDirPath + "/" + nomeModulo);
  235 +#endif
  236 + if(!fileOld->exists()) {
  237 + QLogger::QLog_Error("Cacic Daemon (Timer)", QString("Módulo ").append(nomeModulo).append(" não encontrado."));
  238 + countExecNotFound++;
  239 + if( countExecNotFound == moduleMap.size() ) {
  240 + QLogger::QLog_Error("Cacic Daemon (Timer)", "Não foi possível encontrar nenhum módulo executável!");
  241 + return;
  242 + }
  243 + continue;
  244 + }
  245 + QString oldMd5 = QString(QCryptographicHash::hash(fileOld->readAll(),QCryptographicHash::Md5).toHex());
  246 + if ( oldMd5 != hashModulo ) {
  247 + fileOld->rename(this->applicationDirPath + "/" + nomeModulo,
  248 + this->applicationDirPath + "/" + nomeModulo + "Old");
  249 + // Download nova versão do executável
  250 + QList<QMap<QString,QString> >::const_iterator metodosIterator = metodosDownload.constBegin();
  251 + bool downloadSucess = false;
  252 + while ( !downloadSucess && metodosIterator != metodosDownload.constEnd() ) {
  253 + if( metodosIterator->value("tipo") == "ftp" || metodosIterator->value("tipo") == "" ) {
  254 + if ( OCacicComm->ftpDownload( metodosIterator->value("url"), metodosIterator->value("path") ) )
  255 + downloadSucess = true;
  256 + } else if ( metodosIterator->value("tipo") == "http" ) {
  257 + if( OCacicComm->httpDownload( metodosIterator->value("url"), metodosIterator->value("path") ) )
  258 + downloadSucess = true;
  259 + }
  260 + metodosIterator++;
  261 + }
  262 + fileOld->remove();
  263 + delete fileOld;
  264 + }
  265 + mapIterator++;
  266 + }
  267 +}
... ...
cacic-daemon/cacicD/cacictimer.h
... ... @@ -36,9 +36,9 @@ public:
36 36 private:
37 37 void registraFimColeta(QString msg);
38 38 void registraInicioColeta();
  39 + void verificarModulos();
39 40 QLogger::QLoggerManager *logManager;
40 41 QString dirProgram;
41   - //QProcess *myProcess;
42 42 QString applicationDirPath;
43 43 QString getDirProgram() const;
44 44 void iniciarGercols();
... ...