Copilot commented on code in PR #4659:
URL: https://github.com/apache/solr/pull/4659#discussion_r3689725950


##########
solr/webapp/web/js/angular/controllers/cores.js:
##########
@@ -67,20 +70,26 @@ solrAdminApp.controller('CoreAdminController',
         } else if (false) { //@todo detect whether core exists
           $scope.AddMessage = "A core with that name already exists";
         } else {

Review Comment:
   This branch assigns to `$scope.AddMessage`, but the cores UI template 
displays `addMessage` (lowercase). As a result, the "core already exists" error 
won’t be shown.



##########
solr/webapp/web/js/angular/controllers/segments.js:
##########
@@ -17,41 +17,47 @@
 
 var MB_FACTOR = 1024*1024;
 
-solrAdminApp.controller('SegmentsController', function($scope, $routeParams, 
$interval, Segments, Constants) {
+solrAdminApp.controller('SegmentsController', function($scope, $routeParams, 
$interval, $timeout, SegmentsV2, Constants) {
     $scope.resetMenu("segments", Constants.IS_CORE_PAGE);
 
     $scope.refresh = function() {
 
-        Segments.get({core: $routeParams.core}, function(data) {
-            var segments = data.segments;
+        SegmentsV2.getSegmentData($routeParams.core, {}, function(error, data, 
response) {
+            if (error) {
+              console.error('Failed to fetch segment data:', error);
+              return;
+            }
+            $timeout(function() {
+              var segments = data.segments;
 
-            var segmentSizeInBytesMax = getLargestSegmentSize(segments);
-            $scope.segmentMB = Math.floor(segmentSizeInBytesMax / MB_FACTOR);
-            $scope.xaxis = calculateXAxis(segmentSizeInBytesMax);
+              var segmentSizeInBytesMax = getLargestSegmentSize(segments);
+              $scope.segmentMB = Math.floor(segmentSizeInBytesMax / MB_FACTOR);
+              $scope.xaxis = calculateXAxis(segmentSizeInBytesMax);
 
-            $scope.documentCount = 0;
-            $scope.deletionCount = 0;
+              $scope.documentCount = 0;
+              $scope.deletionCount = 0;
 
-            $scope.segments = [];
-            for (var name in segments) {
-                var segment = segments[name];
+              $scope.segments = [];
+              for (var name in segments) {
+                  var segment = segments[name];
 
-                var segmentSizeInBytesLog = Math.log(segment.sizeInBytes);
-                var segmentSizeInBytesMaxLog = Math.log(segmentSizeInBytesMax);
+                  var segmentSizeInBytesLog = Math.log(segment.sizeInBytes);
+                  var segmentSizeInBytesMaxLog = 
Math.log(segmentSizeInBytesMax);
 
-                segment.totalSize = Math.floor((segmentSizeInBytesLog / 
segmentSizeInBytesMaxLog ) * 100);
+                  segment.totalSize = Math.floor((segmentSizeInBytesLog / 
segmentSizeInBytesMaxLog ) * 100);
 
-                segment.deletedDocSize = Math.floor((segment.delCount / 
segment.size) * segment.totalSize);
-                if (segment.delDocSize <= 0.001) delete segment.deletedDocSize;
+                  segment.deletedDocSize = Math.floor((segment.delCount / 
segment.size) * segment.totalSize);
+                  if (segment.delDocSize <= 0.001) delete 
segment.deletedDocSize;

Review Comment:
   `segment.delDocSize` is not defined; this check will never be true (and can 
yield NaN comparisons). It looks like this should check the newly computed 
`segment.deletedDocSize` instead.



##########
solr/webapp/web/js/angular/controllers/cloud.js:
##########
@@ -353,43 +353,50 @@ var nodesSubController = function($scope, Collections, 
System, Metrics, MetricsE
      Fetch system info for all selected nodes
      Pick the data we want to display and add it to the node-centric data 
structure
       */
-    System.get({"nodes": liveNodesToShow.join(',')}, function (systemResponse) 
{
-      for (var node in systemResponse) {
-        if (node in nodes) {
-          var s = systemResponse[node];
-          nodes[node]['system'] = s;
-          var memTotal = s.system.totalPhysicalMemorySize;
-          var memFree = s.system.freePhysicalMemorySize;
-          var memPercentage = Math.floor((memTotal - memFree) / memTotal * 
100);
-          nodes[node]['memUsedPct'] = memPercentage;
-          nodes[node]['memUsedPctStyle'] = styleForPct(memPercentage);
-          nodes[node]['memTotal'] = bytesToSize(memTotal);
-          nodes[node]['memFree'] = bytesToSize(memFree);
-          nodes[node]['memUsed'] = bytesToSize(memTotal - memFree);
-
-          var heapMax = s.jvm.memory.raw.max;
-          var heapTotal = s.jvm.memory.raw.total;
-          var heapFree = s.jvm.memory.raw.free;
-          var heapPercentage = Math.floor((heapTotal - heapFree) / heapMax * 
100);
-          nodes[node]['heapUsed'] = bytesToSize(heapTotal - heapFree);
-          nodes[node]['heapUsedPct'] = heapPercentage;
-          nodes[node]['heapUsedPctStyle'] = styleForPct(heapPercentage);
-          nodes[node]['heapMax'] = bytesToSize(heapMax);
-          nodes[node]['heapTotal'] = bytesToSize(heapTotal);
-          nodes[node]['heapFree'] = bytesToSize(heapFree);
-
-          var jvmUptime = s.jvm.jmx.upTimeMS / 1000; // Seconds
-          nodes[node]['jvmUptime'] = secondsForHumans(jvmUptime);
-          nodes[node]['jvmUptimeSec'] = jvmUptime;
-
-          nodes[node]['uptime'] = (s.system.uptime || "unknown").replace(/.*up 
(.*?,.*?),.*/, "$1");
-          nodes[node]['loadAvg'] = Math.round(s.system.systemLoadAverage * 
100) / 100;
-          nodes[node]['cpuPct'] = Math.ceil(s.system.processCpuLoad * 100);
-          nodes[node]['cpuPctStyle'] = 
styleForPct(Math.ceil(s.system.processCpuLoad));
-          nodes[node]['maxFileDescriptorCount'] = 
s.system.maxFileDescriptorCount;
-          nodes[node]['openFileDescriptorCount'] = 
s.system.openFileDescriptorCount;
-        }
+    SystemV2.getNodeSystemInfo({"nodes": liveNodesToShow.join(',')}, function 
(error, data, response) {
+      if (error) {
+        console.error('Failed to fetch node system info:', error);
+        return;
       }
+      $timeout(function() {
+        var systemResponse = response.body;
+        for (var node in systemResponse) {

Review Comment:
   `getNodeSystemInfo` callbacks elsewhere in the admin UI use the parsed 
`data` argument. Using `response.body` here is inconsistent and will break if 
the client doesn’t populate `response.body` (or if it’s a raw string). Prefer 
using `data`, with a fallback if needed.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to