updateClusterData: function () { var testUrl = App.get('isHadoop2Stack') ? '/data/clusters/HDP2/cluster.json':'/data/clusters/cluster.json'; var clusterUrl = this.getUrl(testUrl, '?fields=Clusters'); App.HttpClient.get(clusterUrl, App.clusterMapper, { complete:function(){} }); }
updateComponentConfig: function (callback) { var testUrl = '/data/services/host_component_stale_configs.json'; var componentConfigUrl = this.getUrl(testUrl, '/components?ServiceComponentInfo/category.in(SLAVE,CLIENT)&host_components/HostRoles/stale_configs=true&fields=host_components/HostRoles/service_name,host_components/HostRoles/state,host_components/HostRoles/maintenance_state,host_components/HostRoles/host_name,host_components/HostRoles/stale_configs&minimal_response=true'); App.HttpClient.get(componentConfigUrl, App.componentConfigMapper, { complete: callback }); },
updateServices: function (callback) { var testUrl = '/data/services/HDP2/services.json'; var componentConfigUrl = this.getUrl(testUrl, '/services?fields=alerts/summary,ServiceInfo/state,ServiceInfo/maintenance_state&minimal_response=true'); App.HttpClient.get(componentConfigUrl, App.serviceMapper, { complete: callback }); },
updateComponentsState: function (callback) { var testUrl = '/data/services/HDP2/components_state.json'; var realUrl = '/components/?ServiceComponentInfo/category.in(SLAVE,CLIENT)&fields=ServiceComponentInfo/service_name,' + 'ServiceComponentInfo/installed_count,ServiceComponentInfo/started_count,ServiceComponentInfo/total_count&minimal_response=true'; var url = this.getUrl(testUrl, realUrl); App.HttpClient.get(url, App.componentsStateMapper, { complete: callback }); }
var clientCallback = function (skipCall, queryParams) { if (skipCall) { //no hosts match filter by component App.hostsMapper.map({ items: [], itemTotal: '0' }); callback(); } else { var params = self.computeParameters(queryParams), paginationProps = self.computeParameters(queryParams.filter(function (param) { return (this.get('paginationKeys').contains(param.key)); }, self)), sortProps = self.computeParameters(sortProperties); if ((params.length + paginationProps.length + sortProps.length) > 0) { realUrl = App.get('apiPrefix') + '/clusters/' + App.get('clusterName') + realUrl.replace('<parameters>', '') + (paginationProps.length > 0 ? '&' + paginationProps.substring(0, paginationProps.length - 1) : '') + (sortProps.length > 0 ? '&' + sortProps.substring(0, sortProps.length - 1) : ''); App.HttpClient.get(realUrl, App.hostsMapper, { complete: callback, doGetAsPost: true, params: params.substring(0, params.length - 1), error: error }); } else { var hostsUrl = self.getComplexUrl(testUrl, realUrl, queryParams); App.HttpClient.get(hostsUrl, App.hostsMapper, { complete: callback, doGetAsPost: false, error: error }); } } };
updateServiceMetric: function (callback) { var self = this; self.set('isUpdated', false); var conditionalFields = this.getConditionalFields(), conditionalFieldsString = conditionalFields.length > 0 ? ',' + conditionalFields.join(',') : '', testUrl = App.get('isHadoop2Stack') ? '/data/dashboard/HDP2/master_components.json' : '/data/dashboard/services.json', isFlumeInstalled = App.cache['services'].mapProperty('ServiceInfo.service_name').contains('FLUME'), isATSInstalled = App.cache['services'].mapProperty('ServiceInfo.service_name').contains('YARN') && App.get('isHadoop21Stack'), flumeHandlerParam = isFlumeInstalled ? 'ServiceComponentInfo/component_name=FLUME_HANDLER|' : '', atsHandlerParam = isATSInstalled ? 'ServiceComponentInfo/component_name=APP_TIMELINE_SERVER|' : '', haComponents = App.get('isHaEnabled') ? 'ServiceComponentInfo/component_name=JOURNALNODE|' : '', realUrl = '/components/?' + flumeHandlerParam + atsHandlerParam + haComponents + 'ServiceComponentInfo/category=MASTER&fields=' + 'ServiceComponentInfo/Version,' + 'ServiceComponentInfo/StartTime,' + 'ServiceComponentInfo/HeapMemoryUsed,' + 'ServiceComponentInfo/HeapMemoryMax,' + 'ServiceComponentInfo/service_name,' + 'host_components/HostRoles/host_name,' + 'host_components/HostRoles/state,' + 'host_components/HostRoles/maintenance_state,' + 'host_components/HostRoles/stale_configs,' + 'host_components/metrics/jvm/memHeapUsedM,' + 'host_components/metrics/jvm/HeapMemoryMax,' + 'host_components/metrics/jvm/HeapMemoryUsed,' + 'host_components/metrics/jvm/memHeapCommittedM,' + 'host_components/metrics/mapred/jobtracker/trackers_decommissioned,' + 'host_components/metrics/cpu/cpu_wio,' + 'host_components/metrics/rpc/RpcQueueTime_avg_time,' + 'host_components/metrics/dfs/FSNamesystem/*,' + 'host_components/metrics/dfs/namenode/Version,' + 'host_components/metrics/dfs/namenode/DecomNodes,' + 'host_components/metrics/dfs/namenode/TotalFiles,' + 'host_components/metrics/dfs/namenode/UpgradeFinalized,' + 'host_components/metrics/dfs/namenode/Safemode,' + 'host_components/metrics/runtime/StartTime' + conditionalFieldsString + '&minimal_response=true'; var servicesUrl = this.getUrl(testUrl, realUrl); callback = callback || function () { self.set('isUpdated', true); }; App.HttpClient.get(servicesUrl, App.serviceMetricsMapper, { complete: function () { callback(); } }); },
loadUpdatedStatus: function(callback){ if(!this.get('clusterName')){ callback(); return false; } var testUrl = App.get('isHadoop2Stack') ? '/data/dashboard/HDP2/services.json':'/data/dashboard/services.json'; //desired_state property is eliminated since calculateState function is commented out, it become useless var servicesUrl = this.getUrl(testUrl, '/services?fields=ServiceInfo,components/host_components/HostRoles/state,components/host_components/HostRoles/ha_status'); App.HttpClient.get(servicesUrl, App.statusMapper, { complete: callback }); return true; },
loadRuns:function () { this.set('loading', true); var self = this; //var runsUrl = App.testMode ? "/data/apps/runs.json" : App.apiPrefix + "/jobhistory/workflow?orderBy=startTime&sortDir=DESC&limit=" + App.maxRunsForAppBrowser; var runsUrl = App.testMode ? "/data/apps/runs.json" : App.apiPrefix + this.get("runUrl"); App.HttpClient.get(runsUrl, App.runsMapper, { complete:function (jqXHR, textStatus) { self.set('loading', false); self.set('loaded', true); } }); },
gettingJobs:function(){ var currentId = this.get('content.id'); if(this.get('content.loadAllJobs')){ return; } var self = this; var url = App.testMode ? '/data/apps/jobs/'+ currentId +'.json' : App.apiPrefix + "/jobhistory/job?workflowId=" + currentId; var mapper = App.jobsMapper; mapper.set('controller', this); App.HttpClient.get(url, mapper,{ complete:function(jqXHR, textStatus) { self.set('content.loadAllJobs', true); } }); }.observes('content')
loadJobs : function() { var self = this; var timeout = this.get('loadTimeout'); var yarnService = App.YARNService.find().objectAt(0); var retryLoad = this.checkDataLoadingError(); if (yarnService != null) { this.set('loading', true); var historyServerHostName = yarnService.get('appTimelineServer.hostName'); var filtersLink = this.get('filterObject').createJobsFiltersLink(); var hiveQueriesUrl = App.testMode ? "/data/jobs/hive-queries.json" : "/proxy?url=http://" + historyServerHostName + ":" + yarnService.get('ahsWebPort') + "/ws/v1/timeline/HIVE_QUERY_ID" + filtersLink; App.ajax.send({ name: 'jobs.lastID', sender: self, data: { historyServerHostName: historyServerHostName, ahsWebPort: yarnService.get('ahsWebPort') }, success: 'lastIDSuccessCallback', error : 'lastIDErrorCallback' }), App.HttpClient.get(hiveQueriesUrl, App.hiveJobsMapper, { complete : function(data, jqXHR, textStatus) { self.set('loading', false); if(self.get('loaded') == false || self.get('resetPagination') == true){ self.initializePagination(); self.set('resetPagination', false); } self.set('loaded', true); } }, function (jqXHR, textStatus) { App.hiveJobsMapper.map({entities : []}); self.checkDataLoadingError(jqXHR); }); }else{ clearTimeout(timeout); timeout = setTimeout(function(){ self.loadJobs(); }, 300); } },
loadAlerts:function (callback) { if (this.get('isNagiosInstalled')) { var testUrl = App.get('isHadoop2Stack') ? '/data/alerts/HDP2/alerts.json':'/data/alerts/alerts.json'; var dataUrl = this.getUrl(testUrl, '/host_components?fields=HostRoles/nagios_alerts&HostRoles/component_name=NAGIOS_SERVER'); var self = this; var ajaxOptions = { dataType:"json", complete:function () { self.updateAlerts(); callback(); }, error: function(jqXHR, testStatus, error) { console.log('Nagios $.ajax() response:', error); } }; App.HttpClient.get(dataUrl, App.alertsMapper, ajaxOptions); } else { console.log("No Nagios URL provided."); callback(); } },
loadClusterData:function () { var self = this; this.loadAmbariProperties(); if (!this.get('clusterName')) { return; } if(this.get('isLoaded')) { // do not load data repeatedly return; } var clusterUrl = this.getUrl('/data/clusters/cluster.json', '?fields=Clusters'); var testHostUrl = App.get('isHadoop2Stack') ? '/data/hosts/HDP2/hosts.json':'/data/hosts/hosts.json'; var hostsUrl = this.getUrl(testHostUrl, '/hosts?fields=Hosts/host_name,Hosts/public_host_name,Hosts/disk_info,Hosts/cpu_count,Hosts/total_mem,Hosts/host_status,Hosts/last_heartbeat_time,Hosts/os_arch,Hosts/os_type,Hosts/ip,host_components,metrics/disk,metrics/load/load_one'); var usersUrl = App.testMode ? '/data/users/users.json' : App.apiPrefix + '/users/?fields=*'; var racksUrl = "/data/racks/racks.json"; var dataSetUrl = "/data/mirroring/all_datasets.json"; var targetClusterUrl = "/data/mirroring/target_clusters.json"; App.HttpClient.get(targetClusterUrl, App.targetClusterMapper, { complete: function (jqXHR, textStatus) { self.updateLoadStatus('targetclusters'); } }, function (jqXHR, textStatus) { self.updateLoadStatus('targetclusters'); }); App.HttpClient.get(dataSetUrl, App.dataSetMapper, { complete: function (jqXHR, textStatus) { self.updateLoadStatus('datasets'); } }, function (jqXHR, textStatus) { self.updateLoadStatus('datasets'); }); App.HttpClient.get(racksUrl, App.racksMapper, { complete:function (jqXHR, textStatus) { self.updateLoadStatus('racks'); } }, function (jqXHR, textStatus) { self.updateLoadStatus('racks'); }); App.HttpClient.get(clusterUrl, App.clusterMapper, { complete:function (jqXHR, textStatus) { self.updateLoadStatus('cluster'); } }, function (jqXHR, textStatus) { self.updateLoadStatus('cluster'); }); if (App.testMode) { self.updateLoadStatus('clusterStatus'); } else { App.clusterStatus.updateFromServer(true).complete(function() { self.updateLoadStatus('clusterStatus'); }); } App.HttpClient.get(hostsUrl, App.hostsMapper, { complete:function (jqXHR, textStatus) { self.updateLoadStatus('hosts'); } }, function (jqXHR, textStatus) { self.updateLoadStatus('hosts'); }); App.HttpClient.get(usersUrl, App.usersMapper, { complete:function (jqXHR, textStatus) { self.updateLoadStatus('users'); } }, function (jqXHR, textStatus) { self.updateLoadStatus('users'); }); App.router.get('updateController').updateServiceMetric(function(){ self.loadUpdatedStatus(function(){ self.updateLoadStatus('status'); }); self.updateLoadStatus('services'); }, true); this.loadAlerts(function(){ self.updateLoadStatus('alerts'); }); },