AMBARI-22058 Dashboard heatmaps tab loading stuck (dsen)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/7af3152c Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/7af3152c Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/7af3152c Branch: refs/heads/branch-feature-AMBARI-20859 Commit: 7af3152c5baf440bfc6d48f783e7133b41d434f9 Parents: fe7a8e4 Author: Dmytro Sen <d...@apache.org> Authored: Tue Sep 26 17:13:55 2017 +0300 Committer: Dmytro Sen <d...@apache.org> Committed: Tue Sep 26 17:13:55 2017 +0300 ---------------------------------------------------------------------- .../internal/ServiceResourceProvider.java | 8 ++ .../AmbariManagementControllerTest.java | 11 +++ .../resources/stacks/OTHER/1.0/widgets.json | 95 ++++++++++++++++++++ 3 files changed, 114 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/7af3152c/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceResourceProvider.java index e65693b..76a4547 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceResourceProvider.java @@ -423,6 +423,8 @@ public class ServiceResourceProvider extends AbstractControllerResourceProvider // do all validation checks validateCreateRequests(requests, clusters); + Set<Cluster> clustersSetFromRequests = new HashSet<>(); + for (ServiceRequest request : requests) { Cluster cluster = clusters.getCluster(request.getClusterName()); @@ -478,6 +480,12 @@ public class ServiceResourceProvider extends AbstractControllerResourceProvider // Initialize service widgets getManagementController().initializeWidgetsAndLayouts(cluster, s); + clustersSetFromRequests.add(cluster); + } + + // Create cluster widgets and layouts + for (Cluster cluster : clustersSetFromRequests) { + getManagementController().initializeWidgetsAndLayouts(cluster, null); } } http://git-wip-us.apache.org/repos/asf/ambari/blob/7af3152c/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java index 07ba786..b370829 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java @@ -10423,6 +10423,17 @@ public class AmbariManagementControllerTest { Assert.assertEquals("FILES_LOCAL", layoutUserWidgetEntities.get(2).getWidget().getWidgetName()); Assert.assertEquals("UPDATED_BLOCKED_TIME", layoutUserWidgetEntities.get(3).getWidget().getWidgetName()); Assert.assertEquals("HBASE_SUMMARY", layoutUserWidgetEntities.get(0).getWidget().getDefaultSectionName()); + + candidateLayoutEntity = null; + for (WidgetLayoutEntity entity : layoutEntities) { + if (entity.getLayoutName().equals("default_system_heatmap")) { + candidateLayoutEntity = entity; + break; + } + } + Assert.assertNotNull(candidateLayoutEntity); + Assert.assertEquals("ambari", candidateVisibleEntity.getAuthor()); + Assert.assertEquals("CLUSTER", candidateVisibleEntity.getScope()); } // this is a temporary measure as a result of moving updateHostComponents from AmbariManagementController http://git-wip-us.apache.org/repos/asf/ambari/blob/7af3152c/ambari-server/src/test/resources/stacks/OTHER/1.0/widgets.json ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/resources/stacks/OTHER/1.0/widgets.json b/ambari-server/src/test/resources/stacks/OTHER/1.0/widgets.json new file mode 100644 index 0000000..3176354 --- /dev/null +++ b/ambari-server/src/test/resources/stacks/OTHER/1.0/widgets.json @@ -0,0 +1,95 @@ +{ + "layouts": [ + { + "layout_name": "default_system_heatmap", + "display_name": "Heatmaps", + "section_name": "SYSTEM_HEATMAPS", + "widgetLayoutInfo": [ + { + "widget_name": "Host Disk Space Used %", + "description": "", + "widget_type": "HEATMAP", + "is_visible": true, + "metrics": [ + { + "name": "disk_free", + "metric_path": "metrics/disk/disk_free", + "service_name": "STACK" + }, + { + "name": "disk_total", + "metric_path": "metrics/disk/disk_total", + "service_name": "STACK" + } + ], + "values": [ + { + "name": "Host Disk Space Used %", + "value": "${((disk_total-disk_free)/disk_total)*100}" + } + ], + "properties": { + "display_unit": "%", + "max_limit": "100" + } + }, + { + "widget_name": "Host Memory Used %", + "description": "", + "widget_type": "HEATMAP", + "is_visible": false, + "metrics": [ + { + "name": "mem_total", + "metric_path": "metrics/memory/mem_total", + "service_name": "STACK" + }, + { + "name": "mem_free", + "metric_path": "metrics/memory/mem_free", + "service_name": "STACK" + }, + { + "name": "mem_cached", + "metric_path": "metrics/memory/mem_cached", + "service_name": "STACK" + } + ], + "values": [ + { + "name": "Host Memory Used %", + "value": "${((mem_total-mem_free-mem_cached)/mem_total)*100}" + } + ], + "properties": { + "display_unit": "%", + "max_limit": "100" + } + }, + { + "widget_name": "Host CPU Wait IO %", + "description": "", + "widget_type": "HEATMAP", + "is_visible": false, + "metrics": [ + { + "name": "cpu_wio", + "metric_path": "metrics/cpu/cpu_wio", + "service_name": "STACK" + } + ], + "values": [ + { + "name": "Host Memory Used %", + "value": "${cpu_wio*100}" + } + ], + "properties": { + "display_unit": "%", + "max_limit": "100" + } + } + ] + } + ] +}