Example #1
0
 /**
  * --------------------------------------------------------------------------------------
  * Função usada para fazer updates de subredes...
  * Recebe como parâmetro o objeto da rede
  *--------------------------------------------------------------------------------------
  */
 public function updateSubredes($rede, $modulos = null)
 {
     $logger = $this->get('logger');
     $pIntIdRede = $rede->getIdRede();
     $cacic_helper = new Helper\OldCacicHelper($this->container->get('kernel'));
     $iniFile = $cacic_helper->iniFile();
     if (!file_exists($iniFile)) {
         $this->get('session')->getFlashBag()->add('error', 'O arquivo versions_and_hashes.ini não foi encontrado. Você fez o upload dos agentes 2.8?');
         $logger->error("Arquivo versions_and_hashes.ini não foi encontrado no update de subredes");
     }
     $itemArray = parse_ini_file($iniFile);
     $teste = parse_ini_file($iniFile, true);
     $intLoopSEL = 1;
     $intLoopVersionsIni = 0;
     $sessStrTripaItensEnviados = '';
     // Carrega todos os metadados dos módulos fornecidos ou de todos os módulos
     $modulos = $this->modulosArray($modulos);
     foreach ($teste["ItemsDefinitions"] as &$arrItemDefinitions) {
         $intLoopVersionsIni++;
         $arrItemDefinitions = explode(',', $itemArray['Item_' . $intLoopVersionsIni]);
         // Nome do módulo sendo carregado
         $pStrNmItem = Helper\OldCacicHelper::getOnlyFileName(trim($arrItemDefinitions[0]));
         $logger->debug("Nome do módulo: {$pStrNmItem}");
         if ($modulos[$pStrNmItem]) {
             $logger->debug("Carregando módulo {$pStrNmItem}");
             // Carrega dados da rede
             $em = $this->getDoctrine()->getManager();
             //$arrDadosRede = array( 'rede' => $em->getRepository( 'CacicCommonBundle:Rede' )->listar() );
             //Debug::dump($arrDadosRede['rede'][0][0]);
             //$arrDadosRede = $arrDadosRede['rede'][0];
             $arrDadosRede = array('teServUpdates' => $rede->getTeServUpdates(), 'tePathServUpdates' => $rede->getTePathServUpdates(), 'nmUsuarioLoginServUpdatesGerente' => $rede->getNmUsuarioLoginServUpdatesGerente(), 'teSenhaLoginServUpdatesGerente' => $rede->getTeSenhaLoginServUpdatesGerente(), 'nuPortaServUpdates' => $rede->getNuPortaServUpdates());
             // Caso o servidor de updates ainda não tenha sido trabalhado...
             if (!Helper\OldCacicHelper::stripos2($sessStrTripaItensEnviados, $arrDadosRede['teServUpdates'] . '_' . $arrDadosRede['tePathServUpdates'] . '_' . $pStrNmItem . '_', false)) {
                 $sessStrTripaItensEnviados .= $arrDadosRede['teServUpdates'] . '_' . $arrDadosRede['tePathServUpdates'] . '_' . $pStrNmItem . '_';
                 $strResult = $this->checkAndSend($pStrNmItem, $cacic_helper->getRootDir() . $cacic_helper::CACIC_PATH_RELATIVO_DOWNLOADS . $pStrNmItem, $arrDadosRede['teServUpdates'], $arrDadosRede['tePathServUpdates'], $arrDadosRede['nmUsuarioLoginServUpdatesGerente'], $arrDadosRede['teSenhaLoginServUpdatesGerente'], $arrDadosRede['nuPortaServUpdates']);
             } else {
                 $strResult = 'Ja Enviado ao Servidor!_=_Ok!_=_Resended';
             }
             $arrResult = explode('_=_', $strResult);
             if ($arrResult[1] == 'Ok!') {
                 // Consertar CRUD no Symfony
                 $redeVersaoModulo = $em->getRepository('CacicCommonBundle:RedeVersaoModulo')->findBy(array('idRede' => $pIntIdRede, 'nmModulo' => $pStrNmItem));
                 // Se não existir, instancia o objeto
                 if (!$redeVersaoModulo) {
                     $redeVersaoModulo = new RedeVersaoModulo(null, null, null, null, null, $rede);
                 } else {
                     // Carrego o objeto encontrado
                     $redeVersaoModulo = $redeVersaoModulo[0];
                 }
                 // Adicione o restante dos atributos
                 $redeVersaoModulo->setNmModulo($pStrNmItem);
                 $redeVersaoModulo->setTeVersaoModulo($itemArray[$pStrNmItem . '_VER']);
                 $redeVersaoModulo->setDtAtualizacao(new \DateTime('NOW'));
                 $redeVersaoModulo->setCsTipoSo($pStrNmItem, '.exe', false ? 'MS-Windows' : 'GNU/LINUX');
                 $redeVersaoModulo->setTeHash($itemArray[$pStrNmItem . '_HASH']);
                 $em->persist($redeVersaoModulo);
                 $em->flush();
             } else {
                 $logger->error("Erro no envio do módulo via FTP \n" . $arrResult[1]);
             }
             //echo $_GET['pIntIdRede'] . '_=_' . $_GET['pStrNmItem'] . '_=_' . $strResult;
             #FIXME: Inserir hash do módulo pyCacyc. Atualmente dá erro mas não trava
         }
         $intLoopSEL++;
     }
     return;
 }