From ead2157e895408005446957ec10cdbed42bcae38 Mon Sep 17 00:00:00 2001 From: Eric Menezes Noronha Date: Tue, 13 May 2014 14:07:37 -0300 Subject: [PATCH] -Gercols: Adicionado método 'getTest' para não precisar fazer toda a operação do get/config para pegar apenas ele; Recebendo parâmetros de força coleta e verificação do módulo de patrimônio; Adicionado timer de 1 minuto para realizar o get/test e, se solicitado, realizar coleta. --- MapaTesteProj/MapaCACIC.dproj | 3 ++- MapaTesteProj/MapaTeste.dcu | Bin 30042 -> 0 bytes MapaTesteProj/MapaTeste.pas | 1 - cacic280.dproj | 2 +- cacic280.res | Bin 4872 -> 0 bytes cacicservice/cacicservice.dproj | 2 +- cacicservice/cacicservice.res | Bin 5292 -> 0 bytes gercols/gercols.dpr | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------- gercols/gercols.dproj | 2 +- gercols/gercols.res | Bin 4756 -> 0 bytes installcacic/installcacic.dproj | 2 +- installcacic/installcacic.res | Bin 3304 -> 0 bytes main.dfm | 10 ++++++++-- main.pas | 30 ++++++++++++++++++++++-------- 14 files changed, 105 insertions(+), 23 deletions(-) diff --git a/MapaTesteProj/MapaCACIC.dproj b/MapaTesteProj/MapaCACIC.dproj index 874805c..e6e143b 100644 --- a/MapaTesteProj/MapaCACIC.dproj +++ b/MapaTesteProj/MapaCACIC.dproj @@ -24,7 +24,8 @@ Delphi.Personality -FalseTrueFalseTrueFalse2815TrueFalseFalseFalseFalse10461252Dataprev - Emp. de TI da Prev Social - URES/SESSSistema CACIC - Módulo para Verificação e Instalação de Estrutura Básica do Sistema CACIC2.8.1.53.0Licença: GNU/LGPLmapacacic.dpr +FalseTrueFalseTrueFalse2815TrueFalseFalseFalseFalse10461252Dataprev - Emp. de TI da Prev Social - URES/SESSSistema CACIC - Módulo para Verificação e Instalação de Estrutura Básica do Sistema CACIC2.8.1.53.0Licença: GNU/LGPLmapacacic.dpr False + diff --git a/MapaTesteProj/MapaTeste.dcu b/MapaTesteProj/MapaTeste.dcu index 0c68207..bc75d2e 100644 Binary files a/MapaTesteProj/MapaTeste.dcu and b/MapaTesteProj/MapaTeste.dcu differ diff --git a/MapaTesteProj/MapaTeste.pas b/MapaTesteProj/MapaTeste.pas index aafa0e5..5dd1346 100644 --- a/MapaTesteProj/MapaTeste.pas +++ b/MapaTesteProj/MapaTeste.pas @@ -299,7 +299,6 @@ Begin Result := Comm(objCacic.getWebManagerAddress + objCacic.getWebServicesFolderName + 'get/config', strFieldsAndValuesToRequest, objCacic.getLocalFolderName); objCacic.setBoolCipher(not objCacic.isInDebugMode); - objCacic.writeDebugLog('FormActivate: Retorno de getConfigs: "'+Result+'"'); if (Result <> '0') then diff --git a/cacic280.dproj b/cacic280.dproj index 1d31083..9486723 100644 --- a/cacic280.dproj +++ b/cacic280.dproj @@ -40,7 +40,7 @@ Delphi.Personality VCLApplication -FalseTrueFalseTrueFalse2815FalseFalseFalseFalseFalse10461252Dataprev - Emp. de TI da Prev.Social - URES/SESSSistema CACIC - Módulo Agente Principal2.8.1.5Baseado na licença GNU/LGPLCacic - Configurador Automático e Coletor de Informações Computacionais3.0cacic280.dpr +FalseTrueFalseTrueFalse2816FalseFalseFalseFalseFalse10461252Dataprev - Emp. de TI da Prev.Social - URES/SESSSistema CACIC - Módulo Agente Principal2.8.1.6Baseado na licença GNU/LGPLCacic - Configurador Automático e Coletor de Informações Computacionais3.0cacic280.dpr diff --git a/cacic280.res b/cacic280.res index 2fd9702..685c01b 100644 Binary files a/cacic280.res and b/cacic280.res differ diff --git a/cacicservice/cacicservice.dproj b/cacicservice/cacicservice.dproj index 8993814..e773710 100644 --- a/cacicservice/cacicservice.dproj +++ b/cacicservice/cacicservice.dproj @@ -37,7 +37,7 @@ Delphi.Personality VCLApplication -FalseTrueFalseE:\NTService\TrueFalse2815FalseFalseFalseFalseFalse10461252Dataprev - Emp. de TI da Prev Social - URES/SESSSistema CACIC - Módulo para Sustentação do Agente Principal2.8.1.53.0Licença: GNU/LGPLcacicservice.dpr +FalseTrueFalseE:\NTService\TrueFalse2816FalseFalseFalseFalseFalse10461252Dataprev - Emp. de TI da Prev Social - URES/SESSSistema CACIC - Módulo para Sustentação do Agente Principal2.8.1.63.0Licença: GNU/LGPLcacicservice.dpr diff --git a/cacicservice/cacicservice.res b/cacicservice/cacicservice.res index 91a91e1..873de2c 100755 Binary files a/cacicservice/cacicservice.res and b/cacicservice/cacicservice.res differ diff --git a/gercols/gercols.dpr b/gercols/gercols.dpr index 5d06f6c..85907a6 100644 --- a/gercols/gercols.dpr +++ b/gercols/gercols.dpr @@ -245,9 +245,6 @@ Begin objCacic.setValueToFile('Configs','ConexaoOK','S', strGerColsInfFileName); if (objCacic.getValueFromTags('WebManagerAddress', strRetorno,'<>') <> '') then Begin - objCacic.setValueToFile('Configs','forca_coleta', - objCacic.getValueFromTags('forca_coleta', strRetorno), - strGerColsInfFileName); objCacic.setValueToFile('Configs','WebManagerAddress' ,objCacic.getValueFromTags('WebManagerAddress' , strRetorno,'<>'), strChkSisInfFileName); objCacic.setValueToFile('Configs','WebServicesFolderName',objCacic.getValueFromTags('WebServicesFolderName', strRetorno,'<>'), strChkSisInfFileName); objCacic.setWebManagerAddress(objCacic.getValueFromTags('WebManagerAddress', strRetorno,'<>')); @@ -369,6 +366,59 @@ Begin End; end; +procedure getTest(); +var strRetorno, + v_mensagem_log, + strKeyWord : string; + textfileKeyWord : TextFile; +Begin + Try + // Verifico comunicação com o Módulo Gerente WEB. + // Tratamentos de valores para tráfego POST: + objCacic.setValueToFile('Configs','ConexaoOK','N', strGerColsInfFileName); + + strAcaoGerCols := 'Preparando teste de comunicação com Módulo Gerente WEB ('+objCacic.getWebManagerAddress+').'; + + objCacic.writeDebugLog('getTest: Teste de Comunicação.'); + + Try + strRetorno := Comm(objCacic.getWebManagerAddress + objCacic.getWebServicesFolderName + 'get/test', strFieldsAndValuesToRequest, objCacic.getLocalFolderName, 'Testando comunicação com o Módulo Gerente WEB ('+objCacic.getWebManagerAddress+').'); + + if (strRetorno <> '0') Then + Begin + objCacic.setBoolCipher(not objCacic.isInDebugMode); + objCacic.setValueToFile('Configs','ConexaoOK','S', strGerColsInfFileName); + if (objCacic.getValueFromTags('WebManagerAddress', strRetorno,'<>') <> '') then + Begin + objCacic.setValueToFile('Configs','forca_coleta', + objCacic.getValueFromTags('forca_coleta', strRetorno), + strGerColsInfFileName); + objCacic.setValueToFile('Configs','WebManagerAddress' ,objCacic.getValueFromTags('WebManagerAddress' , strRetorno,'<>'), strChkSisInfFileName); + objCacic.setValueToFile('Configs','WebServicesFolderName',objCacic.getValueFromTags('WebServicesFolderName', strRetorno,'<>'), strChkSisInfFileName); + objCacic.setWebManagerAddress(objCacic.getValueFromTags('WebManagerAddress', strRetorno,'<>')); + objCacic.setWebServicesFolderName(objCacic.getValueFromTags('WebServicesFolderName', strRetorno,'<>')); + End; + + strAcaoGerCols := 'IP validado pelo Módulo Gerente WEB ('+objCacic.getWebManagerAddress+').'; + objCacic.writeDebugLog('getTest: ' + strAcaoGerCols); + End; + except + on E : Exception do + Begin + objCacic.writeDebugLog('getTest: Lançando Exceção #2'); + objCacic.writeExceptionLog(E.Message,E.ClassName,'Exceção #2 - Insucesso na comunicação com o Módulo Gerente WEB ('+objCacic.getWebManagerAddress+').'); + objCacic.writeDailyLog('Insucesso na comunicação com o Módulo Gerente WEB ('+objCacic.getWebManagerAddress+').'); + End; + End; + Except + on E : Exception do + Begin + objCacic.writeDebugLog('getTest: Lançando Exceção #5'); + objCacic.writeExceptionLog(E.Message,E.ClassName,'getTest: Exceção #5'); + End; + End; +end; + procedure criaCookie(strFileName : String); var textFileAguarde : TextFile; Begin @@ -783,10 +833,15 @@ Begin // Primeira chamada efetuada pelo Agente Principal para posterior ação de coletas If FindCmdLineSwitch('getConfigs', True) Then - Begin + Begin getConfigs(true); Finalizar(false); - End; + End + //Chamada realizada de minuto em minuto para verificar se há coleta a ser forçada. + else if FindCmdLineSwitch ('getTest', True) then + begin + getTest(); + end; // Chamada efetuada pelo Agente Principal quando da existência de temp\.exe para AutoUpdate If FindCmdLineSwitch('UpdatePrincipal', True) Then @@ -1583,7 +1638,7 @@ Begin // Se for uma coleta forçada, também grava as informações. If (objCacic.enCrypt(strColetaAtual) <> strColetaAnterior) or (strColetaAnterior = '') or - (objCacic.getValueFromFile('Configs', 'forca_coleta') = 's') Then + (objCacic.getValueFromFile('Configs', 'forca_coleta', strGerColsInfFileName) = 'S') Then Begin strAcaoGercols := 'Enviando coleta de informações sobre ' + objCacic.getValueFromTags('te_descricao_breve',strActionDefinition) + ' para o Gerente WEB ('+objCacic.getWebManagerAddress+').'; objCacic.writeDailyLog(strAcaoGercols); @@ -1685,7 +1740,14 @@ begin CriaCookie('aguarde_GER.txt'); // Esse teste também colocará a estação de trabalho em DEBUG, caso seja determinado no Gerente WEB - Comm(objCacic.getWebManagerAddress + objCacic.getWebServicesFolderName + 'get/test', strFieldsAndValuesToRequest, objCacic.getLocalFolderName, strAcaoGerCols); + if FindCmdLineSwitch ('getTest', True) then + begin + getTest(); + Finalizar(true); + halt(0); + end + else + Comm(objCacic.getWebManagerAddress + objCacic.getWebServicesFolderName + 'get/test', strFieldsAndValuesToRequest, objCacic.getLocalFolderName, strAcaoGerCols); objCacic.setBoolCipher(not objCacic.isInDebugMode); diff --git a/gercols/gercols.dproj b/gercols/gercols.dproj index 9c2dc4d..fd5aedd 100644 --- a/gercols/gercols.dproj +++ b/gercols/gercols.dproj @@ -38,7 +38,7 @@ Delphi.Personality VCLApplication -C:\vendors_lib\JVCL345CompleteJCL231-Build4197\jcl\lib\d7\debugFalseTrueFalseTrueFalse2815FalseFalseFalseFalseFalse10461252Dataprev-Emp. de TI da Prev Social - URES/SESSSistema CACIC - Módulo Gerente de Coletas2.8.1.5Ger_COLS3.0Licença: GNU/LGPLgercols.dpr +C:\vendors_lib\JVCL345CompleteJCL231-Build4197\jcl\lib\d7\debugFalseTrueFalseTrueFalse2816FalseFalseFalseFalseFalse10461252Dataprev-Emp. de TI da Prev Social - URES/SESSSistema CACIC - Módulo Gerente de Coletas2.8.1.6Ger_COLS3.0Licença: GNU/LGPLgercols.dpr diff --git a/gercols/gercols.res b/gercols/gercols.res index c508d3e..d312bd0 100644 Binary files a/gercols/gercols.res and b/gercols/gercols.res differ diff --git a/installcacic/installcacic.dproj b/installcacic/installcacic.dproj index fb871da..18ace15 100644 --- a/installcacic/installcacic.dproj +++ b/installcacic/installcacic.dproj @@ -32,7 +32,7 @@ Delphi.Personality VCLApplication -FalseTrueFalseTrueFalse2815FalseFalseFalseFalseFalse10461252Dataprev - Emp. de TI da Prev Social - URES/SESSSistema CACIC - Módulo para Verificação e Instalação de Estrutura Básica do Sistema CACIC2.8.1.53.0Licença: GNU/LGPLinstallcacic.dpr +FalseTrueFalseTrueFalse2816FalseFalseFalseFalseFalse10461252Dataprev - Emp. de TI da Prev Social - URES/SESSSistema CACIC - Módulo para Verificação e Instalação de Estrutura Básica do Sistema CACIC2.8.1.63.0Licença: GNU/LGPLinstallcacic.dpr diff --git a/installcacic/installcacic.res b/installcacic/installcacic.res index 1689657..2550fdd 100644 Binary files a/installcacic/installcacic.res and b/installcacic/installcacic.res differ diff --git a/main.dfm b/main.dfm index f641caa..a76dde9 100755 --- a/main.dfm +++ b/main.dfm @@ -1,6 +1,6 @@ object FormularioGeral: TFormularioGeral - Left = 411 - Top = 225 + Left = 244 + Top = 55 HorzScrollBar.Visible = False VertScrollBar.Visible = False BiDiMode = bdLeftToRight @@ -1770,4 +1770,10 @@ object FormularioGeral: TFormularioGeral Left = 8 Top = 568 end + object CheckForcaColeta: TTimer + Interval = 60000 + OnTimer = CheckForcaColetaTimer + Left = 392 + Top = 568 + end end diff --git a/main.pas b/main.pas index 483393a..72aefe8 100755 --- a/main.pas +++ b/main.pas @@ -176,6 +176,7 @@ type ApplicationEvents1: TApplicationEvents; Panel1: TPanel; ExecutarMapa1: TMenuItem; + CheckForcaColeta: TTimer; procedure RemoveIconesMortos; procedure ChecaCONFIGS; procedure CriaFormSenha(Sender: TObject); @@ -261,6 +262,7 @@ type procedure InvocaMapa1Click(Sender: TObject); procedure ExecutarMapa1DrawItem(Sender: TObject; ACanvas: TCanvas; ARect: TRect; Selected: Boolean); + procedure CheckForcaColetaTimer(Sender: TObject); private FUsb : TUsbClass; ShutdownEmExecucao : Boolean; @@ -1209,7 +1211,10 @@ begin timerNuExecApos.Enabled := False; objCACIC.writeDebugLog('Invoca_GerCols: Criando Processo GerCols => "'+objCACIC.getLocalFolderName + 'Modules\gercols.exe /'+p_acao+' /WebServicesFolderName='+objCACIC.getWebServicesFolderName +' /LocalFolderName='+objCACIC.getLocalFolderName + ' /WebManagerAddress=' + objCACIC.getWebManagerAddress + '"'); - objCACIC.createOneProcess(objCACIC.getLocalFolderName + 'Modules\gercols.exe /'+p_acao+' /WebServicesFolderName='+objCACIC.getWebServicesFolderName +' /LocalFolderName='+objCACIC.getLocalFolderName + ' /WebManagerAddress=' + objCACIC.getWebManagerAddress + ' /MainProgramName=' + objCACIC.getMainProgramName + ' /MainProgramHash=' + objCACIC.getMainProgramHash,false,SW_HIDE); + if (p_acao = 'getTest') then //se for getTest, esperar a aplicação finalizar. + objCACIC.createOneProcess(objCACIC.getLocalFolderName + 'Modules\gercols.exe /'+p_acao+' /WebServicesFolderName='+objCACIC.getWebServicesFolderName +' /LocalFolderName='+objCACIC.getLocalFolderName + ' /WebManagerAddress=' + objCACIC.getWebManagerAddress + ' /MainProgramName=' + objCACIC.getMainProgramName + ' /MainProgramHash=' + objCACIC.getMainProgramHash,true,SW_HIDE) + else + objCACIC.createOneProcess(objCACIC.getLocalFolderName + 'Modules\gercols.exe /'+p_acao+' /WebServicesFolderName='+objCACIC.getWebServicesFolderName +' /LocalFolderName='+objCACIC.getLocalFolderName + ' /WebManagerAddress=' + objCACIC.getWebManagerAddress + ' /MainProgramName=' + objCACIC.getMainProgramName + ' /MainProgramHash=' + objCACIC.getMainProgramHash,false,SW_HIDE); g_intStatus := 1; objCacic.setBoolCipher(not objCacic.isInDebugMode); End @@ -1220,7 +1225,8 @@ end; procedure TFormularioGeral.InvocaMapa1Click(Sender: TObject); begin - Invoca_MapaCacic; + if (ActualActivity<>4) and (objCACIC.getValueFromFile('Configs', 'modulo_patr', strGerColsInfFileName) <> 'ativo') then + Invoca_MapaCacic; end; //////////////////////////////////////////////////////////////////////////////// @@ -1283,17 +1289,18 @@ begin FindCmdLineSwitch('atualizacao', True) or Pode_Coletar or (trim(objCACIC.getValueFromFile('Configs','DtHrUltimaColeta', strGerColsInfFileName))='') or - (trim(objCACIC.getValueFromFile('Configs','ForcaColeta', strGerColsInfFileName))='S') Then + (trim(objCACIC.getValueFromFile('Configs','forca_coleta', strGerColsInfFileName))='S') Then Begin //////////////////////////////////////////////////////////////////////////////// // CRIADO PARA TESTAR A CHAMADA DO MAPA CACIC // //////////////////////////////////////////////////////////////////////////////// if (trim(objCACIC.getValueFromFile('Configs','col_patr_exe', strGerColsInfFileName))<>'s') - and (ActualActivity<>4) then begin + and (ActualActivity<>4) + and (objCACIC.getValueFromFile('Configs', 'modulo_patr', strGerColsInfFileName) <> 'ativo') then begin objCACIC.writeDebugLog('ExecutaCACIC: Executa chamada ao Mapa Cacic...'); Invoca_MapaCacic; end; - + timerCheckNoMinuto.Enabled := false; objCACIC.writeDebugLog('ExecutaCACIC: Preparando chamada ao Gerente de Coletas...'); @@ -1319,8 +1326,7 @@ begin objCACIC.writeDebugLog('ExecutaCACIC: Primeira chamada ao Gerente de Coletas...'); Invoca_GerCols('getConfigs'); - if (objCACIC.getValueFromFile('Configs', 'forca_coleta', strGercolsInfFileName) = 's') then - Invoca_GerCols('collect'); + sleep(3000); // Pausa para início do Gerente de Coletas e criação do arquivo temp\aguarde_GER.txt Application.ProcessMessages; @@ -1330,7 +1336,8 @@ begin // Serão 4 tentativas por minuto // Serão 30 minutos no máximo de tentativas, totalizando 120 intTentativas := 0; - while not Pode_Coletar and (intTentativas < 121) do + while (not Pode_Coletar and (intTentativas < 121)) and + (objCACIC.getValueFromFile('Configs', 'forca_coleta',strGercolsInfFileName) <> 'S') do Begin objCACIC.writeDebugLog('ExecutaCACIC: Aguardando 15 segundos...'); Application.ProcessMessages; @@ -2217,6 +2224,13 @@ begin End; end; +procedure TFormularioGeral.CheckForcaColetaTimer(Sender: TObject); +begin + Invoca_GerCols('getTest'); + if (objCACIC.getValueFromFile('Configs', 'forca_coleta', strGerColsInfFileName) = 'S') then + Invoca_GerCols('collect'); +end; + procedure TFormularioGeral.CheckIfDownloadedVersion; Begin objCACIC.writeDebugLog('CheckIfDownloadedVersion: Verificando existência de nova versão baixada do Agente Principal...'); -- libgit2 0.21.2