Commit | Line | Data |
---|---|---|
e1b9ade4 P |
1 | <?php |
2 | //Options for GLPI 0.71 and newer : need slave db to access the report | |
3 | $USEDBREPLICATE=1; | |
4 | $DBCONNECTION_REQUIRED=0; | |
5 | ||
6 | include ("../../inc/includes.php"); | |
1135f035 | 7 | include_once ("inc/functions.php"); |
e1b9ade4 P |
8 | |
9 | Session::checkRight("reports", "r"); | |
10 | Session::checkRight("computer", "r"); | |
11 | ||
1135f035 | 12 | $report_title = "Progression des mises à niveau Debian"; |
118fab7c | 13 | |
e1b9ade4 | 14 | #Html::header(Report::getTypeName(2), $_SERVER['PHP_SELF'], "utils", "report"); |
118fab7c | 15 | Html::header($report_title, $_SERVER['PHP_SELF'], "utils", "report"); |
e1b9ade4 P |
16 | Report::title(); |
17 | ||
1135f035 | 18 | echo "\n<p class='big b' style='margin: 5px; text-align: center'><span id='report_date' style='float: right; margin: 2px 20px; font-size: 75%; font-style: italic'>(".date('Y-m-d H:i:s')." UTC)</span>$report_title</p>"; |
e1b9ade4 P |
19 | |
20 | $computer = new Computer(); | |
21 | ||
22 | $itemtype = 'Computer'; | |
23 | $table_item = getTableForItemType($itemtype); | |
24 | ||
e1b9ade4 P |
25 | // echo "\n<span class='big b' style='color: red;'>ATTENTION : ce rapport est en cours de refonte, merci de ne pas tenir compte des données affichées ci-dessous.</span><br><br>"; |
26 | ||
27 | //echo "\n<span class='big b'>Ordinateurs par implantation</span><br><br>"; | |
28 | echo "<table class='tab_cadrehov'>"; | |
29 | echo "<tr class='tab_bg_1'><th rowspan='2' colspan='2'>Implantation</th>"; | |
1135f035 P |
30 | echo "<th colspan='5'>Serveurs physiques</th>"; |
31 | echo "<th colspan='5'>Serveurs virtuels</th>"; | |
e1b9ade4 P |
32 | echo "</tr>"; |
33 | echo "<tr class='tab_bg_1'>"; | |
1135f035 P |
34 | echo "<th>Autres ".svg_circle('blue', 3)."</th><th>Debian 6 ".svg_circle('red', 3)."</th><th>Debian 7 ".svg_circle('yellow', 3)."</th><th>Debian 8 ".svg_circle('green', 3)."</th><th>Progression</th>"; |
35 | echo "<th>Autres ".svg_circle('blue', 3)."</th><th>Debian 6 ".svg_circle('red', 3)."</th><th>Debian 7 ".svg_circle('yellow', 3)."</th><th>Debian 8 ".svg_circle('green', 3)."</th><th>Progression</th>"; | |
e1b9ade4 P |
36 | echo "</tr>\n"; |
37 | ||
1135f035 P |
38 | $grand_serveurs_jessie = 0; $grand_serveurs_wheezy = 0; $grand_serveurs_squeeze = 0; $grand_serveurs_autres = 0; |
39 | $grand_virtuels_jessie = 0; $grand_virtuels_wheezy = 0; $grand_virtuels_squeeze = 0; $grand_virtuels_autres = 0; | |
e1b9ade4 P |
40 | // récupération de la liste des régions |
41 | $query = "SELECT id FROM glpi_entities WHERE (id=0 OR entities_id=0)"; | |
42 | $query .= " ".getEntitiesRestrictRequest("AND", "glpi_entities")." ORDER BY name"; | |
43 | $region_result = $DB->query($query); | |
44 | // parcours des régions | |
45 | while ($region_data = $DB->fetch_assoc($region_result)) { | |
46 | $region_id = $region_data['id']; | |
47 | if ($region_id != 0) { | |
48 | $region_name = getTreeLeafValueName("glpi_entities", $region_id); | |
49 | } else { | |
50 | $region_name = "AUF"; | |
51 | } | |
52 | $table_lines = Array(); | |
1135f035 P |
53 | $region_serveurs_jessie = 0; $region_serveurs_wheezy = 0; $region_serveurs_squeeze = 0; $region_serveurs_autres = 0; |
54 | $region_virtuels_jessie = 0; $region_virtuels_wheezy = 0; $region_virtuels_squeeze = 0; $region_virtuels_autres = 0; | |
e1b9ade4 P |
55 | |
56 | // récupération de la liste des implantations | |
57 | $query = "SELECT id,level FROM glpi_entities WHERE "; | |
58 | if ($region_id != 0) { | |
59 | $query .= getRealQueryForTreeItem("glpi_entities", $region_id, "id"); | |
60 | } else { | |
61 | $query .= "id=0"; | |
62 | } | |
63 | $query .= " ".getEntitiesRestrictRequest("AND", "glpi_entities")." ORDER BY name"; | |
64 | $implant_result = $DB->query($query); | |
65 | // parcours des implantations | |
66 | while ($implant_data = $DB->fetch_assoc($implant_result)) { | |
67 | $implant_id = $implant_data['id']; | |
68 | if ($implant_id != 0) { | |
69 | $implant_name = getTreeLeafValueName("glpi_entities", $implant_id); | |
70 | } else { | |
71 | $implant_name = "<i>(non classé)</i>"; | |
72 | } | |
73 | ||
74 | // récupération de la liste des systèmes de l'implantation | |
1135f035 P |
75 | $nb_serveurs_jessie = 0; $nb_serveurs_wheezy = 0; $nb_serveurs_squeeze = 0; $nb_serveurs_autres = 0; |
76 | $nb_virtuels_jessie = 0; $nb_virtuels_wheezy = 0; $nb_virtuels_squeeze = 0; $nb_virtuels_autres = 0; | |
e1b9ade4 P |
77 | $query = "SELECT s.completename AS sname, o.name AS oname, |
78 | ac.est_virtuel AS virtuel, | |
79 | acc.name AS categorie, acu.name AS utilisation | |
80 | FROM `$table_item` c | |
81 | LEFT JOIN glpi_states s ON (c.states_id = s.id) | |
82 | LEFT JOIN glpi_plugin_auf_computers ac ON (c.id = ac.id) | |
83 | LEFT JOIN glpi_plugin_auf_categories acc ON (ac.auf_categories_id = acc.id) | |
84 | LEFT JOIN glpi_plugin_auf_utilisations acu ON (ac.auf_utilisations_id = acu.id) | |
85 | LEFT JOIN glpi_operatingsystems o ON (c.operatingsystems_id = o.id) | |
86 | WHERE c.is_deleted = '0' AND c.is_template = '0' | |
87 | AND o.name LIKE 'Debian %' | |
88 | AND c.entities_id = '".$implant_id."'"; | |
89 | $result = $DB->query($query); | |
90 | while ($data=$DB->fetch_assoc($result)) { | |
91 | // on ne compte pas les sorties d'inventaire | |
92 | if (preg_match("/^sortie/i", $data['sname'])) { | |
93 | continue; | |
94 | } | |
95 | // serveurs virtuels | |
96 | if ($data['virtuel']) { | |
1135f035 P |
97 | if (preg_match("/^Debian( GNU\/Linux)? 8/", $data['oname'])) { |
98 | $nb_virtuels_jessie++; | |
99 | } elseif (preg_match("/^Debian( GNU\/Linux)? 7/", $data['oname'])) { | |
e1b9ade4 P |
100 | $nb_virtuels_wheezy++; |
101 | } elseif (preg_match("/^Debian( GNU\/Linux)? 6/", $data['oname'])) { | |
102 | $nb_virtuels_squeeze++; | |
103 | } else { | |
104 | $nb_virtuels_autres++; | |
105 | } | |
106 | } | |
107 | // serveurs physiques | |
108 | elseif (preg_match("/^infra/i", $data['categorie'])) { | |
109 | if (preg_match("/^production/i", $data['utilisation']) && | |
110 | !preg_match("/panne/i", $data['sname'])) { | |
1135f035 P |
111 | if (preg_match("/^Debian( GNU\/Linux)? 8/", $data['oname'])) { |
112 | $nb_serveurs_jessie++; | |
113 | } elseif (preg_match("/^Debian( GNU\/Linux)? 7/", $data['oname'])) { | |
e1b9ade4 P |
114 | $nb_serveurs_wheezy++; |
115 | } elseif (preg_match("/^Debian( GNU\/Linux)? 6/", $data['oname'])) { | |
116 | $nb_serveurs_squeeze++; | |
117 | } else { | |
118 | $nb_serveurs_autres++; | |
119 | } | |
120 | } | |
121 | } | |
122 | // autres | |
123 | else { | |
124 | // on ne compte pas les postes clients, que les serveurs | |
125 | } | |
126 | } // systèmes dans l'implantation | |
127 | ||
1135f035 P |
128 | $total_serveurs = $nb_serveurs_jessie + $nb_serveurs_wheezy + $nb_serveurs_squeeze + $nb_serveurs_autres; |
129 | $total_virtuels = $nb_virtuels_jessie + $nb_virtuels_wheezy + $nb_virtuels_squeeze + $nb_virtuels_autres; | |
e1b9ade4 P |
130 | if (($total_serveurs + $total_virtuels) > 0) { |
131 | $spaces = ""; | |
132 | for ($i=1;$i<$implant_data['level'];$i++) { $spaces .= " "; } | |
133 | $line = "<tr><td class='tab_bg_1'>$spaces$implant_name</td>"; | |
134 | $line .= "<td class='numeric'>$nb_serveurs_autres</td>"; | |
135 | $line .= "<td class='numeric'>$nb_serveurs_squeeze</td>"; | |
136 | $line .= "<td class='numeric'>$nb_serveurs_wheezy</td>"; | |
1135f035 P |
137 | $line .= "<td class='numeric'>$nb_serveurs_jessie</td>"; |
138 | $line .= "<td class='numeric tab_bg_2'>".progression_html(Array($nb_serveurs_autres, $nb_serveurs_squeeze, $nb_serveurs_wheezy, $nb_serveurs_jessie), $nb_serveurs_wheezy + $nb_serveurs_jessie)."</td>"; | |
e1b9ade4 P |
139 | $line .= "<td class='numeric'>$nb_virtuels_autres</td>"; |
140 | $line .= "<td class='numeric'>$nb_virtuels_squeeze</td>"; | |
141 | $line .= "<td class='numeric'>$nb_virtuels_wheezy</td>"; | |
1135f035 P |
142 | $line .= "<td class='numeric'>$nb_virtuels_jessie</td>"; |
143 | $line .= "<td class='numeric tab_bg_2'>".progression_html(Array($nb_virtuels_autres, $nb_virtuels_squeeze, $nb_virtuels_wheezy, $nb_virtuels_jessie), $nb_virtuels_wheezy + $nb_virtuels_jessie)."</td>"; | |
e1b9ade4 P |
144 | $line .= "</tr>\n"; |
145 | $table_lines[] = $line; | |
146 | } | |
147 | // total régional | |
148 | $region_serveurs_autres += $nb_serveurs_autres; | |
149 | $region_serveurs_squeeze += $nb_serveurs_squeeze; | |
150 | $region_serveurs_wheezy += $nb_serveurs_wheezy; | |
1135f035 | 151 | $region_serveurs_jessie += $nb_serveurs_jessie; |
e1b9ade4 P |
152 | $region_virtuels_autres += $nb_virtuels_autres; |
153 | $region_virtuels_squeeze += $nb_virtuels_squeeze; | |
154 | $region_virtuels_wheezy += $nb_virtuels_wheezy; | |
1135f035 | 155 | $region_virtuels_jessie += $nb_virtuels_jessie; |
e1b9ade4 P |
156 | #$table_lines[] = "<tr><td>".$implant_name."</td></tr>"; |
157 | } // fin des implantations de la région | |
158 | ||
1135f035 P |
159 | $total_serveurs = $region_serveurs_jessie + $region_serveurs_wheezy + $region_serveurs_squeeze + $region_serveurs_autres; |
160 | $total_virtuels = $region_virtuels_jessie + $region_virtuels_wheezy + $region_virtuels_squeeze + $region_virtuels_autres; | |
e1b9ade4 P |
161 | if (($total_serveurs + $total_virtuels) > 0) { |
162 | $line = "<tr class='tab_bg_1 b'><td>Sous-total</td>"; | |
163 | $line .= "<td class='numeric'>$region_serveurs_autres</td>"; | |
164 | $line .= "<td class='numeric'>$region_serveurs_squeeze</td>"; | |
165 | $line .= "<td class='numeric'>$region_serveurs_wheezy</td>"; | |
1135f035 P |
166 | $line .= "<td class='numeric'>$region_serveurs_jessie</td>"; |
167 | $line .= "<td class='numeric tab_bg_1'>".progression_html(Array($region_serveurs_autres, $region_serveurs_squeeze, $region_serveurs_wheezy, $region_serveurs_jessie), $region_serveurs_wheezy + $region_serveurs_jessie)."</td>"; | |
e1b9ade4 P |
168 | $line .= "<td class='numeric'>$region_virtuels_autres</td>"; |
169 | $line .= "<td class='numeric'>$region_virtuels_squeeze</td>"; | |
170 | $line .= "<td class='numeric'>$region_virtuels_wheezy</td>"; | |
1135f035 P |
171 | $line .= "<td class='numeric'>$region_virtuels_jessie</td>"; |
172 | $line .= "<td class='numeric tab_bg_1'>".progression_html(Array($region_virtuels_autres, $region_virtuels_squeeze, $region_virtuels_wheezy, $region_virtuels_jessie), $region_virtuels_wheezy + $region_virtuels_jessie)."</td>"; | |
e1b9ade4 P |
173 | $line .= "</tr>\n"; |
174 | $table_lines[] = $line; | |
175 | } | |
176 | ||
177 | # TODO: revoir ce pie-chart | |
178 | $region_name = svg_pie_chart(Array( | |
179 | $region_serveurs_autres + $region_virtuels_autres, | |
180 | $region_serveurs_squeeze + $region_virtuels_squeeze, | |
181 | $region_serveurs_wheezy + $region_virtuels_wheezy, | |
1135f035 | 182 | $region_serveurs_jessie + $region_virtuels_jessie, |
e1b9ade4 P |
183 | ), 16) . $region_name; |
184 | $table_lines[0] = str_replace("<tr>", "<tr><td class='tab_bg_1 b' rowspan='".count($table_lines)."'>$region_name</td>", $table_lines[0]); | |
185 | if ($region_id != 0) { | |
1135f035 | 186 | echo "<tr><th colspan='12'></th></tr>\n"; |
e1b9ade4 P |
187 | } |
188 | echo implode("\n", $table_lines); | |
189 | ||
190 | // total général | |
191 | $grand_serveurs_autres += $region_serveurs_autres; | |
192 | $grand_serveurs_squeeze += $region_serveurs_squeeze; | |
193 | $grand_serveurs_wheezy += $region_serveurs_wheezy; | |
1135f035 | 194 | $grand_serveurs_jessie += $region_serveurs_jessie; |
e1b9ade4 P |
195 | $grand_virtuels_autres += $region_virtuels_autres; |
196 | $grand_virtuels_squeeze += $region_virtuels_squeeze; | |
197 | $grand_virtuels_wheezy += $region_virtuels_wheezy; | |
1135f035 | 198 | $grand_virtuels_jessie += $region_virtuels_jessie; |
e1b9ade4 P |
199 | } // fin des régions |
200 | ||
201 | #echo "<tr class='tab_bg_1'><td colspan='8'> </td></tr>"; | |
202 | ||
e1b9ade4 P |
203 | $line = "<tr class='tab_bg_1'><td class='b' colspan='2'>"; |
204 | $line .= svg_pie_chart(Array( | |
205 | $grand_serveurs_autres + $grand_virtuels_autres, | |
206 | $grand_serveurs_squeeze + $grand_virtuels_squeeze, | |
207 | $grand_serveurs_wheezy + $grand_virtuels_wheezy, | |
1135f035 | 208 | $grand_serveurs_jessie + $grand_virtuels_jessie, |
e1b9ade4 P |
209 | ), 16); |
210 | $line .= "TOTAL GÉNÉRAL</td>"; | |
211 | $line .= "<td class='numeric b'>$grand_serveurs_autres</td>"; | |
212 | $line .= "<td class='numeric b'>$grand_serveurs_squeeze</td>"; | |
213 | $line .= "<td class='numeric b'>$grand_serveurs_wheezy</td>"; | |
1135f035 P |
214 | $line .= "<td class='numeric b'>$grand_serveurs_jessie</td>"; |
215 | $line .= "<td class='numeric tab_bg_1'>".progression_html(Array($grand_serveurs_autres, $grand_serveurs_squeeze, $grand_serveurs_wheezy, $grand_serveurs_jessie), $grand_serveurs_wheezy + $grand_serveurs_jessie)."</td>"; | |
e1b9ade4 P |
216 | $line .= "<td class='numeric b'>$grand_virtuels_autres</td>"; |
217 | $line .= "<td class='numeric b'>$grand_virtuels_squeeze</td>"; | |
218 | $line .= "<td class='numeric b'>$grand_virtuels_wheezy</td>"; | |
1135f035 P |
219 | $line .= "<td class='numeric b'>$grand_virtuels_jessie</td>"; |
220 | $line .= "<td class='numeric tab_bg_1'>".progression_html(Array($grand_virtuels_autres, $grand_virtuels_squeeze, $grand_virtuels_wheezy, $grand_virtuels_jessie), $grand_virtuels_wheezy + $grand_virtuels_jessie)."</td>"; | |
e1b9ade4 | 221 | $line .= "</tr>"; |
1135f035 | 222 | echo "<tr><th colspan='12'></th></tr>\n"; |
e1b9ade4 P |
223 | echo $line; |
224 | ||
225 | echo "</table>"; | |
226 | ||
227 | echo "<div style='margin: 5px; text-align: center;'><p><strong>Remarques :</strong></p><ul>"; | |
228 | echo "<li>Ce rapport ne considère que les machines déclarées en production et qui n'ont pas un statut de panne.</li>"; | |
229 | echo "<li>Ce rapport ne considère que les machines dans la catégorie infrastructure, pas les postes internes ou publics.</li>"; | |
230 | echo "<li>Ce rapport considère à la fois les machines physiques et les machines virtuelles.</li>"; | |
231 | echo "<li>Ce rapport ne considère que les machines sous Debian, aucun autre système.</li>"; | |
1135f035 P |
232 | echo "<li>La colonne « Autres » consiste en des systèmes Debian d'une version autre que 8, 7 ou 6.</li>"; |
233 | echo "<li>La valeur de progression considère à la fois les versions 7 et 8.</li>"; | |
234 | echo "<li><i>Note : la mise à niveau vers Debian 8 devrait être faite dans la foulée de celle vers Debian 7.</i></li>"; | |
e1b9ade4 P |
235 | echo "</ul></div>"; |
236 | ||
237 | Html::footer(); | |
238 | ?> |