Repository: ambari Updated Branches: refs/heads/trunk 95088d579 -> aa41e110a
AMBARI-9041. Fix initial sorting on the Alerts page (onechiporenko) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/aa41e110 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/aa41e110 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/aa41e110 Branch: refs/heads/trunk Commit: aa41e110aff1e74c4d374954dd1fe9efc69d55f9 Parents: 95088d5 Author: Oleg Nechiporenko <[email protected]> Authored: Thu Jan 8 15:25:00 2015 +0200 Committer: Oleg Nechiporenko <[email protected]> Committed: Thu Jan 8 15:25:00 2015 +0200 ---------------------------------------------------------------------- .../app/assets/data/alerts/alert_summary.json | 1098 ++++++++++-------- .../main/alert_definitions_controller.js | 4 +- .../mappers/alert_definition_summary_mapper.js | 4 + ambari-web/app/models/alert_definition.js | 35 +- ambari-web/app/views/common/sort_view.js | 23 +- ambari-web/test/models/alert_definition_test.js | 40 + ambari-web/test/views/common/sort_view_test.js | 38 - 7 files changed, 694 insertions(+), 548 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/aa41e110/ambari-web/app/assets/data/alerts/alert_summary.json ---------------------------------------------------------------------- diff --git a/ambari-web/app/assets/data/alerts/alert_summary.json b/ambari-web/app/assets/data/alerts/alert_summary.json index 83b467c..e76e04c 100644 --- a/ambari-web/app/assets/data/alerts/alert_summary.json +++ b/ambari-web/app/assets/data/alerts/alert_summary.json @@ -1,707 +1,835 @@ { - "href" : "http://host:8080/api/v1/clusters/tdk/alerts?format=groupedSummary", - "alerts_summary_grouped" : [ + "href": "http://host:8080/api/v1/clusters/tdk/alerts?format=groupedSummary", + "alerts_summary_grouped": [ { - "definition_id" : 10, - "definition_name" : "ganglia_monitor_mapreduce_history_server", - "summary" : { - "OK" : { - "count" : 1, - "original_timestamp" : 1416397285093 + "definition_id": 10, + "definition_name": "ganglia_monitor_mapreduce_history_server", + "summary": { + "OK": { + "count": 1, + "maintenance_count": 0, + "original_timestamp": 1416397285093 }, - "WARNING" : { - "count" : 0, - "original_timestamp" : 0 + "WARNING": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "CRITICAL" : { - "count" : 0, - "original_timestamp" : 0 + "CRITICAL": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "UNKNOWN" : { - "count" : 0, - "original_timestamp" : 0 + "UNKNOWN": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 } } }, { - "definition_id" : 1, - "definition_name" : "yarn_resourcemanager_webui", - "summary" : { - "OK" : { - "count" : 1, - "original_timestamp" : 1416397471466 + "definition_id": 1, + "definition_name": "yarn_resourcemanager_webui", + "summary": { + "OK": { + "count": 1, + "maintenance_count": 0, + "original_timestamp": 1416397471466 }, - "WARNING" : { - "count" : 0, - "original_timestamp" : 0 + "WARNING": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "CRITICAL" : { - "count" : 0, - "original_timestamp" : 0 + "CRITICAL": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "UNKNOWN" : { - "count" : 0, - "original_timestamp" : 0 + "UNKNOWN": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 } } }, { - "definition_id" : 19, - "definition_name" : "mapreduce_history_server_process", - "summary" : { - "OK" : { - "count" : 1, - "original_timestamp" : 1416397465241 + "definition_id": 19, + "definition_name": "mapreduce_history_server_process", + "summary": { + "OK": { + "count": 1, + "maintenance_count": 0, + "original_timestamp": 1416397465241 }, - "WARNING" : { - "count" : 0, - "original_timestamp" : 0 + "WARNING": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "CRITICAL" : { - "count" : 0, - "original_timestamp" : 0 + "CRITICAL": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "UNKNOWN" : { - "count" : 0, - "original_timestamp" : 0 + "UNKNOWN": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 } } }, { - "definition_id" : 26, - "definition_name" : "namenode_rpc_latency", - "summary" : { - "OK" : { - "count" : 1, - "original_timestamp" : 1416397285482 + "definition_id": 26, + "definition_name": "namenode_rpc_latency", + "summary": { + "OK": { + "count": 1, + "maintenance_count": 0, + "original_timestamp": 1416397285482 }, - "WARNING" : { - "count" : 0, - "original_timestamp" : 0 + "WARNING": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "CRITICAL" : { - "count" : 0, - "original_timestamp" : 0 + "CRITICAL": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "UNKNOWN" : { - "count" : 0, - "original_timestamp" : 0 + "UNKNOWN": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 } } }, { - "definition_id" : 2, - "definition_name" : "namenode_webui", - "summary" : { - "OK" : { - "count" : 1, - "original_timestamp" : 1416397285443 + "definition_id": 2, + "definition_name": "namenode_webui", + "summary": { + "OK": { + "count": 1, + "maintenance_count": 0, + "original_timestamp": 1416397285443 }, - "WARNING" : { - "count" : 0, - "original_timestamp" : 0 + "WARNING": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "CRITICAL" : { - "count" : 0, - "original_timestamp" : 0 + "CRITICAL": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "UNKNOWN" : { - "count" : 0, - "original_timestamp" : 0 + "UNKNOWN": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 } } }, { - "definition_id" : 15, - "definition_name" : "yarn_app_timeline_server_webui", - "summary" : { - "OK" : { - "count" : 1, - "original_timestamp" : 1416397350207 + "definition_id": 15, + "definition_name": "yarn_app_timeline_server_webui", + "summary": { + "OK": { + "count": 1, + "maintenance_count": 0, + "original_timestamp": 1416397350207 }, - "WARNING" : { - "count" : 0, - "original_timestamp" : 0 + "WARNING": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "CRITICAL" : { - "count" : 0, - "original_timestamp" : 0 + "CRITICAL": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "UNKNOWN" : { - "count" : 0, - "original_timestamp" : 0 + "UNKNOWN": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 } } }, { - "definition_id" : 5, - "definition_name" : "namenode_last_checkpoint", - "summary" : { - "OK" : { - "count" : 1, - "original_timestamp" : 1416397285530 + "definition_id": 5, + "definition_name": "namenode_last_checkpoint", + "summary": { + "OK": { + "count": 1, + "maintenance_count": 0, + "original_timestamp": 1416397285530 }, - "WARNING" : { - "count" : 0, - "original_timestamp" : 0 + "WARNING": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "CRITICAL" : { - "count" : 0, - "original_timestamp" : 0 + "CRITICAL": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "UNKNOWN" : { - "count" : 0, - "original_timestamp" : 0 + "UNKNOWN": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 } } }, { - "definition_id" : 24, - "definition_name" : "datanode_storage", - "summary" : { - "OK" : { - "count" : 1, - "original_timestamp" : 1416397285587 + "definition_id": 24, + "definition_name": "datanode_storage", + "summary": { + "OK": { + "count": 1, + "maintenance_count": 0, + "original_timestamp": 1416397285587 }, - "WARNING" : { - "count" : 0, - "original_timestamp" : 0 + "WARNING": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "CRITICAL" : { - "count" : 0, - "original_timestamp" : 0 + "CRITICAL": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "UNKNOWN" : { - "count" : 0, - "original_timestamp" : 0 + "UNKNOWN": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 } } }, { - "definition_id" : 14, - "definition_name" : "yarn_nodemanager_webui", - "summary" : { - "OK" : { - "count" : 1, - "original_timestamp" : 1416397531030 + "definition_id": 14, + "definition_name": "yarn_nodemanager_webui", + "summary": { + "OK": { + "count": 1, + "maintenance_count": 0, + "original_timestamp": 1416397531030 }, - "WARNING" : { - "count" : 0, - "original_timestamp" : 0 + "WARNING": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "CRITICAL" : { - "count" : 0, - "original_timestamp" : 0 + "CRITICAL": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "UNKNOWN" : { - "count" : 0, - "original_timestamp" : 0 + "UNKNOWN": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 } } }, { - "definition_id" : 27, - "definition_name" : "datanode_storage_percent", - "summary" : { - "OK" : { - "count" : 1, - "original_timestamp" : 1416397300122 + "definition_id": 27, + "definition_name": "datanode_storage_percent", + "summary": { + "OK": { + "count": 1, + "maintenance_count": 0, + "original_timestamp": 1416397300122 }, - "WARNING" : { - "count" : 0, - "original_timestamp" : 0 + "WARNING": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "CRITICAL" : { - "count" : 0, - "original_timestamp" : 0 + "CRITICAL": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "UNKNOWN" : { - "count" : 0, - "original_timestamp" : 0 + "UNKNOWN": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 } } }, { - "definition_id" : 16, - "definition_name" : "ganglia_monitor_yarn_resourcemanager", - "summary" : { - "OK" : { - "count" : 1, - "original_timestamp" : 1416397285097 + "definition_id": 16, + "definition_name": "ganglia_monitor_yarn_resourcemanager", + "summary": { + "OK": { + "count": 1, + "maintenance_count": 0, + "original_timestamp": 1416397285097 }, - "WARNING" : { - "count" : 0, - "original_timestamp" : 0 + "WARNING": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "CRITICAL" : { - "count" : 0, - "original_timestamp" : 0 + "CRITICAL": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "UNKNOWN" : { - "count" : 0, - "original_timestamp" : 0 + "UNKNOWN": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 } } }, { - "definition_id" : 18, - "definition_name" : "mapreduce_history_server_webui", - "summary" : { - "OK" : { - "count" : 1, - "original_timestamp" : 1416397471999 + "definition_id": 18, + "definition_name": "mapreduce_history_server_webui", + "summary": { + "OK": { + "count": 1, + "maintenance_count": 0, + "original_timestamp": 1416397471999 }, - "WARNING" : { - "count" : 0, - "original_timestamp" : 0 + "WARNING": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "CRITICAL" : { - "count" : 0, - "original_timestamp" : 0 + "CRITICAL": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "UNKNOWN" : { - "count" : 0, - "original_timestamp" : 0 + "UNKNOWN": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 } } }, { - "definition_id" : 21, - "definition_name" : "zookeeper_server_process_percent", - "summary" : { - "OK" : { - "count" : 1, - "original_timestamp" : 1416397300320 + "definition_id": 21, + "definition_name": "zookeeper_server_process_percent", + "summary": { + "OK": { + "count": 1, + "maintenance_count": 0, + "original_timestamp": 1416397300320 }, - "WARNING" : { - "count" : 0, - "original_timestamp" : 0 + "WARNING": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "CRITICAL" : { - "count" : 0, - "original_timestamp" : 0 + "CRITICAL": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "UNKNOWN" : { - "count" : 0, - "original_timestamp" : 0 + "UNKNOWN": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 } } }, { - "definition_id" : 9, - "definition_name" : "secondary_namenode_process", - "summary" : { - "OK" : { - "count" : 1, - "original_timestamp" : 1416397465287 + "definition_id": 9, + "definition_name": "secondary_namenode_process", + "summary": { + "OK": { + "count": 1, + "maintenance_count": 0, + "original_timestamp": 1416397465287 }, - "WARNING" : { - "count" : 0, - "original_timestamp" : 0 + "WARNING": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "CRITICAL" : { - "count" : 0, - "original_timestamp" : 0 + "CRITICAL": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "UNKNOWN" : { - "count" : 0, - "original_timestamp" : 0 + "UNKNOWN": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 } } }, { - "definition_id" : 4, - "definition_name" : "datanode_webui", - "summary" : { - "OK" : { - "count" : 1, - "original_timestamp" : 1416397285439 + "definition_id": 4, + "definition_name": "datanode_webui", + "summary": { + "OK": { + "count": 1, + "maintenance_count": 0, + "original_timestamp": 1416397285439 }, - "WARNING" : { - "count" : 0, - "original_timestamp" : 0 + "WARNING": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "CRITICAL" : { - "count" : 0, - "original_timestamp" : 0 + "CRITICAL": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "UNKNOWN" : { - "count" : 0, - "original_timestamp" : 0 + "UNKNOWN": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 } } }, { - "definition_id" : 32, - "definition_name" : "yarn_resourcemanager_cpu", - "summary" : { - "OK" : { - "count" : 1, - "original_timestamp" : 1416397645425 + "definition_id": 32, + "definition_name": "yarn_resourcemanager_cpu", + "summary": { + "OK": { + "count": 1, + "maintenance_count": 0, + "original_timestamp": 1416397645425 }, - "WARNING" : { - "count" : 0, - "original_timestamp" : 0 + "WARNING": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "CRITICAL" : { - "count" : 0, - "original_timestamp" : 0 + "CRITICAL": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "UNKNOWN" : { - "count" : 0, - "original_timestamp" : 0 + "UNKNOWN": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 } } }, { - "definition_id" : 29, - "definition_name" : "namenode_cpu", - "summary" : { - "OK" : { - "count" : 1, - "original_timestamp" : 1416397345252 + "definition_id": 29, + "definition_name": "namenode_cpu", + "summary": { + "OK": { + "count": 1, + "maintenance_count": 0, + "original_timestamp": 1416397345252 }, - "WARNING" : { - "count" : 0, - "original_timestamp" : 0 + "WARNING": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "CRITICAL" : { - "count" : 0, - "original_timestamp" : 0 + "CRITICAL": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "UNKNOWN" : { - "count" : 0, - "original_timestamp" : 0 + "UNKNOWN": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 } } }, { - "definition_id" : 30, - "definition_name" : "mapreduce_history_server_rpc_latency", - "summary" : { - "OK" : { - "count" : 1, - "original_timestamp" : 1416397645512 + "definition_id": 30, + "definition_name": "mapreduce_history_server_rpc_latency", + "summary": { + "OK": { + "count": 1, + "maintenance_count": 0, + "original_timestamp": 1416397645512 }, - "WARNING" : { - "count" : 0, - "original_timestamp" : 0 + "WARNING": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "CRITICAL" : { - "count" : 0, - "original_timestamp" : 0 + "CRITICAL": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "UNKNOWN" : { - "count" : 0, - "original_timestamp" : 0 + "UNKNOWN": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 } } }, { - "definition_id" : 6, - "definition_name" : "ganglia_monitor_hbase_master", - "summary" : { - "OK" : { - "count" : 0, - "original_timestamp" : 0 + "definition_id": 6, + "definition_name": "ganglia_monitor_hbase_master", + "summary": { + "OK": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "WARNING" : { - "count" : 0, - "original_timestamp" : 0 + "WARNING": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "CRITICAL" : { - "count" : 1, - "original_timestamp" : 1416397105073 + "CRITICAL": { + "count": 1, + "maintenance_count": 0, + "original_timestamp": 1416397105073 }, - "UNKNOWN" : { - "count" : 0, - "original_timestamp" : 0 + "UNKNOWN": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 } } }, { - "definition_id" : 23, - "definition_name" : "namenode_hdfs_blocks_health", - "summary" : { - "OK" : { - "count" : 1, - "original_timestamp" : 1416397285485 + "definition_id": 23, + "definition_name": "namenode_hdfs_blocks_health", + "summary": { + "OK": { + "count": 1, + "maintenance_count": 0, + "original_timestamp": 1416397285485 }, - "WARNING" : { - "count" : 0, - "original_timestamp" : 0 + "WARNING": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "CRITICAL" : { - "count" : 0, - "original_timestamp" : 0 + "CRITICAL": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "UNKNOWN" : { - "count" : 0, - "original_timestamp" : 0 + "UNKNOWN": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 } } }, { - "definition_id" : 31, - "definition_name" : "yarn_resourcemanager_rpc_latency", - "summary" : { - "OK" : { - "count" : 1, - "original_timestamp" : 1416397645406 + "definition_id": 31, + "definition_name": "yarn_resourcemanager_rpc_latency", + "summary": { + "OK": { + "count": 1, + "maintenance_count": 0, + "original_timestamp": 1416397645406 }, - "WARNING" : { - "count" : 0, - "original_timestamp" : 0 + "WARNING": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "CRITICAL" : { - "count" : 0, - "original_timestamp" : 0 + "CRITICAL": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "UNKNOWN" : { - "count" : 0, - "original_timestamp" : 0 + "UNKNOWN": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 } } }, { - "definition_id" : 13, - "definition_name" : "zookeeper_server_process", - "summary" : { - "OK" : { - "count" : 1, - "original_timestamp" : 1416397285083 + "definition_id": 13, + "definition_name": "zookeeper_server_process", + "summary": { + "OK": { + "count": 1, + "maintenance_count": 0, + "original_timestamp": 1416397285083 }, - "WARNING" : { - "count" : 0, - "original_timestamp" : 0 + "WARNING": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "CRITICAL" : { - "count" : 0, - "original_timestamp" : 0 + "CRITICAL": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "UNKNOWN" : { - "count" : 0, - "original_timestamp" : 0 + "UNKNOWN": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 } } }, { - "definition_id" : 7, - "definition_name" : "datanode_process", - "summary" : { - "OK" : { - "count" : 1, - "original_timestamp" : 1416397285159 + "definition_id": 7, + "definition_name": "datanode_process", + "summary": { + "OK": { + "count": 1, + "maintenance_count": 0, + "original_timestamp": 1416397285159 }, - "WARNING" : { - "count" : 0, - "original_timestamp" : 0 + "WARNING": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "CRITICAL" : { - "count" : 0, - "original_timestamp" : 0 + "CRITICAL": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "UNKNOWN" : { - "count" : 0, - "original_timestamp" : 0 + "UNKNOWN": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 } } }, { - "definition_id" : 20, - "definition_name" : "datanode_process_percent", - "summary" : { - "OK" : { - "count" : 1, - "original_timestamp" : 1416397300169 + "definition_id": 20, + "definition_name": "datanode_process_percent", + "summary": { + "OK": { + "count": 1, + "maintenance_count": 0, + "original_timestamp": 1416397300169 }, - "WARNING" : { - "count" : 0, - "original_timestamp" : 0 + "WARNING": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "CRITICAL" : { - "count" : 0, - "original_timestamp" : 0 + "CRITICAL": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "UNKNOWN" : { - "count" : 0, - "original_timestamp" : 0 + "UNKNOWN": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 } } }, { - "definition_id" : 11, - "definition_name" : "namenode_process", - "summary" : { - "OK" : { - "count" : 1, - "original_timestamp" : 1416397285181 + "definition_id": 11, + "definition_name": "namenode_process", + "summary": { + "OK": { + "count": 1, + "maintenance_count": 0, + "original_timestamp": 1416397285181 }, - "WARNING" : { - "count" : 0, - "original_timestamp" : 0 + "WARNING": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "CRITICAL" : { - "count" : 0, - "original_timestamp" : 0 + "CRITICAL": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "UNKNOWN" : { - "count" : 0, - "original_timestamp" : 0 + "UNKNOWN": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 } } }, { - "definition_id" : 8, - "definition_name" : "ganglia_monitor_hdfs_namenode", - "summary" : { - "OK" : { - "count" : 1, - "original_timestamp" : 1416397285108 + "definition_id": 8, + "definition_name": "ganglia_monitor_hdfs_namenode", + "summary": { + "OK": { + "count": 1, + "maintenance_count": 0, + "original_timestamp": 1416397285108 }, - "WARNING" : { - "count" : 0, - "original_timestamp" : 0 + "WARNING": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "CRITICAL" : { - "count" : 0, - "original_timestamp" : 0 + "CRITICAL": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "UNKNOWN" : { - "count" : 0, - "original_timestamp" : 0 + "UNKNOWN": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 } } }, { - "definition_id" : 25, - "definition_name" : "namenode_hdfs_capacity_utilization", - "summary" : { - "OK" : { - "count" : 1, - "original_timestamp" : 1416397285491 + "definition_id": 25, + "definition_name": "namenode_hdfs_capacity_utilization", + "summary": { + "OK": { + "count": 1, + "maintenance_count": 0, + "original_timestamp": 1416397285491 }, - "WARNING" : { - "count" : 0, - "original_timestamp" : 0 + "WARNING": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "CRITICAL" : { - "count" : 0, - "original_timestamp" : 0 + "CRITICAL": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "UNKNOWN" : { - "count" : 0, - "original_timestamp" : 0 + "UNKNOWN": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 } } }, { - "definition_id" : 22, - "definition_name" : "yarn_nodemanager_webui_percent", - "summary" : { - "OK" : { - "count" : 1, - "original_timestamp" : 1416397541852 + "definition_id": 22, + "definition_name": "yarn_nodemanager_webui_percent", + "summary": { + "OK": { + "count": 1, + "maintenance_count": 0, + "original_timestamp": 1416397541852 }, - "WARNING" : { - "count" : 0, - "original_timestamp" : 0 + "WARNING": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "CRITICAL" : { - "count" : 0, - "original_timestamp" : 0 + "CRITICAL": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "UNKNOWN" : { - "count" : 0, - "original_timestamp" : 0 + "UNKNOWN": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 } } }, { - "definition_id" : 3, - "definition_name" : "namenode_directory_status", - "summary" : { - "OK" : { - "count" : 1, - "original_timestamp" : 1416397285527 + "definition_id": 3, + "definition_name": "namenode_directory_status", + "summary": { + "OK": { + "count": 1, + "maintenance_count": 0, + "original_timestamp": 1416397285527 }, - "WARNING" : { - "count" : 0, - "original_timestamp" : 0 + "WARNING": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "CRITICAL" : { - "count" : 0, - "original_timestamp" : 0 + "CRITICAL": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "UNKNOWN" : { - "count" : 0, - "original_timestamp" : 0 + "UNKNOWN": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 } } }, { - "definition_id" : 17, - "definition_name" : "yarn_nodemanager_health", - "summary" : { - "OK" : { - "count" : 1, - "original_timestamp" : 1416397530178 + "definition_id": 17, + "definition_name": "yarn_nodemanager_health", + "summary": { + "OK": { + "count": 1, + "maintenance_count": 0, + "original_timestamp": 1416397530178 }, - "WARNING" : { - "count" : 0, - "original_timestamp" : 0 + "WARNING": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "CRITICAL" : { - "count" : 0, - "original_timestamp" : 0 + "CRITICAL": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "UNKNOWN" : { - "count" : 0, - "original_timestamp" : 0 + "UNKNOWN": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 } } }, { - "definition_id" : 12, - "definition_name" : "ganglia_server_process", - "summary" : { - "OK" : { - "count" : 1, - "original_timestamp" : 1416397285115 + "definition_id": 12, + "definition_name": "ganglia_server_process", + "summary": { + "OK": { + "count": 1, + "maintenance_count": 0, + "original_timestamp": 1416397285115 }, - "WARNING" : { - "count" : 0, - "original_timestamp" : 0 + "WARNING": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "CRITICAL" : { - "count" : 0, - "original_timestamp" : 0 + "CRITICAL": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 }, - "UNKNOWN" : { - "count" : 0, - "original_timestamp" : 0 + "UNKNOWN": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 } } }, { - "definition_id" : 28, - "definition_name" : "mapreduce_history_server_cpu", - "summary" : { - "OK" : { - "count" : 1, - "original_timestamp" : 1416397645535 - }, - "WARNING" : { - "count" : 0, - "original_timestamp" : 0 - }, - "CRITICAL" : { - "count" : 0, - "original_timestamp" : 0 - }, - "UNKNOWN" : { - "count" : 0, - "original_timestamp" : 0 + "definition_id": 28, + "definition_name": "mapreduce_history_server_cpu", + "summary": { + "OK": { + "count": 1, + "maintenance_count": 0, + "original_timestamp": 1416397645535 + }, + "WARNING": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 + }, + "CRITICAL": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 + }, + "UNKNOWN": { + "count": 0, + "maintenance_count": 0, + "original_timestamp": 0 } } } http://git-wip-us.apache.org/repos/asf/ambari/blob/aa41e110/ambari-web/app/controllers/main/alert_definitions_controller.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/controllers/main/alert_definitions_controller.js b/ambari-web/app/controllers/main/alert_definitions_controller.js index ad1f6c6..4b76d2d 100644 --- a/ambari-web/app/controllers/main/alert_definitions_controller.js +++ b/ambari-web/app/controllers/main/alert_definitions_controller.js @@ -48,7 +48,9 @@ App.MainAlertDefinitionsController = Em.ArrayController.extend({ * @type {App.AlertDefinition[]} */ content: function () { - return App.AlertDefinition.getAllDefinitions(); + var definitions = App.AlertDefinition.getAllDefinitions(); + definitions.sort(App.AlertDefinition.getSortDefinitionsByStatus(true)); + return definitions; }.property('mapperTimestamp'), /** http://git-wip-us.apache.org/repos/asf/ambari/blob/aa41e110/ambari-web/app/mappers/alert_definition_summary_mapper.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/mappers/alert_definition_summary_mapper.js b/ambari-web/app/mappers/alert_definition_summary_mapper.js index 0a0fb47..c8d259c 100644 --- a/ambari-web/app/mappers/alert_definition_summary_mapper.js +++ b/ambari-web/app/mappers/alert_definition_summary_mapper.js @@ -52,5 +52,9 @@ App.alertDefinitionSummaryMapper = App.QuickDataMapper.create({ } }); + if (App.router.get('mainAlertDefinitionsController')) { + App.router.set('mainAlertDefinitionsController.mapperTimestamp', (new Date()).getTime()); + } + } }); http://git-wip-us.apache.org/repos/asf/ambari/blob/aa41e110/ambari-web/app/models/alert_definition.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/models/alert_definition.js b/ambari-web/app/models/alert_definition.js index 9f4cd85..b92de5e 100644 --- a/ambari-web/app/models/alert_definition.js +++ b/ambari-web/app/models/alert_definition.js @@ -130,8 +130,7 @@ App.AlertDefinition = DS.Model.extend({ hostCnt = 0, self = this; order.forEach(function (state) { - var cnt = summary[state] ? summary[state].count + summary[state].maintenanceCount : 0; - hostCnt += cnt; + hostCnt += summary[state] ? summary[state].count + summary[state].maintenanceCount : 0; }); if (hostCnt > 1) { // multiple hosts @@ -159,7 +158,7 @@ App.AlertDefinition = DS.Model.extend({ // none return '<span class="alert-state-single-host label alert-state-PENDING">NONE</span>'; } - return null; + return ''; }.property('summary'), isHostAlertDefinition: function () { @@ -268,6 +267,11 @@ App.AlertDefinition = DS.Model.extend({ App.AlertDefinition.reopenClass({ + /** + * Get all available AlertDefinitions + * @returns {Array|string} + * @method getAllDefinitions + */ getAllDefinitions: function () { return Array.prototype.concat.call( Array.prototype, App.PortAlertDefinition.find().toArray(), @@ -276,6 +280,31 @@ App.AlertDefinition.reopenClass({ App.AggregateAlertDefinition.find().toArray(), App.ScriptAlertDefinition.find().toArray() ) + }, + + /** + * Return function to sort list of AlertDefinitions by their status + * It sorts according to <code>severityOrder</code> + * @param {boolean} order true - DESC, false - ASC + * @returns {Function} + * @method getSortDefinitionsByStatus + */ + getSortDefinitionsByStatus: function (order) { + return function (a, b) { + var a_summary = a.get('summary'), + b_summary = b.get('summary'), + st_order = a.get('severityOrder'), + ret = 0; + for (var i = 0; i < st_order.length; i++) { + var a_v = Em.isNone(a_summary[st_order[i]]) ? 0 : a_summary[st_order[i]].count + a_summary[st_order[i]].maintenanceCount, + b_v = Em.isNone(b_summary[st_order[i]]) ? 0 : b_summary[st_order[i]].count + b_summary[st_order[i]].maintenanceCount; + ret = b_v - a_v; + if (ret !== 0) { + break; + } + } + return order ? ret : -ret; + }; } }); http://git-wip-us.apache.org/repos/asf/ambari/blob/aa41e110/ambari-web/app/views/common/sort_view.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/views/common/sort_view.js b/ambari-web/app/views/common/sort_view.js index b1345fe..dff40a5 100644 --- a/ambari-web/app/views/common/sort_view.js +++ b/ambari-web/app/views/common/sort_view.js @@ -154,7 +154,7 @@ var wrapperView = Em.View.extend({ a_p = Em.isNone(a_p) ? -Infinity : parseFloat(a_p); b_p = Em.isNone(b_p) ? -Infinity : parseFloat(b_p); if (order) { - return a_p - b_p;; + return a_p - b_p; } else { return b_p - a_p } @@ -171,26 +171,7 @@ var wrapperView = Em.View.extend({ }; break; case 'alert_status': - func = function (a, b) { - var a_summary = a.get('summary'), - b_summary = b.get('summary'), - st_order = a.get('severityOrder'), - ret = 0; - for (var i = 0; i < st_order.length; i++) { - var a_v = Em.isNone(a_summary[st_order[i]]) ? 0 : a_summary[st_order[i]].count + a_summary[st_order[i]].maintenanceCount, - b_v = Em.isNone(b_summary[st_order[i]]) ? 0 : b_summary[st_order[i]].count + b_summary[st_order[i]].maintenanceCount; - ret = b_v - a_v; - if (ret !== 0) { - break; - } - } - if (order) { - return -ret; - } - else { - return ret; - } - }; + func = App.AlertDefinition.getSortDefinitionsByStatus(order); break; default: func = function (a, b) { http://git-wip-us.apache.org/repos/asf/ambari/blob/aa41e110/ambari-web/test/models/alert_definition_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/models/alert_definition_test.js b/ambari-web/test/models/alert_definition_test.js index 438f0c9..7af42ea 100644 --- a/ambari-web/test/models/alert_definition_test.js +++ b/ambari-web/test/models/alert_definition_test.js @@ -167,4 +167,44 @@ describe('App.AlertDefinition', function () { }); + describe('REOPEN', function () { + + describe('#getSortDefinitionsByStatus', function () { + + Em.A([ + { + a: App.AlertDefinition.createRecord({summary: {OK: {count: 1, maintenanceCount: 0}, WARNING: {count: 1, maintenanceCount: 0}}}), + b: App.AlertDefinition.createRecord({summary: {WARNING: {count: 1, maintenanceCount: 0}}}), + order: true, + e: -1 + }, + { + a: App.AlertDefinition.createRecord({summary: {OK: {count: 1, maintenanceCount: 0}, WARNING: {count: 2, maintenanceCount: 0}}}), + b: App.AlertDefinition.createRecord({summary: {OK: {count: 1, maintenanceCount: 0}, WARNING: {count: 1, maintenanceCount: 0}}}), + order: true, + e: -1 + }, + { + a: App.AlertDefinition.createRecord({summary: {OK: {count: 1, maintenanceCount: 0}, WARNING: {count: 1, maintenanceCount: 0}}}), + b: App.AlertDefinition.createRecord({summary: {WARNING: {count: 1, maintenanceCount: 0}}}), + order: false, + e: 1 + }, + { + a: App.AlertDefinition.createRecord({summary: {OK: {count: 1, maintenanceCount: 0}, WARNING: {count: 2, maintenanceCount: 0}}}), + b: App.AlertDefinition.createRecord({summary: {OK: {count: 1, maintenanceCount: 0}, WARNING: {count: 1, maintenanceCount: 0}}}), + order: false, + e: 1 + } + ]).forEach(function(test, i) { + it('test #' + (i + 1), function () { + var func = App.AlertDefinition.getSortDefinitionsByStatus(test.order); + expect(func(test.a, test.b)).to.equal(test.e); + }); + }); + + }); + + }); + }); http://git-wip-us.apache.org/repos/asf/ambari/blob/aa41e110/ambari-web/test/views/common/sort_view_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/views/common/sort_view_test.js b/ambari-web/test/views/common/sort_view_test.js index 0ebf1ba..45ce341 100644 --- a/ambari-web/test/views/common/sort_view_test.js +++ b/ambari-web/test/views/common/sort_view_test.js @@ -25,44 +25,6 @@ describe('#wrapperView', function () { describe('#getSortFunc', function () { - describe('alert_status', function () { - - var property = Em.Object.create({type: 'alert_status'}); - - Em.A([ - { - a: App.AlertDefinition.createRecord({summary: {OK: {count: 1, maintenanceCount: 0}, WARNING: {count: 1, maintenanceCount: 0}}}), - b: App.AlertDefinition.createRecord({summary: {WARNING: {count: 1, maintenanceCount: 0}}}), - order: true, - e: 1 - }, - { - a: App.AlertDefinition.createRecord({summary: {OK: {count: 1, maintenanceCount: 0}, WARNING: {count: 2, maintenanceCount: 0}}}), - b: App.AlertDefinition.createRecord({summary: {OK: {count: 1, maintenanceCount: 0}, WARNING: {count: 1, maintenanceCount: 0}}}), - order: true, - e: 1 - }, - { - a: App.AlertDefinition.createRecord({summary: {OK: {count: 1, maintenanceCount: 0}, WARNING: {count: 1, maintenanceCount: 0}}}), - b: App.AlertDefinition.createRecord({summary: {WARNING: {count: 1, maintenanceCount: 0}}}), - order: false, - e: -1 - }, - { - a: App.AlertDefinition.createRecord({summary: {OK: {count: 1, maintenanceCount: 0}, WARNING: {count: 2, maintenanceCount: 0}}}), - b: App.AlertDefinition.createRecord({summary: {OK: {count: 1, maintenanceCount: 0}, WARNING: {count: 1, maintenanceCount: 0}}}), - order: false, - e: -1 - } - ]).forEach(function(test, i) { - it('test #' + (i + 1), function () { - var func = sort.wrapperView.create().getSortFunc(property, test.order); - expect(func(test.a, test.b)).to.equal(test.e); - }); - }); - - }); - describe('number', function () { var property = Em.Object.create({type: 'number', name: 'lastTriggered'});
