Commit 9dae27d1f570bd95327ab731083a2e8108f72bb8

Authored by Eduardo Santos
2 parents 44fe6d57 1c3f244a
Exists in master

Merge remote-tracking branch 'origin/3.1'

src/Cacic/CommonBundle/Controller/AgenteController.php
@@ -115,7 +115,7 @@ class AgenteController extends Controller { @@ -115,7 +115,7 @@ class AgenteController extends Controller {
115 $current = @basename(@readlink($windowsDir."current")); 115 $current = @basename(@readlink($windowsDir."current"));
116 $saida['windows']['live_version'] = $current; 116 $saida['windows']['live_version'] = $current;
117 117
118 - $logger->debug("4444444444444444444444444444444444 ".print_r($saida, true)); 118 + //$logger->debug("4444444444444444444444444444444444 ".print_r($saida, true));
119 119
120 if ( $request->isMethod('POST') ) 120 if ( $request->isMethod('POST') )
121 { 121 {
src/Cacic/CommonBundle/Controller/TipoSoController.php 0 → 100644
@@ -0,0 +1,95 @@ @@ -0,0 +1,95 @@
  1 +<?php
  2 +
  3 +namespace Cacic\CommonBundle\Controller;
  4 +
  5 +use Symfony\Component\HttpFoundation\Request;
  6 +use Symfony\Component\HttpFoundation\Response;
  7 +use Symfony\Bundle\FrameworkBundle\Controller\Controller;
  8 +use Cacic\CommonBundle\Entity\TipoSo;
  9 +use Cacic\CommonBundle\Form\Type\TipoSoType;
  10 +
  11 +
  12 +class TipoSoController extends Controller
  13 +{
  14 + public function indexAction( $page )
  15 + {
  16 + $arrso = $this->getDoctrine()->getRepository( 'CacicCommonBundle:TipoSo' )->paginar( $this->get( 'knp_paginator' ), $page );
  17 + return $this->render( 'CacicCommonBundle:TipoSo:index.html.twig', array( 'So' => $arrso ) );
  18 +
  19 + }
  20 + public function cadastrarAction(Request $request)
  21 + {
  22 + $so = new TipoSo();
  23 + $form = $this->createForm(new TipoSoType(), $so);
  24 +
  25 + if ( $request->isMethod('POST') )
  26 + {
  27 + $form->bind( $request );
  28 + if ( $form->isValid() )
  29 + {
  30 + $this->getDoctrine()->getManager()->persist( $so );
  31 + $this->getDoctrine()->getManager()->flush(); //Persiste os dados do sistema operacional
  32 +
  33 + $this->get('session')->getFlashBag()->add('success', 'Dados salvos com sucesso!');
  34 +
  35 + return $this->redirect( $this->generateUrl( 'cacic_sistemaoperacional_index') );
  36 + }
  37 + }
  38 +
  39 + return $this->render( 'CacicCommonBundle:So:cadastrar.html.twig', array( 'form' => $form->createView() ) );
  40 + }
  41 + /**
  42 + * Página de editar dados do sistema operacional
  43 + * @param int $idSo
  44 + */
  45 + public function editarAction( $idTipoSo, Request $request )
  46 + {
  47 + $so = $this->getDoctrine()->getRepository('CacicCommonBundle:TipoSo')->find( $idTipoSo );
  48 + if ( ! $so )
  49 + throw $this->createNotFoundException( 'Tipo de sistema operacional não encontrado' );
  50 + $form = $this->createForm( new TipoSoType(), $so);
  51 +
  52 + if ( $request->isMethod('POST') )
  53 + {
  54 + $form->bind( $request );
  55 +
  56 + if ( $form->isValid() )
  57 + {
  58 + $this->getDoctrine()->getManager()->persist( $so );
  59 + $this->getDoctrine()->getManager()->flush();// Efetuar a edição do sistema operacional
  60 +
  61 +
  62 + $this->get('session')->getFlashBag()->add('success', 'Dados salvos com sucesso!');
  63 +
  64 + return $this->redirect($this->generateUrl('cacic_tiposo_editar', array( 'idTipoSo' => $so->getIdTipoSo() ) ) );
  65 + }
  66 + }
  67 +
  68 + return $this->render( 'CacicCommonBundle:TipoSo:cadastrar.html.twig', array( 'form' => $form->createView() ) );
  69 + }
  70 +
  71 + /**
  72 + *
  73 + * [AJAX] Exclusão de tipo de sistema operacional já cadastrado
  74 + * @param integer $idTipoSo
  75 + */
  76 + public function excluirAction( Request $request )
  77 + {
  78 + if ( ! $request->isXmlHttpRequest() ) // Verifica se se trata de uma requisição AJAX
  79 + throw $this->createNotFoundException( 'Página não encontrada' );
  80 +
  81 + $So = $this->getDoctrine()->getRepository('CacicCommonBundle:TipoSo')->find( $request->get('id') );
  82 + if ( ! $So )
  83 + throw $this->createNotFoundException( 'Tipo de sistema operacional não encontrado' );
  84 +
  85 + $em = $this->getDoctrine()->getManager();
  86 + $em->remove( $So );
  87 + $em->flush();
  88 +
  89 + $response = new Response( json_encode( array('status' => 'ok') ) );
  90 + $response->headers->set('Content-Type', 'application/json');
  91 +
  92 + return $response;
  93 + }
  94 +
  95 +}
0 \ No newline at end of file 96 \ No newline at end of file
src/Cacic/CommonBundle/Entity/RedeRepository.php
@@ -224,6 +224,12 @@ class RedeRepository extends EntityRepository @@ -224,6 +224,12 @@ class RedeRepository extends EntityRepository
224 return $qb->getQuery()->execute(); 224 return $qb->getQuery()->execute();
225 } 225 }
226 226
  227 + /**
  228 + * Computadores por subredes
  229 + *
  230 + * @return mixed
  231 + */
  232 +
227 public function computadoresSubredes(){ 233 public function computadoresSubredes(){
228 $rsm = new ResultSetMapping(); 234 $rsm = new ResultSetMapping();
229 235
@@ -256,4 +262,18 @@ class RedeRepository extends EntityRepository @@ -256,4 +262,18 @@ class RedeRepository extends EntityRepository
256 262
257 return $query->execute(); 263 return $query->execute();
258 } 264 }
  265 +
  266 + /**
  267 + * Retorna lista de servidores de atualização
  268 + *
  269 + * @return \Doctrine\ORM\QueryBuilder
  270 + */
  271 +
  272 + public function getServUpdateList() {
  273 +
  274 + $qb = $this->createQueryBuilder('rede')
  275 + ->select('DISTINCT (rede.teServUpdates) as teServUpdates');
  276 +
  277 + return $qb;
  278 + }
259 } 279 }
260 \ No newline at end of file 280 \ No newline at end of file
src/Cacic/CommonBundle/Entity/So.php
@@ -158,4 +158,32 @@ class So @@ -158,4 +158,32 @@ class So
158 { 158 {
159 return $this->teDescSo . ' ('. $this->sgSo .')'; 159 return $this->teDescSo . ' ('. $this->sgSo .')';
160 } 160 }
161 -}  
162 \ No newline at end of file 161 \ No newline at end of file
  162 + /**
  163 + * @var \Cacic\CommonBundle\Entity\TipoSo
  164 + */
  165 + private $tipo;
  166 +
  167 +
  168 + /**
  169 + * Set tipo
  170 + *
  171 + * @param \Cacic\CommonBundle\Entity\TipoSo $tipo
  172 + * @return So
  173 + */
  174 + public function setTipo(\Cacic\CommonBundle\Entity\TipoSo $tipo = null)
  175 + {
  176 + $this->tipo = $tipo;
  177 +
  178 + return $this;
  179 + }
  180 +
  181 + /**
  182 + * Get tipo
  183 + *
  184 + * @return \Cacic\CommonBundle\Entity\TipoSo
  185 + */
  186 + public function getTipo()
  187 + {
  188 + return $this->tipo;
  189 + }
  190 +}
src/Cacic/CommonBundle/Entity/TipoSo.php 0 → 100644
@@ -0,0 +1,100 @@ @@ -0,0 +1,100 @@
  1 +<?php
  2 +
  3 +namespace Cacic\CommonBundle\Entity;
  4 +
  5 +use Doctrine\ORM\Mapping as ORM;
  6 +
  7 +/**
  8 + * TipoSo
  9 + */
  10 +class TipoSo
  11 +{
  12 + /**
  13 + * @var integer
  14 + */
  15 + private $idTipoSo;
  16 +
  17 + /**
  18 + * @var string
  19 + */
  20 + private $tipo;
  21 +
  22 +
  23 + /**
  24 + * Get idTipoSo
  25 + *
  26 + * @return integer
  27 + */
  28 + public function getIdTipoSo()
  29 + {
  30 + return $this->idTipoSo;
  31 + }
  32 +
  33 + /**
  34 + * Set tipo
  35 + *
  36 + * @param string $tipo
  37 + * @return TipoSo
  38 + */
  39 + public function setTipo($tipo)
  40 + {
  41 + $this->tipo = $tipo;
  42 +
  43 + return $this;
  44 + }
  45 +
  46 + /**
  47 + * Get tipo
  48 + *
  49 + * @return string
  50 + */
  51 + public function getTipo()
  52 + {
  53 + return $this->tipo;
  54 + }
  55 + /**
  56 + * @var \Doctrine\Common\Collections\Collection
  57 + */
  58 + private $so;
  59 +
  60 + /**
  61 + * Constructor
  62 + */
  63 + public function __construct()
  64 + {
  65 + $this->so = new \Doctrine\Common\Collections\ArrayCollection();
  66 + }
  67 +
  68 + /**
  69 + * Add so
  70 + *
  71 + * @param \Cacic\CommonBundle\Entity\So $so
  72 + * @return TipoSo
  73 + */
  74 + public function addSo(\Cacic\CommonBundle\Entity\So $so)
  75 + {
  76 + $this->so[] = $so;
  77 +
  78 + return $this;
  79 + }
  80 +
  81 + /**
  82 + * Remove so
  83 + *
  84 + * @param \Cacic\CommonBundle\Entity\So $so
  85 + */
  86 + public function removeSo(\Cacic\CommonBundle\Entity\So $so)
  87 + {
  88 + $this->so->removeElement($so);
  89 + }
  90 +
  91 + /**
  92 + * Get so
  93 + *
  94 + * @return \Doctrine\Common\Collections\Collection
  95 + */
  96 + public function getSo()
  97 + {
  98 + return $this->so;
  99 + }
  100 +}
src/Cacic/CommonBundle/Entity/TipoSoRepository.php 0 → 100644
@@ -0,0 +1,75 @@ @@ -0,0 +1,75 @@
  1 +<?php
  2 +
  3 +namespace Cacic\CommonBundle\Entity;
  4 +
  5 +use Doctrine\ORM\EntityRepository;
  6 +
  7 +use Cacic\CommonBundle\Entity\TipoSo;
  8 +
  9 +/**
  10 + * TipoSoRepository
  11 + *
  12 + * This class was generated by the Doctrine ORM. Add your own custom
  13 + * repository methods below.
  14 + */
  15 +class TipoSoRepository extends EntityRepository
  16 +{
  17 + /**
  18 + * Paginar
  19 + *
  20 + * @param \Knp\Component\Pager\Paginator $paginator
  21 + * @param int $page
  22 + * @return \Knp\Component\Pager\Pagination\PaginationInterface
  23 + */
  24 + public function paginar( \Knp\Component\Pager\Paginator $paginator, $page = 1 )
  25 + {
  26 + $_dql = "SELECT s
  27 + FROM CacicCommonBundle:TipoSo s
  28 + ORDER BY s.tipo";
  29 +
  30 + return $paginator->paginate(
  31 + $this->getEntityManager()->createQuery( $_dql ),
  32 + $page,
  33 + 10
  34 + );
  35 + }
  36 +
  37 + /**
  38 + *
  39 + * Método de listagem dos Tipo de Software cadastrados e respectivas informações
  40 + */
  41 + public function listar()
  42 + {
  43 + $_dql = "SELECT s
  44 + FROM CacicCommonBundle:TipoSo s
  45 + ORDER BY s.tipo";
  46 +
  47 + return $this->getEntityManager()->createQuery( $_dql )->getArrayResult();
  48 + }
  49 +
  50 + /**
  51 + * Insere tipo de SO
  52 + *
  53 + * @param $te_so
  54 + * @return TipoSo|null|object
  55 + */
  56 +
  57 + public function createIfNotExist( $te_so )
  58 + {
  59 + $so = $this->findOneBy( array ( 'tipo' => $te_so ) );
  60 +
  61 + if( empty( $so ) )
  62 + {
  63 + $so = new TipoSo();
  64 +
  65 + $so->setTipo($te_so);
  66 + $this->getEntityManager()->persist( $so );
  67 + $this->getEntityManager()->flush();
  68 +
  69 + }
  70 +
  71 + return $so;
  72 +
  73 + }
  74 +
  75 +}
src/Cacic/CommonBundle/Entity/TipoSoftware.php
@@ -62,4 +62,4 @@ class TipoSoftware @@ -62,4 +62,4 @@ class TipoSoftware
62 { 62 {
63 return $this->getTeDescricaoTipoSoftware(); 63 return $this->getTeDescricaoTipoSoftware();
64 } 64 }
65 -}  
66 \ No newline at end of file 65 \ No newline at end of file
  66 +}
src/Cacic/CommonBundle/Form/Type/SoType.php
@@ -48,6 +48,15 @@ class SoType extends AbstractType @@ -48,6 +48,15 @@ class SoType extends AbstractType
48 'label'=>'Sistema Operacional MS-Windows' 48 'label'=>'Sistema Operacional MS-Windows'
49 ) 49 )
50 ); 50 );
  51 + $builder->add(
  52 + 'tipo',
  53 + 'entity',
  54 + array(
  55 + 'label' => 'Tipo de Sistema Operacional',
  56 + 'class' => 'CacicCommonBundle:TipoSo',
  57 + 'property' => 'tipo'
  58 + )
  59 + );
51 } 60 }
52 61
53 /** 62 /**
src/Cacic/CommonBundle/Form/Type/TipoSoType.php 0 → 100644
@@ -0,0 +1,41 @@ @@ -0,0 +1,41 @@
  1 +<?php
  2 +
  3 +namespace Cacic\CommonBundle\Form\Type;
  4 +
  5 +use Symfony\Component\Form\AbstractType;
  6 +use Symfony\Component\Form\FormBuilderInterface;
  7 +
  8 +/**
  9 + *
  10 + *
  11 + * @author lightbase
  12 + *
  13 + */
  14 +class TipoSoType extends AbstractType
  15 +{
  16 +
  17 + /**
  18 + * Adiciona So
  19 + *
  20 + * @param FormBuilderInterface $builder
  21 + * @param array $options
  22 + */
  23 + public function buildForm( FormBuilderInterface $builder, array $options )
  24 + {
  25 + $builder->add(
  26 + 'tipo',
  27 + null,
  28 + array( 'label'=>'Tipo de SO' )
  29 + );
  30 + }
  31 +
  32 + /**
  33 + * (non-PHPdoc)
  34 + * @see Symfony\Component\Form.FormTypeInterface::getName()
  35 + */
  36 + public function getName()
  37 + {
  38 + return 'TipoSo';
  39 + }
  40 +
  41 +}
0 \ No newline at end of file 42 \ No newline at end of file
src/Cacic/CommonBundle/Resources/config/doctrine/So.orm.yml
@@ -31,4 +31,15 @@ Cacic\CommonBundle\Entity\So: @@ -31,4 +31,15 @@ Cacic\CommonBundle\Entity\So:
31 fixed: true 31 fixed: true
32 nullable: false 32 nullable: false
33 column: in_mswindows 33 column: in_mswindows
  34 + manyToOne:
  35 + tipo:
  36 + targetEntity: TipoSo
  37 + cascade: { }
  38 + mappedBy: null
  39 + inversedBy: null
  40 + nullable: true
  41 + joinColumns:
  42 + id_tipo_so:
  43 + referencedColumnName: id_tipo_so
  44 + orphanRemoval: false
34 lifecycleCallbacks: { } 45 lifecycleCallbacks: { }
src/Cacic/CommonBundle/Resources/config/doctrine/TipoSo.orm.yml 0 → 100644
@@ -0,0 +1,23 @@ @@ -0,0 +1,23 @@
  1 +Cacic\CommonBundle\Entity\TipoSo:
  2 + type: entity
  3 + table: tipo_so
  4 + repositoryClass: Cacic\CommonBundle\Entity\TipoSoRepository
  5 + fields:
  6 + idTipoSo:
  7 + id: true
  8 + type: integer
  9 + unsigned: false
  10 + nullable: false
  11 + column: id_tipo_so
  12 + generator:
  13 + strategy: IDENTITY
  14 + tipo:
  15 + type: text
  16 + fixed: false
  17 + nullable: true
  18 + column: tipo
  19 + oneToMany:
  20 + so:
  21 + targetEntity: So
  22 + mappedBy: tipo
  23 + lifecycleCallbacks: { }
src/Cacic/CommonBundle/Resources/config/routing.yml
@@ -300,10 +300,6 @@ cacic_grupo_usuario_excluir: @@ -300,10 +300,6 @@ cacic_grupo_usuario_excluir:
300 pattern: /admin/grupousuario/excluir 300 pattern: /admin/grupousuario/excluir
301 defaults: { _controller: CacicCommonBundle:GrupoUsuario:excluir} 301 defaults: { _controller: CacicCommonBundle:GrupoUsuario:excluir}
302 302
303 -cacic_ateste:  
304 - pattern: /admin/ateste/  
305 - defaults: { _controller: CacicCommonBundle:Ateste:index }  
306 -  
307 cacic_agente: 303 cacic_agente:
308 pattern: /admin/agente/ 304 pattern: /admin/agente/
309 defaults: { _controller: CacicCommonBundle:Agente:index } 305 defaults: { _controller: CacicCommonBundle:Agente:index }
@@ -329,6 +325,10 @@ cacic_atualizacao_subredes: @@ -329,6 +325,10 @@ cacic_atualizacao_subredes:
329 # INÍCIO: Usuário com perfil manutenção 325 # INÍCIO: Usuário com perfil manutenção
330 ############################################ 326 ############################################
331 327
  328 +cacic_ateste:
  329 + pattern: /manutencao/ateste/
  330 + defaults: { _controller: CacicCommonBundle:Ateste:index }
  331 +
332 cacic_aplicativo_index: 332 cacic_aplicativo_index:
333 pattern: /manutencao/aplicativo/{page} 333 pattern: /manutencao/aplicativo/{page}
334 defaults: {_controller: CacicCommonBundle:Aplicativo:index, page: 1 } 334 defaults: {_controller: CacicCommonBundle:Aplicativo:index, page: 1 }
@@ -370,6 +370,8 @@ cacic_tiposoftware_excluir: @@ -370,6 +370,8 @@ cacic_tiposoftware_excluir:
370 pattern: /manutencao/tiposoftware/excluir 370 pattern: /manutencao/tiposoftware/excluir
371 defaults: { _controller: CacicCommonBundle:TipoSoftware:excluir} 371 defaults: { _controller: CacicCommonBundle:TipoSoftware:excluir}
372 372
  373 +# Sistemas Operacionais
  374 +
373 cacic_sistemaoperacional_index: 375 cacic_sistemaoperacional_index:
374 pattern: /manutencao/sistemaoperacional/{page} 376 pattern: /manutencao/sistemaoperacional/{page}
375 defaults: {_controller: CacicCommonBundle:So:index, page: 1 } 377 defaults: {_controller: CacicCommonBundle:So:index, page: 1 }
@@ -390,6 +392,28 @@ cacic_sistemaoperacional_excluir: @@ -390,6 +392,28 @@ cacic_sistemaoperacional_excluir:
390 pattern: /manutencao/sistemaoperacional/excluir 392 pattern: /manutencao/sistemaoperacional/excluir
391 defaults: { _controller: CacicCommonBundle:So:excluir} 393 defaults: { _controller: CacicCommonBundle:So:excluir}
392 394
  395 +
  396 +cacic_tiposo_index:
  397 + pattern: /manutencao/tiposo/{page}
  398 + defaults: {_controller: CacicCommonBundle:TipoSo:index, page: 1 }
  399 + requirements:
  400 + page: \d+
  401 +
  402 +cacic_tiposo_cadastrar:
  403 + pattern: /manutencao/tiposo/cadastrar
  404 + defaults: { _controller: CacicCommonBundle:TipoSo:cadastrar}
  405 +
  406 +cacic_tiposo_editar:
  407 + pattern: /manutencao/tiposo/editar/{idTipoSo}
  408 + defaults: { _controller: CacicCommonBundle:TipoSo:editar}
  409 + requirements:
  410 + idTipoSo: \d+
  411 +
  412 +cacic_tiposo_excluir:
  413 + pattern: /manutencao/tiposo/excluir
  414 + defaults: { _controller: CacicCommonBundle:TipoSo:excluir}
  415 +
  416 +
393 cacic_software_index: 417 cacic_software_index:
394 pattern: /manutencao/software/{page} 418 pattern: /manutencao/software/{page}
395 defaults: {_controller: CacicCommonBundle:Software:index, page: 1 } 419 defaults: {_controller: CacicCommonBundle:Software:index, page: 1 }
src/Cacic/CommonBundle/Resources/views/So/index.html.twig
@@ -22,11 +22,12 @@ @@ -22,11 +22,12 @@
22 <thead> 22 <thead>
23 <tr> 23 <tr>
24 <th width="15%">{{ "Descrição"|trans }}</th> 24 <th width="15%">{{ "Descrição"|trans }}</th>
25 - <th width="15%" style="text-align: center" >MS-Windows?</th> 25 + <th width="10%" style="text-align: center" >MS-Windows?</th>
26 <th width="15%" style="text-align: center" >{{ "ID Interna"|trans }}</th> 26 <th width="15%" style="text-align: center" >{{ "ID Interna"|trans }}</th>
27 - <th width="15%" style="text-align: center">{{ "ID Externa"|trans }}</th> 27 + <th width="10%" style="text-align: center">{{ "ID Externa"|trans }}</th>
28 <th width="15%">{{ "Sigla"|trans }}</th> 28 <th width="15%">{{ "Sigla"|trans }}</th>
29 <th width="15%">{{ "Total de Máquinas"|trans }}</th> 29 <th width="15%">{{ "Total de Máquinas"|trans }}</th>
  30 + <th width="10%">{{ "Tipo de SO"|trans }}</th>
30 <th style="text-align: center">{{ "Ações"|trans }}</th> 31 <th style="text-align: center">{{ "Ações"|trans }}</th>
31 </tr> 32 </tr>
32 </thead> 33 </thead>
@@ -41,6 +42,11 @@ @@ -41,6 +42,11 @@
41 <td style="text-align: center">{{ so.idSo }}</td> 42 <td style="text-align: center">{{ so.idSo }}</td>
42 <td>{{ so.sgSo }}</td> 43 <td>{{ so.sgSo }}</td>
43 <td></td> 44 <td></td>
  45 + {% if so.tipo is empty %}
  46 + <td></td>
  47 + {% else %}
  48 + <td>{{ so.tipo.tipo }}</td>
  49 + {% endif %}
44 <td style="text-align: center" class="td-actions"> 50 <td style="text-align: center" class="td-actions">
45 <a href="{{ path('cacic_sistemaoperacional_editar', {'idSo': so.idSo }) }}" class="btn btn-small" title="{{ "Editar Item"|trans }}"> 51 <a href="{{ path('cacic_sistemaoperacional_editar', {'idSo': so.idSo }) }}" class="btn btn-small" title="{{ "Editar Item"|trans }}">
46 <i class="btn-icon-only icon-edit icon-large"></i> 52 <i class="btn-icon-only icon-edit icon-large"></i>
src/Cacic/CommonBundle/Resources/views/TipoSo/cadastrar.html.twig 0 → 100644
@@ -0,0 +1,67 @@ @@ -0,0 +1,67 @@
  1 +{% extends 'CacicCommonBundle::base.html.twig' %}
  2 +
  3 +{% block breadcrumb %}
  4 + <li><a href="{{ path('cacic_tiposo_index') }}">{{ "Sistemas Operacionais"|trans }}</a></li> /
  5 + <li class="active">{{ "Cadastro"|trans }}</li>
  6 +{% endblock %}
  7 +
  8 +{% block body %}
  9 +
  10 +<div class="row-fluid">
  11 +
  12 + <div class="span8">
  13 +
  14 + <div class="box grad_colour_black">
  15 +
  16 + <h2 class="box_head round_top"><i class="icon-edit icon-large"></i> {{ "Dados do Sistema Operacional"|trans }}</h2>
  17 +
  18 + <div class="block box_content round_bottom padding_10">
  19 +
  20 + <form id={{ 'formTipoSo'|trans }} class="form-horizontal" action="{{ path(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')) }}" method="post" {{ form_enctype(form) }}>
  21 + <div class="tabbable">
  22 + {{ form_widget(form, {'form_type': 'horizontal'} ) }}
  23 + {{ form_rest(form) }}
  24 + </div>
  25 + <br />
  26 + <div class="control-group">
  27 + <div class="controls">
  28 + <button type="reset" class="btn">
  29 + <i class="icon-refresh"></i>
  30 + {{ "Resetar Valores"|trans }}
  31 + </button>
  32 + <button type="submit" class="btn btn-primary">
  33 + <i class="icon-ok-sign"></i>
  34 + {{ "Salvar Dados"|trans }}
  35 + </button>
  36 + </div>
  37 + </div>
  38 +
  39 + </form>
  40 +
  41 + <hr />
  42 + <div>
  43 + <a class="btn btn-danger" href="{{ path('cacic_tiposo_index') }}">
  44 + <i class="icon-remove-sign"></i>
  45 + {{ "Cancelar"|trans }}
  46 + </a>
  47 + </div>
  48 +
  49 + </div> <!-- /block -->
  50 + </div> <!-- /box -->
  51 + </div> <!-- /span8 -->
  52 +
  53 + <div class="span4">
  54 + <div class="box grad_colour_black">
  55 +
  56 + <h2 class="box_head round_top"><i class="icon-info-sign"></i> {{ "Informações Adicionais"|trans }}</h2>
  57 +
  58 + <div class="block box_content round_bottom padding_10">
  59 + <p>
  60 + {{ "Os itens destacados em"|trans }} <b class="red">{{ "vermelho"|trans }}</b> {{ "são de preenchimento obrigatório"|trans }}.
  61 + </p>
  62 + </div> <!-- /block -->
  63 + </div> <!-- /box -->
  64 + </div> <!-- span4 -->
  65 +
  66 +</div> <!-- /row -->
  67 +{% endblock %}
0 \ No newline at end of file 68 \ No newline at end of file
src/Cacic/CommonBundle/Resources/views/TipoSo/index.html.twig 0 → 100644
@@ -0,0 +1,69 @@ @@ -0,0 +1,69 @@
  1 +{% extends 'CacicCommonBundle::base.html.twig' %}
  2 +
  3 +{% block breadcrumb %}
  4 + <li class="active">{{ "Tipos de Sistema Operacional"|trans }}</li>
  5 +{% endblock %}
  6 +
  7 +{% block body %}
  8 +
  9 +<div class="row-fluid">
  10 + <div class="span12">
  11 + <div class="box grad_colour_black">
  12 +
  13 + <h2 class="box_head round_top"><i class="icon-cog"></i> {{ "Tipos de Sistema Operacional"|trans }}</h2>
  14 +
  15 + <div class="block box_content round_bottom padding_10">
  16 +
  17 + <h3>{{ "Lista de Tipos de Sistemas Operacionais cadastrados"|trans }}</h3>
  18 + <p>{{ "Neste módulo deverão ser cadastrados os Tipos de Sistema Operacional"|trans }}</p>
  19 + <br />
  20 +
  21 + <table class="table table-striped table-bordered">
  22 + <thead>
  23 + <tr>
  24 + <th>{{ "Tipo"|trans }}</th>
  25 + <th style="text-align: center">{{ "Ações"|trans }}</th>
  26 + </tr>
  27 + </thead>
  28 +
  29 + <tbody>
  30 +
  31 + {% for so in So %}
  32 + <tr id="item_{{ so.idTipoSo }}" class="{{ cycle(['row0', 'row1'], loop.index) }}">
  33 + <td id="item_desc_{{ so.idTipoSo }}">{{ so.tipo }}</td>
  34 + <td style="text-align: center" class="td-actions">
  35 + <a href="{{ path('cacic_tiposo_editar', {'idTipoSo': so.idTipoSo }) }}" class="btn btn-small" title="{{ "Editar Item"|trans }}">
  36 + <i class="btn-icon-only icon-edit icon-large"></i>
  37 + </a>
  38 +
  39 + <a href="{{ path('cacic_tiposo_excluir') }}" class="btn btn-small btn-danger bt-excluir" title="{{ "Excluir Item"|trans }}">
  40 + <i class="btn-icon-only icon-trash icon-large"></i>
  41 + </a>
  42 + </td>
  43 + </tr>
  44 + {% else %}
  45 + <tr>
  46 + <td style="text-align: center;" colspan="2"><b>{{ "NENHUM REGISTRO ENCONTRADO!"|trans }}</b></td>
  47 + </tr>
  48 + {% endfor %}
  49 +
  50 + </tbody>
  51 + </table>
  52 +
  53 + {# display navigation #}
  54 + <div class="navigation">
  55 + {{ knp_pagination_render(So) }}
  56 + </div>
  57 +
  58 + <div align="right">
  59 + <a class="btn btn-primary bt-adicionar" href="{{ path('cacic_tiposo_cadastrar') }}">
  60 + <i class="icon-plus-sign"></i>
  61 + {{ "Adicionar Tipo de Sistema Operacional"|trans }}
  62 + </a>
  63 + </div>
  64 + </div> <!-- /block -->
  65 + </div><!-- /box -->
  66 +
  67 + </div><!-- /span -->
  68 +</div><!-- /row -->
  69 +{% endblock %}
0 \ No newline at end of file 70 \ No newline at end of file
src/Cacic/CommonBundle/Resources/views/base.html.twig
@@ -23,9 +23,17 @@ @@ -23,9 +23,17 @@
23 <span class="icon">&nbsp;</span> 23 <span class="icon">&nbsp;</span>
24 </a> 24 </a>
25 <ul> 25 <ul>
26 - <li><a class="round_top" href="{{ path('cacic_software_naoclassificados') }}">{{ "Classificar Software"|trans }}</a></li>  
27 - <li><a href="{{ path('cacic_software_naousados') }}">{{ "Softwares não usados"|trans }}</a></li>  
28 - <li><a href="{{ path('cacic_modulo_index') }}">{{ "Configurar Módulos"|trans }}</a></li> 26 + <li class="dropdown-submenu" >
  27 + <a href="{{ path('cacic_modulo_index') }}" class="dropdown-toggle" data-toggle="dropdown">
  28 + {{ "Configurar Módulos"|trans }}
  29 + <span class="icon">&nbsp;</span>
  30 + </a>
  31 + <ul>
  32 + <li><a href="{{ path('cacic_agente') }}">{{ "Upload de Agentes"|trans }}</a></li>
  33 + <li><a href="{{ path('cacic_deploy') }}">{{ "Deploy de software"|trans }}</a></li>
  34 + <li><a href="{{ path('cacic_atualizacao_subredes') }}">{{ "Atualização de Subrede"|trans }}</a></li>
  35 + </ul>
  36 + </li>
29 37
30 <li class="dropdown-submenu"> 38 <li class="dropdown-submenu">
31 <a href="javascript:void(0)" class="dropdown-toggle" data-toggle="dropdown"> 39 <a href="javascript:void(0)" class="dropdown-toggle" data-toggle="dropdown">
@@ -37,6 +45,7 @@ @@ -37,6 +45,7 @@
37 <li><a href="{{ path('cacic_log_atividade') }}">{{ "Atividades"|trans }}</a></li> 45 <li><a href="{{ path('cacic_log_atividade') }}">{{ "Atividades"|trans }}</a></li>
38 <li><a href="{{ path('cacic_log_insucesso_instalacao') }}">{{ "Insucessos Instalação"|trans }}</a></li> 46 <li><a href="{{ path('cacic_log_insucesso_instalacao') }}">{{ "Insucessos Instalação"|trans }}</a></li>
39 <li><a href="{{ path('cacic_log_suporte_remoto') }}">{{ "Suporte Remoto Seguro"|trans }}</a></li> 47 <li><a href="{{ path('cacic_log_suporte_remoto') }}">{{ "Suporte Remoto Seguro"|trans }}</a></li>
  48 + <li><a href="{{ path('cacic_relatorio_usuario') }}">{{ "Usuário Logado"|trans }}</a></li>
40 </ul> 49 </ul>
41 </li> 50 </li>
42 <li class="dropdown-submenu" > 51 <li class="dropdown-submenu" >
@@ -48,13 +57,20 @@ @@ -48,13 +57,20 @@
48 <li><a href="{{ path('cacic_local_index') }}">{{ "Locais"|trans }}</a></li> 57 <li><a href="{{ path('cacic_local_index') }}">{{ "Locais"|trans }}</a></li>
49 <li><a href="{{ path('cacic_servidorautenticacao_index') }}">{{ "Servidores Autenticação"|trans }}</a></li> 58 <li><a href="{{ path('cacic_servidorautenticacao_index') }}">{{ "Servidores Autenticação"|trans }}</a></li>
50 <li><a href="{{ path('cacic_subrede_index') }}">{{ "Sub-redes"|trans }}</a></li> 59 <li><a href="{{ path('cacic_subrede_index') }}">{{ "Sub-redes"|trans }}</a></li>
51 - <li><a href="{{ path('cacic_aplicativo_index') }}">{{ "Aplicativo"|trans }}</a></li>  
52 - <li><a href="{{ path('cacic_usuario_index') }}">{{ "Usuários"|trans }}</a></li>  
53 - <li><a href="{{ path('cacic_grupo_usuario_index') }}">{{ "Grupo de Usuários"|trans }}</a></li>  
54 - <li><a href="{{ path('cacic_tiposoftware_index') }}">{{ "Tipos Softwares"|trans }}</a></li> 60 + <li><a href="{{ path('cacic_aplicativo_index') }}">{{ "Aplicativos Monitorados"|trans }}</a></li>
55 <li><a href="{{ path('cacic_sistemaoperacional_index') }}">{{ "Sistemas Operacionais"|trans }}</a></li> 61 <li><a href="{{ path('cacic_sistemaoperacional_index') }}">{{ "Sistemas Operacionais"|trans }}</a></li>
56 - <li><a href="{{ path('cacic_software_index') }}">{{ "Softwares"|trans }}</a></li>  
57 <li><a href="{{ path('cacic_usbdevice_index') }}">{{ "Dispositivos USB"|trans }}</a></li> 62 <li><a href="{{ path('cacic_usbdevice_index') }}">{{ "Dispositivos USB"|trans }}</a></li>
  63 + <li><a href="{{ path('cacic_subrede_computadores') }}">{{ "Computadores e Subredes"|trans }}</a></li>
  64 + </ul>
  65 + </li>
  66 + <li class="dropdown-submenu" >
  67 + <a href="javascript:void(0)">
  68 + {{ "Usuários"|trans }}
  69 + <span class="icon">&nbsp;</span>
  70 + </a>
  71 + <ul>
  72 + <li><a href="{{ path('cacic_usuario_index') }}">{{ "Cadastro de Usuários"|trans }}</a></li>
  73 + <li><a href="{{ path('cacic_grupo_usuario_index') }}">{{ "Grupo de Usuários"|trans }}</a></li>
58 </ul> 74 </ul>
59 </li> 75 </li>
60 <li class="dropdown-submenu" > 76 <li class="dropdown-submenu" >
@@ -63,37 +79,68 @@ @@ -63,37 +79,68 @@
63 <span class="icon">&nbsp;</span> 79 <span class="icon">&nbsp;</span>
64 </a> 80 </a>
65 <ul> 81 <ul>
66 - <li ><a href="{{ path('cacic_patrimonio_index')}}">{{ "Interface"|trans }}</a></li>  
67 <li ><a href="{{ path('cacic_uorg_index')}}">{{ "Unidades Organizacionais"|trans }}</a></li> 82 <li ><a href="{{ path('cacic_uorg_index')}}">{{ "Unidades Organizacionais"|trans }}</a></li>
68 <li ><a href="{{ path('cacic_uorg_type_index')}}">{{ "Tipos de Unidade"|trans }} <br> {{ "Organizacional"|trans }}</a></li> 83 <li ><a href="{{ path('cacic_uorg_type_index')}}">{{ "Tipos de Unidade"|trans }} <br> {{ "Organizacional"|trans }}</a></li>
69 <li ><a href="{{ path('cacic_patrimonio_opcoes')}}">{{ "Opções"|trans }}</a></li> 84 <li ><a href="{{ path('cacic_patrimonio_opcoes')}}">{{ "Opções"|trans }}</a></li>
70 </ul> 85 </ul>
71 </li> 86 </li>
  87 + <li><a href="{{ path('cacic_migracao_cacic26') }}">{{ "Importar de 2.6"|trans }}</a></li>
  88 + </ul>
  89 + </li>
  90 +
  91 + <li class="subnavbar-open-right" >
  92 + <a href="javascript:void(0);" class="dropdown-toggle" data-toggle="dropdown">
  93 + <i class="icon-wrench"></i>
  94 + <span>{{ "Manutenção"|trans }}</span>
  95 + <span class="icon">&nbsp;</span>
  96 + </a>
  97 + <ul>
  98 + <li class="dropdown-submenu" >
  99 + <a href="javascript:void(0)">
  100 + <span>{{ "Cadastros"|trans }}</span>
  101 + <span class="icon">&nbsp;</span>
  102 + </a>
  103 + <ul>
  104 + <li><a href="{{ path('cacic_tiposo_index') }}">{{ "Tipos de SO"|trans }}</a></li>
  105 + <li><a href="{{ path('cacic_sistemaoperacional_index') }}">{{ "Sistemas Operacionais"|trans }}</a></li>
  106 + <li><a href="{{ path('cacic_usbdevice_index') }}">{{ "Dispositivos USB"|trans }}</a></li>
  107 + </ul>
  108 + </li>
  109 + <li class="dropdown-submenu" >
  110 + <a href="javascript:void(0)">
  111 + {{ "Classificaçao de software"|trans }}
  112 + <span class="icon">&nbsp;</span>
  113 + </a>
  114 + <ul>
  115 + <li><a class="round_top" href="{{ path('cacic_software_naoclassificados') }}">{{ "Classificar Software"|trans }}</a></li>
  116 + <li><a href="{{ path('cacic_software_naousados') }}">{{ "Softwares não usados"|trans }}</a></li>
  117 + </ul>
  118 + </li>
72 <li class="dropdown-submenu" > 119 <li class="dropdown-submenu" >
73 <a href="javascript:void(0)"> 120 <a href="javascript:void(0)">
74 {{ "Gerência Aquisições"|trans }} 121 {{ "Gerência Aquisições"|trans }}
75 <span class="icon">&nbsp;</span> 122 <span class="icon">&nbsp;</span>
76 </a> 123 </a>
77 - <ul > 124 + <ul>
  125 + <li><a href="{{ path('cacic_tiposoftware_index') }}">{{ "Tipos Softwares"|trans }}</a></li>
  126 + <li><a href="{{ path('cacic_software_index') }}">{{ "Classificar software"|trans }}</a></li>
78 <li><a href="{{ path('cacic_aquisicao_index') }}">{{ "Aquisições"|trans }}</a></li> 127 <li><a href="{{ path('cacic_aquisicao_index') }}">{{ "Aquisições"|trans }}</a></li>
79 <li><a href="{{ path('cacic_aquisicao_item_index') }}">{{ "Itens adquiridos"|trans }}</a></li> 128 <li><a href="{{ path('cacic_aquisicao_item_index') }}">{{ "Itens adquiridos"|trans }}</a></li>
80 <li><a href="{{ path('cacic_software_estacao_index') }}">{{ "Software por estações"|trans }}</a></li> 129 <li><a href="{{ path('cacic_software_estacao_index') }}">{{ "Software por estações"|trans }}</a></li>
81 <li><a href="{{ path('cacic_tipo_licenca_index') }}">{{ "Tipos de Licença"|trans }}</a></li> 130 <li><a href="{{ path('cacic_tipo_licenca_index') }}">{{ "Tipos de Licença"|trans }}</a></li>
  131 + <li><a href="{{ path('cacic_relatorio_autorizacoes') }}">{{ "Softwares Autorizados"|trans }}</a></li>
  132 + </ul>
  133 + </li>
  134 + <li class="dropdown-submenu" >
  135 + <a href="javascript:void(0)">
  136 + {{ "Forçar Coletas"|trans }}
  137 + <span class="icon">&nbsp;</span>
  138 + </a>
  139 + <ul>
  140 + <li><a href="{{ path('cacic_computador_coletar') }}">{{ "Forçar coleta computador"|trans }}</a></li>
  141 + <li><a href="{{ path('cacic_rede_coletar') }}">{{ "Forçar coleta subrede"|trans }}</a></li>
82 </ul> 142 </ul>
83 </li> 143 </li>
84 - </ul>  
85 - </li>  
86 -  
87 - <li class="subnavbar-open-right" >  
88 - <a href="javascript:void(0);" class="dropdown-toggle" data-toggle="dropdown">  
89 - <i class="icon-wrench"></i>  
90 - <span>{{ "Manutenção"|trans }}</span>  
91 - <span class="icon">&nbsp;</span>  
92 - </a>  
93 - <ul >  
94 - <li><a href="{{ path('cacic_subrede_manutencao') }}">{{ "Atualização de Subrede"|trans }}</a></li>  
95 - <li><a href="{{ path('cacic_subrede_computadores') }}">{{ "Computadores e Subredes"|trans }}</a></li>  
96 - <li><a href="{{ path('cacic_migracao_cacic26') }}">{{ "Importar de 2.6"|trans }}</a></li>  
97 </ul> 144 </ul>
98 </li> 145 </li>
99 146
@@ -108,9 +155,6 @@ @@ -108,9 +155,6 @@
108 <li><a href="{{ path('cacic_computador_consultar') }}">{{ "Consultar"|trans }}</a></li> 155 <li><a href="{{ path('cacic_computador_consultar') }}">{{ "Consultar"|trans }}</a></li>
109 <li><a href="{{ path('cacic_computador_buscar') }}">{{ "Busca avançada"|trans }}</a></li> 156 <li><a href="{{ path('cacic_computador_buscar') }}">{{ "Busca avançada"|trans }}</a></li>
110 <li><a href="{{ path('cacic_computador_versaoagente') }}">{{ "Versões Agentes"|trans }}</a></li> 157 <li><a href="{{ path('cacic_computador_versaoagente') }}">{{ "Versões Agentes"|trans }}</a></li>
111 - <li><a href="{{ path('cacic_computador_coletar') }}">{{ "Forçar coleta computador"|trans }}</a></li>  
112 - <li><a href="{{ path('cacic_rede_coletar') }}">{{ "Forçar coleta subrede"|trans }}</a></li>  
113 -  
114 </ul> 158 </ul>
115 </li> 159 </li>
116 160
@@ -142,11 +186,10 @@ @@ -142,11 +186,10 @@
142 </a> 186 </a>
143 {{ knp_menu_render('CacicRelatorioBundle:Builder:relatorioMenu') }} 187 {{ knp_menu_render('CacicRelatorioBundle:Builder:relatorioMenu') }}
144 </li> 188 </li>
145 - <li><a class="round_top" href="{{ path('cacic_relatorio_usuario') }}">{{ "Usuário Logado"|trans }}</a></li>  
146 - <li><a class="round_top" href="{{ path('cacic_relatorio_autorizacoes') }}">{{ "Autorizações"|trans }}</a></li>  
147 <li><a class="round_top" href="{{ path('cacic_relatorio_faturamento') }}">{{ "Faturamento"|trans }}</a></li> 189 <li><a class="round_top" href="{{ path('cacic_relatorio_faturamento') }}">{{ "Faturamento"|trans }}</a></li>
148 <li><a class="round_top" href="{{ path('cacic_relatorio_inativos') }}">{{ "Sem Coleta"|trans }}</a></li> 190 <li><a class="round_top" href="{{ path('cacic_relatorio_inativos') }}">{{ "Sem Coleta"|trans }}</a></li>
149 <li><a class="round_top" href="{{ path('cacic_relatorio_patrimonio') }}">{{ "Patrimônio"|trans }}</a></li> 191 <li><a class="round_top" href="{{ path('cacic_relatorio_patrimonio') }}">{{ "Patrimônio"|trans }}</a></li>
  192 + <li><a class="round_top" href="{{ path('cacic_ateste') }}">{{ "Relatório para Ateste"|trans }}</a></li>
150 </ul> 193 </ul>
151 </li> 194 </li>
152 195
src/Cacic/WSBundle/Controller/NeoController.php
@@ -381,6 +381,11 @@ class NeoController extends Controller { @@ -381,6 +381,11 @@ class NeoController extends Controller {
381 // Pega rede e SO 381 // Pega rede e SO
382 $rede = $em->getRepository('CacicCommonBundle:Rede')->getDadosRedePreColeta( $ip_computador, $netmask ); 382 $rede = $em->getRepository('CacicCommonBundle:Rede')->getDadosRedePreColeta( $ip_computador, $netmask );
383 $so = $em->getRepository('CacicCommonBundle:So')->createIfNotExist($so_json['nomeOs']); 383 $so = $em->getRepository('CacicCommonBundle:So')->createIfNotExist($so_json['nomeOs']);
  384 + if (array_key_exists('tipo', $so_json)) {
  385 + $tipo_so = $em->getRepository('CacicCommonBundle:TipoSo')->createIfNotExist($so_json['tipo']);
  386 + $so->setTipo($tipo_so);
  387 + $em->persist($so);
  388 + }
384 389
385 // Regra: MAC e SO são únicos e não podem ser nulos 390 // Regra: MAC e SO são únicos e não podem ser nulos
386 // Se SO ou MAC forem vazios, tenta atualizar forçadamente 391 // Se SO ou MAC forem vazios, tenta atualizar forçadamente
src/Cacic/WSBundle/Tests/Controller/NeoControllerTest.php
@@ -27,6 +27,192 @@ class NeoControllerTest extends BaseTestCase @@ -27,6 +27,192 @@ class NeoControllerTest extends BaseTestCase
27 $this->client = static::createClient(); 27 $this->client = static::createClient();
28 $this->container = $this->client->getContainer(); 28 $this->container = $this->client->getContainer();
29 $this->apiKey = $this->container->getParameter('test_api_key'); 29 $this->apiKey = $this->container->getParameter('test_api_key');
  30 + $this->computador = '{
  31 + "computador": {
  32 + "networkDevices": [
  33 + {
  34 + "ipv4": "10.1.0.56",
  35 + "ipv6": "fe80::295b:a8db:d433:ebe%4",
  36 + "mac": "9C:D2:1E:EA:E0:89",
  37 + "netmask_ipv4": "255.255.255.0",
  38 + "netmask_ipv6": "ffff:ffff:ffff:ffff::",
  39 + "nome": "Wi-Fi"
  40 + },
  41 + {
  42 + "ipv4": "192.168.56.1",
  43 + "ipv6": "fe80::19f2:4739:8a9e:45e4%16",
  44 + "mac": "08:00:27:00:14:2B",
  45 + "netmask_ipv4": "255.255.255.0",
  46 + "netmask_ipv6": "ffff:ffff:ffff:ffff::",
  47 + "nome": "VirtualBox Host-Only Network"
  48 + }
  49 + ],
  50 + "operatingSystem": {
  51 + "idOs": 176,
  52 + "nomeOs": "Windows_NT",
  53 + "tipo": "Windows-64-bit"
  54 + },
  55 + "usuario": "Eric Menezes",
  56 + "nmComputador": "Notebook-XPTO",
  57 + "versaoAgente": "2.8.0"
  58 + }
  59 + }';
  60 + $this->sem_mac = '{
  61 + "computador": {
  62 + "networkDevices": [
  63 + {
  64 + "ipv4": "10.1.0.56",
  65 + "ipv6": "fe80::295b:a8db:d433:ebe%4",
  66 + "netmask_ipv4": "255.255.255.0",
  67 + "netmask_ipv6": "ffff:ffff:ffff:ffff::",
  68 + "nome": "Wi-Fi"
  69 + },
  70 + {
  71 + "ipv4": "192.168.56.1",
  72 + "ipv6": "fe80::19f2:4739:8a9e:45e4%16",
  73 + "netmask_ipv4": "255.255.255.0",
  74 + "netmask_ipv6": "ffff:ffff:ffff:ffff::",
  75 + "nome": "VirtualBox Host-Only Network"
  76 + }
  77 + ],
  78 + "operatingSystem": {
  79 + "idOs": 176,
  80 + "nomeOs": "Windows_NT"
  81 + },
  82 + "usuario": "Eric Menezes",
  83 + "nmComputador": "Notebook-XPTO",
  84 + "versaoAgente": "2.8.0"
  85 + }
  86 + }';
  87 + $this->coleta = '{
  88 + "computador": {
  89 + "networkDevices": [
  90 + {
  91 + "ipv4": "10.1.0.56",
  92 + "ipv6": "fe80::295b:a8db:d433:ebe%4",
  93 + "mac": "9C:D2:1E:EA:E0:89",
  94 + "netmask_ipv4": "255.255.255.0",
  95 + "netmask_ipv6": "ffff:ffff:ffff:ffff::",
  96 + "nome": "Wi-Fi"
  97 + },
  98 + {
  99 + "ipv4": "192.168.56.1",
  100 + "ipv6": "fe80::19f2:4739:8a9e:45e4%16",
  101 + "mac": "08:00:27:00:14:2B",
  102 + "netmask_ipv4": "255.255.255.0",
  103 + "netmask_ipv6": "ffff:ffff:ffff:ffff::",
  104 + "nome": "VirtualBox Host-Only Network"
  105 + }
  106 + ],
  107 + "operatingSystem": {
  108 + "idOs": 176,
  109 + "nomeOs": "Windows_NT"
  110 + },
  111 + "usuario": "Eric Menezes",
  112 + "nmComputador": "Notebook-XPTO",
  113 + "versaoAgente": "2.8.0"
  114 + },
  115 + "hardware": {
  116 + "bios": {
  117 + "releaseDate": "11/12/2013",
  118 + "romSize": "4096 kB",
  119 + "runtimeSize": "128 kB",
  120 + "vendor": "Dell Inc.",
  121 + "version": "A07"
  122 + },
  123 + "cpu": {
  124 + "clock": "768000000 Hz",
  125 + "name": "Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz",
  126 + "vendor": "Intel Corp."
  127 + },
  128 + "ethernet_card": {
  129 + "capacity": "100000000 bits/s",
  130 + "description": "Ethernet interface",
  131 + "logicalname": "eth0",
  132 + "product": "RTL8101E/RTL8102E PCI Express Fast Ethernet controller",
  133 + "serial": "78:2b:cb:eb:36:24",
  134 + "vendor": "Realtek Semiconductor Co., Ltd."
  135 + },
  136 + "isNotebook": {
  137 + "value": "true"
  138 + },
  139 + "memory": {
  140 + "size": "8589934592 bytes"
  141 + },
  142 + "motherboard": {
  143 + "assetTag": "Not Specified",
  144 + "manufacturer": "Dell Inc.",
  145 + "onboardCapabilities": [
  146 + "Video"
  147 + ],
  148 + "productName": "0YK7DY",
  149 + "serialNumber": ".CSQKLZ1.BR1081943R0013.",
  150 + "version": "A00"
  151 + },
  152 + "wireless_card": {
  153 + "description": "Wireless interface",
  154 + "firmware": "N/A",
  155 + "logicalname": "wlan0",
  156 + "product": "QCA9565 / AR9565 Wireless Network Adapter",
  157 + "serial": "9c:d2:1e:ea:e0:89",
  158 + "vendor": "Qualcomm Atheros"
  159 + }
  160 + },
  161 + "software": {
  162 + "": {
  163 + "name": ""
  164 + },
  165 + "account-plugin-aim": {
  166 + "description": "Messaging account plugin for AIM",
  167 + "installed_size": "941",
  168 + "name": "account-plugin-aim",
  169 + "url": "http://wiki.gnome.org/Empathy",
  170 + "version": "3.8.6-0ubuntu9"
  171 + },
  172 + "account-plugin-facebook": {
  173 + "description": "GNOME Control Center account plugin for single signon - facebook",
  174 + "installed_size": "65",
  175 + "name": "account-plugin-facebook",
  176 + "url": "https://launchpad.net/account-plugins",
  177 + "version": "0.11+14.04.20140409.1-0ubuntu1"
  178 + },
  179 + "account-plugin-flickr": {
  180 + "description": "GNOME Control Center account plugin for single signon - flickr",
  181 + "installed_size": "64",
  182 + "name": "account-plugin-flickr",
  183 + "url": "https://launchpad.net/account-plugins",
  184 + "version": "0.11+14.04.20140409.1-0ubuntu1"
  185 + },
  186 + "account-plugin-google": {
  187 + "description": "GNOME Control Center account plugin for single signon",
  188 + "installed_size": "66",
  189 + "name": "account-plugin-google",
  190 + "url": "https://launchpad.net/account-plugins",
  191 + "version": "0.11+14.04.20140409.1-0ubuntu1"
  192 + },
  193 + "account-plugin-jabber": {
  194 + "description": "Messaging account plugin for Jabber/XMPP",
  195 + "installed_size": "941",
  196 + "name": "account-plugin-jabber",
  197 + "url": "http://wiki.gnome.org/Empathy",
  198 + "version": "3.8.6-0ubuntu9"
  199 + },
  200 + "account-plugin-salut": {
  201 + "description": "Messaging account plugin for Local XMPP (Salut)",
  202 + "installed_size": "941",
  203 + "name": "account-plugin-salut",
  204 + "url": "http://wiki.gnome.org/Empathy",
  205 + "version": "3.8.6-0ubuntu9"
  206 + },
  207 + "account-plugin-twitter": {
  208 + "description": "GNOME Control Center account plugin for single signon - twitter",
  209 + "installed_size": "63",
  210 + "name": "account-plugin-twitter",
  211 + "url": "https://launchpad.net/account-plugins",
  212 + "version": "0.11+14.04.20140409.1-0ubuntu1"
  213 + }
  214 + }
  215 + }';
30 } 216 }
31 217
32 /** 218 /**
@@ -154,35 +340,7 @@ class NeoControllerTest extends BaseTestCase @@ -154,35 +340,7 @@ class NeoControllerTest extends BaseTestCase
154 'CONTENT_TYPE' => 'application/json', 340 'CONTENT_TYPE' => 'application/json',
155 //'HTTPS' => true 341 //'HTTPS' => true
156 ), 342 ),
157 - '{  
158 - "computador": {  
159 - "networkDevices": [  
160 - {  
161 - "ipv4": "10.1.0.56",  
162 - "ipv6": "fe80::295b:a8db:d433:ebe%4",  
163 - "mac": "9C:D2:1E:EA:E0:89",  
164 - "netmask_ipv4": "255.255.255.0",  
165 - "netmask_ipv6": "ffff:ffff:ffff:ffff::",  
166 - "nome": "Wi-Fi"  
167 - },  
168 - {  
169 - "ipv4": "192.168.56.1",  
170 - "ipv6": "fe80::19f2:4739:8a9e:45e4%16",  
171 - "mac": "08:00:27:00:14:2B",  
172 - "netmask_ipv4": "255.255.255.0",  
173 - "netmask_ipv6": "ffff:ffff:ffff:ffff::",  
174 - "nome": "VirtualBox Host-Only Network"  
175 - }  
176 - ],  
177 - "operatingSystem": {  
178 - "idOs": 176,  
179 - "nomeOs": "Windows_NT"  
180 - },  
181 - "usuario": "Eric Menezes",  
182 - "nmComputador": "Notebook-XPTO",  
183 - "versaoAgente": "2.8.0"  
184 - }  
185 - }' 343 + $this->computador
186 ); 344 );
187 $logger->debug("Dados JSON do computador enviados \n".$this->client->getRequest()->getcontent()); 345 $logger->debug("Dados JSON do computador enviados \n".$this->client->getRequest()->getcontent());
188 346
@@ -208,35 +366,7 @@ class NeoControllerTest extends BaseTestCase @@ -208,35 +366,7 @@ class NeoControllerTest extends BaseTestCase
208 'CONTENT_TYPE' => 'application/json', 366 'CONTENT_TYPE' => 'application/json',
209 //'HTTPS' => true 367 //'HTTPS' => true
210 ), 368 ),
211 - '{  
212 - "computador": {  
213 - "networkDevices": [  
214 - {  
215 - "ipv4": "10.1.0.56",  
216 - "ipv6": "fe80::295b:a8db:d433:ebe%4",  
217 - "mac": "9C:D2:1E:EA:E0:89",  
218 - "netmask_ipv4": "255.255.255.0",  
219 - "netmask_ipv6": "ffff:ffff:ffff:ffff::",  
220 - "nome": "Wi-Fi"  
221 - },  
222 - {  
223 - "ipv4": "192.168.56.1",  
224 - "ipv6": "fe80::19f2:4739:8a9e:45e4%16",  
225 - "mac": "08:00:27:00:14:2B",  
226 - "netmask_ipv4": "255.255.255.0",  
227 - "netmask_ipv6": "ffff:ffff:ffff:ffff::",  
228 - "nome": "VirtualBox Host-Only Network"  
229 - }  
230 - ],  
231 - "operatingSystem": {  
232 - "idOs": 176,  
233 - "nomeOs": "Windows_NT"  
234 - },  
235 - "usuario": "Eric Menezes",  
236 - "nmComputador": "Notebook-XPTO",  
237 - "versaoAgente": "2.8.0"  
238 - }  
239 - }' 369 + $this->computador
240 ); 370 );
241 $logger->debug("Dados JSON do computador enviados \n".$this->client->getRequest()->getcontent()); 371 $logger->debug("Dados JSON do computador enviados \n".$this->client->getRequest()->getcontent());
242 372
@@ -263,33 +393,7 @@ class NeoControllerTest extends BaseTestCase @@ -263,33 +393,7 @@ class NeoControllerTest extends BaseTestCase
263 'CONTENT_TYPE' => 'application/json', 393 'CONTENT_TYPE' => 'application/json',
264 //'HTTPS' => true 394 //'HTTPS' => true
265 ), 395 ),
266 - '{  
267 - "computador": {  
268 - "networkDevices": [  
269 - {  
270 - "ipv4": "10.1.0.56",  
271 - "ipv6": "fe80::295b:a8db:d433:ebe%4",  
272 - "netmask_ipv4": "255.255.255.0",  
273 - "netmask_ipv6": "ffff:ffff:ffff:ffff::",  
274 - "nome": "Wi-Fi"  
275 - },  
276 - {  
277 - "ipv4": "192.168.56.1",  
278 - "ipv6": "fe80::19f2:4739:8a9e:45e4%16",  
279 - "netmask_ipv4": "255.255.255.0",  
280 - "netmask_ipv6": "ffff:ffff:ffff:ffff::",  
281 - "nome": "VirtualBox Host-Only Network"  
282 - }  
283 - ],  
284 - "operatingSystem": {  
285 - "idOs": 176,  
286 - "nomeOs": "Windows_NT"  
287 - },  
288 - "usuario": "Eric Menezes",  
289 - "nmComputador": "Notebook-XPTO",  
290 - "versaoAgente": "2.8.0"  
291 - }  
292 - }' 396 + $this->sem_mac
293 ); 397 );
294 $logger->debug("Dados JSON do computador enviados sem MAC para o getUpdate \n".$this->client->getRequest()->getcontent()); 398 $logger->debug("Dados JSON do computador enviados sem MAC para o getUpdate \n".$this->client->getRequest()->getcontent());
295 399
@@ -317,35 +421,7 @@ class NeoControllerTest extends BaseTestCase @@ -317,35 +421,7 @@ class NeoControllerTest extends BaseTestCase
317 'CONTENT_TYPE' => 'application/json', 421 'CONTENT_TYPE' => 'application/json',
318 //'HTTPS' => true 422 //'HTTPS' => true
319 ), 423 ),
320 - '{  
321 - "computador": {  
322 - "networkDevices": [  
323 - {  
324 - "ipv4": "10.1.0.56",  
325 - "ipv6": "fe80::295b:a8db:d433:ebe%4",  
326 - "mac": "9C:D2:1E:EA:E0:89",  
327 - "netmask_ipv4": "255.255.255.0",  
328 - "netmask_ipv6": "ffff:ffff:ffff:ffff::",  
329 - "nome": "Wi-Fi"  
330 - },  
331 - {  
332 - "ipv4": "192.168.56.1",  
333 - "ipv6": "fe80::19f2:4739:8a9e:45e4%16",  
334 - "mac": "08:00:27:00:14:2B",  
335 - "netmask_ipv4": "255.255.255.0",  
336 - "netmask_ipv6": "ffff:ffff:ffff:ffff::",  
337 - "nome": "VirtualBox Host-Only Network"  
338 - }  
339 - ],  
340 - "operatingSystem": {  
341 - "idOs": 176,  
342 - "nomeOs": "Windows_NT"  
343 - },  
344 - "usuario": "Eric Menezes",  
345 - "nmComputador": "Notebook-XPTO",  
346 - "versaoAgente": "2.8.0"  
347 - }  
348 - }' 424 + $this->computador
349 ); 425 );
350 $logger->debug("Dados JSON do computador enviados antes do getUpdate \n".$this->client->getRequest()->getcontent()); 426 $logger->debug("Dados JSON do computador enviados antes do getUpdate \n".$this->client->getRequest()->getcontent());
351 427
@@ -365,33 +441,7 @@ class NeoControllerTest extends BaseTestCase @@ -365,33 +441,7 @@ class NeoControllerTest extends BaseTestCase
365 'CONTENT_TYPE' => 'application/json', 441 'CONTENT_TYPE' => 'application/json',
366 //'HTTPS' => true 442 //'HTTPS' => true
367 ), 443 ),
368 - '{  
369 - "computador": {  
370 - "networkDevices": [  
371 - {  
372 - "ipv4": "10.1.0.56",  
373 - "ipv6": "fe80::295b:a8db:d433:ebe%4",  
374 - "netmask_ipv4": "255.255.255.0",  
375 - "netmask_ipv6": "ffff:ffff:ffff:ffff::",  
376 - "nome": "Wi-Fi"  
377 - },  
378 - {  
379 - "ipv4": "192.168.56.1",  
380 - "ipv6": "fe80::19f2:4739:8a9e:45e4%16",  
381 - "netmask_ipv4": "255.255.255.0",  
382 - "netmask_ipv6": "ffff:ffff:ffff:ffff::",  
383 - "nome": "VirtualBox Host-Only Network"  
384 - }  
385 - ],  
386 - "operatingSystem": {  
387 - "idOs": 176,  
388 - "nomeOs": "Windows_NT"  
389 - },  
390 - "usuario": "Eric Menezes",  
391 - "nmComputador": "Notebook-XPTO",  
392 - "versaoAgente": "2.8.0"  
393 - }  
394 - }' 444 + $this->sem_mac
395 ); 445 );
396 $logger->debug("Dados JSON do computador enviados sem MAC para o getUpdate \n".$this->client->getRequest()->getcontent()); 446 $logger->debug("Dados JSON do computador enviados sem MAC para o getUpdate \n".$this->client->getRequest()->getcontent());
397 447
@@ -418,135 +468,7 @@ class NeoControllerTest extends BaseTestCase @@ -418,135 +468,7 @@ class NeoControllerTest extends BaseTestCase
418 'CONTENT_TYPE' => 'application/json', 468 'CONTENT_TYPE' => 'application/json',
419 //'HTTPS' => true 469 //'HTTPS' => true
420 ), 470 ),
421 - '{  
422 - "computador": {  
423 - "networkDevices": [  
424 - {  
425 - "ipv4": "10.1.0.56",  
426 - "ipv6": "fe80::295b:a8db:d433:ebe%4",  
427 - "mac": "9C:D2:1E:EA:E0:89",  
428 - "netmask_ipv4": "255.255.255.0",  
429 - "netmask_ipv6": "ffff:ffff:ffff:ffff::",  
430 - "nome": "Wi-Fi"  
431 - },  
432 - {  
433 - "ipv4": "192.168.56.1",  
434 - "ipv6": "fe80::19f2:4739:8a9e:45e4%16",  
435 - "mac": "08:00:27:00:14:2B",  
436 - "netmask_ipv4": "255.255.255.0",  
437 - "netmask_ipv6": "ffff:ffff:ffff:ffff::",  
438 - "nome": "VirtualBox Host-Only Network"  
439 - }  
440 - ],  
441 - "operatingSystem": {  
442 - "idOs": 176,  
443 - "nomeOs": "Windows_NT"  
444 - },  
445 - "usuario": "Eric Menezes",  
446 - "nmComputador": "Notebook-XPTO",  
447 - "versaoAgente": "2.8.0"  
448 - },  
449 - "hardware": {  
450 - "bios": {  
451 - "releaseDate": "11/12/2013",  
452 - "romSize": "4096 kB",  
453 - "runtimeSize": "128 kB",  
454 - "vendor": "Dell Inc.",  
455 - "version": "A07"  
456 - },  
457 - "cpu": {  
458 - "clock": "768000000 Hz",  
459 - "name": "Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz",  
460 - "vendor": "Intel Corp."  
461 - },  
462 - "ethernet_card": {  
463 - "capacity": "100000000 bits/s",  
464 - "description": "Ethernet interface",  
465 - "logicalname": "eth0",  
466 - "product": "RTL8101E/RTL8102E PCI Express Fast Ethernet controller",  
467 - "serial": "78:2b:cb:eb:36:24",  
468 - "vendor": "Realtek Semiconductor Co., Ltd."  
469 - },  
470 - "isNotebook": {  
471 - "value": "true"  
472 - },  
473 - "memory": {  
474 - "size": "8589934592 bytes"  
475 - },  
476 - "motherboard": {  
477 - "assetTag": "Not Specified",  
478 - "manufacturer": "Dell Inc.",  
479 - "onboardCapabilities": [  
480 - "Video"  
481 - ],  
482 - "productName": "0YK7DY",  
483 - "serialNumber": ".CSQKLZ1.BR1081943R0013.",  
484 - "version": "A00"  
485 - },  
486 - "wireless_card": {  
487 - "description": "Wireless interface",  
488 - "firmware": "N/A",  
489 - "logicalname": "wlan0",  
490 - "product": "QCA9565 / AR9565 Wireless Network Adapter",  
491 - "serial": "9c:d2:1e:ea:e0:89",  
492 - "vendor": "Qualcomm Atheros"  
493 - }  
494 - },  
495 - "software": {  
496 - "": {  
497 - "name": ""  
498 - },  
499 - "account-plugin-aim": {  
500 - "description": "Messaging account plugin for AIM",  
501 - "installed_size": "941",  
502 - "name": "account-plugin-aim",  
503 - "url": "http://wiki.gnome.org/Empathy",  
504 - "version": "3.8.6-0ubuntu9"  
505 - },  
506 - "account-plugin-facebook": {  
507 - "description": "GNOME Control Center account plugin for single signon - facebook",  
508 - "installed_size": "65",  
509 - "name": "account-plugin-facebook",  
510 - "url": "https://launchpad.net/account-plugins",  
511 - "version": "0.11+14.04.20140409.1-0ubuntu1"  
512 - },  
513 - "account-plugin-flickr": {  
514 - "description": "GNOME Control Center account plugin for single signon - flickr",  
515 - "installed_size": "64",  
516 - "name": "account-plugin-flickr",  
517 - "url": "https://launchpad.net/account-plugins",  
518 - "version": "0.11+14.04.20140409.1-0ubuntu1"  
519 - },  
520 - "account-plugin-google": {  
521 - "description": "GNOME Control Center account plugin for single signon",  
522 - "installed_size": "66",  
523 - "name": "account-plugin-google",  
524 - "url": "https://launchpad.net/account-plugins",  
525 - "version": "0.11+14.04.20140409.1-0ubuntu1"  
526 - },  
527 - "account-plugin-jabber": {  
528 - "description": "Messaging account plugin for Jabber/XMPP",  
529 - "installed_size": "941",  
530 - "name": "account-plugin-jabber",  
531 - "url": "http://wiki.gnome.org/Empathy",  
532 - "version": "3.8.6-0ubuntu9"  
533 - },  
534 - "account-plugin-salut": {  
535 - "description": "Messaging account plugin for Local XMPP (Salut)",  
536 - "installed_size": "941",  
537 - "name": "account-plugin-salut",  
538 - "url": "http://wiki.gnome.org/Empathy",  
539 - "version": "3.8.6-0ubuntu9"  
540 - },  
541 - "account-plugin-twitter": {  
542 - "description": "GNOME Control Center account plugin for single signon - twitter",  
543 - "installed_size": "63",  
544 - "name": "account-plugin-twitter",  
545 - "url": "https://launchpad.net/account-plugins",  
546 - "version": "0.11+14.04.20140409.1-0ubuntu1"  
547 - }  
548 - }  
549 - }' 471 + $this->coleta
550 ); 472 );
551 $logger->debug("Dados JSON do computador enviados para a coleta: \n".$this->client->getRequest()->getcontent()); 473 $logger->debug("Dados JSON do computador enviados para a coleta: \n".$this->client->getRequest()->getcontent());
552 474