";
echo "Implantation | ";
echo "Serveurs physiques | ";
echo "Serveurs virtuels | ";
echo "
";
echo "";
echo "Autres ".svg_circle('blue', 3)." | Debian 6 ".svg_circle('red', 3)." | Debian 7 ".svg_circle('yellow', 3)." | Debian 8 ".svg_circle('green', 3)." | Progression | ";
echo "Autres ".svg_circle('blue', 3)." | Debian 6 ".svg_circle('red', 3)." | Debian 7 ".svg_circle('yellow', 3)." | Debian 8 ".svg_circle('green', 3)." | Progression | ";
echo "
\n";
$grand_serveurs_jessie = 0; $grand_serveurs_wheezy = 0; $grand_serveurs_squeeze = 0; $grand_serveurs_autres = 0;
$grand_virtuels_jessie = 0; $grand_virtuels_wheezy = 0; $grand_virtuels_squeeze = 0; $grand_virtuels_autres = 0;
// récupération de la liste des régions
$query = "SELECT id FROM glpi_entities WHERE (id=0 OR entities_id=0)";
$query .= " ".getEntitiesRestrictRequest("AND", "glpi_entities")." ORDER BY name";
$region_result = $DB->query($query);
// parcours des régions
while ($region_data = $DB->fetch_assoc($region_result)) {
$region_id = $region_data['id'];
if ($region_id != 0) {
$region_name = getTreeLeafValueName("glpi_entities", $region_id);
} else {
$region_name = "AUF";
}
$table_lines = Array();
$region_serveurs_jessie = 0; $region_serveurs_wheezy = 0; $region_serveurs_squeeze = 0; $region_serveurs_autres = 0;
$region_virtuels_jessie = 0; $region_virtuels_wheezy = 0; $region_virtuels_squeeze = 0; $region_virtuels_autres = 0;
// récupération de la liste des implantations
$query = "SELECT id,level FROM glpi_entities WHERE ";
if ($region_id != 0) {
$query .= getRealQueryForTreeItem("glpi_entities", $region_id, "id");
} else {
$query .= "id=0";
}
$query .= " ".getEntitiesRestrictRequest("AND", "glpi_entities")." ORDER BY name";
$implant_result = $DB->query($query);
// parcours des implantations
while ($implant_data = $DB->fetch_assoc($implant_result)) {
$implant_id = $implant_data['id'];
if ($implant_id != 0) {
$implant_name = getTreeLeafValueName("glpi_entities", $implant_id);
} else {
$implant_name = "(non classé)";
}
// récupération de la liste des systèmes de l'implantation
$nb_serveurs_jessie = 0; $nb_serveurs_wheezy = 0; $nb_serveurs_squeeze = 0; $nb_serveurs_autres = 0;
$nb_virtuels_jessie = 0; $nb_virtuels_wheezy = 0; $nb_virtuels_squeeze = 0; $nb_virtuels_autres = 0;
$query = "SELECT s.completename AS sname, o.name AS oname,
ac.est_virtuel AS virtuel,
acc.name AS categorie, acu.name AS utilisation
FROM `$table_item` c
LEFT JOIN glpi_states s ON (c.states_id = s.id)
LEFT JOIN glpi_plugin_auf_computers ac ON (c.id = ac.id)
LEFT JOIN glpi_plugin_auf_categories acc ON (ac.auf_categories_id = acc.id)
LEFT JOIN glpi_plugin_auf_utilisations acu ON (ac.auf_utilisations_id = acu.id)
LEFT JOIN glpi_operatingsystems o ON (c.operatingsystems_id = o.id)
WHERE c.is_deleted = '0' AND c.is_template = '0'
AND o.name LIKE 'Debian %'
AND c.entities_id = '".$implant_id."'";
$result = $DB->query($query);
while ($data=$DB->fetch_assoc($result)) {
// on ne compte pas les sorties d'inventaire
if (preg_match("/^sortie/i", $data['sname'])) {
continue;
}
// serveurs virtuels
if ($data['virtuel']) {
if (preg_match("/^Debian( GNU\/Linux)? 8/", $data['oname'])) {
$nb_virtuels_jessie++;
} elseif (preg_match("/^Debian( GNU\/Linux)? 7/", $data['oname'])) {
$nb_virtuels_wheezy++;
} elseif (preg_match("/^Debian( GNU\/Linux)? 6/", $data['oname'])) {
$nb_virtuels_squeeze++;
} else {
$nb_virtuels_autres++;
}
}
// serveurs physiques
elseif (preg_match("/^infra/i", $data['categorie'])) {
if (preg_match("/^production/i", $data['utilisation']) &&
!preg_match("/panne/i", $data['sname'])) {
if (preg_match("/^Debian( GNU\/Linux)? 8/", $data['oname'])) {
$nb_serveurs_jessie++;
} elseif (preg_match("/^Debian( GNU\/Linux)? 7/", $data['oname'])) {
$nb_serveurs_wheezy++;
} elseif (preg_match("/^Debian( GNU\/Linux)? 6/", $data['oname'])) {
$nb_serveurs_squeeze++;
} else {
$nb_serveurs_autres++;
}
}
}
// autres
else {
// on ne compte pas les postes clients, que les serveurs
}
} // systèmes dans l'implantation
$total_serveurs = $nb_serveurs_jessie + $nb_serveurs_wheezy + $nb_serveurs_squeeze + $nb_serveurs_autres;
$total_virtuels = $nb_virtuels_jessie + $nb_virtuels_wheezy + $nb_virtuels_squeeze + $nb_virtuels_autres;
if (($total_serveurs + $total_virtuels) > 0) {
$spaces = "";
for ($i=1;$i<$implant_data['level'];$i++) { $spaces .= " "; }
$line = "$spaces$implant_name | ";
$line .= "$nb_serveurs_autres | ";
$line .= "$nb_serveurs_squeeze | ";
$line .= "$nb_serveurs_wheezy | ";
$line .= "$nb_serveurs_jessie | ";
$line .= "".progression_html(Array($nb_serveurs_autres, $nb_serveurs_squeeze, $nb_serveurs_wheezy, $nb_serveurs_jessie), $nb_serveurs_wheezy + $nb_serveurs_jessie)." | ";
$line .= "$nb_virtuels_autres | ";
$line .= "$nb_virtuels_squeeze | ";
$line .= "$nb_virtuels_wheezy | ";
$line .= "$nb_virtuels_jessie | ";
$line .= "".progression_html(Array($nb_virtuels_autres, $nb_virtuels_squeeze, $nb_virtuels_wheezy, $nb_virtuels_jessie), $nb_virtuels_wheezy + $nb_virtuels_jessie)." | ";
$line .= "
\n";
$table_lines[] = $line;
}
// total régional
$region_serveurs_autres += $nb_serveurs_autres;
$region_serveurs_squeeze += $nb_serveurs_squeeze;
$region_serveurs_wheezy += $nb_serveurs_wheezy;
$region_serveurs_jessie += $nb_serveurs_jessie;
$region_virtuels_autres += $nb_virtuels_autres;
$region_virtuels_squeeze += $nb_virtuels_squeeze;
$region_virtuels_wheezy += $nb_virtuels_wheezy;
$region_virtuels_jessie += $nb_virtuels_jessie;
#$table_lines[] = "".$implant_name." |
";
} // fin des implantations de la région
$total_serveurs = $region_serveurs_jessie + $region_serveurs_wheezy + $region_serveurs_squeeze + $region_serveurs_autres;
$total_virtuels = $region_virtuels_jessie + $region_virtuels_wheezy + $region_virtuels_squeeze + $region_virtuels_autres;
if (($total_serveurs + $total_virtuels) > 0) {
$line = "Sous-total | ";
$line .= "$region_serveurs_autres | ";
$line .= "$region_serveurs_squeeze | ";
$line .= "$region_serveurs_wheezy | ";
$line .= "$region_serveurs_jessie | ";
$line .= "".progression_html(Array($region_serveurs_autres, $region_serveurs_squeeze, $region_serveurs_wheezy, $region_serveurs_jessie), $region_serveurs_wheezy + $region_serveurs_jessie)." | ";
$line .= "$region_virtuels_autres | ";
$line .= "$region_virtuels_squeeze | ";
$line .= "$region_virtuels_wheezy | ";
$line .= "$region_virtuels_jessie | ";
$line .= "".progression_html(Array($region_virtuels_autres, $region_virtuels_squeeze, $region_virtuels_wheezy, $region_virtuels_jessie), $region_virtuels_wheezy + $region_virtuels_jessie)." | ";
$line .= "
\n";
$table_lines[] = $line;
}
# TODO: revoir ce pie-chart
$region_name = svg_pie_chart(Array(
$region_serveurs_autres + $region_virtuels_autres,
$region_serveurs_squeeze + $region_virtuels_squeeze,
$region_serveurs_wheezy + $region_virtuels_wheezy,
$region_serveurs_jessie + $region_virtuels_jessie,
), 16) . $region_name;
$table_lines[0] = str_replace("", "
$region_name | ", $table_lines[0]);
if ($region_id != 0) {
echo "
|
\n";
}
echo implode("\n", $table_lines);
// total général
$grand_serveurs_autres += $region_serveurs_autres;
$grand_serveurs_squeeze += $region_serveurs_squeeze;
$grand_serveurs_wheezy += $region_serveurs_wheezy;
$grand_serveurs_jessie += $region_serveurs_jessie;
$grand_virtuels_autres += $region_virtuels_autres;
$grand_virtuels_squeeze += $region_virtuels_squeeze;
$grand_virtuels_wheezy += $region_virtuels_wheezy;
$grand_virtuels_jessie += $region_virtuels_jessie;
} // fin des régions
#echo " |
";
$line = "";
$line .= svg_pie_chart(Array(
$grand_serveurs_autres + $grand_virtuels_autres,
$grand_serveurs_squeeze + $grand_virtuels_squeeze,
$grand_serveurs_wheezy + $grand_virtuels_wheezy,
$grand_serveurs_jessie + $grand_virtuels_jessie,
), 16);
$line .= "TOTAL GÉNÉRAL | ";
$line .= "$grand_serveurs_autres | ";
$line .= "$grand_serveurs_squeeze | ";
$line .= "$grand_serveurs_wheezy | ";
$line .= "$grand_serveurs_jessie | ";
$line .= "".progression_html(Array($grand_serveurs_autres, $grand_serveurs_squeeze, $grand_serveurs_wheezy, $grand_serveurs_jessie), $grand_serveurs_wheezy + $grand_serveurs_jessie)." | ";
$line .= "$grand_virtuels_autres | ";
$line .= "$grand_virtuels_squeeze | ";
$line .= "$grand_virtuels_wheezy | ";
$line .= "$grand_virtuels_jessie | ";
$line .= "".progression_html(Array($grand_virtuels_autres, $grand_virtuels_squeeze, $grand_virtuels_wheezy, $grand_virtuels_jessie), $grand_virtuels_wheezy + $grand_virtuels_jessie)." | ";
$line .= "
";
echo " |
\n";
echo $line;
echo "
";
echo "