You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by yu...@apache.org on 2012/12/09 12:53:23 UTC
svn commit: r1418895 [3/5] - in /incubator/ambari/branches/AMBARI-666: ./
ambari-web/ ambari-web/app/ ambari-web/app/assets/data/alerts/
ambari-web/app/assets/data/background_operations/
ambari-web/app/assets/data/dashboard/ ambari-web/app/assets/data/...
Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/controllers/wizard/step9_controller.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/controllers/wizard/step9_controller.js?rev=1418895&r1=1418894&r2=1418895&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/controllers/wizard/step9_controller.js (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/controllers/wizard/step9_controller.js Sun Dec 9 11:53:15 2012
@@ -116,33 +116,33 @@ App.WizardStep9Controller = Em.Controlle
case 'PENDING':
return 'Preparing to install ' + task.role;
case 'QUEUED' :
- return task.role + ' is Queued for installation';
+ return task.role + ' is queued for installation';
case 'IN_PROGRESS':
return 'Installing ' + task.role;
case 'COMPLETED' :
return 'Successfully installed ' + task.role;
case 'FAILED':
- return 'Faliure in installing ' + task.role;
+ return 'Failed to install ' + task.role;
}
case 'UNINSTALL':
switch (task.status) {
case 'PENDING':
return 'Preparing to uninstall ' + task.role;
case 'QUEUED' :
- return task.role + ' is Queued for uninstallation';
+ return task.role + ' is queued for uninstallation';
case 'IN_PROGRESS':
- return 'Unnstalling ' + task.role;
+ return 'Uninstalling ' + task.role;
case 'COMPLETED' :
return 'Successfully uninstalled ' + task.role;
case 'FAILED':
- return 'Faliure in uninstalling ' + task.role;
+ return 'Failed to uninstall ' + task.role;
}
case 'START' :
switch (task.status) {
case 'PENDING':
return 'Preparing to start ' + task.role;
case 'QUEUED' :
- return task.role + ' is Queued for starting';
+ return task.role + ' is queued for starting';
case 'IN_PROGRESS':
return 'Starting ' + task.role;
case 'COMPLETED' :
@@ -153,13 +153,13 @@ App.WizardStep9Controller = Em.Controlle
case 'STOP' :
switch (task.status) {
case 'PENDING':
- return 'Preparing to stop ' + role;
+ return 'Preparing to stop ' + task.role;
case 'QUEUED' :
- return task.role + ' is Queued for stopping';
+ return task.role + ' is queued for stopping';
case 'IN_PROGRESS':
return 'Stopping ' + task.role;
case 'COMPLETED' :
- return role + ' stoped successfully';
+ return role + ' stopped successfully';
case 'FAILED':
return role + ' failed to stop';
}
@@ -168,7 +168,7 @@ App.WizardStep9Controller = Em.Controlle
case 'PENDING':
return 'Preparing to execute' + task.role;
case 'QUEUED' :
- return task.role + ' is Queued for execution';
+ return task.role + ' is queued for execution';
case 'IN_PROGRESS':
return 'Execution of ' + task.role + ' in progress';
case 'COMPLETED' :
@@ -181,7 +181,7 @@ App.WizardStep9Controller = Em.Controlle
case 'PENDING':
return 'Preparing to abort ' + task.role;
case 'QUEUED' :
- return task.role + ' is Queued for Aborting';
+ return task.role + ' is queued for aborting';
case 'IN_PROGRESS':
return 'Aborting ' + task.role;
case 'COMPLETED' :
@@ -500,7 +500,7 @@ App.WizardStep9Controller = Em.Controlle
getUrl: function () {
var clusterName = this.get('content.cluster.name');
var requestId = App.db.getClusterStatus().requestId;
- var url = '/api/clusters/' + clusterName + '/requests/' + requestId;
+ var url = '/api/clusters/' + clusterName + '/requests/' + requestId + '?fields=tasks/*';
console.log("URL for step9 is: " + url);
return url;
},
Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/data/service_components.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/data/service_components.js?rev=1418895&r1=1418894&r2=1418895&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/data/service_components.js (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/data/service_components.js Sun Dec 9 11:53:15 2012
@@ -45,7 +45,7 @@ module.exports = new Ember.Set([
{
service_name: 'HDFS',
component_name: 'HDFS_CLIENT',
- display_name: 'Hadoop Client',
+ display_name: 'HDFS Client',
isMaster: false,
isClient: true,
description: 'Client component for HDFS'
Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/initialize.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/initialize.js?rev=1418895&r1=1418894&r2=1418895&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/initialize.js (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/initialize.js Sun Dec 9 11:53:15 2012
@@ -19,8 +19,8 @@
window.App = require('app');
-//App.testMode = true;
-App.testMode = false;
+App.testMode = true;
+//App.testMode = false;
require('messages');
require('utils/data_table');
@@ -31,6 +31,11 @@ require('controllers');
require('views');
require('router');
+require('mappers/server_data_mapper');
+require('mappers/services_mapper');
+
+require('utils/http_client');
+
App.initialize();
console.log('after initialize');
Added: incubator/ambari/branches/AMBARI-666/ambari-web/app/mappers/alerts_mapper.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/mappers/alerts_mapper.js?rev=1418895&view=auto
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/mappers/alerts_mapper.js (added)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/mappers/alerts_mapper.js Sun Dec 9 11:53:15 2012
@@ -0,0 +1,35 @@
+/**
+ * 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.
+ */
+
+//todo: refactor it
+App.alertsMapper = App.ServerDataMapper.create({
+ map: function (json) {
+ if (json.alerts) {
+ $.each(json.alerts, function (i, _alert) {
+ var alert = App.store.createRecord(App.Alert, {
+ alertId: _alert.service_description,
+ title: _alert.service_description,
+ serviceType: _alert.service_type,
+ date: new Date(_alert.last_hard_state_change * 1000),
+ status: _alert.current_state,
+ message: _alert.plugin_output
+ });
+ });
+ }
+ }
+});
Added: incubator/ambari/branches/AMBARI-666/ambari-web/app/mappers/hosts_mapper.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/mappers/hosts_mapper.js?rev=1418895&view=auto
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/mappers/hosts_mapper.js (added)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/mappers/hosts_mapper.js Sun Dec 9 11:53:15 2012
@@ -0,0 +1,38 @@
+/**
+ * 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.
+ */
+
+//todo: refactor it
+App.hostsMapper = App.ServerDataMapper.create({
+ map: function (json) {
+ if (json.items) {
+ json.items.forEach(function (data) {
+ if (data.Hosts) {
+ App.store.createRecord(App.Host, {
+ id: data.Hosts.host_name,
+ hostName: data.Hosts.host_name,
+ cpuCount: data.Hosts.cpu_count,
+ totalMem: data.Hosts.total_mem,
+ osArch: data.Hosts.os_arch,
+ osType: data.Hosts.os_type,
+ ip: data.Hosts.ip
+ });
+ }
+ });
+ }
+ }
+});
Added: incubator/ambari/branches/AMBARI-666/ambari-web/app/mappers/server_data_mapper.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/mappers/server_data_mapper.js?rev=1418895&view=auto
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/mappers/server_data_mapper.js (added)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/mappers/server_data_mapper.js Sun Dec 9 11:53:15 2012
@@ -0,0 +1,45 @@
+/**
+ * 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');
+
+App.ServerDataMapper = Em.Object.extend({
+ jsonKey: false,
+ map: function (json) {
+ if (json) {
+ var model = this.get('model');
+ var jsonKey = this.get('jsonKey');
+
+ if (jsonKey && json[jsonKey]) { // if data come as { hdfs: {...} }
+ json = json[jsonKey];
+ }
+
+ $.each(json, function (field, value) {
+ model.set(field, value);
+ })
+ }
+ }
+});
+
+
+App.QuickDataMapper = App.ServerDataMapper.extend({
+ config : {},
+ map : function(json){
+ //todo: move code here
+ }
+});
Added: incubator/ambari/branches/AMBARI-666/ambari-web/app/mappers/services_mapper.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/mappers/services_mapper.js?rev=1418895&view=auto
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/mappers/services_mapper.js (added)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/mappers/services_mapper.js Sun Dec 9 11:53:15 2012
@@ -0,0 +1,116 @@
+/**
+ * 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.
+ */
+/*
+App.servicesMapper = App.ServerDataMapper.create({
+ map: function (json) {
+ if (json.items) {
+ json.items.forEach(function (data) {
+ if (data.ServiceInfo) {
+ var service = App.store.createRecord(App.Service, {
+ id: data.ServiceInfo.service_name.toLowerCase(),
+ serviceName: data.ServiceInfo.service_name.toLowerCase()
+ });
+
+ if (data.components) {
+ var components = service.get('components');
+ $.each(data.components, function (i, _component) {
+ if (_component.ServiceComponentInfo) {
+ var component = App.store.createRecord(App.ServiceComponent, {
+ id: _component.ServiceComponentInfo.component_name,
+ componentName: _component.ServiceComponentInfo.component_name
+ });
+ components.pushObject(component);
+
+ if (_component.host_components) {
+ var hostComponents = component.get('hostComponents');
+ $.each(_component.host_components, function (j, _hostComponent) {
+ var _hostRoles = _hostComponent.HostRoles;
+ var hostComponent = App.store.createRecord(App.HostComponent, {
+ hostComponentId: _hostRoles.component_name + ":" + _hostRoles.host_name,
+ host: App.Host.find(_hostRoles.host_name),
+ hostName: _hostRoles.host_name,
+ state: _hostRoles.state
+ });
+ hostComponents.pushObject(hostComponent);
+ });
+ }
+ }
+ });
+ }
+ }
+ });
+ }
+ }
+});
+*/
+App.servicesMapper = App.QuickDataMapper.create({
+ config : {
+ id : 'ServiceInfo.service_name',
+ service_name : 'ServiceInfo.service_name',
+ components_key : 'components',
+ components : {
+ id : 'ServiceComponentInfo.component_name',
+ component_name : 'ServiceComponentInfo.component_name',
+ //service_id : 'ServiceComponentInfo.service_name',
+ service_name : 'ServiceComponentInfo.service_name',
+ state: 'host_components[0].HostRoles.state',
+ host_name: 'host_components[0].HostRoles.host_name'
+ }
+ },
+ map:function(json){
+ if(json.items){
+ var result = [];
+ json.items.forEach(function(item){
+ result.push(this.parseIt(item, this.config));
+ }, this)
+
+ App.store.loadMany(App.Service1, result);
+ }
+ },
+ parseIt : function(data, config){
+ var result = {};
+ for(var i in config){
+ if(i.substr(-4) !== '_key' && typeof config[i] == 'string'){
+ result[i] = this.getJsonProperty(data, config[i]);
+ } else if(typeof config[i] == 'object'){
+ result[i] = [];
+ var _data = data[config[i+'_key']];
+ var l = _data.length;
+ for(var index = 0; index<l; index++){
+ result[i].push(this.parseIt(_data[index], config[i]));
+ }
+ }
+ }
+ return result;
+ },
+ getJsonProperty:function(json, path){
+ var pathArr = path.split('.');
+ var current = json;
+ while(pathArr.length){
+ if(pathArr[0].substr(-1) == ']'){
+ var index = parseInt(pathArr[0].substr(-2,1));
+ var attr = pathArr[0].substr(0, pathArr[0].length-3);
+ current = current[attr][index];
+ } else {
+ current = current[pathArr[0]];
+ }
+ pathArr.splice(0,1);
+ }
+ return current;
+ }
+});
Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/messages.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/messages.js?rev=1418895&r1=1418894&r2=1418895&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/messages.js (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/messages.js Sun Dec 9 11:53:15 2012
@@ -26,16 +26,16 @@ Em.I18n.translations = {
'login.loginButton': 'Sign in',
'login.error': 'Invalid username/password combination.',
- 'services.nagios.description': 'Nagios desc',
- 'services.ganglia.description': 'Ganglia desc',
- 'services.hdfs.description': 'HDFS desc',
- 'services.mapreduce.description': 'MapReduce desc',
- 'services.sqoop.description': 'Sqoop desc',
- 'services.pig.description': 'Pig desc',
- 'services.hive.description': 'Hive/HCat desc',
- 'services.oozie.description': 'Oozie desc',
+ 'services.nagios.description': 'Nagios Monitoring and Alerting system',
+ 'services.ganglia.description': 'Ganglia Metrics Collection system',
+ 'services.hdfs.description': 'Apache Hadoop Distributed File System',
+ 'services.mapreduce.description': 'Apache Hadoop Distributed Processing Framework',
+ 'services.sqoop.description': 'Tool for transferring bulk data between Apache Hadoop and structured data stores such as relational databases',
+ 'services.pig.description': 'Scripting platform for analyzing large datasets',
+ 'services.hive.description': 'Data warehouse system for ad-hoc queries & analysis of large datasets and table & storage management service',
+ 'services.oozie.description': 'System for workflow coordination and execution of Apache Hadoop jobs',
'services.zookeeper.description': 'ZooKeeper desc',
- 'services.hbase.description': 'HBase desc',
+ 'services.hbase.description': 'Non-relational distributed database and centralized service for configuration management & synchronization',
'topnav.help.href': 'http://incubator.apache.org/ambari/install.html',
@@ -57,7 +57,7 @@ Em.I18n.translations = {
'installer.step2.targetHosts.info': 'Enter a list of host names, one per line',
'installer.step2.hostPattern.tooltip.title': 'Pattern Expressions',
'installer.step2.hostPattern.tooltip.content': 'You can use pattern expressions to specify a number of target hosts. Explain brackets.',
- 'installer.step2.hostName.error.required': 'Host Names cannot be left empty',
+ 'installer.step2.hostName.error.required': 'You must specify at least one host name',
'installer.step2.hostName.error.notRequired': 'Host Names will be ignored if not using SSH to automatically configure hosts',
'installer.step2.hostName.error.invalid': 'Invalid Host Name(s) - cannot start or end with a hyphen',
'installer.step2.sshKey': 'Host Connectivity Information',
@@ -69,7 +69,7 @@ Em.I18n.translations = {
'Ambari Agent on each host in order for the wizard to perform the necessary configurations and software installs.',
'installer.step2.advancedOption': 'Advanced Options',
'installer.step2.repoConf': 'Software Repository Configuration File Path',
- 'installer.step2.localRepo.header': 'Software repository',
+ 'installer.step2.localRepo.header': 'Software Repository',
'installer.step2.localRepo.label': 'Use a local software repository',
'installer.step2.localRepo.error.required': 'Local repository file path is required',
'installer.step2.localRepo.info': 'The repository configuration file should be installed on each host in your cluster. ' +
@@ -121,9 +121,9 @@ Em.I18n.translations = {
'installer.step9.body': 'Wait to complete the cluster installation. Installing, Starting and Testing selected services',
'installer.step9.status.success': 'Successfully installed the cluster',
'installer.step9.status.failed': 'Failure in installation',
- 'installer.step9.host.status.success': 'success',
- 'installer.step9.host.status.warning': 'tolerable failures encountered',
- 'installer.step9.host.status.failed': 'failures encountered',
+ 'installer.step9.host.status.success': 'Success',
+ 'installer.step9.host.status.warning': 'Warnings encountered',
+ 'installer.step9.host.status.failed': 'Failures encountered',
'installer.step9.hostLog.popup.header': 'Tasks executed on ',
'installer.step10.header': 'Summary',
@@ -230,6 +230,9 @@ Em.I18n.translations = {
'services.add.header': 'Add Service Wizard',
+ 'host.singular': 'host',
+ 'host.plural': 'hosts',
+
'hosts.host.start.popup.header': 'Confirmation',
'hosts.host.stop.popup.header': 'Confirmation',
'hosts.host.start.popup.body': 'Are you sure?',
@@ -243,6 +246,10 @@ Em.I18n.translations = {
'hosts.cant.do.popup.header': 'Operation not allowed',
'hosts.cant.do.popup.masterList.body': 'You cannot delete this host because it is hosting following master services: {0}.',
'hosts.cant.do.popup.workingList.body': 'You cannot delete this host because following slave services are not fully stopped or decommissioned: {0}.',
+ 'hosts.assignToRack.sure': 'Sure you want to assign {0} to {1}?',
+ 'hosts.add.header': 'Add Host Wizard',
+ 'hosts.add.step2.warning': 'Hosts are already part of the cluster and will be ignored',
+ 'hosts.assignRack': 'Assign Rack',
'charts.horizon.chart.showText': 'show',
'charts.horizon.chart.hideText': 'hide',
@@ -264,9 +271,6 @@ Em.I18n.translations = {
'metric.more.network': 'Network',
'metric.more.process': 'Process',
- 'hosts.add.header': 'Add Host Wizard',
- 'hosts.add.step2.warning': 'Hosts are already part of the cluster and will be ignored',
-
'dashboard.services': 'Services',
'dashboard.services.hosts': 'Hosts',
'dashboard.services.uptime': '{0} days {1} hrs {2} mins',
@@ -306,6 +310,7 @@ Em.I18n.translations = {
'dashboard.services.hbase.regionServersSummary': '{0} live / {1} total',
'dashboard.services.hbase.chart.label': 'Request Count',
+
'timeRange.presets.1hour': '1h',
'timeRange.presets.12hour': '12h',
'timeRange.presets.1day': '1d',
Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/models.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/models.js?rev=1418895&r1=1418894&r2=1418895&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/models.js (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/models.js Sun Dec 9 11:53:15 2012
@@ -35,4 +35,5 @@ require('models/rack');
require('models/job');
require('models/run');
require('models/app');
-require('models/background_operation');
\ No newline at end of file
+require('models/background_operation');
+require('models/protoRelations');
Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/models/alert.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/models/alert.js?rev=1418895&r1=1418894&r2=1418895&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/models/alert.js (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/models/alert.js Sun Dec 9 11:53:15 2012
@@ -28,13 +28,13 @@ App.AlertStatus = {
* which comes back from NAGIOS server.
*/
App.Alert = DS.Model.extend({
- title: DS.attr('string', {key: 'service_description'}),
- serviceType: DS.attr('string', {key: 'service_type'}),
- date: DS.attr('date', {key: 'last_hard_state_change'}),
- status: DS.attr('string', {key: 'current_state'}),
- message: DS.attr('string', {key: 'plugin_output'}),
- primaryKey: 'last_hard_state_change',
- alerts: DS.hasMany('App.Alert'),
+ alertId: DS.attr('string'),
+ title: DS.attr('string'),
+ serviceType: DS.attr('string'),
+ date: DS.attr('date'),
+ status: DS.attr('string'),
+ message: DS.attr('string'),
+ primaryKey: 'alertId',
/**
* Used to show correct icon in UI
@@ -113,104 +113,8 @@ App.Alert = DS.Model.extend({
* RESTAdapter will contact server.
*/
App.Alert.reopenClass({
- url: "http://nagiosserver/hdp/nagios/nagios_alerts.php?q1=alerts&alert_type=all"
+// url: "http://nagiosserver/hdp/nagios/nagios_alerts.php?q1=alerts&alert_type=all"
});
App.Alert.FIXTURES = [
- {
- id: 1,
- title: 'Corrupt/Missing Block',
- service_id: 1,
- date: 'August 29, 2012 17:00',
- status: 'corrupt',
- message: 'message'
- },
- {
- id: 2,
- title: 'Corrupt/Missing Block',
- service_id: 1,
- date: 'August 30, 2012 17:00',
- status: 'ok',
- message: 'message'
- },
- {
- id: 3,
- title: 'Corrupt/Missing Block',
- service_id: 2,
- date: 'August 29, 2012 17:00',
- status: 'corrupt',
- message: 'message'
- },
- {
- id: 4,
- title: 'Corrupt/Missing Block',
- service_id: 2,
- date: 'August 30, 2012 17:00',
- status: 'ok',
- message: 'message'
- },
- {
- id: 5,
- title: 'Corrupt/Missing Block',
- service_id: 3,
- date: 'August 29, 2012 17:00',
- status: 'corrupt',
- message: 'message'
- },
- {
- id: 6,
- title: 'Corrupt/Missing Block',
- service_id: 3,
- date: 'August 30, 2012 17:00',
- status: 'ok',
- message: 'message'
- },
- {
- id: 7,
- title: 'Corrupt/Missing Block',
- service_id: 4,
- date: 'August 29, 2012 17:00',
- status: 'corrupt',
- message: 'message'
- },
- {
- id: 8,
- title: 'Corrupt/Missing Block',
- service_id: 4,
- date: 'August 30, 2012 17:00',
- status: 'ok',
- message: 'message'
- },
- {
- id: 9,
- title: 'Corrupt/Missing Block',
- service_id: 5,
- date: 'August 29, 2012 17:00',
- status: 'corrupt',
- message: 'message'
- },
- {
- id: 10,
- title: 'Corrupt/Missing Block',
- service_id: 5,
- date: 'August 30, 2012 17:00',
- status: 'ok',
- message: 'message'
- },
- {
- id: 11,
- title: 'Corrupt/Missing Block',
- service_id: 6,
- date: 'August 29, 2012 17:00',
- status: 'corrupt',
- message: 'message'
- },
- {
- id: 12,
- title: 'Corrupt/Missing Block',
- service_id: 6,
- date: 'August 30, 2012 17:00',
- status: 'ok',
- message: 'message'
- }
];
Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/models/app.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/models/app.js?rev=1418895&r1=1418894&r2=1418895&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/models/app.js (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/models/app.js Sun Dec 9 11:53:15 2012
@@ -25,13 +25,7 @@ App.App = DS.Model.extend({
numJobsTotal: DS.attr('number'),
userName: DS.attr('string'),
executionTime: DS.attr('string'),
- runs: DS.hasMany('App.Run'),
- isRunning: function () {
- if (!this.get('isLoaded')) {
- return false;
- }
- return this.get('runs').someProperty('isRunning', true);
- }.property('runs.@each.isRunning')
+ runs: DS.hasMany('App.Run')
});
App.App.FIXTURES = [
Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/models/job.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/models/job.js?rev=1418895&r1=1418894&r2=1418895&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/models/job.js (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/models/job.js Sun Dec 9 11:53:15 2012
@@ -19,6 +19,7 @@
var App = require('app');
var date = require('utils/date');
+var misc = require('utils/misc');
App.Job = DS.Model.extend({
jobId:DS.attr('string'),
@@ -51,7 +52,21 @@ App.Job = DS.Model.extend({
return date.dateFormatInterval(parseInt((parseInt(this.get('finishTime')) - parseInt(this.get('launchTime')))/1000));
}.property('launchTime', 'finishTime'),
jobTimeline:DS.attr('string'),
- jobTaskview:DS.attr('string')
+ jobTaskview:DS.attr('string'),
+ /**
+ * Sum of input bandwidth for all jobs with appropriate measure
+ */
+ inputFormatted: function () {
+ var input = this.get('input');
+ return misc.formatBandwidth(input);
+ }.property('input'),
+ /**
+ * Sum of output bandwidth for all jobs with appropriate measure
+ */
+ outputFormatted: function () {
+ var output = this.get('output');
+ return misc.formatBandwidth(output);
+ }.property('output')
});
App.Job.FIXTURES = [
@@ -83,8 +98,8 @@ App.Job.FIXTURES = [
job_counters:null,
job_timeline:'[[{"x":0,"y":0},{"x":1,"y":0},{"x":2,"y":0},{"x":3,"y":0},{"x":4,"y":0},{"x":5,"y":0},{"x":6,"y":0},{"x":7,"y":0},{"x":8,"y":0},{"x":9,"y":0},{"x":10,"y":0},{"x":11,"y":0},{"x":12,"y":0},{"x":13,"y":0},{"x":14,"y":0},{"x":15,"y":0},{"x":16,"y":0},{"x":17,"y":0},{"x":18,"y":0},{"x":19,"y":0},{"x":20,"y":0},{"x":21,"y":0},{"x":22,"y":0},{"x":23,"y":0},{"x":24,"y":0},{"x":25,"y":0},{"x":26,"y":0},{"x":27,"y":0},{"x":28,"y":0},{"x":29,"y":0},{"x":30,"y":0},{"x":31,"y":0},{"x":32,"y":0},{"x":33,"y":0},{"x":34,"y":0},{"x":35,"y":0},{"x":36,"y":0},{"x":37,"y":0},{"x":38,"y":0},{"x":39,"y":0},{"x":40,"y":0},{"x":41,"y":0},{"x":42,"y":0},{"x":43,"y":0},{"x":44,"y":0},{"x":45,"y":0},{"x":46,"y":0},{"x":47,"y":0},{"x":48,"y":0},{"x":49,"y":0},{"x":50,"y":0},{"x":51,"y":0},{"x":52,"y":0},{"x":53,"y":0},{"x":54,"y":0},{"x":55,"y":0},{"x":56,"y":0},{"x":57,"y":0},{"x":58,"y":0},{"x":59,"y":0},{"x":60,"y":0},{"x":61,"y":0},{"x":62,"y":0},{"x":63,"y":0},{"x":64,"y":0},{"x"
:65,"y":0},{"x":66,"y":0},{"x":67,"y":0},{"x":68,"y":0},{"x":69,"y":0},{"x":70,"y":0},{"x":71,"y":0},{"x":72,"y":0},{"x":73,"y":0},{"x":74,"y":0},{"x":75,"y":0},{"x":76,"y":0},{"x":77,"y":0},{"x":78,"y":0},{"x":79,"y":0},{"x":80,"y":0},{"x":81,"y":0},{"x":82,"y":0},{"x":83,"y":0},{"x":84,"y":0},{"x":85,"y":0},{"x":86,"y":0},{"x":87,"y":0},{"x":88,"y":0},{"x":89,"y":0},{"x":90,"y":0},{"x":91,"y":0},{"x":92,"y":0},{"x":93,"y":0},{"x":94,"y":0},{"x":95,"y":0},{"x":96,"y":0},{"x":97,"y":0},{"x":98,"y":0},{"x":99,"y":0},{"x":100,"y":0},{"x":101,"y":0},{"x":102,"y":0},{"x":103,"y":0},{"x":104,"y":0},{"x":105,"y":0},{"x":106,"y":0},{"x":107,"y":0},{"x":108,"y":0},{"x":109,"y":0},{"x":110,"y":0},{"x":111,"y":0},{"x":112,"y":0},{"x":113,"y":0},{"x":114,"y":0},{"x":115,"y":0},{"x":116,"y":0},{"x":117,"y":0},{"x":118,"y":0},{"x":119,"y":0},{"x":120,"y":0},{"x":121,"y":0},{"x":122,"y":0},{"x":123,"y":0},{"x":124,"y":0},{"x":125,"y":0},{"x":126,"y":0},{"x":127,"y":0},{"x":128,"y":0},{"x"
:129,"y":0},{"x":130,"y":0},{"x":131,"y":0},{"x":132,"y":0},{"x":133,"y":0},{"x":134,"y":0},{"x":135,"y":0},{"x":136,"y":0},{"x":137,"y":0},{"x":138,"y":0},{"x":139,"y":0},{"x":140,"y":0},{"x":141,"y":0},{"x":142,"y":0},{"x":143,"y":0},{"x":144,"y":0},{"x":145,"y":2},{"x":146,"y":2},{"x":147,"y":2},{"x":148,"y":2},{"x":149,"y":2},{"x":150,"y":2},{"x":151,"y":2},{"x":152,"y":2},{"x":153,"y":2},{"x":154,"y":2},{"x":155,"y":2},{"x":156,"y":2},{"x":157,"y":2},{"x":158,"y":2},{"x":159,"y":2},{"x":160,"y":2},{"x":161,"y":2},{"x":162,"y":2},{"x":163,"y":2},{"x":164,"y":2},{"x":165,"y":2},{"x":166,"y":2},{"x":167,"y":2},{"x":168,"y":2},{"x":169,"y":2},{"x":170,"y":2},{"x":171,"y":2},{"x":172,"y":2},{"x":173,"y":2},{"x":174,"y":2},{"x":175,"y":2},{"x":176,"y":2},{"x":177,"y":2},{"x":178,"y":2},{"x":179,"y":2},{"x":180,"y":2},{"x":181,"y":2},{"x":182,"y":2},{"x":183,"y":2},{"x":184,"y":2},{"x":185,"y":2},{"x":186,"y":2},{"x":187,"y":2},{"x":188,"y":2},{"x":189,"y":2},{"x":190,"y":2},{
"x":191,"y":2},{"x":192,"y":2},{"x":193,"y":2},{"x":194,"y":2},{"x":195,"y":2},{"x":196,"y":2},{"x":197,"y":2},{"x":198,"y":2},{"x":199,"y":2},{"x":200,"y":2},{"x":201,"y":2},{"x":202,"y":2},{"x":203,"y":2},{"x":204,"y":2},{"x":205,"y":2},{"x":206,"y":2},{"x":207,"y":2},{"x":208,"y":2},{"x":209,"y":2},{"x":210,"y":2},{"x":211,"y":2},{"x":212,"y":2},{"x":213,"y":2},{"x":214,"y":2},{"x":215,"y":2},{"x":216,"y":2},{"x":217,"y":2},{"x":218,"y":2},{"x":219,"y":2},{"x":220,"y":2},{"x":221,"y":2},{"x":222,"y":2},{"x":223,"y":2},{"x":224,"y":2},{"x":225,"y":2},{"x":226,"y":2},{"x":227,"y":2},{"x":228,"y":2},{"x":229,"y":2},{"x":230,"y":2},{"x":231,"y":2},{"x":232,"y":2},{"x":233,"y":2},{"x":234,"y":2},{"x":235,"y":2},{"x":236,"y":2},{"x":237,"y":2},{"x":238,"y":2},{"x":239,"y":2},{"x":240,"y":2},{"x":241,"y":2},{"x":242,"y":2},{"x":243,"y":2},{"x":244,"y":2},{"x":245,"y":2},{"x":246,"y":2},{"x":247,"y":2},{"x":248,"y":2},{"x":249,"y":2},{"x":250,"y":2},{"x":251,"y":2},{"x":252,"y":2
},{"x":253,"y":2},{"x":254,"y":2},{"x":255,"y":2},{"x":256,"y":2},{"x":257,"y":2},{"x":258,"y":2},{"x":259,"y":2},{"x":260,"y":2},{"x":261,"y":2},{"x":262,"y":2},{"x":263,"y":2},{"x":264,"y":2},{"x":265,"y":2},{"x":266,"y":2},{"x":267,"y":2},{"x":268,"y":2},{"x":269,"y":2},{"x":270,"y":2},{"x":271,"y":2},{"x":272,"y":2},{"x":273,"y":2},{"x":274,"y":1},{"x":275,"y":1},{"x":276,"y":1},{"x":277,"y":1},{"x":278,"y":1},{"x":279,"y":0},{"x":280,"y":0},{"x":281,"y":0},{"x":282,"y":0},{"x":283,"y":0},{"x":284,"y":0},{"x":285,"y":0},{"x":286,"y":0},{"x":287,"y":0},{"x":288,"y":0},{"x":289,"y":0},{"x":290,"y":0},{"x":291,"y":0},{"x":292,"y":0},{"x":293,"y":0},{"x":294,"y":0},{"x":295,"y":0},{"x":296,"y":0},{"x":297,"y":0},{"x":298,"y":0},{"x":299,"y":0},{"x":300,"y":0},{"x":301,"y":0},{"x":302,"y":0},{"x":303,"y":0},{"x":304,"y":0},{"x":305,"y":0},{"x":306,"y":0},{"x":307,"y":0},{"x":308,"y":0},{"x":309,"y":0},{"x":310,"y":0},{"x":311,"y":0},{"x":312,"y":0},{"x":313,"y":0},{"x":314,"y
":0},{"x":315,"y":0},{"x":316,"y":0},{"x":317,"y":0},{"x":318,"y":0},{"x":319,"y":0},{"x":320,"y":0},{"x":321,"y":0},{"x":322,"y":0},{"x":323,"y":0},{"x":324,"y":0},{"x":325,"y":0},{"x":326,"y":0},{"x":327,"y":0},{"x":328,"y":0},{"x":329,"y":0},{"x":330,"y":0},{"x":331,"y":0},{"x":332,"y":0},{"x":333,"y":0},{"x":334,"y":0},{"x":335,"y":0},{"x":336,"y":0},{"x":337,"y":0},{"x":338,"y":0},{"x":339,"y":0},{"x":340,"y":0},{"x":341,"y":0},{"x":342,"y":0},{"x":343,"y":0},{"x":344,"y":0},{"x":345,"y":0},{"x":346,"y":0},{"x":347,"y":0},{"x":348,"y":0},{"x":349,"y":0},{"x":350,"y":0},{"x":351,"y":0},{"x":352,"y":0},{"x":353,"y":0},{"x":354,"y":0},{"x":355,"y":0},{"x":356,"y":0},{"x":357,"y":0},{"x":358,"y":0},{"x":359,"y":0},{"x":360,"y":0},{"x":361,"y":0},{"x":362,"y":0},{"x":363,"y":0},{"x":364,"y":0},{"x":365,"y":0},{"x":366,"y":0},{"x":367,"y":0},{"x":368,"y":0},{"x":369,"y":0},{"x":370,"y":0},{"x":371,"y":0},{"x":372,"y":0},{"x":373,"y":0},{"x":374,"y":0},{"x":375,"y":0},{"x":376
,"y":0},{"x":377,"y":0},{"x":378,"y":0},{"x":379,"y":0},{"x":380,"y":0},{"x":381,"y":0},{"x":382,"y":0},{"x":383,"y":0},{"x":384,"y":0},{"x":385,"y":0},{"x":386,"y":0},{"x":387,"y":0},{"x":388,"y":0},{"x":389,"y":0},{"x":390,"y":0},{"x":391,"y":0},{"x":392,"y":0},{"x":393,"y":0},{"x":394,"y":0},{"x":395,"y":0},{"x":396,"y":0},{"x":397,"y":0},{"x":398,"y":0},{"x":399,"y":0},{"x":400,"y":0},{"x":401,"y":0},{"x":402,"y":0},{"x":403,"y":0},{"x":404,"y":0},{"x":405,"y":0},{"x":406,"y":0},{"x":407,"y":0},{"x":408,"y":0},{"x":409,"y":0},{"x":410,"y":0},{"x":411,"y":0},{"x":412,"y":0},{"x":413,"y":0},{"x":414,"y":0},{"x":415,"y":0},{"x":416,"y":0},{"x":417,"y":0},{"x":418,"y":0},{"x":419,"y":0},{"x":420,"y":0},{"x":421,"y":0},{"x":422,"y":0},{"x":423,"y":0},{"x":424,"y":0},{"x":425,"y":0},{"x":426,"y":0},{"x":427,"y":0},{"x":428,"y":0},{"x":429,"y":0},{"x":430,"y":0},{"x":431,"y":0},{"x":432,"y":0},{"x":433,"y":0},{"x":434,"y":0},{"x":435,"y":0},{"x":436,"y":0},{"x":437,"y":0},{"x":
438,"y":0},{"x":439,"y":0},{"x":440,"y":0},{"x":441,"y":0},{"x":442,"y":0},{"x":443,"y":0},{"x":444,"y":0},{"x":445,"y":0},{"x":446,"y":0},{"x":447,"y":0},{"x":448,"y":0},{"x":449,"y":0},{"x":450,"y":0},{"x":451,"y":0},{"x":452,"y":0},{"x":453,"y":0},{"x":454,"y":0},{"x":455,"y":0},{"x":456,"y":0},{"x":457,"y":0},{"x":458,"y":0},{"x":459,"y":0},{"x":460,"y":0},{"x":461,"y":0},{"x":462,"y":0},{"x":463,"y":0},{"x":464,"y":0},{"x":465,"y":0},{"x":466,"y":0},{"x":467,"y":0},{"x":468,"y":0},{"x":469,"y":0},{"x":470,"y":0},{"x":471,"y":0},{"x":472,"y":0},{"x":473,"y":0},{"x":474,"y":0},{"x":475,"y":0},{"x":476,"y":0},{"x":477,"y":0},{"x":478,"y":0},{"x":479,"y":0},{"x":480,"y":0},{"x":481,"y":0},{"x":482,"y":0},{"x":483,"y":0},{"x":484,"y":0},{"x":485,"y":0},{"x":486,"y":0},{"x":487,"y":0},{"x":488,"y":0},{"x":489,"y":0},{"x":490,"y":0},{"x":491,"y":0},{"x":492,"y":0},{"x":493,"y":0},{"x":494,"y":0},{"x":495,"y":0},{"x":496,"y":0},{"x":497,"y":0},{"x":498,"y":0},{"x":499,"y":0}],[
{"x":0,"y":0},{"x":1,"y":0},{"x":2,"y":0},{"x":3,"y":0},{"x":4,"y":0},{"x":5,"y":0},{"x":6,"y":0},{"x":7,"y":0},{"x":8,"y":0},{"x":9,"y":0},{"x":10,"y":0},{"x":11,"y":0},{"x":12,"y":0},{"x":13,"y":0},{"x":14,"y":0},{"x":15,"y":0},{"x":16,"y":0},{"x":17,"y":0},{"x":18,"y":0},{"x":19,"y":0},{"x":20,"y":0},{"x":21,"y":0},{"x":22,"y":0},{"x":23,"y":0},{"x":24,"y":0},{"x":25,"y":0},{"x":26,"y":0},{"x":27,"y":0},{"x":28,"y":0},{"x":29,"y":0},{"x":30,"y":0},{"x":31,"y":0},{"x":32,"y":0},{"x":33,"y":0},{"x":34,"y":0},{"x":35,"y":0},{"x":36,"y":0},{"x":37,"y":0},{"x":38,"y":0},{"x":39,"y":0},{"x":40,"y":0},{"x":41,"y":0},{"x":42,"y":0},{"x":43,"y":0},{"x":44,"y":0},{"x":45,"y":0},{"x":46,"y":0},{"x":47,"y":0},{"x":48,"y":0},{"x":49,"y":0},{"x":50,"y":0},{"x":51,"y":0},{"x":52,"y":0},{"x":53,"y":0},{"x":54,"y":0},{"x":55,"y":0},{"x":56,"y":0},{"x":57,"y":0},{"x":58,"y":0},{"x":59,"y":0},{"x":60,"y":0},{"x":61,"y":0},{"x":62,"y":0},{"x":63,"y":0},{"x":64,"y":0},{"x":65,"y":0},{"x":66,"
y":0},{"x":67,"y":0},{"x":68,"y":0},{"x":69,"y":0},{"x":70,"y":0},{"x":71,"y":0},{"x":72,"y":0},{"x":73,"y":0},{"x":74,"y":0},{"x":75,"y":0},{"x":76,"y":0},{"x":77,"y":0},{"x":78,"y":0},{"x":79,"y":0},{"x":80,"y":0},{"x":81,"y":0},{"x":82,"y":0},{"x":83,"y":0},{"x":84,"y":0},{"x":85,"y":0},{"x":86,"y":0},{"x":87,"y":0},{"x":88,"y":0},{"x":89,"y":0},{"x":90,"y":0},{"x":91,"y":0},{"x":92,"y":0},{"x":93,"y":0},{"x":94,"y":0},{"x":95,"y":0},{"x":96,"y":0},{"x":97,"y":0},{"x":98,"y":0},{"x":99,"y":0},{"x":100,"y":0},{"x":101,"y":0},{"x":102,"y":0},{"x":103,"y":0},{"x":104,"y":0},{"x":105,"y":0},{"x":106,"y":0},{"x":107,"y":0},{"x":108,"y":0},{"x":109,"y":0},{"x":110,"y":0},{"x":111,"y":0},{"x":112,"y":0},{"x":113,"y":0},{"x":114,"y":0},{"x":115,"y":0},{"x":116,"y":0},{"x":117,"y":0},{"x":118,"y":0},{"x":119,"y":0},{"x":120,"y":0},{"x":121,"y":0},{"x":122,"y":0},{"x":123,"y":0},{"x":124,"y":0},{"x":125,"y":0},{"x":126,"y":0},{"x":127,"y":0},{"x":128,"y":0},{"x":129,"y":0},{"x":130
,"y":0},{"x":131,"y":0},{"x":132,"y":0},{"x":133,"y":0},{"x":134,"y":0},{"x":135,"y":0},{"x":136,"y":0},{"x":137,"y":0},{"x":138,"y":0},{"x":139,"y":0},{"x":140,"y":0},{"x":141,"y":0},{"x":142,"y":0},{"x":143,"y":0},{"x":144,"y":0},{"x":145,"y":0},{"x":146,"y":0},{"x":147,"y":0},{"x":148,"y":0},{"x":149,"y":0},{"x":150,"y":0},{"x":151,"y":0},{"x":152,"y":0},{"x":153,"y":0},{"x":154,"y":0},{"x":155,"y":0},{"x":156,"y":0},{"x":157,"y":0},{"x":158,"y":0},{"x":159,"y":0},{"x":160,"y":0},{"x":161,"y":0},{"x":162,"y":0},{"x":163,"y":0},{"x":164,"y":0},{"x":165,"y":0},{"x":166,"y":0},{"x":167,"y":0},{"x":168,"y":0},{"x":169,"y":0},{"x":170,"y":0},{"x":171,"y":0},{"x":172,"y":0},{"x":173,"y":0},{"x":174,"y":0},{"x":175,"y":0},{"x":176,"y":0},{"x":177,"y":0},{"x":178,"y":0},{"x":179,"y":0},{"x":180,"y":0},{"x":181,"y":0},{"x":182,"y":0},{"x":183,"y":0},{"x":184,"y":0},{"x":185,"y":0},{"x":186,"y":0},{"x":187,"y":0},{"x":188,"y":0},{"x":189,"y":0},{"x":190,"y":0},{"x":191,"y":0},{"x":
192,"y":0},{"x":193,"y":0},{"x":194,"y":0},{"x":195,"y":0},{"x":196,"y":0},{"x":197,"y":0},{"x":198,"y":0},{"x":199,"y":0},{"x":200,"y":0},{"x":201,"y":0},{"x":202,"y":0},{"x":203,"y":0},{"x":204,"y":0},{"x":205,"y":0},{"x":206,"y":0},{"x":207,"y":0},{"x":208,"y":0},{"x":209,"y":0},{"x":210,"y":0},{"x":211,"y":0},{"x":212,"y":0},{"x":213,"y":0},{"x":214,"y":0},{"x":215,"y":0},{"x":216,"y":0},{"x":217,"y":0},{"x":218,"y":0},{"x":219,"y":0},{"x":220,"y":0},{"x":221,"y":0},{"x":222,"y":0},{"x":223,"y":0},{"x":224,"y":0},{"x":225,"y":0},{"x":226,"y":0},{"x":227,"y":0},{"x":228,"y":0},{"x":229,"y":0},{"x":230,"y":0},{"x":231,"y":0},{"x":232,"y":0},{"x":233,"y":0},{"x":234,"y":0},{"x":235,"y":0},{"x":236,"y":0},{"x":237,"y":0},{"x":238,"y":0},{"x":239,"y":0},{"x":240,"y":0},{"x":241,"y":0},{"x":242,"y":0},{"x":243,"y":0},{"x":244,"y":0},{"x":245,"y":0},{"x":246,"y":0},{"x":247,"y":0},{"x":248,"y":0},{"x":249,"y":0},{"x":250,"y":0},{"x":251,"y":0},{"x":252,"y":0},{"x":253,"y":0},{"
x":254,"y":0},{"x":255,"y":0},{"x":256,"y":0},{"x":257,"y":0},{"x":258,"y":0},{"x":259,"y":0},{"x":260,"y":0},{"x":261,"y":0},{"x":262,"y":0},{"x":263,"y":0},{"x":264,"y":0},{"x":265,"y":0},{"x":266,"y":0},{"x":267,"y":0},{"x":268,"y":0},{"x":269,"y":0},{"x":270,"y":0},{"x":271,"y":0},{"x":272,"y":0},{"x":273,"y":0},{"x":274,"y":0},{"x":275,"y":0},{"x":276,"y":0},{"x":277,"y":0},{"x":278,"y":0},{"x":279,"y":0},{"x":280,"y":0},{"x":281,"y":0},{"x":282,"y":0},{"x":283,"y":0},{"x":284,"y":0},{"x":285,"y":0},{"x":286,"y":0},{"x":287,"y":0},{"x":288,"y":1},{"x":289,"y":1},{"x":290,"y":1},{"x":291,"y":1},{"x":292,"y":1},{"x":293,"y":1},{"x":294,"y":1},{"x":295,"y":1},{"x":296,"y":1},{"x":297,"y":1},{"x":298,"y":1},{"x":299,"y":1},{"x":300,"y":1},{"x":301,"y":1},{"x":302,"y":1},{"x":303,"y":1},{"x":304,"y":1},{"x":305,"y":1},{"x":306,"y":1},{"x":307,"y":1},{"x":308,"y":1},{"x":309,"y":1},{"x":310,"y":1},{"x":311,"y":1},{"x":312,"y":1},{"x":313,"y":1},{"x":314,"y":1},{"x":315,"y":1}
,{"x":316,"y":1},{"x":317,"y":1},{"x":318,"y":1},{"x":319,"y":1},{"x":320,"y":1},{"x":321,"y":1},{"x":322,"y":1},{"x":323,"y":1},{"x":324,"y":1},{"x":325,"y":1},{"x":326,"y":1},{"x":327,"y":1},{"x":328,"y":1},{"x":329,"y":1},{"x":330,"y":1},{"x":331,"y":1},{"x":332,"y":1},{"x":333,"y":1},{"x":334,"y":1},{"x":335,"y":1},{"x":336,"y":1},{"x":337,"y":1},{"x":338,"y":1},{"x":339,"y":1},{"x":340,"y":1},{"x":341,"y":1},{"x":342,"y":1},{"x":343,"y":1},{"x":344,"y":1},{"x":345,"y":1},{"x":346,"y":1},{"x":347,"y":1},{"x":348,"y":1},{"x":349,"y":1},{"x":350,"y":1},{"x":351,"y":1},{"x":352,"y":1},{"x":353,"y":1},{"x":354,"y":1},{"x":355,"y":1},{"x":356,"y":1},{"x":357,"y":1},{"x":358,"y":1},{"x":359,"y":1},{"x":360,"y":1},{"x":361,"y":1},{"x":362,"y":1},{"x":363,"y":1},{"x":364,"y":1},{"x":365,"y":1},{"x":366,"y":1},{"x":367,"y":1},{"x":368,"y":1},{"x":369,"y":1},{"x":370,"y":1},{"x":371,"y":1},{"x":372,"y":1},{"x":373,"y":1},{"x":374,"y":1},{"x":375,"y":1},{"x":376,"y":1},{"x":377,"y"
:1},{"x":378,"y":1},{"x":379,"y":1},{"x":380,"y":1},{"x":381,"y":1},{"x":382,"y":1},{"x":383,"y":1},{"x":384,"y":1},{"x":385,"y":1},{"x":386,"y":1},{"x":387,"y":1},{"x":388,"y":0},{"x":389,"y":0},{"x":390,"y":0},{"x":391,"y":0},{"x":392,"y":0},{"x":393,"y":0},{"x":394,"y":0},{"x":395,"y":0},{"x":396,"y":0},{"x":397,"y":0},{"x":398,"y":0},{"x":399,"y":0},{"x":400,"y":0},{"x":401,"y":0},{"x":402,"y":0},{"x":403,"y":0},{"x":404,"y":0},{"x":405,"y":0},{"x":406,"y":0},{"x":407,"y":0},{"x":408,"y":0},{"x":409,"y":0},{"x":410,"y":0},{"x":411,"y":0},{"x":412,"y":0},{"x":413,"y":0},{"x":414,"y":0},{"x":415,"y":0},{"x":416,"y":0},{"x":417,"y":0},{"x":418,"y":0},{"x":419,"y":0},{"x":420,"y":0},{"x":421,"y":0},{"x":422,"y":0},{"x":423,"y":0},{"x":424,"y":0},{"x":425,"y":0},{"x":426,"y":0},{"x":427,"y":0},{"x":428,"y":0},{"x":429,"y":0},{"x":430,"y":0},{"x":431,"y":0},{"x":432,"y":0},{"x":433,"y":0},{"x":434,"y":0},{"x":435,"y":0},{"x":436,"y":0},{"x":437,"y":0},{"x":438,"y":0},{"x":439,
"y":0},{"x":440,"y":0},{"x":441,"y":0},{"x":442,"y":0},{"x":443,"y":0},{"x":444,"y":0},{"x":445,"y":0},{"x":446,"y":0},{"x":447,"y":0},{"x":448,"y":0},{"x":449,"y":0},{"x":450,"y":0},{"x":451,"y":0},{"x":452,"y":0},{"x":453,"y":0},{"x":454,"y":0},{"x":455,"y":0},{"x":456,"y":0},{"x":457,"y":0},{"x":458,"y":0},{"x":459,"y":0},{"x":460,"y":0},{"x":461,"y":0},{"x":462,"y":0},{"x":463,"y":0},{"x":464,"y":0},{"x":465,"y":0},{"x":466,"y":0},{"x":467,"y":0},{"x":468,"y":0},{"x":469,"y":0},{"x":470,"y":0},{"x":471,"y":0},{"x":472,"y":0},{"x":473,"y":0},{"x":474,"y":0},{"x":475,"y":0},{"x":476,"y":0},{"x":477,"y":0},{"x":478,"y":0},{"x":479,"y":0},{"x":480,"y":0},{"x":481,"y":0},{"x":482,"y":0},{"x":483,"y":0},{"x":484,"y":0},{"x":485,"y":0},{"x":486,"y":0},{"x":487,"y":0},{"x":488,"y":0},{"x":489,"y":0},{"x":490,"y":0},{"x":491,"y":0},{"x":492,"y":0},{"x":493,"y":0},{"x":494,"y":0},{"x":495,"y":0},{"x":496,"y":0},{"x":497,"y":0},{"x":498,"y":0},{"x":499,"y":0}],[{"x":0,"y":0},{"x":1
,"y":0},{"x":2,"y":0},{"x":3,"y":0},{"x":4,"y":0},{"x":5,"y":0},{"x":6,"y":0},{"x":7,"y":0},{"x":8,"y":0},{"x":9,"y":0},{"x":10,"y":0},{"x":11,"y":0},{"x":12,"y":0},{"x":13,"y":0},{"x":14,"y":0},{"x":15,"y":0},{"x":16,"y":0},{"x":17,"y":0},{"x":18,"y":0},{"x":19,"y":0},{"x":20,"y":0},{"x":21,"y":0},{"x":22,"y":0},{"x":23,"y":0},{"x":24,"y":0},{"x":25,"y":0},{"x":26,"y":0},{"x":27,"y":0},{"x":28,"y":0},{"x":29,"y":0},{"x":30,"y":0},{"x":31,"y":0},{"x":32,"y":0},{"x":33,"y":0},{"x":34,"y":0},{"x":35,"y":0},{"x":36,"y":0},{"x":37,"y":0},{"x":38,"y":0},{"x":39,"y":0},{"x":40,"y":0},{"x":41,"y":0},{"x":42,"y":0},{"x":43,"y":0},{"x":44,"y":0},{"x":45,"y":0},{"x":46,"y":0},{"x":47,"y":0},{"x":48,"y":0},{"x":49,"y":0},{"x":50,"y":0},{"x":51,"y":0},{"x":52,"y":0},{"x":53,"y":0},{"x":54,"y":0},{"x":55,"y":0},{"x":56,"y":0},{"x":57,"y":0},{"x":58,"y":0},{"x":59,"y":0},{"x":60,"y":0},{"x":61,"y":0},{"x":62,"y":0},{"x":63,"y":0},{"x":64,"y":0},{"x":65,"y":0},{"x":66,"y":0},{"x":67,"y":0}
,{"x":68,"y":0},{"x":69,"y":0},{"x":70,"y":0},{"x":71,"y":0},{"x":72,"y":0},{"x":73,"y":0},{"x":74,"y":0},{"x":75,"y":0},{"x":76,"y":0},{"x":77,"y":0},{"x":78,"y":0},{"x":79,"y":0},{"x":80,"y":0},{"x":81,"y":0},{"x":82,"y":0},{"x":83,"y":0},{"x":84,"y":0},{"x":85,"y":0},{"x":86,"y":0},{"x":87,"y":0},{"x":88,"y":0},{"x":89,"y":0},{"x":90,"y":0},{"x":91,"y":0},{"x":92,"y":0},{"x":93,"y":0},{"x":94,"y":0},{"x":95,"y":0},{"x":96,"y":0},{"x":97,"y":0},{"x":98,"y":0},{"x":99,"y":0},{"x":100,"y":0},{"x":101,"y":0},{"x":102,"y":0},{"x":103,"y":0},{"x":104,"y":0},{"x":105,"y":0},{"x":106,"y":0},{"x":107,"y":0},{"x":108,"y":0},{"x":109,"y":0},{"x":110,"y":0},{"x":111,"y":0},{"x":112,"y":0},{"x":113,"y":0},{"x":114,"y":0},{"x":115,"y":0},{"x":116,"y":0},{"x":117,"y":0},{"x":118,"y":0},{"x":119,"y":0},{"x":120,"y":0},{"x":121,"y":0},{"x":122,"y":0},{"x":123,"y":0},{"x":124,"y":0},{"x":125,"y":0},{"x":126,"y":0},{"x":127,"y":0},{"x":128,"y":0},{"x":129,"y":0},{"x":130,"y":0},{"x":131,"y"
:0},{"x":132,"y":0},{"x":133,"y":0},{"x":134,"y":0},{"x":135,"y":0},{"x":136,"y":0},{"x":137,"y":0},{"x":138,"y":0},{"x":139,"y":0},{"x":140,"y":0},{"x":141,"y":0},{"x":142,"y":0},{"x":143,"y":0},{"x":144,"y":0},{"x":145,"y":0},{"x":146,"y":0},{"x":147,"y":0},{"x":148,"y":0},{"x":149,"y":0},{"x":150,"y":0},{"x":151,"y":0},{"x":152,"y":0},{"x":153,"y":0},{"x":154,"y":0},{"x":155,"y":0},{"x":156,"y":0},{"x":157,"y":0},{"x":158,"y":0},{"x":159,"y":0},{"x":160,"y":0},{"x":161,"y":0},{"x":162,"y":0},{"x":163,"y":0},{"x":164,"y":0},{"x":165,"y":0},{"x":166,"y":0},{"x":167,"y":0},{"x":168,"y":0},{"x":169,"y":0},{"x":170,"y":0},{"x":171,"y":0},{"x":172,"y":0},{"x":173,"y":0},{"x":174,"y":0},{"x":175,"y":0},{"x":176,"y":0},{"x":177,"y":0},{"x":178,"y":0},{"x":179,"y":0},{"x":180,"y":0},{"x":181,"y":0},{"x":182,"y":0},{"x":183,"y":0},{"x":184,"y":0},{"x":185,"y":0},{"x":186,"y":0},{"x":187,"y":0},{"x":188,"y":0},{"x":189,"y":0},{"x":190,"y":0},{"x":191,"y":0},{"x":192,"y":0},{"x":193,
"y":0},{"x":194,"y":0},{"x":195,"y":0},{"x":196,"y":0},{"x":197,"y":0},{"x":198,"y":0},{"x":199,"y":0},{"x":200,"y":0},{"x":201,"y":0},{"x":202,"y":0},{"x":203,"y":0},{"x":204,"y":0},{"x":205,"y":0},{"x":206,"y":0},{"x":207,"y":0},{"x":208,"y":0},{"x":209,"y":0},{"x":210,"y":0},{"x":211,"y":0},{"x":212,"y":0},{"x":213,"y":0},{"x":214,"y":0},{"x":215,"y":0},{"x":216,"y":0},{"x":217,"y":0},{"x":218,"y":0},{"x":219,"y":0},{"x":220,"y":0},{"x":221,"y":0},{"x":222,"y":0},{"x":223,"y":0},{"x":224,"y":0},{"x":225,"y":0},{"x":226,"y":0},{"x":227,"y":0},{"x":228,"y":0},{"x":229,"y":0},{"x":230,"y":0},{"x":231,"y":0},{"x":232,"y":0},{"x":233,"y":0},{"x":234,"y":0},{"x":235,"y":0},{"x":236,"y":0},{"x":237,"y":0},{"x":238,"y":0},{"x":239,"y":0},{"x":240,"y":0},{"x":241,"y":0},{"x":242,"y":0},{"x":243,"y":0},{"x":244,"y":0},{"x":245,"y":0},{"x":246,"y":0},{"x":247,"y":0},{"x":248,"y":0},{"x":249,"y":0},{"x":250,"y":0},{"x":251,"y":0},{"x":252,"y":0},{"x":253,"y":0},{"x":254,"y":0},{"x":2
55,"y":0},{"x":256,"y":0},{"x":257,"y":0},{"x":258,"y":0},{"x":259,"y":0},{"x":260,"y":0},{"x":261,"y":0},{"x":262,"y":0},{"x":263,"y":0},{"x":264,"y":0},{"x":265,"y":0},{"x":266,"y":0},{"x":267,"y":0},{"x":268,"y":0},{"x":269,"y":0},{"x":270,"y":0},{"x":271,"y":0},{"x":272,"y":0},{"x":273,"y":0},{"x":274,"y":0},{"x":275,"y":0},{"x":276,"y":0},{"x":277,"y":0},{"x":278,"y":0},{"x":279,"y":0},{"x":280,"y":0},{"x":281,"y":0},{"x":282,"y":0},{"x":283,"y":0},{"x":284,"y":0},{"x":285,"y":0},{"x":286,"y":0},{"x":287,"y":0},{"x":288,"y":0},{"x":289,"y":0},{"x":290,"y":0},{"x":291,"y":0},{"x":292,"y":0},{"x":293,"y":0},{"x":294,"y":0},{"x":295,"y":0},{"x":296,"y":0},{"x":297,"y":0},{"x":298,"y":0},{"x":299,"y":0},{"x":300,"y":0},{"x":301,"y":0},{"x":302,"y":0},{"x":303,"y":0},{"x":304,"y":0},{"x":305,"y":0},{"x":306,"y":0},{"x":307,"y":0},{"x":308,"y":0},{"x":309,"y":0},{"x":310,"y":0},{"x":311,"y":0},{"x":312,"y":0},{"x":313,"y":0},{"x":314,"y":0},{"x":315,"y":0},{"x":316,"y":0},{"x
":317,"y":0},{"x":318,"y":0},{"x":319,"y":0},{"x":320,"y":0},{"x":321,"y":0},{"x":322,"y":0},{"x":323,"y":0},{"x":324,"y":0},{"x":325,"y":0},{"x":326,"y":0},{"x":327,"y":0},{"x":328,"y":0},{"x":329,"y":0},{"x":330,"y":0},{"x":331,"y":0},{"x":332,"y":0},{"x":333,"y":0},{"x":334,"y":0},{"x":335,"y":0},{"x":336,"y":0},{"x":337,"y":0},{"x":338,"y":0},{"x":339,"y":0},{"x":340,"y":0},{"x":341,"y":0},{"x":342,"y":0},{"x":343,"y":0},{"x":344,"y":0},{"x":345,"y":0},{"x":346,"y":0},{"x":347,"y":0},{"x":348,"y":0},{"x":349,"y":0},{"x":350,"y":0},{"x":351,"y":0},{"x":352,"y":0},{"x":353,"y":0},{"x":354,"y":0},{"x":355,"y":0},{"x":356,"y":0},{"x":357,"y":0},{"x":358,"y":0},{"x":359,"y":0},{"x":360,"y":0},{"x":361,"y":0},{"x":362,"y":0},{"x":363,"y":0},{"x":364,"y":0},{"x":365,"y":0},{"x":366,"y":0},{"x":367,"y":0},{"x":368,"y":0},{"x":369,"y":0},{"x":370,"y":0},{"x":371,"y":0},{"x":372,"y":0},{"x":373,"y":0},{"x":374,"y":0},{"x":375,"y":0},{"x":376,"y":0},{"x":377,"y":0},{"x":378,"y":0},
{"x":379,"y":0},{"x":380,"y":0},{"x":381,"y":0},{"x":382,"y":0},{"x":383,"y":0},{"x":384,"y":0},{"x":385,"y":0},{"x":386,"y":0},{"x":387,"y":0},{"x":388,"y":1},{"x":389,"y":1},{"x":390,"y":1},{"x":391,"y":1},{"x":392,"y":1},{"x":393,"y":1},{"x":394,"y":1},{"x":395,"y":1},{"x":396,"y":1},{"x":397,"y":1},{"x":398,"y":1},{"x":399,"y":1},{"x":400,"y":1},{"x":401,"y":1},{"x":402,"y":1},{"x":403,"y":1},{"x":404,"y":1},{"x":405,"y":1},{"x":406,"y":1},{"x":407,"y":1},{"x":408,"y":1},{"x":409,"y":1},{"x":410,"y":1},{"x":411,"y":1},{"x":412,"y":1},{"x":413,"y":1},{"x":414,"y":1},{"x":415,"y":1},{"x":416,"y":1},{"x":417,"y":1},{"x":418,"y":1},{"x":419,"y":1},{"x":420,"y":1},{"x":421,"y":1},{"x":422,"y":1},{"x":423,"y":0},{"x":424,"y":0},{"x":425,"y":0},{"x":426,"y":0},{"x":427,"y":0},{"x":428,"y":0},{"x":429,"y":0},{"x":430,"y":0},{"x":431,"y":0},{"x":432,"y":0},{"x":433,"y":0},{"x":434,"y":0},{"x":435,"y":0},{"x":436,"y":0},{"x":437,"y":0},{"x":438,"y":0},{"x":439,"y":0},{"x":440,"y":
0},{"x":441,"y":0},{"x":442,"y":0},{"x":443,"y":0},{"x":444,"y":0},{"x":445,"y":0},{"x":446,"y":0},{"x":447,"y":0},{"x":448,"y":0},{"x":449,"y":0},{"x":450,"y":0},{"x":451,"y":0},{"x":452,"y":0},{"x":453,"y":0},{"x":454,"y":0},{"x":455,"y":0},{"x":456,"y":0},{"x":457,"y":0},{"x":458,"y":0},{"x":459,"y":0},{"x":460,"y":0},{"x":461,"y":0},{"x":462,"y":0},{"x":463,"y":0},{"x":464,"y":0},{"x":465,"y":0},{"x":466,"y":0},{"x":467,"y":0},{"x":468,"y":0},{"x":469,"y":0},{"x":470,"y":0},{"x":471,"y":0},{"x":472,"y":0},{"x":473,"y":0},{"x":474,"y":0},{"x":475,"y":0},{"x":476,"y":0},{"x":477,"y":0},{"x":478,"y":0},{"x":479,"y":0},{"x":480,"y":0},{"x":481,"y":0},{"x":482,"y":0},{"x":483,"y":0},{"x":484,"y":0},{"x":485,"y":0},{"x":486,"y":0},{"x":487,"y":0},{"x":488,"y":0},{"x":489,"y":0},{"x":490,"y":0},{"x":491,"y":0},{"x":492,"y":0},{"x":493,"y":0},{"x":494,"y":0},{"x":495,"y":0},{"x":496,"y":0},{"x":497,"y":0},{"x":498,"y":0},{"x":499,"y":0}]]',
[... 107 lines stripped ...]
Added: incubator/ambari/branches/AMBARI-666/ambari-web/app/models/protoRelations.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/models/protoRelations.js?rev=1418895&view=auto
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/models/protoRelations.js (added)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/models/protoRelations.js Sun Dec 9 11:53:15 2012
@@ -0,0 +1,155 @@
+/**
+ * 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');
+
+App.Service1 = DS.Model.extend({
+ //primaryKey : 'serviceName',
+ serviceName: DS.attr('string'),
+ description: DS.attr('string'),
+ components: DS.hasMany('App.Service1Component', { embedded: true }),
+
+ displayName: function() {
+ switch (this.get('serviceName').toLowerCase()) {
+ case 'hdfs':
+ return 'HDFS';
+ case 'mapreduce':
+ return 'MapReduce';
+ case 'hbase':
+ return 'HBase';
+ case 'oozie':
+ return 'Oozie';
+ case 'hive':
+ return 'Hive/HCatalog';
+ case 'zookeeper':
+ return 'ZooKeeper';
+ case 'pig':
+ return 'Pig';
+ case 'sqoop':
+ return 'Sqoop';
+ case 'templeton':
+ return 'Templeton';
+ case 'ganglia':
+ return 'Ganglia';
+ case 'nagios':
+ return 'Nagios';
+ }
+ return this.get('serviceName');
+ }.property('serviceName')
+});
+
+App.Service1.Health = {
+ live:"LIVE",
+ dead:"DEAD",
+ start:"STARTING",
+ stop:"STOPPING"
+};
+
+App.Service1Component = DS.Model.extend({
+ componentName: DS.attr('string'),
+ hostComponents: DS.hasMany('App.HostComponent1'),
+ service: DS.belongsTo('App.Service1'),
+ state : DS.attr('string'),
+ host_name : DS.attr('string'),
+
+ displayName: function() {
+ switch (this.get('componentName')) {
+ case 'NAMENODE':
+ return 'NameNode';
+ case 'SNAMENODE':
+ return 'SNameNode';
+ case 'DATANODE':
+ return 'DataNode';
+ case 'HDFS_CLIENT':
+ return 'HDFS Client';
+ case 'JOBTRACKER':
+ return 'JobTracker';
+ case 'TASKTRACKER':
+ return 'TaskTracker';
+ case 'MAPREDUCE_CLIENT':
+ return 'MapReduce Client';
+ case 'ZOOKEEPER_SERVER':
+ return 'ZooKeeper Server';
+ case 'ZOOKEEPER_CLIENT':
+ return 'ZooKeeper Client';
+ case 'HIVE_SERVER':
+ return 'Hive Server';
+ case 'HIVE_CLIENT':
+ return 'Hive Client';
+ case 'HIVE_MYSQL':
+ return 'Hive MySQL';
+ case 'HBASE_MASTER':
+ return 'HBase Master';
+ case 'HBASE_REGIONSERVER':
+ return 'RegionServer';
+ case 'HBASE_CLIENT':
+ return 'HBase Client';
+ case 'PIG_CLIENT':
+ return 'Pig Client';
+ case 'SQOOP_CLIENT':
+ return 'Sqoop Client';
+ case 'TEMPLETON_SERVER':
+ return 'Templeton Server';
+ case 'TEMPLETON_CLIENT':
+ return 'Templeton Client';
+ case 'OOZIE_SERVER':
+ return 'Oozie Server';
+ case 'OOZIE_CLIENT':
+ return 'Oozie Client';
+ case 'NAGIOS_SERVER':
+ return 'Nagios Server';
+ case 'GANGLIA_SERVER':
+ return 'Ganglia Collector';
+ case 'GANGLIA_MONITOR':
+ return 'Ganglia Monitor';
+ }
+ return this.get('componentName');
+ }.property('componentName'),
+
+ isMaster: function() {
+ switch (this.get('componentName')) {
+ case 'NAMENODE':
+ case 'SNAMENODE':
+ case 'JOBTRACKER':
+ case 'ZOOKEEPER_SERVER':
+ case 'HIVE_SERVER':
+ case 'HBASE_MASTER':
+ case 'NAGIOS_SERVER':
+ case 'GANGLIA_SERVER':
+ case 'OOZIE_SERVER':
+ case 'TEMPLETON_SERVER':
+ return true;
+ default:
+ return false;
+ }
+ return this.get('componentName');
+ }.property('componentName')
+});
+
+App.HostComponent1 = DS.Model.extend({
+ primaryKey: 'hostComponentId',
+ hostComponentId: DS.attr('string'), // component_name + host_name
+ state: DS.attr('string'),
+ host: DS.belongsTo('App.Host'),
+ hostName: DS.attr('string')
+});
+
+// A hack to allow App.<model>.find() with the DS.FixtureAdapter
+App.Service1.FIXTURES = [];
+App.Service1Component.FIXTURES = [];
+App.HostComponent1.FIXTURES = [];
Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/models/run.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/models/run.js?rev=1418895&r1=1418894&r2=1418895&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/models/run.js (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/models/run.js Sun Dec 9 11:53:15 2012
@@ -19,6 +19,7 @@
var App = require('app');
var date = require('utils/date');
+var misc = require('utils/misc');
App.Run = DS.Model.extend({
runId:DS.attr('string'),
@@ -27,22 +28,77 @@ App.Run = DS.Model.extend({
userName:DS.attr('string'),
startTime:DS.attr('string'),
lastUpdateTime:DS.attr('string'),
- numJobsTotal:DS.attr('number'),
- numJobsCompleted:DS.attr('number'),
- input: DS.attr('number'),
- output: DS.attr('number'),
appId:DS.attr('number'),
jobs:DS.hasMany('App.Job'),
+ /**
+ * Number of comleted jobs.
+ * Field calculates dynamicaly using <code>jobs</code> property
+ */
+ numJobsCompleted: function() {
+ return this.get('jobs').filterProperty('status', 'RUNNING').length;
+ }.property('jobs.@each.status'),
duration: function() {
return date.dateFormatInterval(parseInt((parseInt(this.get('lastUpdateTime')) - parseInt(this.get('startTime')))/1000));
}.property('lastUpdateTime', 'startTime'),
+ /**
+ * Status of running jobs
+ * Field calculates dynamicaly using <code>jobs</code> property
+ */
isRunning: function () {
if (!this.get('isLoaded')) {
return false;
}
- console.log('RUN: ' + this.get('id')+' '+this.get('jobs').someProperty('status', 'RUNNING'));
return this.get('jobs').someProperty('status', 'RUNNING');
}.property('jobs.@each.status'),
+ /**
+ * Sum of input bandwidth for all jobs
+ * Field calculates dynamicaly using <code>jobs</code> property
+ */
+ input: function () {
+ var sum = 0;
+ this.get('jobs').forEach(
+ function(item){
+ sum += item.get('input') || 0;
+ });
+ return sum;
+ }.property('jobs.@each.input'),
+ /**
+ * Sum of input bandwidth for all jobs with appropriate measure
+ * Field calculates dynamicaly using <code>jobs</code> property
+ */
+ inputFormatted: function () {
+ var input = this.get('input');
+ input = misc.formatBandwidth(input);
+ return input;
+ }.property('input'),
+ /**
+ * Sum of output bandwidth for all jobs
+ * Field calculates dynamicaly using <code>jobs</code> property
+ */
+ output: function () {
+ var sum = 0;
+ this.get('jobs').forEach(
+ function(item){
+ sum += item.get('output') || 0;
+ });
+ return sum;
+ }.property('jobs.@each.output'),
+ /**
+ * Sum of output bandwidth for all jobs with appropriate measure
+ * Field calculates dynamicaly using <code>jobs</code> property
+ */
+ outputFormatted: function () {
+ var output = this.get('output');
+ output = misc.formatBandwidth(output);
+ return output;
+ }.property('output'),
+ /**
+ * Number of jobs on this run
+ * Field calculates dynamicaly using <code>jobs</code> property
+ */
+ numJobsTotal: function() {
+ return this.get('jobs.content').length;
+ }.property('jobs'),
lastUpdateTimeFormatted: function() {
return date.dateFormat(this.get('lastUpdateTime'));
}.property('lastUpdateTime')
@@ -57,10 +113,6 @@ App.Run.FIXTURES = [
user_name:'user3',
start_time:1347539541501,
last_update_time:'1347639541501',
- num_jobs_total:5,
- num_jobs_completed:0,
- input: 11,
- output: 30,
app_id:1,
jobs:[1, 2, 3, 4, 5]
},
@@ -72,10 +124,6 @@ App.Run.FIXTURES = [
user_name:'user1',
start_time:1347339951502,
last_update_time:'1347439951502',
- num_jobs_total:5,
- num_jobs_completed:2,
- input: 10,
- output: 30,
app_id:4,
jobs:[4, 5, 1, 3, 6]
},
@@ -87,10 +135,6 @@ App.Run.FIXTURES = [
user_name:'user2',
start_time:1341539841503,
last_update_time:'1341639841503',
- num_jobs_total:5,
- num_jobs_completed:0,
- input: 10,
- output: 30,
app_id:1,
jobs:[6, 7, 8, 9, 10]
},
@@ -102,10 +146,7 @@ App.Run.FIXTURES = [
user_name:'user1',
start_time:1347539591504,
last_update_time:'1347639591504',
- num_jobs_total:3,
num_jobs_completed:0,
- input: 10,
- output: 30,
app_id:2,
jobs:[8, 9, 10]
},
@@ -117,10 +158,6 @@ App.Run.FIXTURES = [
user_name:'user5',
start_time:1347531541505,
last_update_time:'1347631541505',
- num_jobs_total:3,
- num_jobs_completed:0,
- input: 10,
- output: 30,
app_id:2,
jobs:[8, 9, 10]
},
@@ -132,10 +169,6 @@ App.Run.FIXTURES = [
user_name:'user1',
start_time:1342439541506,
last_update_time:'1342639541506',
- num_jobs_total:3,
- num_jobs_completed:0,
- input: 10,
- output: 30,
app_id:2,
jobs:[8, 9, 10]
},
@@ -147,10 +180,6 @@ App.Run.FIXTURES = [
user_name:'jsmith',
start_time:1347539541507,
last_update_time:'1347639541507',
- num_jobs_total:4,
- num_jobs_completed:0,
- input: 10,
- output: 30,
app_id:4,
jobs:[1, 3, 5, 7]
},
@@ -162,10 +191,6 @@ App.Run.FIXTURES = [
user_name:'jsmith',
start_time:1347539541508,
last_update_time:'1347639541508',
- num_jobs_total:4,
- num_jobs_completed:0,
- input: 10,
- output: 30,
app_id:3,
jobs:[1, 3, 5, 7]
},
@@ -177,10 +202,6 @@ App.Run.FIXTURES = [
user_name:'user1',
start_time:1347539541509,
last_update_time:'1347639541509',
- num_jobs_total:4,
- num_jobs_completed:0,
- input: 10,
- output: 30,
app_id:3,
jobs:[1, 3, 5, 7]
},
@@ -192,10 +213,6 @@ App.Run.FIXTURES = [
user_name:'user1',
start_time:1347539541510,
last_update_time:'1347639541510',
- num_jobs_total:4,
- num_jobs_completed:0,
- input: 10,
- output: 30,
app_id:3,
jobs:[1, 3, 5, 7]
},
@@ -207,10 +224,6 @@ App.Run.FIXTURES = [
user_name:'user1',
start_time:1347539541511,
last_update_time:'1347639541511',
- num_jobs_total:4,
- num_jobs_completed:0,
- input: 10,
- output: 30,
app_id:3,
jobs:[1, 3, 5, 7]
}
Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/models/service.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/models/service.js?rev=1418895&r1=1418894&r2=1418895&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/models/service.js (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/models/service.js Sun Dec 9 11:53:15 2012
@@ -210,9 +210,10 @@ App.Service.FIXTURES = [
{
id:4,
service_name:'zookeeper',
- label:'Zookeeper',
+ label:'ZooKeeper',
health_status:App.Service.Health.stop,
work_status:false,
+ components:[1, 2, 3],
alerts:[7, 8]
},
{
@@ -221,14 +222,16 @@ App.Service.FIXTURES = [
label:'Oozie',
health_status:App.Service.Health.dead,
work_status:false,
+ components:[8],
alerts:[9, 10]
},
{
id:6,
service_name:'hive',
- label:'Hive',
+ label:'Hive + HCatalog',
health_status:App.Service.Health.dead,
work_status:false,
+ components:[5],
alerts:[11, 12]
}
];
Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/router.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/router.js?rev=1418895&r1=1418894&r2=1418895&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/router.js (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/router.js Sun Dec 9 11:53:15 2012
@@ -49,21 +49,21 @@ App.Router = Em.Router.extend({
});*/
},
-
- setInstallerCurrentStep: function (currentStep, completed) {
- App.db.setInstallerCurrentStep(currentStep, completed);
- this.set('installerController.currentStep', currentStep);
+ /**
+ * Temporary fix for getting cluster name
+ * @return {*}
+ */
+ getClusterName: function(){
+ return App.db.getClusterName();
},
+
+ /**
+ * Get current step of Installer wizard
+ * @return {*}
+ */
getInstallerCurrentStep: function () {
- var loginName = this.getLoginName();
- var currentStep = App.db.getInstallerCurrentStep();
- console.log('getInstallerCurrentStep: loginName=' + loginName + ", currentStep=" + currentStep);
- if (!currentStep) {
- currentStep = '1';
- }
- console.log('returning currentStep=' + currentStep);
- return currentStep;
+ return this.getWizardCurrentStep('installer');
},
/**
Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/routes/add_host_routes.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/routes/add_host_routes.js?rev=1418895&r1=1418894&r2=1418895&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/routes/add_host_routes.js (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/routes/add_host_routes.js Sun Dec 9 11:53:15 2012
@@ -24,7 +24,6 @@ module.exports = Em.Route.extend({
Ember.run.next(function () {
var addHostController = router.get('addHostController');
- addHostController.loadAllPriorSteps();
router.transitionTo('step' + addHostController.get('currentStep'));
});
Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/routes/add_service_routes.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/routes/add_service_routes.js?rev=1418895&r1=1418894&r2=1418895&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/routes/add_service_routes.js (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/routes/add_service_routes.js Sun Dec 9 11:53:15 2012
@@ -24,7 +24,6 @@ module.exports = Em.Route.extend({
Ember.run.next(function () {
var addServiceController = router.get('addServiceController');
- addServiceController.loadAllPriorSteps();
router.transitionTo('step' + addServiceController.get('currentStep'));
});
Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/routes/installer.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/routes/installer.js?rev=1418895&r1=1418894&r2=1418895&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/routes/installer.js (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/routes/installer.js Sun Dec 9 11:53:15 2012
@@ -28,10 +28,12 @@ module.exports = Em.Route.extend({
if (router.getAuthenticated()) {
router.get('mainController').stopLoadOperationsPeriodically();
console.log('In installer with successful authenticated');
- // router.loadAllPriorSteps(router.getInstallerCurrentStep());
+
Ember.run.next(function () {
- router.transitionTo('step' + router.getInstallerCurrentStep());
+ var installerController = router.get('installerController');
+ router.transitionTo('step' + installerController.get('currentStep'));
});
+
} else {
console.log('In installer but its not authenticated');
console.log('value of authenticated is: ' + router.getAuthenticated());
@@ -49,7 +51,9 @@ module.exports = Em.Route.extend({
this._super(router, event);
} else {
router.set('backBtnForHigherStep', true);
- router.transitionTo('step' + router.getInstallerCurrentStep());
+
+ var installerController = router.get('installerController');
+ router.transitionTo('step' + installerController.get('currentStep'));
}
},
@@ -63,7 +67,7 @@ module.exports = Em.Route.extend({
connectOutlets: function (router) {
console.log('in installer.step1:connectOutlets');
var controller = router.get('installerController');
- router.setInstallerCurrentStep('1', false);
+ controller.setCurrentStep('1', false);
controller.loadAllPriorSteps();
controller.connectOutlet('wizardStep1', controller.get('content'));
},
@@ -81,10 +85,9 @@ module.exports = Em.Route.extend({
route: '/step2',
connectOutlets: function (router, context) {
router.setNavigationFlow('step2');
- var controller = router.get('installerController');
- router.setInstallerCurrentStep('2', false);
var controller = router.get('installerController');
+ controller.setCurrentStep('2', false);
controller.loadAllPriorSteps();
controller.connectOutlet('wizardStep2', controller.get('content.hosts'));
},
@@ -118,7 +121,7 @@ module.exports = Em.Route.extend({
connectOutlets: function (router) {
console.log('in installer.step3:connectOutlets');
var controller = router.get('installerController');
- router.setInstallerCurrentStep('3', false);
+ controller.setCurrentStep('3', false);
controller.loadAllPriorSteps();
controller.connectOutlet('wizardStep3', controller.get('content'));
},
@@ -149,8 +152,8 @@ module.exports = Em.Route.extend({
route: '/step4',
connectOutlets: function (router, context) {
router.setNavigationFlow('step4');
- router.setInstallerCurrentStep('4', false);
var controller = router.get('installerController');
+ controller.setCurrentStep('4', false);
controller.loadAllPriorSteps();
controller.loadServices();
controller.connectOutlet('wizardStep4', controller.get('content.services'));
@@ -173,8 +176,9 @@ module.exports = Em.Route.extend({
route: '/step5',
connectOutlets: function (router, context) {
router.setNavigationFlow('step5');
- router.setInstallerCurrentStep('5', false);
+
var controller = router.get('installerController');
+ controller.setCurrentStep('5', false);
controller.loadAllPriorSteps();
controller.connectOutlet('wizardStep5', controller.get('content'));
},
@@ -193,8 +197,9 @@ module.exports = Em.Route.extend({
route: '/step6',
connectOutlets: function (router, context) {
router.setNavigationFlow('step6');
- router.setInstallerCurrentStep('6', false);
+
var controller = router.get('installerController');
+ controller.setCurrentStep('6', false);
controller.loadAllPriorSteps();
controller.connectOutlet('wizardStep6', controller.get('content'));
},
@@ -217,7 +222,7 @@ module.exports = Em.Route.extend({
route: '/step7',
connectOutlets: function (router, context) {
var controller = router.get('installerController');
- router.setInstallerCurrentStep('7', false);
+ controller.setCurrentStep('7', false);
controller.loadAllPriorSteps();
controller.connectOutlet('wizardStep7', controller.get('content'));
},
@@ -235,7 +240,7 @@ module.exports = Em.Route.extend({
connectOutlets: function (router, context) {
console.log('in installer.step8:connectOutlets');
var controller = router.get('installerController');
- router.setInstallerCurrentStep('8', false);
+ controller.setCurrentStep('8', false);
controller.loadAllPriorSteps();
controller.connectOutlet('wizardStep8', controller.get('content'));
},
@@ -254,7 +259,7 @@ module.exports = Em.Route.extend({
connectOutlets: function (router, context) {
console.log('in installer.step9:connectOutlets');
var controller = router.get('installerController');
- router.setInstallerCurrentStep('9', false);
+ controller.setCurrentStep('9', false);
controller.loadAllPriorSteps();
if (!App.testMode) { //if test mode is ON don't disable prior steps link.
controller.setLowerStepsDisable(9);
@@ -262,7 +267,7 @@ module.exports = Em.Route.extend({
controller.connectOutlet('wizardStep9', controller.get('content'));
},
back: Em.Router.transitionTo('step8'),
- retry: function (router, context) {
+ retry: function (router) {
var installerController = router.get('installerController');
var wizardStep9Controller = router.get('wizardStep9Controller');
installerController.installServices();
@@ -282,16 +287,17 @@ module.exports = Em.Route.extend({
connectOutlets: function (router, context) {
console.log('in installer.step10:connectOutlets');
var controller = router.get('installerController');
- router.setInstallerCurrentStep('10', false);
+ controller.setCurrentStep('10', false);
controller.loadAllPriorSteps();
controller.connectOutlet('wizardStep10',controller.get('content'));
},
back: Em.Router.transitionTo('step9'),
complete: function (router, context) {
if (true) { // this function will be moved to installerController where it will validate
- router.setInstallerCurrentStep('1', true);
+ var controller = router.get('installerController');
+ controller.setCurrentStep('1', false);
router.setSection('main');
- router.transitionTo('main');
+ router.transitionTo('main.index');
} else {
console.log('cluster installation failure');
}
Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/routes/main.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/routes/main.js?rev=1418895&r1=1418894&r2=1418895&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/routes/main.js (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/routes/main.js Sun Dec 9 11:53:15 2012
@@ -23,9 +23,6 @@ module.exports = Em.Route.extend({
if (router.getAuthenticated()) {
router.get('mainController').startLoadOperationsPeriodically();
// TODO: redirect to last known state
- Ember.run.next(function () {
- router.transitionTo('dashboard');
- });
} else {
Ember.run.next(function () {
router.transitionTo('login');
@@ -38,6 +35,13 @@ module.exports = Em.Route.extend({
redirectsTo:'dashboard'
}),
+ test: Em.Route.extend({
+ route: '/test',
+ connectOutlets:function (router, context) {
+ router.get('mainController').connectOutlet('mainTest');
+ }
+ }),
+
connectOutlets:function (router, context) {
router.get('applicationController').connectOutlet('main');
},
@@ -320,9 +324,6 @@ module.exports = Em.Route.extend({
service:Em.Route.extend({
route:'/:service_id',
connectOutlets:function (router, service) {
-// if (service.name == "undefined") {
-// service = App.Service.find(1);
-// }
router.get('mainServiceController').connectOutlet('mainServiceItem', service);
router.transitionTo('summary');
},
Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/styles/application.less
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/styles/application.less?rev=1418895&r1=1418894&r2=1418895&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/styles/application.less (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/styles/application.less Sun Dec 9 11:53:15 2012
@@ -212,9 +212,24 @@ h1 {
padding-left: 0;
}
#installOptions {
+ .sshKey-file-view {
+ width: 486px;
+ height: 200px;
+ overflow-y: auto;
+ border: 1px solid #ccc;
+ margin-top: 5px;
+ padding: 8px;
+ font-family: Consolas,"Liberation Mono",Courier,monospace;
+ }
+ .manual-install {
+ margin-top: 10px;
+ }
#targetHosts {
}
+ .span6{
+ min-width: 504px;
+ }
#hostConnectivity {
margin-top: 20px;
.control-group {
@@ -247,68 +262,6 @@ h1 {
#step6 .pre-scrollable {
max-height: 440px;
}
- #serviceConfig {
- .accordion-heading {
- background-color: #f0f0f0;
- }
- .accordion-group {
- margin-bottom: 20px;
- .control-group {
- margin: 10px 0;
- }
- form {
- margin-bottom: 0;
- }
- }
- .badge {
- margin-left: 4px;
- }
- .slave-component-group-menu {
- float: left;
- .nav {
- margin-bottom: 10px;
- }
- .nav li {
- position: relative;
- a {
- padding-right: 24px;
- }
- .icon-remove {
- border: 1px solid white;
- position: absolute;
- right: 7px;
- top: 10px;
- z-index: 2;
- cursor: default;
- color: #555555;
- }
- .icon-remove:hover {
- border: 1px solid grey;
- }
- }
- }
- .remove-group-error {
- display: none;
- }
- .add-slave-component-group {
- margin-bottom: 10px;
- }
- .master-host, .master-hosts, .slave-hosts {
- padding-top: 5px;
- line-height: 20px;
- }
- #attention {
- margin: 20px 0;
- }
- .retyped-password {
- margin-left: 14px;
- }
- #slave-hosts-popup {
- ul {
- list-style-type: none;
- }
- }
- }
#deploy {
#overallProgress {
}
@@ -336,6 +289,69 @@ h1 {
}
}
+#serviceConfig {
+ .accordion-heading {
+ background-color: #f0f0f0;
+ }
+ .accordion-group {
+ margin-bottom: 20px;
+ .control-group {
+ margin: 10px 0;
+ }
+ form {
+ margin-bottom: 0;
+ }
+ }
+ .badge {
+ margin-left: 4px;
+ }
+ .slave-component-group-menu {
+ float: left;
+ .nav {
+ margin-bottom: 10px;
+ }
+ .nav li {
+ position: relative;
+ a {
+ padding-right: 24px;
+ }
+ .icon-remove {
+ border: 1px solid white;
+ position: absolute;
+ right: 7px;
+ top: 10px;
+ z-index: 2;
+ cursor: default;
+ color: #555555;
+ }
+ .icon-remove:hover {
+ border: 1px solid grey;
+ }
+ }
+ }
+ .remove-group-error {
+ display: none;
+ }
+ .add-slave-component-group {
+ margin-bottom: 10px;
+ }
+ .master-host, .master-hosts, .slave-hosts {
+ padding-top: 5px;
+ line-height: 20px;
+ }
+ #attention {
+ margin: 20px 0;
+ }
+ .retyped-password {
+ margin-left: 14px;
+ }
+ #slave-hosts-popup {
+ ul {
+ list-style-type: none;
+ }
+ }
+}
+
a:focus {
outline: none;
}
@@ -491,6 +507,7 @@ a:focus {
border-collapse: collapse;
td.summary-label {
+ width: 180px;
text-align: right;
}
@@ -628,16 +645,16 @@ a:focus {
#services-menu {
.nav-list {
.tab-marker-position {
-
background-position: 6px 5px;
background-repeat: no-repeat;
list-style: none;
height: 20px;
width: 20px;
- margin-left: 0; // padding-left: 30px;
- // padding-right: 30px;
- // background-position: 12px 9px;
- // background-repeat: no-repeat;
+ margin-left: 0;
+ // padding-left: 30px;
+ // padding-right: 30px;
+ // background-position: 12px 9px;
+ // background-repeat: no-repeat;
}
.health-status-LIVE {
.tab-marker-position;
@@ -647,6 +664,9 @@ a:focus {
.tab-marker-position;
background-image: @status-dead-marker;
}
+ .health-status-undefined {
+ .tab-marker-position;
+ }
li {
line-height: 24px;
}
@@ -749,6 +769,15 @@ a:focus {
.health-status-DEAD-YELLOW {
background-image: @status-dead-yellow-marker;
}
+ .host-name-search{
+ position: relative;
+ top: 0px;
+ left: 10px;
+ }
+ .host-name-pos{
+ position: relative;
+ top: 10px;
+ }
.box-header {
.btn-group {
float: left;
@@ -766,7 +795,7 @@ a:focus {
background: #EDF5FC;
}
th, td {
- width: 130px;
+ width: 82px;
}
th.first, td.first {
width: 30px;
@@ -856,6 +885,9 @@ a:focus {
}
#host-details {
+
+ margin-top: 27px;
+
.component-operation-button{
background-color: #E5E5E5;
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#E5E5E5), to(#F1F1F1));
@@ -1580,7 +1612,7 @@ ul.inline li {
#host-details > .host-maintenance {
text-align: right;
- margin-top: -20px;
+ margin-top: -28px;
}
#host-details > .host-maintenance > div {
@@ -1626,9 +1658,8 @@ ul.inline li {
}
#step8-content {
- max-height: 570px;
+ max-height: 440px;
}
-
#step10-content {
max-height: 440px;
}
Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/styles/apps.less
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/styles/apps.less?rev=1418895&r1=1418894&r2=1418895&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/styles/apps.less (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/styles/apps.less Sun Dec 9 11:53:15 2012
@@ -5,9 +5,12 @@
.table thead th{
vertical-align:top;
}
- .avg-table td {
- text-align:center;
- border:none;
+ .avg-table {
+ background-color: #F9F9F9;
+ td {
+ text-align:center;
+ border:none;
+ }
}
td.avg-star{
border-left:1px solid #DDD;
@@ -107,9 +110,17 @@
}
#graph1 {
margin-left: 30px;
+ width: 440px;
+ #legend_container {
+ margin: 40px 0 0 20px;
+ }
}
#graph2 {
margin-right: 30px;
+ width: 500px;
+ #tasks_legend_container {
+ margin: 40px 0 0 20px;
+ }
}
tr.containerRow > td{
@@ -140,7 +151,7 @@
td .table-striped tbody
tr:nth-child(odd) td,
tr:nth-child(even) th{
- background: none;
+ background-color: none;
}
.sorting_asc { background: url(data:image/jpeg;base64,/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAZAAA/+4ADkFkb2JlAGTAAAAAAf/bAIQAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAwMDAwMDAwMDAwEBAQEBAQECAQECAgIBAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD/8AAEQgAEwATAwERAAIRAQMRAf/EAHgAAAMBAQAAAAAAAAAAAAAAAAAFCAYKAQACAQUAAAAAAAAAAAAAAAAABQMCBAYHCBAAAQUAAQMEAwAAAAAAAAAAAwECBAUGABESByExIghBMxQRAAIBAwMDAwUAAAAAAAAAAAECAwAEBRESBiExUUHhB2GBIhMU/9oADAMBAAIRAxEAPwDvA8k+Qc54sxGj32qlNi0ucrjTj/JqGlmROyJXQ2u/bOsZTmBExPd70/HXmQcW41lOX5+145h0L391KEHhR3Z28Ii6sx9AKgubiO1gaeU6Io19h9TUg/S/7eP+wia3NbBIFbuqiyn3VTCjIMArHHTJarEDGGiNU8vOKVsc7/VxBuGR3yV683X86/Cq/GpssrhP2S8emiSKRm1JS5VfyLH0WfQug7KwZR0CilWHy39++ObQTgkgeV9ux+xq9uc6U8pLfZzP6mClZpKWrvq1DilJAt4Mewh/0hRyBOsaUMoVKLvXtVU6t6+nL/HZTJYi4/rxU81tdbSu+N2Rtp7jcpB0OnUa9aoeOOVdsgDL4I1pFS+NPHmcsQ2+fw+UpLWOwwwWNVQ1kCaIcgaiONkmLGEZrDDXtcnXo5PfjC+5VybKWrWWSyF5cWbEEpJNI6kqdQSrMRqD1B9KjS2t423xoqt5AArb8
QVPRwoo4UUcKK//2Q==) no-repeat 85% 50%; }
Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/login.hbs
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/login.hbs?rev=1418895&r1=1418894&r2=1418895&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/login.hbs (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/login.hbs Sun Dec 9 11:53:15 2012
@@ -26,8 +26,6 @@
<label>{{t login.username}}</label>
{{view Ember.TextField valueBinding="loginName" class="span4"}}
<label>{{t login.password}}</label>
- {{view Ember.TextField type="password" valueBinding="password" class="span4"}}
- <div>
- <a class="btn btn-success" {{action "submit" target="controller"}}>{{t login.loginButton}}</a>
- </div>
+ {{view view.passTextField type="password" valueBinding="password" class="span4"}}
+ <button class="btn btn-success" {{action "submit" target="controller"}}>{{t login.loginButton}}</button>
</div>
Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/apps.hbs
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/apps.hbs?rev=1418895&r1=1418894&r2=1418895&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/apps.hbs (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/apps.hbs Sun Dec 9 11:53:15 2012
@@ -54,12 +54,12 @@
</tbody>
</table>
<div id="filter_info" class="row">
- <div class="span3">Show:
- <a href="javascript:void(0)" class="selected" {{action "changeViewType" target="view"}} data-view-type="all">All ({{view.content.length}})</a> |
- <a href="javascript:void(0)" {{action "changeViewType" target="view"}} data-view-type="filtered">Filtered ({{view.filtered}})</a> |
- <a href="javascript:void(0)" {{action "changeViewType" target="view"}} data-view-type="starred">Starred ({{view.staredData.count}})</a>
+ <div class="span3" id="filter_buttons">Show:
+ <a href="javascript:void(0)" class="all selected" {{action "clickViewType" target="view"}} data-view-type="all">All ({{view.content.length}})</a> |
+ <a href="javascript:void(0)" class="filtered" {{action "clickViewType" target="view"}} data-view-type="filtered">Filtered ({{view.filtered}})</a> |
+ <a href="javascript:void(0)" class="stared" {{action "clickViewType" target="view"}} data-view-type="starred">Starred ({{view.staredData.count}})</a>
</div>
- <div class="span2"><a href="#" {{action "clearFilters" target="view"}}>Clear filters</a> | <a href="#" {{action "clearStars" target="controller"}}>Clear stars</a></div>
+ <div class="span2"><a href="#" {{action "clearFilters" target="view"}}>Clear filters</a> | <a href="#" {{action "clearStars" target="view"}}>Clear stars</a></div>
</div>
<div>
</div>
@@ -78,7 +78,7 @@
<th>Run Date</th>
</tr>
<tr>
- <th></th>
+ <th>{{view view.starFilterView viewName="starFilterViewInstance"}}</th>
<th>{{view view.appidFilterView}}</th>
<th>{{view view.nameFilterView}}</th>
<th>{{view view.typeSelectView}}</th>