123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- /**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with this
- * work for additional information regarding copyright ownership. The ASF
- * licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
- var App = require('app');
- var stringUtils = require('utils/string_utils');
- App.hostsMapper = App.QuickDataMapper.create({
- model: App.Host,
- config: {
- id: 'Hosts.host_name',
- host_name: 'Hosts.host_name',
- public_host_name: 'Hosts.public_host_name',
- cluster_id: 'cluster_id',// Hosts.cluster_name
- rack: 'Hosts.rack_info',
- host_components_key: 'host_components',
- host_components_type: 'array',
- host_components: {
- item: 'id'
- },
- critical_alerts_count: 'critical_alerts_count',
- cpu: 'Hosts.cpu_count',
- cpu_physical: 'Hosts.ph_cpu_count',
- memory: 'Hosts.total_mem',
- disk_info: 'Hosts.disk_info',
- disk_total: 'metrics.disk.disk_total',
- disk_free: 'metrics.disk.disk_free',
- health_status: 'Hosts.host_status',
- load_one: 'metrics.load.load_one',
- load_five: 'metrics.load.load_five',
- load_fifteen: 'metrics.load.load_fifteen',
- cpu_system: 'metrics.cpu.cpu_system',
- cpu_user: 'metrics.cpu.cpu_user',
- mem_total: 'metrics.memory.mem_total',
- mem_free: 'metrics.memory.mem_free',
- last_heart_beat_time: "Hosts.last_heartbeat_time",
- os_arch: 'Hosts.os_arch',
- os_type: 'Hosts.os_type',
- ip: 'Hosts.ip',
- passive_state: 'Hosts.maintenance_state'
- },
- hostComponentConfig: {
- component_name: 'HostRoles.component_name',
- service_id: 'HostRoles.service_name',
- passive_state: 'HostRoles.maintenance_state',
- work_status: 'HostRoles.state',
- stale_configs: 'HostRoles.stale_configs',
- host_name: 'host_name'
- },
- map: function (json, isAll) {
- console.time('App.hostsMapper execution time');
- if (json.items) {
- var hostsWithFullInfo = [];
- var hostIds = {};
- var components = [];
- json.items.forEach(function (item) {
- item.host_components = item.host_components || [];
- item.host_components.forEach(function (host_component) {
- host_component.id = host_component.HostRoles.component_name + "_" + item.Hosts.host_name;
- var component = this.parseIt(host_component, this.hostComponentConfig);
- component.id = host_component.HostRoles.component_name + "_" + item.Hosts.host_name;
- component.host_id = item.Hosts.host_name;
- component.host_name = item.Hosts.host_name;
- components.push(component);
- }, this);
- item.critical_alerts_count = (item.alerts) ? item.alerts.summary.CRITICAL + item.alerts.summary.WARNING : 0;
- item.cluster_id = App.get('clusterName');
- var parsedItem = this.parseIt(item, this.config);
- parsedItem.is_requested = !isAll;
- hostIds[item.Hosts.host_name] = parsedItem;
- hostsWithFullInfo.push(parsedItem);
- }, this);
- hostsWithFullInfo = hostsWithFullInfo.sortProperty('public_host_name');
- App.Host.find().forEach(function (host) {
- if (isAll && host.get('isRequested')) {
- hostIds[host.get('hostName')].is_requested = true;
- } else if (!hostIds[host.get('hostName')]) {
- host.set('isRequested', false);
- }
- });
- App.store.loadMany(App.HostComponent, components);
- App.store.loadMany(App.Host, hostsWithFullInfo);
- App.router.set('mainHostController.filteredCount', parseInt(json.itemTotal));
- }
- console.timeEnd('App.hostsMapper execution time');
- }
- });
|