+ Worst Failover scenario available memory : ".($clmem - $vmmem). " / " .$clmem. " GB";
+ $pcent = round(($clmem - $vmmem)/$clmem*100);
+ $pcent_restant = 100 - $pcent;
+ if($pcent <= 5){
+ $color = "bg-danger"; $border = "red";
+ }else{
+ if($pcent <= 10){
+ $color = "bg-warning"; $border = "yellow";
+ }else{
+ $color = "bg-success"; $border = "green";
+ }
+ }
+ echo "
+
+ ";
+ $nbvm = Invoke_Infra("select count(*) as nbvm, sum(memory) as vmmem from cmdb_vms where owner ='".$cluster['node']."' and decomtime is null");
+ echo '
'.$cluster['node']." - ".$nbvm[0]['nbvm']." VMs ".$cluster['ts']."
";
+ #Memory
+ echo "
";
+ echo "
";
+ echo "Free Memory : ".($cluster['node_ram'] - 32 - $nbvm[0]['vmmem']). " / " .($cluster['node_ram'] - 32). " GB";
+ $pcent = round(($cluster['node_ram'] - 32 - $nbvm[0]['vmmem'])/($cluster['node_ram'] - 32)*100);
+ $pcent_restant = 100 - $pcent;
+ if($pcent <= 5){
+ $color = "bg-danger";
+ }else{
+ if($pcent <= 10){
+ $color = "bg-warning";
+ }else{
+ $color = "bg-success";
+ }
+ }
+ $progress_bar_height = '25px'; // Hauteur de la barre
+ $marker_overlap = 5; // Dépassement souhaité en px (haut et bas)
+ $marker_height = (int)$progress_bar_height + (2 * $marker_overlap); // Hauteur totale du marqueur
+ $marker_top = -$marker_overlap; // Position top du marqueur
+ echo "
";
+ echo "
+
";
+ echo "
" ;
+ echo "
";
+
+ #Storage
+ echo "
";
+ foreach(explode("|",$cluster['csvs']) as $csv){
+ if(strpos($csv,";") != false){
+ echo "
";
+ echo "" . explode(";",$csv)[0];
+ $total = explode(";",$csv)[1]; $used = explode(";",$csv)[2]; $free = $total-$used ;
+ echo " Free : ".$free."/" .$total. " GB";
+ echo "
";
+ echo "
";
+ $pcent = round($free/$total*100);
+ $pcent_restant = 100 - $pcent;
+ if($pcent <= 10){
+ $color = "bg-danger";
+ }else{
+ if($pcent <= 20){
+ $color = "bg-warning";
+ }else{
+ $color = "bg-success";
+ }
+ }
+ echo "
+
";
+ echo "
";
+ }else{echo "
";}
+ }
+ echo "
";
+ echo "
";
+
+ #VMs
+ $vms = Invoke_Infra("select * from cmdb_vms where owner ='".$cluster['node']."' and decomtime is null order by name");
+ foreach($vms as $vm){
+ echo "
";
+ echo "
";
+ $state = ' ';
+ if($vm['State'] == "Running"){$state = ' ';}
+ if($vm['State'] == "Off" || $vm['State'] == "Stopping"){$state = ' ';}
+ if($vm['State'] == "Paused"){$state = ' ';}
+ if(strpos($vm['Name'],'WS') === 0){
+ echo $state." ".substr($vm['Name'],0,10)."";
+ }else{
+ echo $state." ".$vm['Name']."";
+ }
+ echo "
";
+
+ echo "
";
+ echo ''.$vm['Memory'].'GB / '.$vm['CPU'].' CPU ';
+ if($vm['WWPNs'] != ""){
+ echo 'LUN(s) ';
+ }
+ #echo "
";
+
+ #echo "
";
+ if($vm['IsClustered'] != "True"){
+ echo 'Unclustered ';
+ }else{
+ if($vm['Owner'] != $vm['PreferredOwner']){
+ echo 'Wrong Owner ';
+ }
+ }
+ echo "
";
+
+ echo "
";
+ echo "
";
+
+ echo "
";
+ }
+ echo "
";
+ echo "