public function load(ObjectManager $manager)
 {
     $rede = $manager->getRepository('CacicCommonBundle:Rede')->findOneBy(array('teIpRede' => '0.0.0.0'));
     foreach ($this->modulos as $elemento) {
         // Crio os objetos e atributos para a classe
         $classe = new RedeVersaoModulo(null, null, null, null, null, $rede);
         $classe->setNmModulo($elemento['nmModulo']);
         $classe->setTeVersaoModulo($elemento['teVersaoModulo']);
         $classe->setDtAtualizacao(new \DateTime());
         $classe->setCsTipoSo($elemento['csTipoSo']);
         $classe->setTeHash($elemento['teHash']);
         $classe->setTipo('cacic');
         $classe->setTipoSo($this->getReference($elemento['tipoSo']));
         $classe->setFilepath($elemento['filepath']);
         // Grava os dados
         $manager->persist($classe);
     }
     $manager->flush();
 }
 public function setUp()
 {
     // Carrega dados da classe de cima
     parent::setUp();
     $this->em = $this->container->get('doctrine')->getManager();
     $this->hash = file_get_contents($this->data_dir . "instala/hash.json");
     $this->erro = file_get_contents($this->data_dir . "instala/erro.json");
     $rede = new Rede();
     $rede->setTeIpRede('10.209.8.0');
     $rede->setTeMascaraRede('255.255.255.255');
     $rede->setTeServCacic('http://localhost');
     $rede->setTeServUpdates('http://localhost');
     $rede->setTePathServUpdates('/msi');
     $rede->setNuLimiteFtp(100);
     $rede->setCsPermitirDesativarSrcacic('S');
     $rede->setDownloadMethod('http');
     //$this->em->persist($rede);
     $elemento = array('nmModulo' => 'cacic-service.exe', 'teVersaoModulo' => '3.0a1', 'csTipoSo' => 'windows', 'teHash' => '79df3561f83ac86eb19e2996b17d5e31', 'tipo' => 'cacic', 'tipoSo' => 'windows', 'filepath' => 'cacic/current/windows/cacic-service.exe');
     $tipo_so = $this->em->getRepository("CacicCommonBundle:TipoSo")->findOneBy(array('tipo' => 'windows'));
     $classe = new RedeVersaoModulo(null, null, null, null, null, $rede);
     $classe->setNmModulo($elemento['nmModulo']);
     $classe->setTeVersaoModulo($elemento['teVersaoModulo']);
     $classe->setDtAtualizacao(new \DateTime());
     $classe->setCsTipoSo($elemento['csTipoSo']);
     $classe->setTeHash($elemento['teHash']);
     $classe->setTipo('cacic');
     $classe->setTipoSo($tipo_so);
     $classe->setFilepath($elemento['filepath']);
     //$this->em->persist($classe);
     //$this->em->flush();
     // Carrega parâmetros globais
     $this->rede = $rede;
     $this->modulo = $classe;
     $this->tipo_so = $tipo_so;
     // Encontra hash do último serviço
     $rede = $this->em->getRepository("CacicCommonBundle:Rede")->findOneBy(array('teIpRede' => '0.0.0.0'));
     $cacic_service = $this->em->getRepository("CacicCommonBundle:RedeVersaoModulo")->getModulo($rede->getIdRede(), 'cacic-service.exe', 'windows');
     $this->hash_service = $cacic_service[0]['teHash'];
 }
Ejemplo n.º 3
0
 public function updateSubredesNeo(Request $request, $rede, $modulos = null)
 {
     $logger = $this->get('logger');
     $em = $this->getDoctrine()->getManager();
     $pIntIdRede = $rede->getIdRede();
     // Varre o diretório em busca dos módulos
     $rootDir = $this->container->get('kernel')->getRootDir();
     $webDir = $rootDir . "/../web/";
     $downloadsDir = $webDir . "downloads/";
     $cacicDir = $downloadsDir . "cacic/";
     $linuxDir = $cacicDir . "linux/";
     $windowsDir = $cacicDir . "windows/";
     $outrosDir = $downloadsDir . "outros/";
     // Consertar CRUD no Symfony
     $redeVersaoModulo = $em->getRepository('CacicCommonBundle:RedeVersaoModulo')->findBy(array('idRede' => $pIntIdRede));
     // Se não existir, instancia o objeto
     if (!empty($redeVersaoModulo)) {
         // Nesse caso, remove todos os módulos para a subrede
         foreach ($redeVersaoModulo as $redeRemove) {
             $em->remove($redeRemove);
         }
         $em->flush();
     }
     // Carrega todos os metadados dos módulos fornecidos ou de todos os módulos
     $modulos = $this->modulosNeoArray($request, $modulos);
     //$logger->debug("6666666666666666666666666666666666666 ".print_r($modulos, true));
     foreach ($modulos as $tipo => $modulo) {
         foreach ($modulo as $key => $value) {
             $logger->debug("Nome do módulo: " . $value['filename']);
             $redeVersaoModulo = new RedeVersaoModulo(null, null, null, null, null, $rede);
             // Carrega dados da rede
             //$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());
             if ($rede->getDownloadMethod() == 'ftp') {
                 $strResult = $this->checkAndSend($value['name'], $downloadsDir . $value['filename'], $arrDadosRede['teServUpdates'], $arrDadosRede['tePathServUpdates'], $arrDadosRede['nmUsuarioLoginServUpdatesGerente'], $arrDadosRede['teSenhaLoginServUpdatesGerente'], $arrDadosRede['nuPortaServUpdates']);
                 $arrResult = explode('_=_', $strResult);
             } else {
                 $arrResult[1] = 'Ok!';
             }
             if ($arrResult[1] == 'Ok!') {
                 $tipo_so = $em->getRepository('CacicCommonBundle:TipoSo')->findOneBy(array('tipo' => $tipo));
                 // Adicione o restante dos atributos
                 $redeVersaoModulo->setNmModulo($value['name']);
                 $redeVersaoModulo->setTeVersaoModulo($value['versao']);
                 $redeVersaoModulo->setDtAtualizacao(new \DateTime('NOW'));
                 $redeVersaoModulo->setCsTipoSo($value['tipoSo']);
                 $redeVersaoModulo->setTeHash($value['hash']);
                 $redeVersaoModulo->setTipoSo($tipo_so);
                 $redeVersaoModulo->setFilepath($value['filename']);
                 $redeVersaoModulo->setTipo('cacic');
                 $redeVersaoModulo->setIdRede($rede);
                 $rede->addModulo($redeVersaoModulo);
                 $em->persist($redeVersaoModulo);
                 $em->persist($rede);
                 $em->flush();
             } else {
                 $logger->error("Erro no envio dos módulos!\n" . $arrResult[1]);
                 return false;
             }
         }
     }
     return true;
 }