From d002d1b0a73bf63219274023356738d2c60be296 Mon Sep 17 00:00:00 2001 From: e025532 Date: Thu, 22 May 2025 10:26:59 +0200 Subject: [PATCH] . --- Hyper-V/cluster-detail.php | 29 +++-- Hyper-V/cluster-detail2.php | 209 ++++++++++++++++++++++++++++++++++++ 2 files changed, 231 insertions(+), 7 deletions(-) create mode 100644 Hyper-V/cluster-detail2.php diff --git a/Hyper-V/cluster-detail.php b/Hyper-V/cluster-detail.php index 7a33666..dec91e1 100644 --- a/Hyper-V/cluster-detail.php +++ b/Hyper-V/cluster-detail.php @@ -94,15 +94,30 @@ $color = "bg-success"; } } + $progress_bar_height = '25px'; + $marker_overlap = 5; + $marker_height = (int)$progress_bar_height + (2 * $marker_overlap); + $marker_top = -$marker_overlap; echo ""; - echo "
"; - echo " -
-
+ echo " +
+
+
-
-
"; - echo "
"; +
+ +
+ +
"; echo "" ; echo "
"; diff --git a/Hyper-V/cluster-detail2.php b/Hyper-V/cluster-detail2.php new file mode 100644 index 0000000..5d39716 --- /dev/null +++ b/Hyper-V/cluster-detail2.php @@ -0,0 +1,209 @@ + + + + + + + + + + Web Infra Reports + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +
+ +
+ +

+ + + +
+

+ 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 " +
+
+
+
"; + 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 "
"; + } + echo "
"; + ?> +
+ +
+
+ + + + + \ No newline at end of file