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]