Project

General

Profile

Revision 8b28e91d

ID8b28e91dbb2975f743d3648d0391ceb3102bb96e
Parent 79397eb3
Child 18eae138

Added by Romain Chollet about 7 years ago

[#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 <>
Tested-by: Francois POIROTTE <>

View differences:

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