alert_definition_summary_mapper.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /**
  2. * Licensed to the Apache Software Foundation (ASF) under one or more
  3. * contributor license agreements. See the NOTICE file distributed with this
  4. * work for additional information regarding copyright ownership. The ASF
  5. * licenses this file to you under the Apache License, Version 2.0 (the
  6. * "License"); you may not use this file except in compliance with the License.
  7. * You may obtain a copy of the License at
  8. *
  9. * http://www.apache.org/licenses/LICENSE-2.0
  10. *
  11. * Unless required by applicable law or agreed to in writing, software
  12. * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  13. * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
  14. * License for the specific language governing permissions and limitations under
  15. * the License.
  16. */
  17. var App = require('app');
  18. App.alertDefinitionSummaryMapper = App.QuickDataMapper.create({
  19. config: {},
  20. map: function(data) {
  21. if (!data.alerts_summary_grouped) return;
  22. var alertDefinitions = App.AlertDefinition.getAllDefinitions();
  23. data.alerts_summary_grouped.forEach(function(alertDefinitionSummary) {
  24. var alertDefinition = alertDefinitions.findProperty('id', alertDefinitionSummary.definition_id);
  25. if (alertDefinition) {
  26. var summary = {},
  27. timestamp = 0;
  28. Em.keys(alertDefinitionSummary.summary).forEach(function(status) {
  29. summary[status] = alertDefinitionSummary.summary[status].count;
  30. if (alertDefinitionSummary.summary[status].original_timestamp > timestamp) {
  31. timestamp = alertDefinitionSummary.summary[status].original_timestamp;
  32. }
  33. });
  34. alertDefinition.setProperties({
  35. summary: summary,
  36. lastTriggered: parseInt(timestamp)
  37. });
  38. }
  39. });
  40. // clear summary for disabled alert definitions
  41. alertDefinitions.forEach(function (definition) {
  42. if (!definition.get('enabled')) {
  43. definition.set('summary', {});
  44. }
  45. });
  46. }
  47. });