Commit 3eeb702c68048491921e586b712f3087a9b514e0
1 parent
1c3f244a
Exists in
master
Mudança na atualização de subredes com base no tipo de SO
Showing
11 changed files
with
439 additions
and
393 deletions
Show diff stats
src/Cacic/CommonBundle/Controller/AgenteController.php
@@ -22,6 +22,7 @@ use ZipArchive; | @@ -22,6 +22,7 @@ use ZipArchive; | ||
22 | class AgenteController extends Controller { | 22 | class AgenteController extends Controller { |
23 | 23 | ||
24 | public function indexAction(Request $request) { | 24 | public function indexAction(Request $request) { |
25 | + $em = $this->getDoctrine()->getManager(); | ||
25 | $logger = $this->get('logger'); | 26 | $logger = $this->get('logger'); |
26 | // Cria diretório dos agentes se não existir | 27 | // Cria diretório dos agentes se não existir |
27 | $rootDir = $this->container->get('kernel')->getRootDir(); | 28 | $rootDir = $this->container->get('kernel')->getRootDir(); |
@@ -36,132 +37,62 @@ class AgenteController extends Controller { | @@ -36,132 +37,62 @@ class AgenteController extends Controller { | ||
36 | mkdir($cacicDir); | 37 | mkdir($cacicDir); |
37 | } | 38 | } |
38 | 39 | ||
39 | - $linuxDir = $cacicDir . "linux/"; | ||
40 | - if (!is_dir($linuxDir)) { | ||
41 | - mkdir($linuxDir); | ||
42 | - } | ||
43 | - | ||
44 | - $windowsDir = $cacicDir . "windows/"; | ||
45 | - if (!is_dir($windowsDir)) { | ||
46 | - mkdir($windowsDir); | ||
47 | - } | 40 | + #$linuxDir = $cacicDir . "linux/"; |
41 | + #if (!is_dir($linuxDir)) { | ||
42 | + # mkdir($linuxDir); | ||
43 | + #} | ||
44 | + # | ||
45 | + #$windowsDir = $cacicDir . "windows/"; | ||
46 | + #if (!is_dir($windowsDir)) { | ||
47 | + # mkdir($windowsDir); | ||
48 | + #} | ||
48 | 49 | ||
49 | 50 | ||
50 | $outrosDir = $downloadsDir . "outros/"; | 51 | $outrosDir = $downloadsDir . "outros/"; |
51 | if (!is_dir($outrosDir)) { | 52 | if (!is_dir($outrosDir)) { |
52 | mkdir($outrosDir); | 53 | mkdir($outrosDir); |
53 | } | 54 | } |
55 | + // Carrega a lista de Agentes por plataforma | ||
56 | + $tipo_so = $em->getRepository('CacicCommonBundle:TipoSo')->findAll(); | ||
54 | 57 | ||
55 | 58 | ||
56 | - $form = $this->createForm( new AgenteType() ); | 59 | + $form = $this->createForm( new AgenteType(), null, array( |
60 | + 'tipo_so' => $tipo_so | ||
61 | + )); | ||
57 | $locale = $request->getLocale(); | 62 | $locale = $request->getLocale(); |
58 | 63 | ||
59 | - // Constrói array de arquivos e hashes | ||
60 | - $finder = new Finder(); | ||
61 | - $saida = array(); | ||
62 | - $base_url = $request->getBaseUrl(); | ||
63 | - $base_url = preg_replace('/\/app.*.php/', "/", $base_url); | ||
64 | - | ||
65 | - // Primeiro tratamos agentes Linux | ||
66 | - // A regra é que o agente mais atual estará na pasta current | ||
67 | - $finder->directories()->in($linuxDir); | ||
68 | - $saida['linux']['versions'] = array(); | ||
69 | - foreach($finder as $version) { | ||
70 | - $agentes = new Finder(); | ||
71 | - if ($version->getFileName() == 'current') { | ||
72 | - continue; | ||
73 | - } | ||
74 | - $saida['linux']['versions'][$version->getFileName()] = array(); | ||
75 | - $agentes->files()->in($version->getRealPath()); | ||
76 | - foreach ($agentes as $file) { | ||
77 | - array_push($saida['linux']['versions'][$version->getFileName()], array( | ||
78 | - 'name' => $file->getFileName(), | ||
79 | - 'download_url' => $base_url . 'downloads/cacic/linux/' . $version->getFileName() . '/' . $file->getFileName(), | ||
80 | - 'hash' => md5_file($file->getRealPath()), | ||
81 | - 'size' => $file->getSize(), | ||
82 | - 'filename' => 'cacic/linux/' . $version->getFileName() . '/' . $file->getFileName() | ||
83 | - )); | ||
84 | - | ||
85 | - } | ||
86 | - } | ||
87 | - // Get latest version | ||
88 | - $current = @basename(@readlink($linuxDir."current")); | ||
89 | - $saida['linux']['live_version'] = $current; | ||
90 | - | ||
91 | - // Aí tratamos Windows | ||
92 | - $finder->directories()->in($windowsDir); | ||
93 | - $saida['windows']['versions'] = array(); | ||
94 | - foreach($finder as $version) { | ||
95 | - $agentes = new Finder(); | ||
96 | - if ($version->getFileName() == 'current') { | ||
97 | - continue; | ||
98 | - } | ||
99 | - $saida['windows']['versions'][$version->getFileName()] = array(); | ||
100 | - $agentes->files()->in($version->getRealPath()); | ||
101 | - //$logger->debug("1111111111111111111111111111111111111111111 ".$version->getRealPath()); | ||
102 | - foreach ($agentes as $file) { | ||
103 | - //$logger->debug("77777777777777777777777777777777777777777 $file"); | ||
104 | - array_push($saida['windows']['versions'][$version->getFileName()], array( | ||
105 | - 'name' => $file->getFileName(), | ||
106 | - 'download_url' => $base_url . 'downloads/cacic/windows/' . $version->getFileName() . '/' . $file->getFileName(), | ||
107 | - 'hash' => md5_file($file->getRealPath()), | ||
108 | - 'size' => $file->getSize(), | ||
109 | - 'filename' => 'cacic/windows/' . $version->getFileName() . '/' . $file->getFileName() | ||
110 | - )); | ||
111 | - | ||
112 | - } | ||
113 | - } | ||
114 | - // Get latest version | ||
115 | - $current = @basename(@readlink($windowsDir."current")); | ||
116 | - $saida['windows']['live_version'] = $current; | ||
117 | - | ||
118 | //$logger->debug("4444444444444444444444444444444444 ".print_r($saida, true)); | 64 | //$logger->debug("4444444444444444444444444444444444 ".print_r($saida, true)); |
119 | 65 | ||
120 | if ( $request->isMethod('POST') ) | 66 | if ( $request->isMethod('POST') ) |
121 | { | 67 | { |
122 | // Aqui vamos fazer o tratamento dos agentes | 68 | // Aqui vamos fazer o tratamento dos agentes |
123 | $data = $form->getData(); | 69 | $data = $form->getData(); |
124 | - $data['windows_version'] = $request->get('agentes')['windows_version']; | ||
125 | - $data['linux_version'] = $request->get('agentes')['linux_version']; | 70 | + $data['version'] = $request->get('agentes')['version']; |
126 | $files = $request->files->get('agentes'); | 71 | $files = $request->files->get('agentes'); |
127 | 72 | ||
128 | //$logger->debug("99999999999999999999999999999999999 ".print_r($data, true)); | 73 | //$logger->debug("99999999999999999999999999999999999 ".print_r($data, true)); |
129 | - if (!empty($files['windows'])) { | 74 | + if (!empty($files)) { |
130 | //$logger->debug("88888888888888888888888888888888888888 ".print_r($files['windows'], true)); | 75 | //$logger->debug("88888888888888888888888888888888888888 ".print_r($files['windows'], true)); |
131 | - if (empty($data['windows_version'])) { | 76 | + if (empty($data['version'])) { |
132 | $logger->error("O parâmetro versão é obrigatório"); | 77 | $logger->error("O parâmetro versão é obrigatório"); |
133 | $this->get('session')->getFlashBag()->add('error', 'O parâmetro versão é obrigatório'); | 78 | $this->get('session')->getFlashBag()->add('error', 'O parâmetro versão é obrigatório'); |
134 | } else { | 79 | } else { |
135 | - $versionDir = $windowsDir . $data['windows_version']; | ||
136 | - $result = $this->uploadPackage($files['windows'], $versionDir); | ||
137 | - if (!$result) { | ||
138 | - $logger->error("Erro na atualização dos Agentes Windows"); | ||
139 | - $this->get('session')->getFlashBag()->add('error', 'Erro na atualização dos agentes Windows'); | ||
140 | - } else { | ||
141 | - // Make this version current | ||
142 | - $logger->debug("Agentes atualizados com sucesso. Ajustando para versão $versionDir"); | ||
143 | - @unlink("$windowsDir"."current"); | ||
144 | - symlink($versionDir, "$windowsDir"."current"); | ||
145 | - $this->get('session')->getFlashBag()->add('success', 'Agentes atualizados com sucesso!'); | 80 | + // Carrega as versões dos sistemas operacionais |
81 | + $versionDir = $cacicDir . $data['version']; | ||
82 | + $result = false; | ||
83 | + foreach($tipo_so as $so) { | ||
84 | + $tipoDir = $versionDir . "/" . $so->getTipo(); | ||
85 | + $result = $this->uploadPackage($files[$so->getTipo()], $tipoDir); | ||
146 | } | 86 | } |
147 | - } | ||
148 | - } | ||
149 | 87 | ||
150 | - if (!empty($files['linux'])) { | ||
151 | - if (empty($data['linux_version'])) { | ||
152 | - $logger->error("O parâmetro versão é obrigatório"); | ||
153 | - $this->get('session')->getFlashBag()->add('error', 'O parâmetro versão é obrigatório'); | ||
154 | - } else { | ||
155 | - $versionDir = $linuxDir . $data['linux_version']; | ||
156 | - $result = $this->uploadPackage($files['linux'], $versionDir); | ||
157 | if (!$result) { | 88 | if (!$result) { |
158 | - $logger->error("Erro na atualização dos Agentes Linux"); | ||
159 | - $this->get('session')->getFlashBag()->add('error', 'Erro na atualização dos agentes Linux'); | 89 | + $logger->error("Erro na atualização dos Agentes"); |
90 | + $this->get('session')->getFlashBag()->add('error', 'Erro na atualização dos agentes'); | ||
160 | } else { | 91 | } else { |
161 | // Make this version current | 92 | // Make this version current |
162 | $logger->debug("Agentes atualizados com sucesso. Ajustando para versão $versionDir"); | 93 | $logger->debug("Agentes atualizados com sucesso. Ajustando para versão $versionDir"); |
163 | - @unlink("$linuxDir"."current"); | ||
164 | - symlink($versionDir, $linuxDir."current"); | 94 | + @unlink("$cacicDir"."current"); |
95 | + symlink($versionDir, "$cacicDir"."current"); | ||
165 | $this->get('session')->getFlashBag()->add('success', 'Agentes atualizados com sucesso!'); | 96 | $this->get('session')->getFlashBag()->add('success', 'Agentes atualizados com sucesso!'); |
166 | } | 97 | } |
167 | } | 98 | } |
@@ -169,6 +100,52 @@ class AgenteController extends Controller { | @@ -169,6 +100,52 @@ class AgenteController extends Controller { | ||
169 | 100 | ||
170 | } | 101 | } |
171 | 102 | ||
103 | + // Constrói array de arquivos e hashes | ||
104 | + $finder = new Finder(); | ||
105 | + $saida = array(); | ||
106 | + $base_url = $request->getBaseUrl(); | ||
107 | + $base_url = preg_replace('/\/app.*.php/', "", $base_url); | ||
108 | + | ||
109 | + // Varre diretório do Cacic | ||
110 | + $finder->depth('== 0'); | ||
111 | + $finder->directories()->in($cacicDir); | ||
112 | + | ||
113 | + // Agora busca diretórios de versão | ||
114 | + $saida['tipo_so'] = array(); | ||
115 | + foreach($finder as $version) { | ||
116 | + //$logger->debug("1111111111111111111111111111111 ".$version->getFileName()); | ||
117 | + if ($version->getFileName() == 'current') { | ||
118 | + continue; | ||
119 | + } | ||
120 | + | ||
121 | + // Agora busca um diretório pra cada tipo de SO | ||
122 | + foreach($tipo_so as $so) { | ||
123 | + $saida['tipo_so'][$so->getTipo()][$version->getFileName()] = array(); | ||
124 | + $agentes_path = $version->getRealPath() . "/" . $so->getTipo(); | ||
125 | + | ||
126 | + // Cria diretório se não existir | ||
127 | + if (!is_dir($agentes_path)) { | ||
128 | + mkdir($agentes_path); | ||
129 | + } | ||
130 | + $agentes = new Finder(); | ||
131 | + $agentes->files()->in($agentes_path); | ||
132 | + foreach($agentes as $file) { | ||
133 | + array_push($saida['tipo_so'][$so->getTipo()][$version->getFileName()], array( | ||
134 | + 'name' => $file->getFileName(), | ||
135 | + 'download_url' => $base_url . '/downloads/cacic/' . $version->getFileName() . '/' . $so->getTipo() . "/" . $file->getFileName(), | ||
136 | + 'hash' => md5_file($file->getRealPath()), | ||
137 | + 'size' => $file->getSize(), | ||
138 | + 'filename' => 'cacic/' . $version->getFileName() . '/' . $so->getTipo() . "/" . $file->getFileName() | ||
139 | + )); | ||
140 | + } | ||
141 | + } | ||
142 | + } | ||
143 | + | ||
144 | + | ||
145 | + // Get latest version | ||
146 | + $current = @basename(@readlink($cacicDir."current")); | ||
147 | + $saida['live_version'] = $current; | ||
148 | + | ||
172 | return $this->render( 'CacicCommonBundle:Agente:index.html.twig', | 149 | return $this->render( 'CacicCommonBundle:Agente:index.html.twig', |
173 | array( | 150 | array( |
174 | 'local'=>$locale, | 151 | 'local'=>$locale, |
@@ -322,7 +299,7 @@ class AgenteController extends Controller { | @@ -322,7 +299,7 @@ class AgenteController extends Controller { | ||
322 | 299 | ||
323 | } | 300 | } |
324 | 301 | ||
325 | - $logger->debug("3333333333333333333333333333333333333333 ".print_r($saida, true)); | 302 | + //$logger->debug("3333333333333333333333333333333333333333 ".print_r($saida, true)); |
326 | 303 | ||
327 | return $this->render( 'CacicCommonBundle:Agente:deploy.html.twig', | 304 | return $this->render( 'CacicCommonBundle:Agente:deploy.html.twig', |
328 | array( | 305 | array( |
src/Cacic/CommonBundle/Controller/RedeController.php
@@ -734,40 +734,39 @@ class RedeController extends Controller | @@ -734,40 +734,39 @@ class RedeController extends Controller | ||
734 | 734 | ||
735 | // Varro todas as subredes para cada módulo | 735 | // Varro todas as subredes para cada módulo |
736 | $subredes = array(); | 736 | $subredes = array(); |
737 | - $windows = array(); | ||
738 | - $linux = array(); | 737 | + $saida = array(); |
739 | foreach ($subredesOrig as $redeItem) { | 738 | foreach ($subredesOrig as $redeItem) { |
740 | - // Busca o módulo em cada uma das redes | 739 | + // Busca o tipo de SO |
741 | $codigos = array(); | 740 | $codigos = array(); |
742 | - foreach ($modulos as $key => $value) { | ||
743 | - $idRede = $redeItem['idRede']; | ||
744 | - // Verifico se o módulo existe na subrede | ||
745 | - $rede = $this->getDoctrine()->getRepository('CacicCommonBundle:RedeVersaoModulo')->subrede($idRede, $key); | ||
746 | - | ||
747 | - if (empty($rede)) { | ||
748 | - // O módulo não foi encontrado. Adiciona o código 1 | ||
749 | - array_push($codigos, 0); | ||
750 | - //$rede = $redeItem[0]; | ||
751 | - } else { | ||
752 | - if ($value['hash'] == $rede[0]['teHash']) { | ||
753 | - // Se o hash for igual, adiciona o código 2 | ||
754 | - array_push($codigos, 2); | ||
755 | - | 741 | + foreach($modulos as $tipo_so => $file) { |
742 | + // Busca o módulo em cada uma das redes | ||
743 | + foreach ($file as $key => $value) { | ||
744 | + $idRede = $redeItem['idRede']; | ||
745 | + // Verifico se o módulo existe na subrede | ||
746 | + $rede = $this->getDoctrine()->getRepository('CacicCommonBundle:RedeVersaoModulo')->subredeFilePath($idRede, $value['filename']); | ||
747 | + | ||
748 | + if (empty($rede)) { | ||
749 | + // O módulo não foi encontrado. Adiciona o código 1 | ||
750 | + array_push($codigos, 0); | ||
751 | + //$rede = $redeItem[0]; | ||
756 | } else { | 752 | } else { |
757 | - // Se o hash for diferente, adiciona o código 1 | ||
758 | - array_push($codigos, 1); | 753 | + if ($value['hash'] == $rede[0]['teHash']) { |
754 | + // Se o hash for igual, adiciona o código 2 | ||
755 | + array_push($codigos, 2); | ||
756 | + | ||
757 | + } else { | ||
758 | + // Se o hash for diferente, adiciona o código 1 | ||
759 | + array_push($codigos, 1); | ||
760 | + } | ||
759 | } | 761 | } |
760 | - } | ||
761 | 762 | ||
762 | - // Cria um array para Windows e outro para Linux | ||
763 | - if ($value['tipoSo'] == 'windows') { | ||
764 | - $windows[$key] = $value; | ||
765 | - } else { | ||
766 | - $linux[$key] = $value; | ||
767 | - } | 763 | + // Array de saída |
764 | + $saida[$tipo_so][$value['name']] = $value; | ||
768 | 765 | ||
766 | + } | ||
769 | } | 767 | } |
770 | 768 | ||
769 | + | ||
771 | // Define o elemento HTML para os módulos | 770 | // Define o elemento HTML para os módulos |
772 | if (in_array(0, $codigos)) { | 771 | if (in_array(0, $codigos)) { |
773 | // Se o código 0 for encontrato, marcamos o módulo como inexistente | 772 | // Se o código 0 for encontrato, marcamos o módulo como inexistente |
@@ -799,10 +798,11 @@ class RedeController extends Controller | @@ -799,10 +798,11 @@ class RedeController extends Controller | ||
799 | } | 798 | } |
800 | } | 799 | } |
801 | 800 | ||
801 | + //$logger->debug("111111111111111111111111111111111111111 \n".print_r($saida, true)); | ||
802 | + | ||
802 | return $this->render( 'CacicCommonBundle:Rede:manutencaoNeo.html.twig', | 803 | return $this->render( 'CacicCommonBundle:Rede:manutencaoNeo.html.twig', |
803 | array( | 804 | array( |
804 | - 'windows'=> $windows, | ||
805 | - 'linux' => $linux, | 805 | + 'saida'=> $saida, |
806 | 'subredes' => $subredes | 806 | 'subredes' => $subredes |
807 | ) | 807 | ) |
808 | ); | 808 | ); |
@@ -839,78 +839,50 @@ class RedeController extends Controller | @@ -839,78 +839,50 @@ class RedeController extends Controller | ||
839 | // Constrói array de arquivos e hashes | 839 | // Constrói array de arquivos e hashes |
840 | $saida = array(); | 840 | $saida = array(); |
841 | $base_url = $request->getBaseUrl(); | 841 | $base_url = $request->getBaseUrl(); |
842 | - $base_url = preg_replace('/\/app.*.php/', "/", $base_url); | 842 | + $base_url = preg_replace('/\/app.*.php/', "", $base_url); |
843 | 843 | ||
844 | // Primeiro tratamos agentes Linux | 844 | // Primeiro tratamos agentes Linux |
845 | // A regra é que o agente mais atual estará na pasta current | 845 | // A regra é que o agente mais atual estará na pasta current |
846 | - $current = basename(readlink($linuxDir."current")); | 846 | + $current = basename(readlink($cacicDir."current")); |
847 | $finder = new Finder(); | 847 | $finder = new Finder(); |
848 | - $finder->directories()->in($linuxDir); | 848 | + $finder->depth('== 0'); |
849 | + $finder->directories()->in($cacicDir); | ||
849 | foreach($finder as $version) { | 850 | foreach($finder as $version) { |
850 | - $agentes = new Finder(); | ||
851 | if ($version->getFileName() == 'current') { | 851 | if ($version->getFileName() == 'current') { |
852 | - // Aqui considera somente a última versão | ||
853 | - $agentes->files()->in($version->getRealPath()); | ||
854 | - foreach ($agentes as $file) { | ||
855 | - if (!empty($nmModulos)) { | ||
856 | - // Filtra por nome de módulo | ||
857 | - if (!in_array($file->getFileName(), $nmModulos)) { | ||
858 | - continue; | 852 | + $tipos = new Finder(); |
853 | + $tipos->depth('== 0'); | ||
854 | + $tipos->directories()->in($version->getRealPath()); | ||
855 | + foreach($tipos as $tipo_so) { | ||
856 | + // Aqui considera somente a última versão | ||
857 | + $agentes = new Finder(); | ||
858 | + $agentes->depth('== 0'); | ||
859 | + $agentes->files()->in($tipo_so->getRealPath()); | ||
860 | + foreach ($agentes as $file) { | ||
861 | + $filename = 'cacic/' . $version->getFileName() . '/' . $tipo_so->getFileName() . "/" . $file->getFileName(); | ||
862 | + if (!empty($nmModulos)) { | ||
863 | + // Filtra por nome de módulo | ||
864 | + if (!in_array($filename, $nmModulos)) { | ||
865 | + continue; | ||
866 | + } | ||
859 | } | 867 | } |
868 | + $saida[$tipo_so->getFileName()][$file->getFileName()] = array( | ||
869 | + 'name' => $file->getFileName(), | ||
870 | + 'download_url' => $base_url . '/downloads/cacic/' . $version->getFileName() . '/' . $tipo_so->getFileName() . "/" . $file->getFileName(), | ||
871 | + 'hash' => md5_file($file->getRealPath()), | ||
872 | + 'size' => $file->getSize(), | ||
873 | + 'filename' => $filename, | ||
874 | + 'versao' => $current, | ||
875 | + 'tipoSo' => $tipo_so->getFileName() | ||
876 | + ); | ||
860 | } | 877 | } |
861 | - $saida[$file->getFileName()] = array( | ||
862 | - 'name' => $file->getFileName(), | ||
863 | - 'versao' => $current, | ||
864 | - 'download_url' => $base_url . 'downloads/cacic/linux/' . $version->getFileName() . '/' . $file->getFileName(), | ||
865 | - 'hash' => md5_file($file->getRealPath()), | ||
866 | - 'size' => $file->getSize(), | ||
867 | - 'filename' => 'cacic/linux/' . $version->getFileName() . '/' . $file->getFileName(), | ||
868 | - 'tipoSo' => 'linux' | ||
869 | - ); | ||
870 | } | 878 | } |
871 | - } else { | ||
872 | - continue; | ||
873 | - } | ||
874 | - | ||
875 | - } | ||
876 | - // Get latest version | ||
877 | - //$current = basename(readlink($cacicDir."current")); | ||
878 | - //$saida['linux']['live_version'] = $current; | ||
879 | 879 | ||
880 | - // Aí tratamos Windows | ||
881 | - $finder = new Finder(); | ||
882 | - $finder->directories()->in($windowsDir); | ||
883 | - $current = basename(readlink($windowsDir."current")); | ||
884 | - foreach($finder as $version) { | ||
885 | - $agentes = new Finder(); | ||
886 | - if ($version->getFileName() == 'current') { | ||
887 | - // Aqui considera somente a última versão | ||
888 | - $agentes->files()->in($version->getRealPath()); | ||
889 | - foreach ($agentes as $file) { | ||
890 | - if (!empty($nmModulos)) { | ||
891 | - // Filtra por nome de módulo | ||
892 | - if (!in_array($file->getFileName(), $nmModulos)) { | ||
893 | - continue; | ||
894 | - } | ||
895 | - } | ||
896 | - $saida[$file->getFileName()] = array( | ||
897 | - 'name' => $file->getFileName(), | ||
898 | - 'versao' => $current, | ||
899 | - 'download_url' => $base_url . 'downloads/cacic/windows/' . $version->getFileName() . '/' . $file->getFileName(), | ||
900 | - 'hash' => md5_file($file->getRealPath()), | ||
901 | - 'size' => $file->getSize(), | ||
902 | - 'filename' => 'cacic/windows/' . $version->getFileName() . '/' . $file->getFileName(), | ||
903 | - 'tipoSo' => 'windows' | ||
904 | - ); | ||
905 | - } | ||
906 | } else { | 880 | } else { |
907 | continue; | 881 | continue; |
908 | } | 882 | } |
909 | 883 | ||
910 | } | 884 | } |
911 | - // Get latest version | ||
912 | - //$current = basename(readlink($windowsDir."current")); | ||
913 | - //$saida['windows']['live_version'] = $current; | 885 | + |
914 | 886 | ||
915 | // Retorna o array com todos os resultados | 887 | // Retorna o array com todos os resultados |
916 | return $saida; | 888 | return $saida; |
@@ -934,66 +906,84 @@ class RedeController extends Controller | @@ -934,66 +906,84 @@ class RedeController extends Controller | ||
934 | $modulos = $this->modulosNeoArray($request, $modulos); | 906 | $modulos = $this->modulosNeoArray($request, $modulos); |
935 | //$logger->debug("6666666666666666666666666666666666666 ".print_r($modulos, true)); | 907 | //$logger->debug("6666666666666666666666666666666666666 ".print_r($modulos, true)); |
936 | 908 | ||
937 | - foreach ($modulos as $key => $value) | ||
938 | - { | ||
939 | - $logger->debug("Nome do módulo: $key"); | 909 | + foreach($modulos as $tipo => $modulo) { |
940 | 910 | ||
941 | - // Carrega dados da rede | ||
942 | - $em = $this->getDoctrine()->getManager(); | ||
943 | - //$arrDadosRede = array( 'rede' => $em->getRepository( 'CacicCommonBundle:Rede' )->listar() ); | ||
944 | - //Debug::dump($arrDadosRede['rede'][0][0]); | ||
945 | - //$arrDadosRede = $arrDadosRede['rede'][0]; | ||
946 | - $arrDadosRede = array( | ||
947 | - 'teServUpdates' => $rede->getTeServUpdates(), | ||
948 | - 'tePathServUpdates' => $rede->getTePathServUpdates(), | ||
949 | - 'nmUsuarioLoginServUpdatesGerente' => $rede->getNmUsuarioLoginServUpdatesGerente(), | ||
950 | - 'teSenhaLoginServUpdatesGerente' => $rede->getTeSenhaLoginServUpdatesGerente(), | ||
951 | - 'nuPortaServUpdates' => $rede->getNuPortaServUpdates(), | ||
952 | - ); | ||
953 | - | ||
954 | - $strResult = $this->checkAndSend( | ||
955 | - $value['name'], | ||
956 | - $downloadsDir . $value['filename'], | ||
957 | - $arrDadosRede['teServUpdates'], | ||
958 | - $arrDadosRede['tePathServUpdates'], | ||
959 | - $arrDadosRede['nmUsuarioLoginServUpdatesGerente'], | ||
960 | - $arrDadosRede['teSenhaLoginServUpdatesGerente'], | ||
961 | - $arrDadosRede['nuPortaServUpdates'] | ||
962 | - ); | ||
963 | - | ||
964 | - $arrResult = explode('_=_',$strResult); | ||
965 | - | ||
966 | - if ($arrResult[1] == 'Ok!') | 911 | + foreach ($modulo as $key => $value) |
967 | { | 912 | { |
968 | - // Consertar CRUD no Symfony | ||
969 | - $redeVersaoModulo = $em->getRepository('CacicCommonBundle:RedeVersaoModulo')->findOneBy( | ||
970 | - array( | ||
971 | - 'idRede' => $pIntIdRede, | ||
972 | - 'nmModulo' => $value['name'] | ||
973 | - ) | 913 | + $logger->debug("Nome do módulo: ".$value['filename']); |
914 | + | ||
915 | + // Carrega dados da rede | ||
916 | + $em = $this->getDoctrine()->getManager(); | ||
917 | + //$arrDadosRede = array( 'rede' => $em->getRepository( 'CacicCommonBundle:Rede' )->listar() ); | ||
918 | + //Debug::dump($arrDadosRede['rede'][0][0]); | ||
919 | + //$arrDadosRede = $arrDadosRede['rede'][0]; | ||
920 | + $arrDadosRede = array( | ||
921 | + 'teServUpdates' => $rede->getTeServUpdates(), | ||
922 | + 'tePathServUpdates' => $rede->getTePathServUpdates(), | ||
923 | + 'nmUsuarioLoginServUpdatesGerente' => $rede->getNmUsuarioLoginServUpdatesGerente(), | ||
924 | + 'teSenhaLoginServUpdatesGerente' => $rede->getTeSenhaLoginServUpdatesGerente(), | ||
925 | + 'nuPortaServUpdates' => $rede->getNuPortaServUpdates(), | ||
974 | ); | 926 | ); |
975 | 927 | ||
976 | - // Se não existir, instancia o objeto | ||
977 | - if (empty($redeVersaoModulo)) { | ||
978 | - $redeVersaoModulo = new RedeVersaoModulo(null, null, null, null, null, $rede); | 928 | + if ($rede->getDownloadMethod() == 'ftp') { |
929 | + $strResult = $this->checkAndSend( | ||
930 | + $value['name'], | ||
931 | + $downloadsDir . $value['filename'], | ||
932 | + $arrDadosRede['teServUpdates'], | ||
933 | + $arrDadosRede['tePathServUpdates'], | ||
934 | + $arrDadosRede['nmUsuarioLoginServUpdatesGerente'], | ||
935 | + $arrDadosRede['teSenhaLoginServUpdatesGerente'], | ||
936 | + $arrDadosRede['nuPortaServUpdates'] | ||
937 | + ); | ||
938 | + | ||
939 | + $arrResult = explode('_=_',$strResult); | ||
940 | + } else { | ||
941 | + $arrResult[1] = 'Ok!'; | ||
979 | } | 942 | } |
980 | 943 | ||
981 | - // Adicione o restante dos atributos | ||
982 | - $redeVersaoModulo->setNmModulo($value['name']); | ||
983 | - $redeVersaoModulo->setTeVersaoModulo($value['versao']); | ||
984 | - $redeVersaoModulo->setDtAtualizacao(new \DateTime('NOW')); | ||
985 | - $redeVersaoModulo->setCsTipoSo( $value['tipoSo'] ); | ||
986 | - $redeVersaoModulo->setTeHash($value['hash']); | ||
987 | - $redeVersaoModulo->setTipo('cacic'); | ||
988 | 944 | ||
989 | - $em->persist($redeVersaoModulo); | ||
990 | - $em->flush(); | ||
991 | - } else { | ||
992 | - $logger->error("Erro no envio dos módulos via FTP!\n".$arrResult[1]); | ||
993 | - return false; | 945 | + |
946 | + if ($arrResult[1] == 'Ok!') | ||
947 | + { | ||
948 | + // Consertar CRUD no Symfony | ||
949 | + $redeVersaoModulo = $em->getRepository('CacicCommonBundle:RedeVersaoModulo')->findOneBy( | ||
950 | + array( | ||
951 | + 'idRede' => $pIntIdRede, | ||
952 | + 'nmModulo' => $value['name'], | ||
953 | + 'filepath' => $value['filename'] | ||
954 | + ) | ||
955 | + ); | ||
956 | + | ||
957 | + // Se não existir, instancia o objeto | ||
958 | + if (empty($redeVersaoModulo)) { | ||
959 | + $redeVersaoModulo = new RedeVersaoModulo(null, null, null, null, null, $rede); | ||
960 | + } | ||
961 | + | ||
962 | + $tipo_so = $em->getRepository('CacicCommonBundle:TipoSo')->findOneBy(array( | ||
963 | + 'tipo' => $tipo | ||
964 | + )); | ||
965 | + | ||
966 | + // Adicione o restante dos atributos | ||
967 | + $redeVersaoModulo->setNmModulo($value['name']); | ||
968 | + $redeVersaoModulo->setTeVersaoModulo($value['versao']); | ||
969 | + $redeVersaoModulo->setDtAtualizacao(new \DateTime('NOW')); | ||
970 | + $redeVersaoModulo->setCsTipoSo( $value['tipoSo'] ); | ||
971 | + $redeVersaoModulo->setTeHash($value['hash']); | ||
972 | + $redeVersaoModulo->setTipoSo($tipo_so); | ||
973 | + $redeVersaoModulo->setFilepath($value['filename']); | ||
974 | + $redeVersaoModulo->setTipo('cacic'); | ||
975 | + | ||
976 | + $em->persist($redeVersaoModulo); | ||
977 | + $em->flush(); | ||
978 | + } else { | ||
979 | + $logger->error("Erro no envio dos módulos via FTP!\n".$arrResult[1]); | ||
980 | + return false; | ||
981 | + } | ||
994 | } | 982 | } |
995 | } | 983 | } |
996 | 984 | ||
985 | + | ||
986 | + | ||
997 | return true; | 987 | return true; |
998 | } | 988 | } |
999 | 989 |
src/Cacic/CommonBundle/Entity/RedeVersaoModulo.php
@@ -239,4 +239,60 @@ class RedeVersaoModulo | @@ -239,4 +239,60 @@ class RedeVersaoModulo | ||
239 | { | 239 | { |
240 | return $this->tipo; | 240 | return $this->tipo; |
241 | } | 241 | } |
242 | + /** | ||
243 | + * @var \Cacic\CommonBundle\Entity\TipoSo | ||
244 | + */ | ||
245 | + private $tipoSo; | ||
246 | + | ||
247 | + | ||
248 | + /** | ||
249 | + * Set tipoSo | ||
250 | + * | ||
251 | + * @param \Cacic\CommonBundle\Entity\TipoSo $tipoSo | ||
252 | + * @return RedeVersaoModulo | ||
253 | + */ | ||
254 | + public function setTipoSo(\Cacic\CommonBundle\Entity\TipoSo $tipoSo = null) | ||
255 | + { | ||
256 | + $this->tipoSo = $tipoSo; | ||
257 | + | ||
258 | + return $this; | ||
259 | + } | ||
260 | + | ||
261 | + /** | ||
262 | + * Get tipoSo | ||
263 | + * | ||
264 | + * @return \Cacic\CommonBundle\Entity\TipoSo | ||
265 | + */ | ||
266 | + public function getTipoSo() | ||
267 | + { | ||
268 | + return $this->tipoSo; | ||
269 | + } | ||
270 | + /** | ||
271 | + * @var string | ||
272 | + */ | ||
273 | + private $filepath; | ||
274 | + | ||
275 | + | ||
276 | + /** | ||
277 | + * Set filepath | ||
278 | + * | ||
279 | + * @param string $filepath | ||
280 | + * @return RedeVersaoModulo | ||
281 | + */ | ||
282 | + public function setFilepath($filepath) | ||
283 | + { | ||
284 | + $this->filepath = $filepath; | ||
285 | + | ||
286 | + return $this; | ||
287 | + } | ||
288 | + | ||
289 | + /** | ||
290 | + * Get filepath | ||
291 | + * | ||
292 | + * @return string | ||
293 | + */ | ||
294 | + public function getFilepath() | ||
295 | + { | ||
296 | + return $this->filepath; | ||
297 | + } | ||
242 | } | 298 | } |
src/Cacic/CommonBundle/Entity/RedeVersaoModuloRepository.php
@@ -70,4 +70,39 @@ class RedeVersaoModuloRepository extends EntityRepository | @@ -70,4 +70,39 @@ class RedeVersaoModuloRepository extends EntityRepository | ||
70 | return $qb->getQuery()->getArrayResult(); | 70 | return $qb->getQuery()->getArrayResult(); |
71 | } | 71 | } |
72 | 72 | ||
73 | + /* | ||
74 | + * Traz a lista de módulos para a subrede fornecida | ||
75 | + */ | ||
76 | + public function subredeFilePath($id = null, $modulo = null) | ||
77 | + { | ||
78 | + $qb = $this->createQueryBuilder('r') | ||
79 | + ->select('red.idRede', | ||
80 | + 'r.nmModulo', | ||
81 | + 'r.teVersaoModulo', | ||
82 | + 'r.teHash', | ||
83 | + 'red.teIpRede', | ||
84 | + 'red.nmRede', | ||
85 | + 'red.teServUpdates', | ||
86 | + 'red.tePathServUpdates', | ||
87 | + 'l.nmLocal') | ||
88 | + ->innerJoin('CacicCommonBundle:Rede', 'red', 'WITH', 'red.idRede = r.idRede') | ||
89 | + ->innerJoin('CacicCommonBundle:Local', 'l', 'WITH', 'red.idLocal = l.idLocal') | ||
90 | + ->groupBy('r', 'l', 'red') | ||
91 | + ->orderBy('red.nmRede'); | ||
92 | + | ||
93 | + // Adiciona filtro por módulo se fornecido | ||
94 | + if ($modulo != null) { | ||
95 | + // Aqui trago somente a lista de todos os módulos naquela subrede | ||
96 | + $qb->andWhere('r.filepath = :modulo')->setParameter('modulo', $modulo); | ||
97 | + } | ||
98 | + | ||
99 | + // Adiciona filtro por subrede se fornecido | ||
100 | + if ($id != null) { | ||
101 | + // Somente os módulos desa subrede | ||
102 | + $qb->andWhere('r.idRede = :id')->setParameter('id', $id); | ||
103 | + } | ||
104 | + | ||
105 | + return $qb->getQuery()->getArrayResult(); | ||
106 | + } | ||
107 | + | ||
73 | } | 108 | } |
74 | \ No newline at end of file | 109 | \ No newline at end of file |
src/Cacic/CommonBundle/Entity/TipoSo.php
@@ -97,4 +97,42 @@ class TipoSo | @@ -97,4 +97,42 @@ class TipoSo | ||
97 | { | 97 | { |
98 | return $this->so; | 98 | return $this->so; |
99 | } | 99 | } |
100 | + /** | ||
101 | + * @var \Doctrine\Common\Collections\Collection | ||
102 | + */ | ||
103 | + private $redeVersaoModulo; | ||
104 | + | ||
105 | + | ||
106 | + /** | ||
107 | + * Add redeVersaoModulo | ||
108 | + * | ||
109 | + * @param \Cacic\CommonBundle\Entity\RedeVersaoModulo $redeVersaoModulo | ||
110 | + * @return TipoSo | ||
111 | + */ | ||
112 | + public function addRedeVersaoModulo(\Cacic\CommonBundle\Entity\RedeVersaoModulo $redeVersaoModulo) | ||
113 | + { | ||
114 | + $this->redeVersaoModulo[] = $redeVersaoModulo; | ||
115 | + | ||
116 | + return $this; | ||
117 | + } | ||
118 | + | ||
119 | + /** | ||
120 | + * Remove redeVersaoModulo | ||
121 | + * | ||
122 | + * @param \Cacic\CommonBundle\Entity\RedeVersaoModulo $redeVersaoModulo | ||
123 | + */ | ||
124 | + public function removeRedeVersaoModulo(\Cacic\CommonBundle\Entity\RedeVersaoModulo $redeVersaoModulo) | ||
125 | + { | ||
126 | + $this->redeVersaoModulo->removeElement($redeVersaoModulo); | ||
127 | + } | ||
128 | + | ||
129 | + /** | ||
130 | + * Get redeVersaoModulo | ||
131 | + * | ||
132 | + * @return \Doctrine\Common\Collections\Collection | ||
133 | + */ | ||
134 | + public function getRedeVersaoModulo() | ||
135 | + { | ||
136 | + return $this->redeVersaoModulo; | ||
137 | + } | ||
100 | } | 138 | } |
src/Cacic/CommonBundle/Form/Type/AgenteType.php
@@ -10,6 +10,7 @@ namespace Cacic\CommonBundle\Form\Type; | @@ -10,6 +10,7 @@ namespace Cacic\CommonBundle\Form\Type; | ||
10 | 10 | ||
11 | use Symfony\Component\Form\AbstractType; | 11 | use Symfony\Component\Form\AbstractType; |
12 | use Symfony\Component\Form\FormBuilderInterface; | 12 | use Symfony\Component\Form\FormBuilderInterface; |
13 | +use Symfony\Component\OptionsResolver\OptionsResolverInterface; | ||
13 | 14 | ||
14 | /** | 15 | /** |
15 | * Formulário para upload dos agentes | 16 | * Formulário para upload dos agentes |
@@ -30,33 +31,39 @@ class AgenteType extends AbstractType { | @@ -30,33 +31,39 @@ class AgenteType extends AbstractType { | ||
30 | 31 | ||
31 | public function buildForm( FormBuilderInterface $builder, array $options ) | 32 | public function buildForm( FormBuilderInterface $builder, array $options ) |
32 | { | 33 | { |
33 | - $builder->add('windows_version', 'text', | ||
34 | - array( | ||
35 | - 'label' => 'Versão dos Agentes Windows', | ||
36 | - 'required' => false | ||
37 | - ) | ||
38 | - ); | 34 | + $tipo_so = $options['tipo_so']; |
39 | 35 | ||
40 | - $builder->add('windows', 'file', | 36 | + $builder->add('version', 'text', |
41 | array( | 37 | array( |
42 | - 'label' => 'Agentes Windows', | 38 | + 'label' => 'Versão dos Agentes', |
43 | 'required' => false | 39 | 'required' => false |
44 | ) | 40 | ) |
45 | ); | 41 | ); |
46 | 42 | ||
47 | - $builder->add('linux_version', 'text', | ||
48 | - array( | ||
49 | - 'label' => 'Versão dos Agentes Linux', | ||
50 | - 'required' => false | ||
51 | - ) | ||
52 | - ); | 43 | + foreach($tipo_so as $so) { |
44 | + $builder->add($so->getTipo(), 'file', | ||
45 | + array( | ||
46 | + 'label' => 'Agentes para SO Tipo '.$so->getTipo(), | ||
47 | + 'required' => false | ||
48 | + ) | ||
49 | + ); | ||
50 | + } | ||
53 | 51 | ||
54 | - $builder->add('linux', 'file', | ||
55 | - array( | ||
56 | - 'label' => 'Agentes Linux', | ||
57 | - 'required' => false | ||
58 | - ) | ||
59 | - ); | ||
60 | } | 52 | } |
61 | 53 | ||
54 | + /** | ||
55 | + * Add TipoSo as required option | ||
56 | + * | ||
57 | + * @param OptionsResolverInterface $resolver | ||
58 | + */ | ||
59 | + public function setDefaultOptions(OptionsResolverInterface $resolver) | ||
60 | + { | ||
61 | + $resolver | ||
62 | + ->setRequired(array( | ||
63 | + 'tipo_so', | ||
64 | + )); | ||
65 | + | ||
66 | + } | ||
67 | + | ||
68 | + | ||
62 | } | 69 | } |
63 | \ No newline at end of file | 70 | \ No newline at end of file |
src/Cacic/CommonBundle/Resources/config/doctrine/RedeVersaoModulo.orm.yml
@@ -40,6 +40,10 @@ Cacic\CommonBundle\Entity\RedeVersaoModulo: | @@ -40,6 +40,10 @@ Cacic\CommonBundle\Entity\RedeVersaoModulo: | ||
40 | fixed: false | 40 | fixed: false |
41 | nullable: true | 41 | nullable: true |
42 | column: tipo | 42 | column: tipo |
43 | + filepath: | ||
44 | + type: text | ||
45 | + nullable: true | ||
46 | + column: filepath | ||
43 | manyToOne: | 47 | manyToOne: |
44 | idRede: | 48 | idRede: |
45 | targetEntity: Rede | 49 | targetEntity: Rede |
@@ -50,4 +54,13 @@ Cacic\CommonBundle\Entity\RedeVersaoModulo: | @@ -50,4 +54,13 @@ Cacic\CommonBundle\Entity\RedeVersaoModulo: | ||
50 | id_rede: | 54 | id_rede: |
51 | referencedColumnName: id_rede | 55 | referencedColumnName: id_rede |
52 | orphanRemoval: false | 56 | orphanRemoval: false |
57 | + tipoSo: | ||
58 | + targetEntity: TipoSo | ||
59 | + cascade: { } | ||
60 | + mappedBy: null | ||
61 | + inversedBy: null | ||
62 | + joinColumns: | ||
63 | + id_tipo_so: | ||
64 | + referencedColumnName: id_tipo_so | ||
65 | + orphanRemoval: false | ||
53 | lifecycleCallbacks: { } | 66 | lifecycleCallbacks: { } |
src/Cacic/CommonBundle/Resources/config/doctrine/TipoSo.orm.yml
@@ -20,4 +20,7 @@ Cacic\CommonBundle\Entity\TipoSo: | @@ -20,4 +20,7 @@ Cacic\CommonBundle\Entity\TipoSo: | ||
20 | so: | 20 | so: |
21 | targetEntity: So | 21 | targetEntity: So |
22 | mappedBy: tipo | 22 | mappedBy: tipo |
23 | + redeVersaoModulo: | ||
24 | + targetEntity: RedeVersaoModulo | ||
25 | + mappedBy: tipoSo | ||
23 | lifecycleCallbacks: { } | 26 | lifecycleCallbacks: { } |
src/Cacic/CommonBundle/Resources/views/Agente/index.html.twig
@@ -40,13 +40,9 @@ | @@ -40,13 +40,9 @@ | ||
40 | 40 | ||
41 | {{ form_errors(form) }} | 41 | {{ form_errors(form) }} |
42 | 42 | ||
43 | - {{ form_row(form.windows_version) }} | 43 | + {{ form_row(form.version) }} |
44 | 44 | ||
45 | - {{ form_row(form.windows) }} | ||
46 | - | ||
47 | - {{ form_row(form.linux_version) }} | ||
48 | - | ||
49 | - {{ form_row(form.linux) }} | 45 | + {{ form_rest(form) }} |
50 | 46 | ||
51 | <input type="submit"> | 47 | <input type="submit"> |
52 | 48 | ||
@@ -82,65 +78,12 @@ | @@ -82,65 +78,12 @@ | ||
82 | <div class="box grad_colour_black"> | 78 | <div class="box grad_colour_black"> |
83 | <h2 class="box_head round_top"><i class="icon-list"></i> {{'Resultado da pesquisa' |trans }}</h2> | 79 | <h2 class="box_head round_top"><i class="icon-list"></i> {{'Resultado da pesquisa' |trans }}</h2> |
84 | 80 | ||
85 | - <div class="block box_content round_bottom padding_10"> | ||
86 | - <h4><center>{{ "Agentes para GNU/LINUX"|trans }}</h4> | ||
87 | - <table class="table table-striped table-bordered"> | ||
88 | - <thead> | ||
89 | - <tr> | ||
90 | - <th width="15%" style="text-align: center">{{ 'Versão'|trans }}</th> | ||
91 | - <th width="30%" style="text-align: center">{{ 'Arquivo'|trans }}</th> | ||
92 | - <th width="25%" style="text-align: center">{{ 'Hash'|trans }}</th> | ||
93 | - <th width="20%" style="text-align: center">{{ 'Tamanho'|trans }}</th> | ||
94 | - <th style="text-align: center">{{ "Ações"|trans }}</th> | ||
95 | - </tr> | ||
96 | - </thead> | ||
97 | - <tbody> | ||
98 | - | ||
99 | - {% for version, value in saida.linux.versions %} | ||
100 | - | ||
101 | - {% if version == saida.linux.live_version %} | ||
102 | - <tr> | ||
103 | - <th rowspan="{{ value|length + 1 }}" style="vertical-align: middle; text-align: center;"> | ||
104 | - {{ "Versão"|trans }} {{ version }} <br> {{ "(Em Produção)"|trans }} | ||
105 | - </th> | ||
106 | - </tr> | ||
107 | - {% else %} | ||
108 | - <tr> | ||
109 | - <th rowspan="{{ value|length + 1 }}" style="vertical-align: middle; text-align: center;"> | ||
110 | - {{ "Versão"|trans }} {{ version }} | ||
111 | - </th> | ||
112 | - </tr> | ||
113 | - {% endif %} | ||
114 | 81 | ||
115 | - {% for modulo in value %} | 82 | + <div class="block box_content round_bottom padding_10"> |
116 | 83 | ||
117 | - <tr id="{{ modulo['filename'] }}" class="{{ cycle(['row0', 'row1'], loop.index) }}"> | ||
118 | - <td style="text-align: center" >{{ modulo['name'] }}</td> | ||
119 | - <td style="text-align: center" >{{ modulo['hash'] }}</td> | ||
120 | - <td style="text-align: center" >{{ format.bytesToSize(modulo['size']) }}</td> | ||
121 | - <td class="td-actions"> | ||
122 | - <a href="{{ path('cacic_agente_excluir') }}" class="btn btn-small btn-danger bt-excluir" title="{{ "Excluir Item"|trans }}"> | ||
123 | - <i class="btn-icon-only icon-trash icon-large"></i> | ||
124 | - </a> | ||
125 | - <a href="{{ modulo['download_url'] }}" class="btn btn-small" title="{{ "Baixar"|trans }}" target="_blank"> | ||
126 | - <i class="btn-icon-only icon-download-alt icon-large"></i> | ||
127 | - </a> | ||
128 | - </td> | ||
129 | - </tr> | ||
130 | - {% else %} | ||
131 | - <tr> | ||
132 | - <td style="text-align: center" colspan="6"><b>{{ 'NENHUM REGISTRO ENCONTRADO!'|trans }}</b></td> | ||
133 | - </tr> | ||
134 | - {% endfor %} | ||
135 | - {% else %} | ||
136 | - <tr> | ||
137 | - <td style="text-align: center" colspan="6"><b>{{ 'NENHUM REGISTRO ENCONTRADO!'|trans }}</b></td> | ||
138 | - </tr> | ||
139 | - {% endfor %} | ||
140 | - </tbody> | ||
141 | - </table> | 84 | + {% for tipo, so in saida.tipo_so %} |
142 | 85 | ||
143 | - <h4><center>{{ "Agentes para Windows"|trans }}</h4> | 86 | + <h4><center>{{ "Agentes para "|trans }}{{ tipo }}</h4> |
144 | <table class="table table-striped table-bordered"> | 87 | <table class="table table-striped table-bordered"> |
145 | <thead> | 88 | <thead> |
146 | <tr> | 89 | <tr> |
@@ -153,9 +96,9 @@ | @@ -153,9 +96,9 @@ | ||
153 | </thead> | 96 | </thead> |
154 | <tbody> | 97 | <tbody> |
155 | 98 | ||
156 | - {% for version, value in saida.windows.versions %} | 99 | + {% for version, value in so %} |
157 | 100 | ||
158 | - {% if version == saida.windows.live_version %} | 101 | + {% if version == saida.live_version %} |
159 | <tr> | 102 | <tr> |
160 | <th rowspan="{{ value|length + 1 }}" style="vertical-align: middle; text-align: center;"> | 103 | <th rowspan="{{ value|length + 1 }}" style="vertical-align: middle; text-align: center;"> |
161 | {{ "Versão"|trans }} {{ version }} <br> {{ "(Em Produção)"|trans }} | 104 | {{ "Versão"|trans }} {{ version }} <br> {{ "(Em Produção)"|trans }} |
@@ -169,7 +112,6 @@ | @@ -169,7 +112,6 @@ | ||
169 | </tr> | 112 | </tr> |
170 | {% endif %} | 113 | {% endif %} |
171 | 114 | ||
172 | - | ||
173 | {% for modulo in value %} | 115 | {% for modulo in value %} |
174 | 116 | ||
175 | <tr id="{{ modulo['filename'] }}" class="{{ cycle(['row0', 'row1'], loop.index) }}"> | 117 | <tr id="{{ modulo['filename'] }}" class="{{ cycle(['row0', 'row1'], loop.index) }}"> |
@@ -197,6 +139,7 @@ | @@ -197,6 +139,7 @@ | ||
197 | {% endfor %} | 139 | {% endfor %} |
198 | </tbody> | 140 | </tbody> |
199 | </table> | 141 | </table> |
142 | + {% endfor %} | ||
200 | 143 | ||
201 | </div> <!-- /block --> | 144 | </div> <!-- /block --> |
202 | </div> <!-- /box --> | 145 | </div> <!-- /box --> |
src/Cacic/CommonBundle/Resources/views/Rede/manutencaoNeo.html.twig
@@ -20,77 +20,45 @@ | @@ -20,77 +20,45 @@ | ||
20 | <br /> | 20 | <br /> |
21 | 21 | ||
22 | <form id={{ 'formSoftwaresNaoUsados'|trans }} class="form-horizontal" action="{{ path(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')) }}" method="post"> | 22 | <form id={{ 'formSoftwaresNaoUsados'|trans }} class="form-horizontal" action="{{ path(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')) }}" method="post"> |
23 | - <h4 align="center">{{ "Agentes para MS-Windows"|trans }}</h4> | ||
24 | - <table class="table table-striped table-bordered"> | ||
25 | - <thead> | ||
26 | - <tr> | ||
27 | - <th width="40%" style="text-align: center">{{ 'Arquivo'|trans }}</th> | ||
28 | - <th width="20%" style="text-align: center">{{ 'Versão'|trans }}</th> | ||
29 | - <th width="40%" style="text-align: center">{{ 'Hash'|trans }}</th> | ||
30 | - <th style="text-align: center"> | ||
31 | - <label style="margin: auto; width:12px; height:10px;"> | ||
32 | - <input type="checkbox" class="toggleCheck" name="toggleCheck[]" value="windows" checked> | ||
33 | - </label> | ||
34 | - </th> | ||
35 | - </tr> | ||
36 | - </thead> | ||
37 | - <tbody> | ||
38 | - | ||
39 | - {% for key, modulo in windows %} | ||
40 | 23 | ||
41 | - <tr id="item_{{ key }}"> | ||
42 | - <td style="text-align: center" id="item_desc_{{ key }}">{{ key }}</td> | ||
43 | - <td style="text-align: center" >{{ modulo['versao'] }}</td> | ||
44 | - <td style="text-align: center" >{{ modulo['hash'] }}</td> | ||
45 | - <td> | ||
46 | - <label style="margin: auto; width:12px; height:10px;"> | ||
47 | - <input type="checkbox" id="item_id_{{ key }}" name="windows[]" value="{{ key }}" checked> | ||
48 | - </label> | ||
49 | - </td> | ||
50 | - </tr> | ||
51 | - {% else %} | ||
52 | - <tr> | ||
53 | - <td style="text-align: center" colspan="6"><b>{{ 'NENHUM REGISTRO ENCONTRADO!'|trans }}</b></td> | ||
54 | - </tr> | ||
55 | - {% endfor %} | ||
56 | - </tbody> | ||
57 | - </table> | ||
58 | - <br /> | ||
59 | - <table class="table table-striped table-bordered"> | ||
60 | - <h4><center>{{ "Agentes para GNU/LINUX"|trans }}</h4> | ||
61 | - <thead> | ||
62 | - <tr> | ||
63 | - <th width="40%"style="text-align: center">{{ 'Arquivo'|trans }}</th> | ||
64 | - <th width="20%"style="text-align: center">{{ 'Versão'|trans }}</th> | ||
65 | - <th width="40%"style="text-align: center">{{ 'Hash'|trans }}</th> | ||
66 | - <th style="text-align: center"> | ||
67 | - <label style="margin: auto; width:12px; height:10px;"> | ||
68 | - <input type="checkbox" class="toggleCheck" name="toggleCheck[]" value="linux" checked> | ||
69 | - </label> | ||
70 | - </th> | ||
71 | - </tr> | ||
72 | - </thead> | ||
73 | - <tbody> | ||
74 | - {% for key, modulo in linux %} | ||
75 | - | ||
76 | - <tr id="item_{{ key }}"> | ||
77 | - <td style="text-align: center" id="item_desc_{{ key }}">{{ key }}</td> | ||
78 | - <td style="text-align: center" >{{ modulo['versao'] }}</td> | ||
79 | - <td style="text-align: center" >{{ modulo['hash'] }}</td> | ||
80 | - <td> | ||
81 | - <label style="margin: auto; width:12px; height:10px;"> | ||
82 | - <input type="checkbox" id="item_id_{{ key }}" name="linux[]" value="{{ key }}" checked> | ||
83 | - </label> | ||
84 | - </td> | ||
85 | - </tr> | ||
86 | - {% else %} | ||
87 | - <tr> | ||
88 | - <td style="text-align: center" colspan="6"><b>{{ 'NENHUM REGISTRO ENCONTRADO!'|trans }}</b></td> | ||
89 | - </tr> | 24 | + {% for so, files in saida %} |
25 | + <h4 align="center">{{ "Agentes para "|trans }}{{ so }}</h4> | ||
26 | + <table class="table table-striped table-bordered"> | ||
27 | + <thead> | ||
28 | + <tr> | ||
29 | + <th width="40%" style="text-align: center">{{ 'Arquivo'|trans }}</th> | ||
30 | + <th width="20%" style="text-align: center">{{ 'Versão'|trans }}</th> | ||
31 | + <th width="40%" style="text-align: center">{{ 'Hash'|trans }}</th> | ||
32 | + <th style="text-align: center"> | ||
33 | + <label style="margin: auto; width:12px; height:10px;"> | ||
34 | + <input type="checkbox" class="toggleCheck" name="toggleCheck[]" value="windows" checked> | ||
35 | + </label> | ||
36 | + </th> | ||
37 | + </tr> | ||
38 | + </thead> | ||
39 | + <tbody> | ||
40 | + | ||
41 | + {% for key, modulo in files %} | ||
42 | + | ||
43 | + <tr id="item_{{ modulo['filename'] }}"> | ||
44 | + <td style="text-align: center" id="item_desc_{{ key }}">{{ key }}</td> | ||
45 | + <td style="text-align: center" >{{ modulo['versao'] }}</td> | ||
46 | + <td style="text-align: center" >{{ modulo['hash'] }}</td> | ||
47 | + <td> | ||
48 | + <label style="margin: auto; width:12px; height:10px;"> | ||
49 | + <input type="checkbox" id="item_id_{{ modulo['filename'] }}" name="windows[]" value="{{ modulo['filename'] }}" checked> | ||
50 | + </label> | ||
51 | + </td> | ||
52 | + </tr> | ||
53 | + {% else %} | ||
54 | + <tr> | ||
55 | + <td style="text-align: center" colspan="6"><b>{{ 'NENHUM REGISTRO ENCONTRADO!'|trans }}</b></td> | ||
56 | + </tr> | ||
57 | + {% endfor %} | ||
58 | + </tbody> | ||
59 | + </table> | ||
60 | + <br /> | ||
90 | {% endfor %} | 61 | {% endfor %} |
91 | - | ||
92 | - </tbody> | ||
93 | - </table> | ||
94 | <br /> | 62 | <br /> |
95 | 63 | ||
96 | <hr> | 64 | <hr> |
src/Cacic/WSBundle/Controller/NeoController.php
@@ -245,6 +245,7 @@ class NeoController extends Controller { | @@ -245,6 +245,7 @@ class NeoController extends Controller { | ||
245 | 245 | ||
246 | // 0 - Array de saída | 246 | // 0 - Array de saída |
247 | $saida['agentcomputer'] = ""; | 247 | $saida['agentcomputer'] = ""; |
248 | + $so_json = $dados['computador']['operatingSystem']; | ||
248 | 249 | ||
249 | 250 | ||
250 | // 1 - Ações para o computador | 251 | // 1 - Ações para o computador |
@@ -277,11 +278,16 @@ class NeoController extends Controller { | @@ -277,11 +278,16 @@ class NeoController extends Controller { | ||
277 | if (empty($mods[$tipo])) { | 278 | if (empty($mods[$tipo])) { |
278 | $mods[$tipo] = array(); | 279 | $mods[$tipo] = array(); |
279 | } | 280 | } |
280 | - // Adiciona módulos e hashes | ||
281 | - array_push($mods[$tipo], array( | ||
282 | - 'nome' => $elm->getNmModulo(), | ||
283 | - 'hash' => $elm->getTeHash() | ||
284 | - )); | 281 | + |
282 | + // Adiciona somente o módulo que estiver com o tipo de SO cadastrado | ||
283 | + if ($so_json['tipo'] == $elm->getTipoSo()->getTipo() ) { | ||
284 | + // Adiciona módulos e hashes | ||
285 | + array_push($mods[$tipo], array( | ||
286 | + 'nome' => $elm->getNmModulo(), | ||
287 | + 'hash' => $elm->getTeHash() | ||
288 | + )); | ||
289 | + } | ||
290 | + | ||
285 | } | 291 | } |
286 | $saida['agentcomputer']['modulos'] = $mods; | 292 | $saida['agentcomputer']['modulos'] = $mods; |
287 | //$logger->debug("2222222222222222222222222222222222222 \n".print_r($saida, true)); | 293 | //$logger->debug("2222222222222222222222222222222222222 \n".print_r($saida, true)); |
@@ -302,10 +308,20 @@ class NeoController extends Controller { | @@ -302,10 +308,20 @@ class NeoController extends Controller { | ||
302 | $saida['agentcomputer']['metodoDownload'] = array( | 308 | $saida['agentcomputer']['metodoDownload'] = array( |
303 | "tipo" => $computador->getIdRede()->getDownloadMethod(), | 309 | "tipo" => $computador->getIdRede()->getDownloadMethod(), |
304 | "url" => $computador->getIdRede()->getTeServUpdates(), | 310 | "url" => $computador->getIdRede()->getTeServUpdates(), |
305 | - "path" => $computador->getIdRede()->getTePathServUpdates(), | ||
306 | "usuario" => $computador->getIdRede()->getNmUsuarioLoginServUpdates(), | 311 | "usuario" => $computador->getIdRede()->getNmUsuarioLoginServUpdates(), |
307 | "senha" => $computador->getIdRede()->getTeSenhaLoginServUpdates() | 312 | "senha" => $computador->getIdRede()->getTeSenhaLoginServUpdates() |
308 | ); | 313 | ); |
314 | + | ||
315 | + // 4.1 - Configuração de método de Download | ||
316 | + if ($computador->getIdRede()->getDownloadMethod() == 'http') { | ||
317 | + $base_url = $request->getBaseUrl(); | ||
318 | + $base_url = preg_replace('/\/app.*.php/', "", $base_url); | ||
319 | + $saida['agentcomputer']['metodoDownload']['path'] = $base_url . '/downloads/cacic/current/' . $so_json['tipo']; | ||
320 | + } else { | ||
321 | + $saida['agentcomputer']['metodoDownload']['path'] = $computador->getIdRede()->getTePathServUpdates(); | ||
322 | + } | ||
323 | + | ||
324 | + | ||
309 | //$logger->debug("4444444444444444444444444444444444444444 \n".print_r($saida, true)); | 325 | //$logger->debug("4444444444444444444444444444444444444444 \n".print_r($saida, true)); |
310 | 326 | ||
311 | // 5 - Configurações do local | 327 | // 5 - Configurações do local |