LoadCollectDefClassData.php
2.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<?php
namespace Cacic\CommonBundle\DataFixtures\ORM;
use Doctrine\Common\DataFixtures\AbstractFixture;
use Doctrine\Common\DataFixtures\FixtureInterface;
use Doctrine\Common\DataFixtures\OrderedFixtureInterface;
use Doctrine\Common\Persistence\ObjectManager;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Cacic\CommonBundle\Entity\CollectDefClass;
class LoadCollectDefClassData extends AbstractFixture implements FixtureInterface, ContainerAwareInterface, OrderedFixtureInterface
{
/*
* Array de ações e classes WMI associadas às ações
* FIXME: É necessário fazer um mapeamento real e implementar uma chamada WMI para cada item da coleta
*
*/
private $acoes = array(
//array('id_acao'=>'col_anvi','classes'=> array('Software')),
//array('id_acao'=>'col_comp','classes'=> array('Software','OperatingSystem','ComputerSystem','Network')),
array('id_acao'=>'col_comp','classes'=> array('OperatingSystem','ComputerSystem','Network')),
//array('id_acao'=>'col_env_not_optional','classes'=> array('OperatingSystem','ComputerSystem','Network')),
array('id_acao'=>'col_hard','classes'=> array(
'Keyboard',
'PointingDevice',
'PhysicalMedia',
'BaseBoard',
'BIOS',
'MemoryDevice',
'PhysicalMemory',
'Processor',
'Printer',
'DesktopMonitor',
'SystemEnclosure',
'DiskDrive'
)),
//array('id_acao'=>'col_moni','classes'=> array('ComputerSystem','Software', 'OperatingSystem')),
array('id_acao'=>'col_patr','classes'=> array('Patrimonio')),
array('id_acao'=>'col_soft','classes'=> array('Software')),
array('id_acao'=>'col_soft_not_optional','classes'=> array('Software')),
//array('id_acao'=>'srcacic','classes'=> array('ComputerSystem'))
);
private $container;
public function setContainer(ContainerInterface $container = null)
{
$this->container = $container;
}
/*
* Carrega dados das classes WMI que serão utilizadas nas coletas do Gerente.
*/
public function load(ObjectManager $manager)
{
foreach ( $this->acoes as $a )
{
// Primeiro armazena o objeto de ação
$acao = $this->getReference($a['id_acao']);
foreach ($a['classes'] as $acao_classe)
{
// Agora instancia o objeto que será inserido
$collect = new CollectDefClass();
$collect->setIdAcao($acao);
// Agora recupero a classe que será mapeada a essa ação
$collect->setIdClass($this->getReference($acao_classe));
// O objeto está pronto para ser persistido
$manager->persist($collect);
}
}
// COMMIT
$manager->flush();
}
public function getOrder()
{
return 7;
}
}