From cb92288382be39f37b026b9e687669d54d5e1048 Mon Sep 17 00:00:00 2001 From: Eric Menezes Noronha Date: Thu, 8 May 2014 17:52:04 -0300 Subject: [PATCH] -Agente comunicando com o gerente de 1 em 1 minuto para verificar se há coleta forçada, se sim executa a coleta, idependente do que estiver no gercols.inf. --- cacic280.dproj | 2 +- cacic280.res | Bin 4872 -> 0 bytes cacicservice/cacicservice.dproj | 2 +- cacicservice/cacicservice.res | Bin 5292 -> 0 bytes chksis/chksis.dproj | 2 +- chksis/chksis.res | Bin 5084 -> 0 bytes gercols/gercols.dpr | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------- gercols/gercols.dproj | 2 +- gercols/gercols.res | Bin 4756 -> 0 bytes main.dfm | 6 ++++++ main.pas | 24 ++++++++++++++++++------ 11 files changed, 91 insertions(+), 17 deletions(-) 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/chksis/chksis.dproj b/chksis/chksis.dproj index 0990c93..7edfaf2 100755 --- a/chksis/chksis.dproj +++ b/chksis/chksis.dproj @@ -29,7 +29,7 @@ Delphi.Personality VCLApplication -C:\Arquivos de programas\Borland\Delphi7\Mitec\D7FalseTrueFalseC:\Arquivos de programas\Borland\Delphi7\Bin\TrueFalse2814FalseFalseFalseFalseFalse10461252Dataprev - Emp. de TI da Prev.Social - URES/SESSSistema CACIC - Módulo Verificador de Integridade2.8.1.4ChkSIS3.0Licença: GNU/LGPLchksis.dpr +C:\Arquivos de programas\Borland\Delphi7\Mitec\D7FalseTrueFalseC:\Arquivos de programas\Borland\Delphi7\Bin\TrueFalse2815FalseFalseFalseFalseFalse10461252Dataprev - Emp. de TI da Prev.Social - URES/SESSSistema CACIC - Módulo Verificador de Integridade2.8.1.5ChkSIS3.0Licença: GNU/LGPLchksis.dpr diff --git a/chksis/chksis.res b/chksis/chksis.res index c00d4fa..ab7164e 100755 Binary files a/chksis/chksis.res and b/chksis/chksis.res differ diff --git a/gercols/gercols.dpr b/gercols/gercols.dpr index 5d06f6c..ac40522 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,53 @@ Begin End; end; +procedure getTest(); +var strRetorno : string; +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','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 +827,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 +1632,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 +1734,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); + Sair; + 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/main.dfm b/main.dfm index f641caa..208c5ba 100755 --- a/main.dfm +++ b/main.dfm @@ -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..1a23245 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; @@ -1204,12 +1206,15 @@ begin objCACIC.writeDebugLog('Invoca_GerCols: Invocando Gerente de Coletas com ação: "'+p_acao+'"'); - if boolShowInfo then + if boolShowInfo and not (p_acao = 'getTest') then objCACIC.writeDailyLog('Invocando Gerente de Coletas com ação: "'+p_acao+'"'); 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 @@ -1283,7 +1288,7 @@ 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 // @@ -1319,8 +1324,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 +1334,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 +2222,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