Revision 8b28e91d
[#1574] Prise en charge des équipements réseaux de glpi
Change-Id: Icfc0865276cb7efb4e53e1978c77497b6fcb7f05
Reviewed-on: https://vigilo-dev.si.c-s.fr/review/2331
Reviewed-by: Francois POIROTTE <francois.poirotte@c-s.fr>
Tested-by: Francois POIROTTE <francois.poirotte@c-s.fr>
hook.php | ||
---|---|---|
32 | 32 |
} |
33 | 33 |
} |
34 | 34 |
|
35 |
public function add($computer) |
|
35 |
public function addComputer($computer)
|
|
36 | 36 |
{ |
37 | 37 |
if ($computer->getField("is_template")==0) { |
38 | 38 |
global $DB; |
... | ... | |
57 | 57 |
if (!file_exists($confdir)) { |
58 | 58 |
mkdir($confdir, 0770, true); |
59 | 59 |
} |
60 |
$acc = ""; |
|
61 |
foreach ($dirs as $dir) { |
|
62 |
$acc .= DIRECTORY_SEPARATOR . $dir; |
|
63 |
chgrp($acc, "vigiconf"); |
|
60 |
|
|
61 |
$res = file_put_contents($file, $host, LOCK_EX); |
|
62 |
if ($res !== false) { |
|
63 |
chgrp($file, "vigiconf"); |
|
64 |
chmod($file, 0660); |
|
65 |
} |
|
66 |
} |
|
67 |
} |
|
68 |
|
|
69 |
public function addNetworkEquipment($networkequipment) |
|
70 |
{ |
|
71 |
if ($networkequipment->getField("is_template")==0) { |
|
72 |
global $DB; |
|
73 |
|
|
74 |
$host = new VigiloNetworkEquipment($networkequipment); |
|
75 |
$dirs = array($this->confdir, "hosts", "managed"); |
|
76 |
$confdir = implode(DIRECTORY_SEPARATOR, $dirs); |
|
77 |
$file = $confdir . DIRECTORY_SEPARATOR . $host->getName() . ".xml"; |
|
78 |
|
|
79 |
if (!file_exists($confdir)) { |
|
80 |
mkdir($confdir, 0770, true); |
|
64 | 81 |
} |
65 | 82 |
|
66 | 83 |
$res = file_put_contents($file, $host, LOCK_EX); |
... | ... | |
82 | 99 |
if (isset($computer->oldvalues["name"])) { |
83 | 100 |
$this->unmonitor($computer->oldvalues["name"]); |
84 | 101 |
} |
85 |
$this->add($computer); |
|
102 |
} |
|
103 |
|
|
104 |
public function updateComputer($computer) |
|
105 |
{ |
|
106 |
$this->update($computer); |
|
107 |
$this->addComputer($computer); |
|
108 |
} |
|
109 |
|
|
110 |
public function updateNetworkEquipment($networkEquipment) |
|
111 |
{ |
|
112 |
$this->update($networkEquipment); |
|
113 |
$this->addNetworkEquipment($networkEquipment); |
|
86 | 114 |
} |
87 | 115 |
|
88 | 116 |
public function unmonitor($host) |
... | ... | |
96 | 124 |
global $DB; |
97 | 125 |
$computer=new Computer(); |
98 | 126 |
$computer->getFromDB($computer_software_version->getField("computers_id")); |
99 |
$this->update($computer); |
|
127 |
$this->updateComputer($computer);
|
|
100 | 128 |
} |
101 | 129 |
|
102 | 130 |
public function manageSoftwares($software) |
... | ... | |
113 | 141 |
if ($idComputer['computers_id'] != -1) { |
114 | 142 |
$computer=new Computer(); |
115 | 143 |
$computer->getFromDB($idComputer['computers_id']); |
116 |
$this->update($computer); |
|
144 |
$this->updateComputer($computer);
|
|
117 | 145 |
} |
118 | 146 |
} |
119 | 147 |
} |
... | ... | |
126 | 154 |
$id=$disk->getField('computers_id'); |
127 | 155 |
$computer=new Computer(); |
128 | 156 |
$computer->getFromDB($id); |
129 |
$this->update($computer); |
|
157 |
$this->updateComputer($computer);
|
|
130 | 158 |
} |
131 | 159 |
|
132 | 160 |
public function manageAddresses($address) |
... | ... | |
135 | 163 |
$id=$address->getField('mainitems_id'); |
136 | 164 |
$comp=new Computer(); |
137 | 165 |
$comp->getFromDB($id); |
138 |
$this->update($comp); |
|
166 |
$this->updateComputer($comp);
|
|
139 | 167 |
} |
140 | 168 |
|
141 | 169 |
public function manageNetworks($network) |
142 | 170 |
{ |
143 | 171 |
global $DB; |
144 | 172 |
$id=$network->getField('items_id'); |
145 |
$comp=new Computer(); |
|
146 |
$comp->getFromDB($id); |
|
147 |
$this->update($comp); |
|
173 |
$itemtype = $network->getField('itemtype'); |
|
174 |
if ($itemtype === 'Computer') { |
|
175 |
$comp=new Computer(); |
|
176 |
$comp->getFromDB($id); |
|
177 |
$this->updateComputer($comp); |
|
178 |
} |
|
179 |
else if ($itemtype === 'NetworkEquipment') { |
|
180 |
$ne=new NetworkEquipment(); |
|
181 |
$ne->getFromDB($id); |
|
182 |
$this->updateNetworkEquipment($ne); |
|
183 |
} |
|
148 | 184 |
} |
149 | 185 |
|
150 | 186 |
public function plugin_vigilo_getAddSearchOptions($itemtype) |
Also available in: Unified diff