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 14:22:36 UTC
svn commit: r1418938 [2/3] - in
/incubator/ambari/branches/AMBARI-666/ambari-web: ./ app/
app/assets/data/apps/ app/assets/data/clusters/ app/assets/data/users/
app/controllers/ app/controllers/global/ app/controllers/main/
app/controllers/main/admin/ ...
Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/controllers/wizard/step7_controller.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/controllers/wizard/step7_controller.js?rev=1418938&r1=1418937&r2=1418938&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/controllers/wizard/step7_controller.js (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/controllers/wizard/step7_controller.js Sun Dec 9 13:22:27 2012
@@ -80,8 +80,7 @@ App.WizardStep7Controller = Em.Controlle
_config.category = 'Advanced';
_config.displayName = _config.name;
_config.defaultValue = _config.value;
- if (/\${.*}/.test(_config.value)) {
- console.log("Step7: The name that matched regex: " + _config.name);
+ if (/\${.*}/.test(_config.value) || (service.serviceName !== 'OOZIE' && service.serviceName !== 'HBASE')) {
_config.isRequired = false;
_config.value = '';
} else if(/^\s+$/.test(_config.value)){
Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/controllers/wizard/step8_controller.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/controllers/wizard/step8_controller.js?rev=1418938&r1=1418937&r2=1418938&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/controllers/wizard/step8_controller.js (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/controllers/wizard/step8_controller.js Sun Dec 9 13:22:27 2012
@@ -29,7 +29,11 @@ App.WizardStep8Controller = Em.Controlle
configMapping: require('data/config_mapping'),
selectedServices: function () {
- return this.get('content.services').filterProperty('isSelected', true);
+ var services = App.Service.find();
+ this.get('content.services').forEach(function (item) {
+ item.set('isInstalled', services.someProperty('serviceName', item.get('serviceName')));
+ });
+ return this.get('content.services').filterProperty('isSelected', true).filterProperty('isInstalled', false);
}.property('content.services').cacheable(),
clearStep: function () {
@@ -236,7 +240,7 @@ App.WizardStep8Controller = Em.Controlle
hostObj = hostObj.concat(_hosts.hosts);
}, this);
- slaveHosts = hostObj.mapProperty('hostname').uniq();
+ slaveHosts = hostObj.mapProperty('hostName').uniq();
var totalHosts = masterHosts.concat(slaveHosts).uniq();
this.set('totalHosts', totalHosts);
@@ -593,6 +597,7 @@ App.WizardStep8Controller = Em.Controlle
* Onclick handler for <code>next</code> button
*/
submit: function () {
+ debugger;
if (App.testMode) {
// App.router.send('next');
@@ -614,7 +619,11 @@ App.WizardStep8Controller = Em.Controlle
/* Following create* functions are called on submitting step8 */
createCluster: function () {
- var self = this;
+
+ if (this.get('content.cluster.isCompleted')){
+ return false;
+ }
+
var clusterName = this.get('clusterInfo').findProperty('config_name', 'cluster').config_value;
var url = '/api/clusters/' + clusterName;
$.ajax({
@@ -715,15 +724,18 @@ App.WizardStep8Controller = Em.Controlle
});
},
- registerHostsToCluster: function () {
- this.get('totalHosts').forEach(function (_hostname) {
- this.registerHostToCluster(_hostname);
- }, this);
+ registerHostsToCluster: function() {
+ var allHosts = this.get('content.hostsInfo');
+ for(var hostName in allHosts){
+ if(!allHosts[hostName].isInstalled){
+ this.registerHostToCluster(hostName);
+ }
+ }
},
- registerHostToCluster: function (hostname) {
+ registerHostToCluster: function (hostName) {
var clusterName = this.get('clusterInfo').findProperty('config_name', 'cluster').config_value;
- var url = '/api/clusters/' + clusterName + '/hosts/' + hostname;
+ var url = '/api/clusters/' + clusterName + '/hosts/' + hostName;
$.ajax({
type: 'POST',
url: url,
@@ -764,14 +776,16 @@ App.WizardStep8Controller = Em.Controlle
if (_slaveHosts.componentName !== 'CLIENT') {
slaveObj.component = _slaveHosts.componentName;
_slaveHosts.hosts.forEach(function (_slaveHost) {
- slaveObj.hostName = _slaveHost.hostname;
+ slaveObj.hostName = _slaveHost.hostName;
+ slaveObj.isInstalled = _slaveHost.isInstalled;
this.createHostComponent(slaveObj);
}, this);
} else {
this.get('content.clients').forEach(function (_client) {
slaveObj.component = _client.component_name;
_slaveHosts.hosts.forEach(function (_slaveHost) {
- slaveObj.hostName = _slaveHost.hostname;
+ slaveObj.hostName = _slaveHost.hostName;
+ slaveObj.isInstalled = _slaveHost.isInstalled;
this.createHostComponent(slaveObj);
}, this);
}, this);
@@ -787,6 +801,11 @@ App.WizardStep8Controller = Em.Controlle
},
createHostComponent: function (hostComponent) {
+ console.log(hostComponent);
+ if (hostComponent.isInstalled) {
+ return false;
+ }
+
var clusterName = this.get('clusterInfo').findProperty('config_name', 'cluster').config_value;
var url = '/api/clusters/' + clusterName + '/hosts/' + hostComponent.hostName + '/host_components/' + hostComponent.component;
@@ -814,9 +833,11 @@ App.WizardStep8Controller = Em.Controlle
createConfigurations: function () {
var selectedServices = this.get('selectedServices');
- this.createConfigSite(this.createGlobalSiteObj());
- this.createConfigSite(this.createCoreSiteObj());
- this.createConfigSite(this.createHdfsSiteObj('HDFS'));
+ if (!this.get('content.cluster.isCompleted')){
+ this.createConfigSite(this.createGlobalSiteObj());
+ this.createConfigSite(this.createCoreSiteObj());
+ this.createConfigSite(this.createHdfsSiteObj('HDFS'));
+ }
if (selectedServices.someProperty('serviceName', 'MAPREDUCE')) {
this.createConfigSite(this.createMrSiteObj('MAPREDUCE'));
}
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=1418938&r1=1418937&r2=1418938&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 13:22:27 2012
@@ -44,14 +44,13 @@ App.WizardStep9Controller = Em.Controlle
}.property('hosts.@each.status'),
navigateStep: function () {
-
- //TODO: uncomment following line after the hook up with the API call
if (this.get('content.cluster.isCompleted') === false) {
this.loadStep();
if (this.get('content.cluster.status') === 'INSTALL FAILED') {
- this.set('isStepCompleted', true);
- this.set('status', 'failed');
+ this.hosts.setEach('status', 'failed');
this.set('progress', '100');
+ this.set('isStepCompleted', true);
+ //this.set('status', 'failed');
} else if (this.get('content.cluster.status') === 'START FAILED') {
this.launchStartServices();
} else {
@@ -229,7 +228,7 @@ App.WizardStep9Controller = Em.Controlle
isStartError: false,
isCompleted: false
};
- App.router.get('installerController').saveClusterStatus(clusterStatus);
+ App.router.get(self.get('content.controllerName')).saveClusterStatus(clusterStatus);
self.startPolling();
},
@@ -242,7 +241,7 @@ App.WizardStep9Controller = Em.Controlle
isCompleted: false
};
- App.router.get('installerController').saveClusterStatus(clusterStatus);
+ App.router.get(self.get('content.controllerName')).saveClusterStatus(clusterStatus);
},
statusCode: require('data/statusCodes')
@@ -364,8 +363,8 @@ App.WizardStep9Controller = Em.Controlle
}
if (this.isSuccess(polledData)) {
clusterStatus.status = 'STARTED';
- var serviceSartTime = new Date().getTime();
- var timeToStart = Math.floor((serviceSartTime - this.get('content.cluster.installStartTime')) / 60000);
+ var serviceStartTime = new Date().getTime();
+ var timeToStart = Math.floor((serviceStartTime - this.get('content.cluster.installStartTime')) / 60000);
clusterStatus.installTime = timeToStart;
this.set('status', 'success');
} else {
@@ -375,10 +374,10 @@ App.WizardStep9Controller = Em.Controlle
this.setHostsStatus(this.getFailedHostsForFailedRoles(polledData));
}
}
- App.router.get('installerController').saveClusterStatus(clusterStatus);
+ App.router.get(this.get('content.controllerName')).saveClusterStatus(clusterStatus);
this.set('isStepCompleted', true);
this.setTasksPerHost();
- App.router.get('installerController').saveInstalledHosts(this);
+ App.router.get(this.get('content.controllerName')).saveInstalledHosts(this);
return true;
}
} else if (this.get('content.cluster.status') === 'PENDING') {
@@ -389,16 +388,13 @@ App.WizardStep9Controller = Em.Controlle
isCompleted: true,
installStartTime: this.get('content.cluster.installStartTime')
}
- var serviceSartTime = new Date().getTime();
- var timeToStart = serviceSartTime - this.get('content.cluster.installStartTime');
- console.log("STEP9: ********The time difference is = " + serviceSartTime / 60000);
if (this.isStepFailed(polledData)) {
console.log("In installation failure");
clusterStatus.status = 'INSTALL FAILED';
this.set('progress', '100');
this.set('status', 'failed');
this.setHostsStatus(this.getFailedHostsForFailedRoles(polledData), 'failed');
- App.router.get('installerController').saveClusterStatus(clusterStatus);
+ App.router.get(this.get('content.controllerName')).saveClusterStatus(clusterStatus);
this.set('isStepCompleted', true);
} else {
clusterStatus.status = 'INSTALLED';
@@ -406,7 +402,7 @@ App.WizardStep9Controller = Em.Controlle
this.launchStartServices(); //TODO: uncomment after the actual hookup
}
this.setTasksPerHost();
- App.router.get('installerController').saveInstalledHosts(this);
+ App.router.get(this.get('content.controllerName')).saveInstalledHosts(this);
return true;
}
}
@@ -459,7 +455,7 @@ App.WizardStep9Controller = Em.Controlle
totalProgress = 0;
} */
var tasksData = polledData.tasks;
- console.log("The value of tasksData is: " + tasksData);
+ console.log("The value of tasksData is: ", tasksData);
if (!tasksData) {
console.log("Step9: ERROR: NO tasks availaible to process");
}
@@ -525,7 +521,7 @@ App.WizardStep9Controller = Em.Controlle
dataType: 'text',
success: function (data) {
console.log("TRACE: In success function for the GET bootstrap call");
- console.log("TRACE: STep9 -> The value is: " + jQuery.parseJSON(data));
+ console.log("TRACE: STep9 -> The value is: ", jQuery.parseJSON(data));
var result = self.parseHostInfo(jQuery.parseJSON(data));
if (result !== true) {
window.setTimeout(function () {
Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/data/config_mapping.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/data/config_mapping.js?rev=1418938&r1=1418937&r2=1418938&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/data/config_mapping.js (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/data/config_mapping.js Sun Dec 9 13:22:27 2012
@@ -283,6 +283,7 @@ module.exports = [
"value": "<templateName[0]>",
"filename": "mapred-site.xml"
},
+ /*
{
"name": "oozie.service.StoreService.jdbc.url",
"templateName": ["oozie_data_dir"],
@@ -290,9 +291,11 @@ module.exports = [
"value": "<templateName[0]>\/<foreignKey[0]>",
"filename": "oozie-site.xml"
},
+ */
{
"name": "oozie.base.url",
"templateName": ["oozieserver_host"],
+ "foreignKey": null,
"value": "http://<templateName[0]>:11000/oozie",
"filename": "oozie-site.xml"
},
@@ -300,22 +303,32 @@ module.exports = [
{
"name": "oozie.service.JPAService.jdbc.password",
"templateName": [],
+ "foreignKey": null,
"value": " ",
"filename": "oozie-site.xml"
},
{
"name": "oozie.db.schema.name",
"templateName": [],
+ "foreignKey": null,
"value": "oozie",
"filename": "oozie-site.xml"
},
{
"name": "oozie.service.JPAService.jdbc.url",
"templateName": [],
+ "foreignKey": null,
"value": "jdbc:derby:/var/data/oozie/oozie-db;create=true",
"filename": "oozie-site.xml"
},
{
+ "name": "oozie.action.ssh.http.command.post.options",
+ "templateName": [],
+ "foreignKey": null,
+ "value": " ",
+ "filename": "oozie-site.xml"
+ },
+ {
"name": "javax.jdo.option.ConnectionURL",
"templateName": ["hive_mysql_host", "hive_database_name"],
"foreignKey": null,
Modified: 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=1418938&r1=1418937&r2=1418938&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/mappers/hosts_mapper.js (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/mappers/hosts_mapper.js Sun Dec 9 13:22:27 2012
@@ -31,15 +31,15 @@ App.hostsMapper = App.QuickDataMapper.cr
cpu : 'Hosts.cpu_count',
memory : 'Hosts.total_mem',
disk_info: 'Hosts.disk_info',
- $disk_usage: '40',
+ $disk_usage: '-',
$health_status: 'LIVE',
- $load_avg: '0.2, 1.2, 2.4',
+ $load_avg: '-',
$cpu_usage: 33,
$memory_usage: 26,
$network_usage: 36,
$io_usage: 39,
last_heart_beat_time : "Hosts.last_heartbeat_time",
- os : 'Hosts.os_arch',
+ os_arch : 'Hosts.os_arch',
os_type : 'Hosts.os_type',
ip : 'Hosts.ip'
}
Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/mappers/runs_mapper.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/mappers/runs_mapper.js?rev=1418938&r1=1418937&r2=1418938&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/mappers/runs_mapper.js (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/mappers/runs_mapper.js Sun Dec 9 13:22:27 2012
@@ -24,7 +24,7 @@ App.runsMapper = App.QuickDataMapper.cre
if(!this.get('model')) {
return;
}
- if(json.workflows) {
+ if(json && json.workflows) {
var result = [];
json.workflows.forEach(function(item) {
var o = this.parseIt(item, this.config);
@@ -41,6 +41,7 @@ App.runsMapper = App.QuickDataMapper.cre
r = r.substr(0, r.length - 1);
r += '}}';
o.workflow_context = r;
+
result.push(o);
}, this);
App.store.loadMany(this.get('model'), result);
@@ -49,7 +50,6 @@ App.runsMapper = App.QuickDataMapper.cre
config : {
id: 'workflowId',
app_name: 'workflowName',
- $type: 'Pig',
num_jobs_total: 'numJobsTotal',
num_jobs_completed: 'numJobsCompleted',
user_name:'userName',
Modified: 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=1418938&r1=1418937&r2=1418938&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/mappers/server_data_mapper.js (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/mappers/server_data_mapper.js Sun Dec 9 13:22:27 2012
@@ -95,7 +95,7 @@ App.QuickDataMapper = App.ServerDataMapp
getJsonProperty: function (json, path) {
var pathArr = path.split('.');
var current = json;
- while (pathArr.length) {
+ while (pathArr.length && current) {
if (pathArr[0].substr(-1) == ']') {
var index = parseInt(pathArr[0].substr(-2, 1));
var attr = pathArr[0].substr(0, pathArr[0].length - 3);
Modified: 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=1418938&r1=1418937&r2=1418938&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/mappers/services_mapper.js (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/mappers/services_mapper.js Sun Dec 9 13:22:27 2012
@@ -43,13 +43,13 @@ App.servicesMapper = App.QuickDataMapper
decommision_data_nodes: 'decommission_data_nodes',
capacity_used: 'nameNodeComponent.ServiceComponentInfo.CapacityUsed',
capacity_total: 'nameNodeComponent.ServiceComponentInfo.CapacityTotal',
- ///// dfsTotalBlocks: 'nameNodeComponent.host_components[0].metrics.dfs.namenode.????',
- ///// dfsCorruptBlocks: DS.attr('number'),
- ///// dfsMissingBlocks: DS.attr('number'),
- ///// dfsUnderReplicatedBlocks: DS.attr('number'),
- ///// dfsTotalFiles: DS.attr('number'),
- upgradeStatus: 'nameNodeComponent.ServiceComponentInfo.UpgradeFinalized',
- safeModeStatus: 'nameNodeComponent.ServiceComponentInfo.Safemode'
+ dfs_total_blocks: 'nameNodeComponent.host_components[0].metrics.dfs.FSNamesystem.BlocksTotal',
+ dfs_corrupt_blocks: 'nameNodeComponent.host_components[0].metrics.dfs.FSNamesystem.CorruptBlocks',
+ dfs_missing_blocks: 'nameNodeComponent.host_components[0].metrics.dfs.FSNamesystem.MissingBlocks',
+ dfs_under_replicated_blocks: 'nameNodeComponent.host_components[0].metrics.dfs.FSNamesystem.UnderReplicatedBlocks',
+ dfs_total_files: 'nameNodeComponent.host_components[0].metrics.dfs.FSNamesystem.FilesTotal',
+ upgrade_status: 'nameNodeComponent.ServiceComponentInfo.UpgradeFinalized',
+ safe_mode_status: 'nameNodeComponent.ServiceComponentInfo.Safemode'
},
mapReduceConfig: {
@@ -63,17 +63,18 @@ App.servicesMapper = App.QuickDataMapper
black_list_trackers: 'black_list_trackers',
gray_list_trackers: 'gray_list_trackers',
map_slots: 'map_slots',
- reduce_slots: 'reduce_slots'
-// jobsSubmitted: DS.attr('number'),
-// jobsCompleted: DS.attr('number'),
-// mapSlotsOccupied: DS.attr('number'),
-// mapSlotsReserved: DS.attr('number'),
-// reduceSlotsOccupied: DS.attr('number'),
-// reduceSlotsReserved: DS.attr('number'),
-// mapsRunning: DS.attr('number'),
-// mapsWaiting: DS.attr('number'),
-// reducesRunning: DS.attr('number'),
-// reducesWaiting: DS.attr('number')
+ reduce_slots: 'reduce_slots',
+ jobs_submitted: 'jobTrackerComponent.host_components[0].metrics.mapred.jobtracker.jobs_submitted',
+ jobs_completed: 'jobTrackerComponent.host_components[0].metrics.mapred.jobtracker.jobs_completed',
+ map_slots_occupied: 'jobTrackerComponent.host_components[0].metrics.mapred.jobtracker.occupied_map_slots',
+ map_slots_reserved: 'jobTrackerComponent.host_components[0].metrics.mapred.jobtracker.reserved_map_slots',
+ reduce_slots_occupied: 'jobTrackerComponent.host_components[0].metrics.mapred.jobtracker.occupied_reduce_slots',
+ reduce_slots_reserved: 'jobTrackerComponent.host_components[0].metrics.mapred.jobtracker.reserved_reduce_slots',
+ maps_running: 'jobTrackerComponent.host_components[0].metrics.mapred.jobtracker.running_maps',
+ maps_waiting: 'jobTrackerComponent.host_components[0].metrics.mapred.jobtracker.waiting_maps',
+ reduces_running: 'jobTrackerComponent.host_components[0].metrics.mapred.jobtracker.running_reduces',
+ reduces_waiting: 'jobTrackerComponent.host_components[0].metrics.mapred.jobtracker.waiting_reduces',
+ trackers_decommisioned: 'jobTrackerComponent.host_components[0].metrics.mapred.jobtracker.trackers_decommissioned'
},
model2: App.Component,
@@ -149,23 +150,29 @@ App.servicesMapper = App.QuickDataMapper
item.alive_trackers = [];
item.gray_list_trackers = [];
item.black_list_trackers = [];
- liveNodesJson.forEach(function(nj){
- item.alive_trackers.push(nj.hostname);
- if(nj.slots && nj.slots.map_slots)
- item.map_slots += nj.slots.map_slots;
- if(nj.slots && nj.slots.map_slots_used)
- item.map_slots_used += nj.slots.map_slots_used;
- if(nj.slots && nj.slots.reduce_slots)
- item.reduce_slots += nj.slots.reduce_slots;
- if(nj.slots && nj.slots.reduce_slots_used)
- item.reduce_slots_used += nj.slots.reduce_slots_used;
- });
- grayNodesJson.forEach(function(nj){
- item.gray_list_trackers.push(nj.hostname);
- });
- blackNodesJson.forEach(function(nj){
- item.black_list_trackers.push(nj.hostname);
- });
+ if (liveNodesJson != null) {
+ liveNodesJson.forEach(function(nj){
+ item.alive_trackers.push(nj.hostname);
+ if(nj.slots && nj.slots.map_slots)
+ item.map_slots += nj.slots.map_slots;
+ if(nj.slots && nj.slots.map_slots_used)
+ item.map_slots_used += nj.slots.map_slots_used;
+ if(nj.slots && nj.slots.reduce_slots)
+ item.reduce_slots += nj.slots.reduce_slots;
+ if(nj.slots && nj.slots.reduce_slots_used)
+ item.reduce_slots_used += nj.slots.reduce_slots_used;
+ });
+ }
+ if (grayNodesJson != null) {
+ grayNodesJson.forEach(function(nj){
+ item.gray_list_trackers.push(nj.hostname);
+ });
+ }
+ if (blackNodesJson != null) {
+ blackNodesJson.forEach(function(nj){
+ item.black_list_trackers.push(nj.hostname);
+ });
+ }
}
if (component.ServiceComponentInfo && component.ServiceComponentInfo.component_name == "TASKTRACKER") {
if(!item.task_trackers){
Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/mappers/users_mapper.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/mappers/users_mapper.js?rev=1418938&r1=1418937&r2=1418938&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/mappers/users_mapper.js (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/mappers/users_mapper.js Sun Dec 9 13:22:27 2012
@@ -21,7 +21,7 @@ App.usersMapper = App.QuickDataMapper.cr
model : App.User,
config : {
user_name : 'Users.user_name',
- roles : 'Users.roles'
+ roles : 'Users.roles',
+ type: 'Users.type'
}
-
});
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=1418938&r1=1418937&r2=1418938&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 13:22:27 2012
@@ -18,246 +18,254 @@
Em.I18n.translations = {
- 'app.name': 'Ambari',
+ 'app.name':'Ambari',
- 'login.header': 'Sign in',
- 'login.username': 'Username',
- 'login.password': 'Password',
- 'login.loginButton': 'Sign in',
- 'login.error': 'Invalid username/password combination.',
-
- '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': 'Non-relational distributed database and centralized service for configuration management & synchronization',
-
- 'topnav.help.href': 'http://incubator.apache.org/ambari/install.html',
-
- 'installer.header': 'Cluster Install Wizard',
- 'installer.step1.header': 'Welcome',
- 'installer.step1.body.header': 'Welcome to Apache Ambari!',
- 'installer.step1.body': 'Ambari makes it easy to install, manage, and monitor Hadoop clusters.<br>' +
+ 'login.header':'Sign in',
+ 'login.username':'Username',
+ 'login.password':'Password',
+ 'login.loginButton':'Sign in',
+ 'login.error':'Invalid username/password combination.',
+
+ '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':'Non-relational distributed database and centralized service for configuration management & synchronization',
+
+ 'topnav.help.href':'http://incubator.apache.org/ambari/install.html',
+
+ 'installer.header':'Cluster Install Wizard',
+ 'installer.step1.header':'Welcome',
+ 'installer.step1.body.header':'Welcome to Apache Ambari!',
+ 'installer.step1.body':'Ambari makes it easy to install, manage, and monitor Hadoop clusters.<br>' +
'We will walk you through the cluster installation process with this step-by-step wizard.',
- 'installer.step1.clusterName': 'Name your cluster',
- 'installer.step1.clusterName.tooltip.title': 'Cluster Name',
- 'installer.step1.clusterName.tooltip.content': 'Enter a unique cluster name. Cluster name cannot be changed later.',
- 'installer.step1.clusterName.error.required': 'Cluster Name is required',
- 'installer.step1.clusterName.error.whitespaces': 'Cluster Name cannot contain white spaces',
- 'installer.step1.clusterName.error.specialChar': 'Cluster Name cannot contain special characters',
-
- 'installer.step2.header': 'Install Options',
- 'installer.step2.body': 'Enter the list of hosts to be included in the cluster, provide your SSH key, and optionally specify a local repository.',
- 'installer.step2.targetHosts': 'Target Hosts',
- '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': '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',
- 'installer.step2.sshKey.info': 'Provide your SSH Private Key (<b>id_rsa</b> for <b>root</b>)',
- 'installer.step2.sshKey.error.required': 'SSH Private Key is required',
- 'installer.step2.passphrase.error.match': 'Passphrases do not match',
- 'installer.step2.manualInstall.label': 'Do not use SSH to automatically configure hosts ',
- 'installer.step2.manualInstall.info': 'By not using SSH to connect to the target hosts, you must manually install and start the ' +
+ 'installer.step1.clusterName':'Name your cluster',
+ 'installer.step1.clusterName.tooltip.title':'Cluster Name',
+ 'installer.step1.clusterName.tooltip.content':'Enter a unique cluster name. Cluster name cannot be changed later.',
+ 'installer.step1.clusterName.error.required':'Cluster Name is required',
+ 'installer.step1.clusterName.error.whitespaces':'Cluster Name cannot contain white spaces',
+ 'installer.step1.clusterName.error.specialChar':'Cluster Name cannot contain special characters',
+
+ 'installer.step2.header':'Install Options',
+ 'installer.step2.body':'Enter the list of hosts to be included in the cluster, provide your SSH key, and optionally specify a local repository.',
+ 'installer.step2.targetHosts':'Target Hosts',
+ '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':'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',
+ 'installer.step2.sshKey.info':'Provide your SSH Private Key (<b>id_rsa</b> for <b>root</b>)',
+ 'installer.step2.sshKey.error.required':'SSH Private Key is required',
+ 'installer.step2.passphrase.error.match':'Passphrases do not match',
+ 'installer.step2.manualInstall.label':'Do not use SSH to automatically configure hosts ',
+ 'installer.step2.manualInstall.info':'By not using SSH to connect to the target hosts, you must manually install and start the ' +
'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.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. ' +
+ 'installer.step2.advancedOption':'Advanced Options',
+ 'installer.step2.repoConf':'Software Repository Configuration File Path',
+ '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. ' +
'This file instructs the package manager to use your local software repository to retrieve software packages, instead of ' +
'downloading them from the internet.',
- 'installer.step2.localRepo.tooltip.title': 'Local Software Repository',
- 'installer.step2.localRepo.tooltip.content': 'The repository configuration file should be installed on each host ' +
+ 'installer.step2.localRepo.tooltip.title':'Local Software Repository',
+ 'installer.step2.localRepo.tooltip.content':'The repository configuration file should be installed on each host ' +
'in your cluster. This file instructs package manager to use your local' +
'software repository to retrieve software packages, instead of using the internet.',
- 'installer.step2.manualInstall.tooltip.title': 'Not Using SSH (Manual Install)',
- 'installer.step2.manualInstall.tooltip.content': 'If you do not wish Ambari to automatically configure the target hosts via SSH,' +
+ 'installer.step2.manualInstall.tooltip.title':'Not Using SSH (Manual Install)',
+ 'installer.step2.manualInstall.tooltip.content':'If you do not wish Ambari to automatically configure the target hosts via SSH,' +
' you have the option of configuring them yourself. This involves installing and starting Ambari Agent on each of your target hosts.',
- 'installer.step2.manualInstall.popup.header': 'Before You Proceed',
- 'installer.step2.manualInstall.popup.body': 'You must install Ambari Agents on each host you want to manage before you proceed. <a href="#" target="_blank">Learn more</a>',
+ 'installer.step2.manualInstall.popup.header':'Before You Proceed',
+ 'installer.step2.manualInstall.popup.body':'You must install Ambari Agents on each host you want to manage before you proceed. <a href="#" target="_blank">Learn more</a>',
- 'installer.step3.header': 'Confirm Hosts',
- 'installer.step3.body': 'Here are the results of the host discovery process.<br>' +
+ 'installer.step3.header':'Confirm Hosts',
+ 'installer.step3.body':'Here are the results of the host discovery process.<br>' +
'Please verify and remove the ones that you do not want to be part of the cluster.',
- 'installer.step3.hostLog.popup.header': 'Log file for the host',
- 'installer.step3.hostLog.popup.body': 'Placeholder for the log file',
- 'installer.step3.hosts.remove.popup.header': 'Remove Hosts',
- 'installer.step3.hosts.remove.popup.body': 'Are you sure you want to remove the selected host(s)?',
- 'installer.step3.hosts.retry.popup.header': 'Retry Host Discovery',
- 'installer.step3.hosts.retry.popup.body': 'Are you sure you want to retry discovery of the selected host(s)?',
-
- 'installer.step4.header': 'Choose Services',
- 'installer.step4.body': 'Choose which services you want to install on your cluster.<br>Note that some services have dependencies (e.g., HBase requires ZooKeeper.)',
- 'installer.step4.mapreduceCheck.popup.header': 'MapReduce Needed',
- 'installer.step4.mapreduceCheck.popup.body': 'You did not select MapReduce, but it is needed by other services you selected. We will automatically add MapReduce. Is this OK?',
- 'installer.step4.monitoringCheck.popup.header': 'Limited Functionality Warning',
- 'installer.step4.monitoringCheck.popup.body': 'You did not select Nagios and/or Ganglia. If both are not selected, monitoring and alerts will not function properly. Is this OK?',
-
- 'installer.step5.header': 'Assign Masters',
- 'installer.step5.attention': ' hosts not running master services',
- 'installer.step5.body': 'Assign master components to hosts you want to run them on.',
-
- 'installer.step6.header': 'Assign Slaves and Clients',
- 'installer.step6.body': 'Assign slave and client components to hosts you want to run them on. <br/>Client component will install ',
- 'installer.step6.error.mustSelectOne': 'You must assign at least one host to each.',
-
- 'installer.step7.header': 'Customize Services',
- 'installer.step7.body': 'We have come up with recommended configurations for the services you selected. Customize them as you see fit.',
- 'installer.step7.attentionNeeded': '<strong>Attention:</strong> Some configurations need your attention before you can proceed.',
-
- 'installer.step8.header': 'Review',
- 'installer.step8.body': 'Please review the cluster configuration before installation',
-
- 'installer.step9.header': 'Install, Start and Test',
- 'installer.step9.body': 'Please wait while the selected services are installed, started, and tested on your new cluster.',
- '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': 'Warnings encountered',
- 'installer.step9.host.status.failed': 'Failures encountered',
- 'installer.step9.hostLog.popup.header': 'Tasks executed on ',
-
- 'installer.step10.header': 'Summary',
- 'installer.step10.body': 'Here is the summary of the cluster install process.',
-
-
- 'form.create': 'Create',
- 'form.save': 'Save',
- 'form.cancel': 'Cancel',
- 'form.password': 'Password',
- 'form.passwordRetype': 'Retype Password',
- 'form.saveSuccess': 'Successfully saved.',
- 'form.saveError': 'Sorry, errors occured.',
-
- 'form.validator.invalidIp': 'Please enter valid ip address',
-
- 'admin.advanced.title': 'Advanced',
- 'admin.advanced.caution': 'This section is for advanced user only.<br/>Proceed with caution.',
- 'admin.advanced.button.uninstallIncludingData': 'Uninstall cluster including all data.',
- 'admin.advanced.button.uninstallKeepData': 'Uninstall cluster but keep data.',
+ 'installer.step3.hostLog.popup.header':'Log file for the host',
+ 'installer.step3.hostLog.popup.body':'Placeholder for the log file',
+ 'installer.step3.hosts.remove.popup.header':'Remove Hosts',
+ 'installer.step3.hosts.remove.popup.body':'Are you sure you want to remove the selected host(s)?',
+ 'installer.step3.hosts.retry.popup.header':'Retry Host Discovery',
+ 'installer.step3.hosts.retry.popup.body':'Are you sure you want to retry discovery of the selected host(s)?',
+
+ 'installer.step4.header':'Choose Services',
+ 'installer.step4.body':'Choose which services you want to install on your cluster.<br>Note that some services have dependencies (e.g., HBase requires ZooKeeper.)',
+ 'installer.step4.mapreduceCheck.popup.header':'MapReduce Needed',
+ 'installer.step4.mapreduceCheck.popup.body':'You did not select MapReduce, but it is needed by other services you selected. We will automatically add MapReduce. Is this OK?',
+ 'installer.step4.monitoringCheck.popup.header':'Limited Functionality Warning',
+ 'installer.step4.monitoringCheck.popup.body':'You did not select Nagios and/or Ganglia. If both are not selected, monitoring and alerts will not function properly. Is this OK?',
+
+ 'installer.step5.header':'Assign Masters',
+ 'installer.step5.attention':' hosts not running master services',
+ 'installer.step5.body':'Assign master components to hosts you want to run them on.',
+
+ 'installer.step6.header':'Assign Slaves and Clients',
+ 'installer.step6.body':'Assign slave and client components to hosts you want to run them on. <br/>Client component will install ',
+ 'installer.step6.error.mustSelectOne':'You must assign at least one host to each.',
+
+ 'installer.step7.header':'Customize Services',
+ 'installer.step7.body':'We have come up with recommended configurations for the services you selected. Customize them as you see fit.',
+ 'installer.step7.attentionNeeded':'<strong>Attention:</strong> Some configurations need your attention before you can proceed.',
+
+ 'installer.step8.header':'Review',
+ 'installer.step8.body':'Please review the cluster configuration before installation',
+
+ 'installer.step9.header':'Install, Start and Test',
+ 'installer.step9.body':'Please wait while the selected services are installed, started, and tested on your new cluster.',
+ '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':'Warnings encountered',
+ 'installer.step9.host.status.failed':'Failures encountered',
+ 'installer.step9.hostLog.popup.header':'Tasks executed on ',
+
+ 'installer.step10.header':'Summary',
+ 'installer.step10.body':'Here is the summary of the cluster install process.',
+
+
+ 'form.create':'Create',
+ 'form.save':'Save',
+ 'form.cancel':'Cancel',
+ 'form.password':'Password',
+ 'form.passwordRetype':'Retype Password',
+ 'form.saveSuccess':'Successfully saved.',
+ 'form.saveError':'Sorry, errors occured.',
+
+ 'form.validator.invalidIp':'Please enter valid ip address',
+
+ 'admin.advanced.title':'Advanced',
+ 'admin.advanced.caution':'This section is for advanced user only.<br/>Proceed with caution.',
+ 'admin.advanced.button.uninstallIncludingData':'Uninstall cluster including all data.',
+ 'admin.advanced.button.uninstallKeepData':'Uninstall cluster but keep data.',
- 'admin.advanced.popup.header': 'Uninstall Cluster',
+ 'admin.advanced.popup.header':'Uninstall Cluster',
/*'admin.advanced.popup.text':'Uninstall Cluster',*/
- 'admin.audit.grid.date': "Date/Time",
- 'admin.audit.grid.category': "Category",
- 'admin.audit.grid.operationName': "Operation",
- 'admin.audit.grid.performedBy': "Performed By",
- 'admin.audit.grid.service': "Category",
-
- 'admin.authentication.form.method.database': 'Use Ambari Database to authenticate users',
- 'admin.authentication.form.method.ldap': 'Use LDAP/Active Directory to authenticate',
- 'admin.authentication.form.primaryServer': 'Primary Server',
- 'admin.authentication.form.secondaryServer': 'Secondary Server',
- 'admin.authentication.form.useSsl': 'Use SSL',
- 'admin.authentication.form.bind.anonymously': "Bind Anonymously",
- 'admin.authentication.form.bind.useCrenedtials': "Use Credentials To Bind",
- 'admin.authentication.form.bindUserDN': 'Bind User DN',
- 'admin.authentication.form.searchBaseDN': 'Search Base DN',
- 'admin.authentication.form.usernameAttribute': 'Username Attribute',
-
- 'admin.authentication.form.userDN': 'User DN',
- 'admin.authentication.form.password': 'Password',
- 'admin.authentication.form.configurationTest': 'Configuration Test',
- 'admin.authentication.form.testConfiguration': 'Test Configuration',
-
- 'admin.authentication.form.test.success': 'The configuration passes the test',
- 'admin.authentication.form.test.fail': 'The configuration fails the test',
-
- 'admin.security.title': 'Kerberos Security has not been enabled on this cluster.',
- 'admin.security.button.enable': 'Enable Kerberos Security on this cluster',
-
- 'admin.users.ldapAuthentionUsed': 'LDAP Authentication is being used to authenticate users',
- 'admin.users.deleteYourselfMessage': 'You can\'t delete yourself',
- 'admin.users.addButton': 'Add User',
- 'admin.users.delete': 'delete',
- 'admin.users.edit': 'edit',
- 'admin.users.privileges': 'Admin',
- 'admin.users.password': 'Password',
- 'admin.users.passwordRetype': 'Retype Password',
- 'admin.users.username': 'Username',
-
- 'question.sure': 'Are you sure?',
-
- 'services.service.start': 'Start',
- 'services.service.stop': 'Stop',
- 'services.service.confirmation.header': 'Confirmation',
- 'services.service.confirmation.body': 'Are you sure?',
- 'services.service.summary.version': 'Version',
- 'services.service.summary.nameNode': 'NameNode Web UI',
- 'services.service.summary.nameNodeUptime': 'NameNode Uptime',
- 'services.service.summary.nameNodeHeap': 'NameNode Heap',
- 'services.service.summary.pendingUpgradeStatus': 'Upgrade Status',
- 'services.service.summary.safeModeStatus': 'Safe Mode Status',
- 'services.service.summary.dataNodes': 'DataNodes',
- 'services.service.summary.diskCapacity': 'HDFS Disk Capacity',
- 'services.service.summary.blocksTotal': 'Blocks (total)',
- 'services.service.summary.blockErrors': 'Block Errors',
- 'services.service.summary.totalFiles': 'Total Files + Dirs',
- 'services.service.summary.jobTracker': 'JobTracker',
- 'services.service.summary.jobTrackerWebUI': 'JobTracker Web UI',
- 'services.service.summary.jobTrackerUptime': 'JobTracker Uptime',
- 'services.service.summary.trackersLiveTotal': 'Trackers',
- 'services.service.summary.trackersBlacklistGraylist': 'Trackers',
- 'services.service.summary.jobTrackerHeap': 'JobTracker Heap',
- 'services.service.summary.totalSlotsCapacity': 'Total Slots Capacity',
- 'services.service.summary.totalJobs': 'Total Jobs',
- 'services.service.summary.currentSlotUtiliMaps': 'Map Slots',
- 'services.service.summary.currentSlotUtiliReduces': 'Reduce Slots',
- 'services.service.summary.tasksMaps': 'Tasks: Maps',
- 'services.service.summary.tasksReduces': 'Tasks: Reduces',
- 'services.service.summary.hbaseMaster': 'HBase Master Web UI',
- 'services.service.summary.regionServerCount': 'Region Server Count',
- 'services.service.summary.regionInTransition': 'Region In Transition',
- 'services.service.summary.masterStarted': 'Master Started',
- 'services.service.summary.masterActivated': 'Master Activated',
- 'services.service.summary.averageLoad': 'Average Load',
- 'services.service.summary.masterHeap': 'Master Heap',
- 'services.service.summary.moreStats': 'more stats here',
- 'services.service.actions.run.rebalancer': 'Run Rebalancer',
- 'services.service.actions.run.compaction': 'Run Compaction',
- 'services.service.actions.run.smoke': 'Run Smoke Test',
- 'services.service.actions.maintenance': 'Maintenance',
-
- '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?',
- 'hosts.host.stop.popup.body': 'Are you sure?',
- 'hosts.assignedToRack.popup.body': 'Are you sure?',
- 'hosts.assignedToRack.popup.header': 'Confirmation',
- 'hosts.decommission.popup.body': 'Are you sure?',
- 'hosts.decommission.popup.header': 'Confirmation',
- 'hosts.delete.popup.body': 'Are you sure?',
- 'hosts.delete.popup.header': 'Confirmation',
- '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',
- 'charts.horizon.chart.attributes.cpu': 'CPU',
- 'charts.horizon.chart.attributes.memory': 'Memory',
- 'charts.horizon.chart.attributes.network': 'Network',
- 'charts.horizon.chart.attributes.io': 'I/O',
+ 'admin.audit.grid.date':"Date/Time",
+ 'admin.audit.grid.category':"Category",
+ 'admin.audit.grid.operationName':"Operation",
+ 'admin.audit.grid.performedBy':"Performed By",
+ 'admin.audit.grid.service':"Category",
+
+ 'admin.authentication.form.method.database':'Use Ambari Database to authenticate users',
+ 'admin.authentication.form.method.ldap':'Use LDAP/Active Directory to authenticate',
+ 'admin.authentication.form.primaryServer':'Primary Server',
+ 'admin.authentication.form.secondaryServer':'Secondary Server',
+ 'admin.authentication.form.useSsl':'Use SSL',
+ 'admin.authentication.form.bind.anonymously':"Bind Anonymously",
+ 'admin.authentication.form.bind.useCrenedtials':"Use Credentials To Bind",
+ 'admin.authentication.form.bindUserDN':'Bind User DN',
+ 'admin.authentication.form.searchBaseDN':'Search Base DN',
+ 'admin.authentication.form.usernameAttribute':'Username Attribute',
+
+ 'admin.authentication.form.userDN':'User DN',
+ 'admin.authentication.form.password':'Password',
+ 'admin.authentication.form.configurationTest':'Configuration Test',
+ 'admin.authentication.form.testConfiguration':'Test Configuration',
+
+ 'admin.authentication.form.test.success':'The configuration passes the test',
+ 'admin.authentication.form.test.fail':'The configuration fails the test',
+
+ 'admin.security.title':'Kerberos Security has not been enabled on this cluster.',
+ 'admin.security.button.enable':'Enable Kerberos Security on this cluster',
+
+ 'admin.users.ldapAuthentionUsed':'LDAP Authentication is being used to authenticate users',
+ 'admin.users.delete.yourself.message':'You can\'t delete yourself',
+ 'admin.users.delete.yourself.header':'Deleting warning',
+
+ 'admin.users.delete.header':'Delete {0}',
+
+ 'admin.users.addButton':'Add Local User',
+ 'admin.users.delete':'delete',
+ 'admin.users.edit':'edit',
+ 'admin.users.privileges':'Admin',
+ 'admin.users.type':'Type',
+ 'admin.users.action':'Action',
+ 'admin.users.password':'Password',
+ 'admin.users.passwordRetype':'Retype Password',
+ 'admin.users.username':'Username',
+
+ 'question.sure':'Are you sure?',
+ 'yes':'Yes',
+ 'no':'No',
+
+ 'services.service.start':'Start',
+ 'services.service.stop':'Stop',
+ 'services.service.confirmation.header':'Confirmation',
+ 'services.service.confirmation.body':'Are you sure?',
+ 'services.service.summary.version':'Version',
+ 'services.service.summary.nameNode':'NameNode Web UI',
+ 'services.service.summary.nameNodeUptime':'NameNode Uptime',
+ 'services.service.summary.nameNodeHeap':'NameNode Heap',
+ 'services.service.summary.pendingUpgradeStatus':'Upgrade Status',
+ 'services.service.summary.safeModeStatus':'Safe Mode Status',
+ 'services.service.summary.dataNodes':'DataNodes',
+ 'services.service.summary.diskCapacity':'HDFS Disk Capacity',
+ 'services.service.summary.blocksTotal':'Blocks (total)',
+ 'services.service.summary.blockErrors':'Block Errors',
+ 'services.service.summary.totalFiles':'Total Files + Dirs',
+ 'services.service.summary.jobTracker':'JobTracker',
+ 'services.service.summary.jobTrackerWebUI':'JobTracker Web UI',
+ 'services.service.summary.jobTrackerUptime':'JobTracker Uptime',
+ 'services.service.summary.trackersLiveTotal':'Trackers',
+ 'services.service.summary.trackersBlacklistGraylist':'Trackers',
+ 'services.service.summary.jobTrackerHeap':'JobTracker Heap',
+ 'services.service.summary.totalSlotsCapacity':'Total Slots Capacity',
+ 'services.service.summary.totalJobs':'Total Jobs',
+ 'services.service.summary.currentSlotUtiliMaps':'Map Slots',
+ 'services.service.summary.currentSlotUtiliReduces':'Reduce Slots',
+ 'services.service.summary.tasksMaps':'Tasks: Maps',
+ 'services.service.summary.tasksReduces':'Tasks: Reduces',
+ 'services.service.summary.hbaseMaster':'HBase Master Web UI',
+ 'services.service.summary.regionServerCount':'Region Server Count',
+ 'services.service.summary.regionInTransition':'Region In Transition',
+ 'services.service.summary.masterStarted':'Master Started',
+ 'services.service.summary.masterActivated':'Master Activated',
+ 'services.service.summary.averageLoad':'Average Load',
+ 'services.service.summary.masterHeap':'Master Heap',
+ 'services.service.summary.moreStats':'more stats here',
+ 'services.service.actions.run.rebalancer':'Run Rebalancer',
+ 'services.service.actions.run.compaction':'Run Compaction',
+ 'services.service.actions.run.smoke':'Run Smoke Test',
+ 'services.service.actions.maintenance':'Maintenance',
+
+ '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?',
+ 'hosts.host.stop.popup.body':'Are you sure?',
+ 'hosts.assignedToRack.popup.body':'Are you sure?',
+ 'hosts.assignedToRack.popup.header':'Confirmation',
+ 'hosts.decommission.popup.body':'Are you sure?',
+ 'hosts.decommission.popup.header':'Confirmation',
+ 'hosts.delete.popup.body':'Are you sure?',
+ 'hosts.delete.popup.header':'Confirmation',
+ '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',
+ 'charts.horizon.chart.attributes.cpu':'CPU',
+ 'charts.horizon.chart.attributes.memory':'Memory',
+ 'charts.horizon.chart.attributes.network':'Network',
+ 'charts.horizon.chart.attributes.io':'I/O',
'metric.default':'combined',
'metric.cpu':'cpu',
@@ -266,70 +274,70 @@ Em.I18n.translations = {
'metric.io':'io',
'metric.more':'more',
'metric.more.cpu':'CPU',
- 'metric.more.disk': 'Disk',
- 'metric.more.load': 'Load',
+ 'metric.more.disk':'Disk',
+ 'metric.more.load':'Load',
'metric.more.memory':'Memory',
- 'metric.more.network': 'Network',
- 'metric.more.process': 'Process',
+ 'metric.more.network':'Network',
+ 'metric.more.process':'Process',
- 'dashboard.services': 'Services',
- 'dashboard.services.hosts': 'Hosts',
- 'dashboard.services.uptime': '{0} days {1} hrs {2} mins',
- 'dashboard.services.hdfs.summary': '{0} of {1} nodes live, {2}% capacity free',
- 'dashboard.services.hdfs.nanmenode': 'NameNode',
- 'dashboard.services.hdfs.snanmenode': 'Secondary NameNode',
- 'dashboard.services.hdfs.capacity': 'HDFS Disk Capacity',
- 'dashboard.services.hdfs.capacityUsed': '{0} / {1} ({2}% used)',
- 'dashboard.services.hdfs.totalFilesAndDirs': 'Total Files + Directories',
- 'dashboard.services.hdfs.datanodes': 'DataNodes',
- 'dashboard.services.hdfs.datanodecounts': 'DataNodes Status',
- 'dashboard.services.hdfs.version': 'Version',
- 'dashboard.services.hdfs.nameNodeWebUI': 'NameNode Web UI',
- 'dashboard.services.hdfs.nodes.live': 'live',
- 'dashboard.services.hdfs.nodes.dead': 'dead',
- 'dashboard.services.hdfs.nodes.decom': 'decom',
- 'dashboard.services.hdfs.nodes.uptime': 'NameNode Uptime',
- 'dashboard.services.hdfs.nodes.heap': 'NameNode Heap',
- 'dashboard.services.hdfs.nodes.heapUsed': '{0} / {1} ({2}% used)',
- 'dashboard.services.hdfs.chart.label': 'Capacity (Free/Used)',
-
- 'dashboard.services.mapreduce.summary': '{0} of {1} trackers live, {2} jobs running, {3} jobs waiting',
- 'dashboard.services.mapreduce.taskTrackers': 'TaskTrackers',
- 'dashboard.services.mapreduce.taskTrackerCounts': 'TaskTrackers Status',
- 'dashboard.services.mapreduce.trackers': 'Trackers',
- 'dashboard.services.mapreduce.nodes.blacklist': 'blacklist',
- 'dashboard.services.mapreduce.nodes.graylist': 'graylist',
- 'dashboard.services.mapreduce.slotCapacity': 'Total Slots Capacity',
- 'dashboard.services.mapreduce.trackersSummary': '{0} live / {1} total',
- 'dashboard.services.mapreduce.jobs': 'Total Jobs',
- 'dashboard.services.mapreduce.jobsSummary': '{0} submitted / {1} completed',
- 'dashboard.services.mapreduce.mapSlots': 'Map Slots',
- 'dashboard.services.mapreduce.mapSlotsSummary': '{0} occuped / {1} reserved',
- 'dashboard.services.mapreduce.reduceSlots': 'Reduce Slots',
- 'dashboard.services.mapreduce.tasks.maps': 'Tasks: Maps',
- 'dashboard.services.mapreduce.tasks.reduces': 'Tasks: Reduces',
- 'dashboard.services.mapreduce.reduceSlotsSummary': '{0} occuped / {1} reserved',
- 'dashboard.services.mapreduce.tasksSummary': '{0} running / {1} waiting',
- 'dashboard.services.mapreduce.slotCapacitySummary': '{0} maps / {1} reduces / {2} avg per node',
- 'dashboard.services.mapreduce.jobTrackerHeap': 'JobTracker Heap',
- 'dashboard.services.mapreduce.jobTrackerHeapSummary': '{0} of {1} ({2}% used)',
- 'dashboard.services.mapreduce.jobTrackerUptime': 'Job Trackers Uptime',
- 'dashboard.services.mapreduce.chart.label': 'Jobs Running',
-
- 'dashboard.services.hbase.summary': '{0} of {1} region servers up, {2} average load',
- 'dashboard.services.hbase.masterServerHeap': 'Master Server Heap',
- 'dashboard.services.hbase.masterServerHeap.summary': '{0} of {1} ({2}% used)',
- 'dashboard.services.hbase.masterServerUptime': 'Master Server Uptime',
- 'dashboard.services.hbase.averageLoad': 'Average Load',
- 'dashboard.services.hbase.regionServers': 'Region Servers',
- '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',
- 'timeRange.presets.1week': '1wk',
- 'timeRange.presets.1month': '1mo',
- 'timeRange.presets.1year': '1yr'
+ 'dashboard.services':'Services',
+ 'dashboard.services.hosts':'Hosts',
+ 'dashboard.services.uptime':'{0} days {1} hrs {2} mins',
+ 'dashboard.services.hdfs.summary':'{0} of {1} nodes live, {2}% capacity free',
+ 'dashboard.services.hdfs.nanmenode':'NameNode',
+ 'dashboard.services.hdfs.snanmenode':'Secondary NameNode',
+ 'dashboard.services.hdfs.capacity':'HDFS Disk Capacity',
+ 'dashboard.services.hdfs.capacityUsed':'{0} / {1} ({2}% used)',
+ 'dashboard.services.hdfs.totalFilesAndDirs':'Total Files + Directories',
+ 'dashboard.services.hdfs.datanodes':'DataNodes',
+ 'dashboard.services.hdfs.datanodecounts':'DataNodes Status',
+ 'dashboard.services.hdfs.version':'Version',
+ 'dashboard.services.hdfs.nameNodeWebUI':'NameNode Web UI',
+ 'dashboard.services.hdfs.nodes.live':'live',
+ 'dashboard.services.hdfs.nodes.dead':'dead',
+ 'dashboard.services.hdfs.nodes.decom':'decom',
+ 'dashboard.services.hdfs.nodes.uptime':'NameNode Uptime',
+ 'dashboard.services.hdfs.nodes.heap':'NameNode Heap',
+ 'dashboard.services.hdfs.nodes.heapUsed':'{0} / {1} ({2}% used)',
+ 'dashboard.services.hdfs.chart.label':'Capacity (Free/Used)',
+
+ 'dashboard.services.mapreduce.summary':'{0} of {1} trackers live, {2} jobs running, {3} jobs waiting',
+ 'dashboard.services.mapreduce.taskTrackers':'TaskTrackers',
+ 'dashboard.services.mapreduce.taskTrackerCounts':'TaskTrackers Status',
+ 'dashboard.services.mapreduce.trackers':'Trackers',
+ 'dashboard.services.mapreduce.nodes.blacklist':'blacklist',
+ 'dashboard.services.mapreduce.nodes.graylist':'graylist',
+ 'dashboard.services.mapreduce.slotCapacity':'Total Slots Capacity',
+ 'dashboard.services.mapreduce.trackersSummary':'{0} live / {1} total',
+ 'dashboard.services.mapreduce.jobs':'Total Jobs',
+ 'dashboard.services.mapreduce.jobsSummary':'{0} submitted / {1} completed',
+ 'dashboard.services.mapreduce.mapSlots':'Map Slots',
+ 'dashboard.services.mapreduce.mapSlotsSummary':'{0} occupied / {1} reserved',
+ 'dashboard.services.mapreduce.reduceSlots':'Reduce Slots',
+ 'dashboard.services.mapreduce.tasks.maps':'Tasks: Maps',
+ 'dashboard.services.mapreduce.tasks.reduces':'Tasks: Reduces',
+ 'dashboard.services.mapreduce.reduceSlotsSummary':'{0} occuped / {1} reserved',
+ 'dashboard.services.mapreduce.tasksSummary':'{0} running / {1} waiting',
+ 'dashboard.services.mapreduce.slotCapacitySummary':'{0} maps / {1} reduces / {2} avg per node',
+ 'dashboard.services.mapreduce.jobTrackerHeap':'JobTracker Heap',
+ 'dashboard.services.mapreduce.jobTrackerHeapSummary':'{0} of {1} ({2}% used)',
+ 'dashboard.services.mapreduce.jobTrackerUptime':'Job Trackers Uptime',
+ 'dashboard.services.mapreduce.chart.label':'Jobs Running',
+
+ 'dashboard.services.hbase.summary':'{0} of {1} region servers up, {2} average load',
+ 'dashboard.services.hbase.masterServerHeap':'Master Server Heap',
+ 'dashboard.services.hbase.masterServerHeap.summary':'{0} of {1} ({2}% used)',
+ 'dashboard.services.hbase.masterServerUptime':'Master Server Uptime',
+ 'dashboard.services.hbase.averageLoad':'Average Load',
+ 'dashboard.services.hbase.regionServers':'Region Servers',
+ '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',
+ 'timeRange.presets.1week':'1wk',
+ 'timeRange.presets.1month':'1mo',
+ 'timeRange.presets.1year':'1yr'
};
\ No newline at end of file
Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/models/form.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/models/form.js?rev=1418938&r1=1418937&r2=1418938&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/models/form.js (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/models/form.js Sun Dec 9 13:22:27 2012
@@ -23,30 +23,35 @@ App.Form = Em.View.extend({
/**
* generating fields from fieldsOptions
*/
- classNames: ["form-horizontal"],
- i18nprefix: 'form.',
- fields: [],
- field: {},
- messages: [],
- object: false,
- result: 0, // save result var (-1 - error; 0 - init; 1 - success)
- templateName: require('templates/common/form'),
- tagName: 'form',
+ classNames:["form-horizontal"],
+ i18nprefix:'form.',
+ fields:[],
+ field:{},
+ messages:[],
+ object:false,
+ result:0, // save result var (-1 - error; 0 - init; 1 - success)
+ templateName:require('templates/common/form'),
+ tagName:'form',
- init: function () {
- this._super();
+ init:function () {
var thisForm = this;
- if (!this.fields.length)
- $.each(this.fieldsOptions,
- function () {
- var field = App.FormField.create(this);
+ console.warn("FIELDS LEN:", this.fields.length);
+
+ if (!this.fields.length) {
+ this.fieldsOptions.forEach(
+ function (options) {
+ var field = App.FormField.create(options);
+ console.warn("CREATED FIELD VALUE:", field.get('value'));
field.set('form', thisForm);
thisForm.fields.push(field);
thisForm.set("field." + field.get('name'), field);
- });
+ }
+ );
+ }
+ this._super();
},
- getField: function (name) {
+ getField:function (name) {
var field = false;
$.each(this.fields, function () {
if (this.get('name') == name) {
@@ -56,7 +61,7 @@ App.Form = Em.View.extend({
return field;
},
- isValid: function () {
+ isValid:function () {
var isValid = true;
$.each(this.fields, function () {
this.validate();
@@ -69,12 +74,15 @@ App.Form = Em.View.extend({
return isValid;
},
- isObjectNew: function () {
+ isObjectNew:function () {
var object = this.get('object');
+ if(object instanceof App.User){
+ return false;
+ }
return !(object instanceof DS.Model && object.get('id'));
}.property("object"),
- updateValues: function () {
+ updateValues:function () {
var object = this.get('object');
if (object instanceof Em.Object) {
$.each(this.fields, function () {
@@ -90,16 +98,17 @@ App.Form = Em.View.extend({
*
*/
- getValues: function () {
+ getValues:function () {
var values = {};
- $.each(this.fields, function () {
- if (!(this.get('displayType') == 'password' && validator.empty(this.get('value')))) // if this is not empty password field
+ $.each(this.get('fields'), function () {
+ if (!(this.get('displayType') == 'password' && validator.empty(this.get('value')))) { // if this is not empty password field
values[this.get('name')] = this.get('value');
+ }
});
return values;
},
- clearValues: function () {
+ clearValues:function () {
$.each(this.fields, function () {
this.set('value', '');
});
@@ -109,7 +118,7 @@ App.Form = Em.View.extend({
* need to refactor for integration
* @return {Boolean}
*/
- save: function () {
+ save:function () {
var thisForm = this;
var object = this.get('object');
if (!this.get('isObjectNew')) {
@@ -129,7 +138,18 @@ App.Form = Em.View.extend({
return true;
},
- resultText: function () {
+ visibleFields:function () {
+ var fields = this.get('fields');
+ var visible = [];
+ fields.forEach(function (field) {
+ if (!field.get('isHiddenField')) {
+ visible.push(field);
+ }
+ });
+ return visible;
+ }.property('fields'),
+
+ resultText:function () {
var text = "";
switch (this.get('result')) {
case -1:
@@ -143,7 +163,7 @@ App.Form = Em.View.extend({
return text;
}.property('result'),
- saveButtonText: function () {
+ saveButtonText:function () {
return Em.I18n.t(this.get('i18nprefix') + (this.get('isObjectNew') ? "create" : "save"));
}.property('isObjectNew')
@@ -154,24 +174,31 @@ App.Form = Em.View.extend({
});
App.FormField = Em.Object.extend({ // try to realize this as view
- name: '',
- displayName: '',
+ name:'',
+ displayName:'',
// defaultValue:'', NOT REALIZED YET
- description: '',
- disabled: false,
- displayType: 'string', // string, digits, number, directories, textarea, checkbox
- disableRequiredOnPresent: false,
- errorMessage: '',
- form: false,
- isRequired: true, // by default a config property is required
- unit: '',
- value: '',
+ description:'',
+ disabled:false,
+ displayType:'string', // string, digits, number, directories, textarea, checkbox
+ disableRequiredOnPresent:false,
+ errorMessage:'',
+ form:false,
+ isRequired:true, // by default a config property is required
+ unit:'',
+ value:'',
+
+ observeValue:function () {
+
+ if (this.get('displayType') == 'hidden')
+ console.warn(" FORM FIELD VALUE: ", this.get('value'));
- isValid: function () {
+ }.observes('value'),
+
+ isValid:function () {
return this.get('errorMessage') === '';
}.property('errorMessage'),
- viewClass: function () {
+ viewClass:function () {
var options = {};
var element = Em.TextField;
switch (this.get('displayType')) {
@@ -192,12 +219,15 @@ App.FormField = Em.Object.extend({ // tr
case 'textarea':
element = Em.TextArea;
break;
+ case 'hidden':
+ options.type = "hidden";
+ break;
}
return element.extend(options);
}.property('displayType'),
- validate: function () {
+ validate:function () {
var digitsRegex = /^\d+$/;
var numberRegex = /^[-,+]?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/;
var value = this.get('value');
@@ -260,5 +290,9 @@ App.FormField = Em.Object.extend({ // tr
if (!isError) {
this.set('errorMessage', '');
}
- }.observes('value')
+ }.observes('value'),
+
+ isHiddenField:function () {
+ return this.get('displayType') == 'hidden';
+ }.property('type')
});
\ No newline at end of file
Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/models/host.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/models/host.js?rev=1418938&r1=1418937&r2=1418938&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/models/host.js (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/models/host.js Sun Dec 9 13:22:27 2012
@@ -18,6 +18,7 @@
var App = require('app');
+var misc = require('utils/misc');
App.Host = DS.Model.extend({
hostName: DS.attr('string'),
@@ -27,7 +28,7 @@ App.Host = DS.Model.extend({
memory: DS.attr('string'),
diskUsage: DS.attr('string'),
loadAvg: DS.attr('string'),
- os: DS.attr('string'),
+ osArch: DS.attr('string'),
ip: DS.attr('string'),
healthStatus: DS.attr('string'),
cpuUsage: DS.attr('number'),
@@ -38,7 +39,12 @@ App.Host = DS.Model.extend({
osType: DS.attr("string"),
diskInfo: DS.attr('string'),
-
+ /**
+ * formatted bytes to appropriate value
+ */
+ memoryFormatted: function () {
+ return misc.formatBandwidth(this.get('memory'));
+ }.property('memory'),
/**
* Return true if host not heartbeating last 180 seconds
*/
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=1418938&r1=1418937&r2=1418938&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 13:22:27 2012
@@ -55,7 +55,6 @@ App.Run = DS.Model.extend({
isRunning: function () {
return !this.get('numJobsTotal') == this.get('numJobsCompleted');
}.property('numJobsTotal', 'numJobsCompleted'),
-
/**
* Sum of input bandwidth for all jobs with appropriate measure
*/
@@ -85,7 +84,21 @@ App.Run = DS.Model.extend({
*/
lastUpdateTimeFormatted: function() {
return date.dateFormat(this.get('lastUpdateTime'));
- }.property('lastUpdateTime')
+ }.property('lastUpdateTime'),
+ /**
+ * Type value based on first part of id
+ */
+ type: function() {
+ if (this.get('id').indexOf('pig_') === 0) {
+ return 'Pig';
+ }
+ if (this.get('id').indexOf('hive_') === 0) {
+ return 'Hive';
+ }
+ if (this.get('id').indexOf('mr_') === 0) {
+ return 'mapReduce';
+ }
+ }.property('id')
});
App.Run.FIXTURES = [];
Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/models/service/mapreduce.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/models/service/mapreduce.js?rev=1418938&r1=1418937&r2=1418938&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/models/service/mapreduce.js (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/models/service/mapreduce.js Sun Dec 9 13:22:27 2012
@@ -38,7 +38,8 @@ App.MapReduceService = App.Service.exten
mapsRunning: DS.attr('number'),
mapsWaiting: DS.attr('number'),
reducesRunning: DS.attr('number'),
- reducesWaiting: DS.attr('number')
+ reducesWaiting: DS.attr('number'),
+ trackersDecommisioned: DS.attr('number')
});
App.MapReduceService.FIXTURES = [];
Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/models/user.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/models/user.js?rev=1418938&r1=1418937&r2=1418938&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/models/user.js (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/models/user.js Sun Dec 9 13:22:27 2012
@@ -26,17 +26,17 @@ App.UserModel = Em.Object.extend({
App.User = DS.Model.extend({
userName:DS.attr('string'),
- password:DS.attr('string'),
roles:DS.attr('string'),
+ type:DS.attr('string'),
auditItems:DS.hasMany('App.ServiceAudit'),
- admin: function () {
+ admin:function () {
return !!(/^admin/.test(this.get('roles')))
}.property('userName')
});
App.UserForm = App.Form.extend({
className:App.User,
- object: function(){
+ object:function () {
return App.router.get('mainAdminUserEditController.content');
}.property('App.router.mainAdminUserEditController.content'),
@@ -44,7 +44,8 @@ App.UserForm = App.Form.extend({
{ name:"userName", displayName:"Username" },
{ name:"password", displayName:"Password", displayType:"password", isRequired: function(){ return this.get('form.isObjectNew'); }.property('form.isObjectNew') },
{ name:"passwordRetype", displayName:"Retype Password", displayType:"password", validator:"passwordRetype", isRequired: false },
- { name:"admin", displayName:"Admin", displayType:"checkbox", isRequired:false }
+ { name:"admin", displayName:"Admin", displayType:"checkbox", isRequired:false },
+ { name:"roles", displayName:"Role", isRequired:false, isHidden:true }
],
fields:[],
disableUsername:function () {
@@ -61,64 +62,70 @@ App.UserForm = App.Form.extend({
}
}.observes('isObjectNew'),
- isValid: function(){
+ getValues:function () {
+ var values = this._super();
+ values.type = ['local'];
+ return values;
+ },
+
+ isValid:function () {
var isValid = this._super();
thisForm = this;
var passField = this.get('field.password');
var passRetype = this.get('field.passwordRetype');
- if(!validator.empty(passField.get('value'))) {
- if(passField.get('value') != passRetype.get('value')) {
+ if (!validator.empty(passField.get('value'))) {
+ if (passField.get('value') != passRetype.get('value')) {
passRetype.set('errorMessage', "Passwords are different");
isValid = false;
}
}
- if(isValid && this.get('isObjectNew')) {
+ if (isValid && this.get('isObjectNew')) {
var users = App.User.find();
var userNameField = this.getField('userName');
var userName = userNameField.get('value');
- users.forEach(function(user){
- if(userName == user.get('userName')) {
+ users.forEach(function (user) {
+ if (userName == user.get('userName')) {
userNameField.set('errorMessage', 'User with the same name is already exists');
return isValid = false;
}
});
}
-
+
return isValid;
}
});
App.User.FIXTURES = [];
/*
-App.User.FIXTURES = [
- {
- id:1,
- user_name:'admin',
- password:'admin',
- admin:1
- },
- {
- id:2,
- user_name:'vrossi',
- admin:1
- },
- {
- id:3,
- user_name:'casey.stoner',
- admin:0
- },
- {
- id:4,
- user_name:'danip',
- admin:0
- },
- {
- id:5,
- user_name:'test',
- password:'test',
- admin:0
- }
-];*/
\ No newline at end of file
+ App.User.FIXTURES = [
+ {
+ id:1,
+ user_name:'admin',
+ password:'admin',
+ admin:1
+ },
+ {
+ id:2,
+ user_name:'vrossi',
+ admin:1
+ },
+ {
+ id:3,
+ user_name:'casey.stoner',
+ admin:0
+ },
+ {
+ id:4,
+ user_name:'danip',
+ admin:0
+ },
+ {
+ id:5,
+ user_name:'test',
+ password:'test',
+ admin:0
+ }
+ ];*/
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=1418938&r1=1418937&r2=1418938&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 13:22:27 2012
@@ -102,11 +102,18 @@ App.Router = Em.Router.extend({
App.db.setLoginName(loginName);
},
- // that works incorrectly
+ /**
+ * Set user model to local storage
+ * @param user
+ */
setUser: function (user) {
App.db.setUser(user);
},
- // that works incorrectly
+
+ /**
+ * Get user model from local storage
+ * @return {*}
+ */
getUser: function () {
return App.db.getUser();
},
@@ -221,19 +228,14 @@ App.Router = Em.Router.extend({
}
},
- defaultSection: 'installer',
-
getSection: function () {
- var section = App.db.getSection();
- console.log("The section is: " + section);
- var section = localStorage.getItem(this.getLoginName() + 'section');
-
- return section || this.defaultSection;
-
- },
-
- setSection: function (section) {
- App.db.setSection(section);
+ var clusterController = App.router.get('clusterController');
+ clusterController.loadClusterName(false);
+ if (clusterController.get('clusterName')) {
+ return 'main.index';
+ } else {
+ return 'installer';
+ }
},
root: Em.Route.extend({
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=1418938&r1=1418937&r2=1418938&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 13:22:27 2012
@@ -132,7 +132,6 @@ module.exports = Em.Route.extend({
addHostController.saveServices(wizardStep4Controller);
addHostController.saveClients(wizardStep4Controller);
App.db.setMasterComponentHosts(undefined);
- App.db.setHostToMasterComponent(undefined);
router.transitionTo('step4');
}
}),
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=1418938&r1=1418937&r2=1418938&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 13:22:27 2012
@@ -50,7 +50,6 @@ module.exports = Em.Route.extend({
addServiceController.saveServices(wizardStep4Controller);
addServiceController.saveClients(wizardStep4Controller);
App.db.setMasterComponentHosts(undefined);
- App.db.setHostToMasterComponent(undefined);
router.transitionTo('step2');
}
}),
@@ -72,6 +71,7 @@ module.exports = Em.Route.extend({
var wizardStep5Controller = router.get('wizardStep5Controller');
addServiceController.saveMasterComponentHosts(wizardStep5Controller);
App.db.setSlaveComponentHosts(undefined);
+ App.db.setHostSlaveComponents(undefined);
router.transitionTo('step3');
}
}),
@@ -92,6 +92,7 @@ module.exports = Em.Route.extend({
if (wizardStep6Controller.validate()) {
addServiceController.saveSlaveComponentHosts(wizardStep6Controller);
+ addServiceController.get('content').set('serviceConfigProperties', null);
App.db.setServiceConfigProperties(null);
router.transitionTo('step4');
}
@@ -140,7 +141,6 @@ module.exports = Em.Route.extend({
connectOutlets: function (router, context) {
console.log('in addService.step6:connectOutlets');
var controller = router.get('addServiceController');
- controller.setInfoForStep9();
controller.setCurrentStep('6', false);
controller.loadAllPriorSteps();
controller.connectOutlet('wizardStep9', controller.get('content'));
@@ -149,13 +149,16 @@ module.exports = Em.Route.extend({
retry: function(router,context) {
var addServiceController = router.get('addSrviceController');
var wizardStep9Controller = router.get('wizardStep9Controller');
- addServiceController.installServices();
- wizardStep9Controller.navigateStep();
+ if (!wizardStep9Controller.get('isSubmitDisabled')) {
+ addServiceController.installServices();
+ addServiceController.setInfoForStep9();
+ wizardStep9Controller.navigateStep();
+ }
},
next: function (router) {
var addServiceController = router.get('addServiceController');
var wizardStep9Controller = router.get('wizardStep9Controller');
- addServiceController.saveClusterInfo(wizardStep9Controller);
+ //addServiceController.saveClusterInfo(wizardStep9Controller);
addServiceController.saveInstalledHosts(wizardStep9Controller);
router.transitionTo('step7');
}
@@ -168,7 +171,7 @@ module.exports = Em.Route.extend({
var controller = router.get('addServiceController');
controller.setCurrentStep('7', false);
controller.loadAllPriorSteps();
- controller.connectOutlet('wizardStep10');
+ controller.connectOutlet('wizardStep10', controller.get('content'));
},
back: Em.Router.transitionTo('step6'),
complete: function (router, context) {
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=1418938&r1=1418937&r2=1418938&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 13:22:27 2012
@@ -167,7 +167,6 @@ module.exports = Em.Route.extend({
controller.saveClients(wizardStep4Controller);
App.db.setMasterComponentHosts(undefined);
- App.db.setHostToMasterComponent(undefined);
router.transitionTo('step5');
}
}),
@@ -274,6 +273,7 @@ module.exports = Em.Route.extend({
var wizardStep9Controller = router.get('wizardStep9Controller');
if (!wizardStep9Controller.get('isSubmitDisabled')) {
installerController.installServices();
+ installerController.setInfoForStep9();
wizardStep9Controller.navigateStep();
}
},
@@ -299,8 +299,7 @@ module.exports = Em.Route.extend({
complete: function (router, context) {
if (true) { // this function will be moved to installerController where it will validate
var controller = router.get('installerController');
- controller.setCurrentStep('1', false);
- router.setSection('main');
+ controller.finish();
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=1418938&r1=1418937&r2=1418938&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 13:22:27 2012
@@ -21,6 +21,7 @@ module.exports = Em.Route.extend({
enter:function (router) {
console.log('in /main:enter');
if (router.getAuthenticated()) {
+ var clusterController = App.router.get('clusterController').loadClusterName(false);
router.get('mainController').initialize();
// TODO: redirect to last known state
} else {
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=1418938&r1=1418937&r2=1418938&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 13:22:27 2012
@@ -487,7 +487,7 @@ a:focus {
.name {
line-height: 21px;
margin-left: 0;
- width: 130px;
+ width: 145px;
a {
margin-left: 5px
}
@@ -510,13 +510,21 @@ a:focus {
}
}
- .chart {
+ .dashboard-mini-chart {
right: 0;
top: 27px;
position: absolute;
overflow: visible; // for quick links
text-align: center;
-
+ width: 200px;
+ height: 200px;
+ .chart-container{
+ .chart-x-axis{
+ left: 0%;
+ width: 100%;
+ text-align: left;
+ }
+ }
.chartLabel {
font-size: 11px;
color: #7b7b7b;
@@ -662,6 +670,14 @@ a:focus {
}
}
+.mini-chart{
+ position: absolute;
+ .chart-container{
+ width: 130px;
+ height: 130px;
+ }
+}
+
/*end chart/graph styles*/
/*****end styles for dashboard page*****/
@@ -694,6 +710,9 @@ a:focus {
}
li {
line-height: 24px;
+ a {
+ padding: 3px 10px;
+ }
}
}
.add-service-button {
@@ -913,6 +932,7 @@ a:focus {
margin-top: 27px;
+ /*
.component-operation-button {
background-color: #E5E5E5;
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#E5E5E5), to(#F1F1F1));
@@ -923,6 +943,7 @@ a:focus {
background-repeat: repeat-x;
color: #000000;
}
+ */
.caret {
border-top-color: #000000;
border-bottom-color: #000000;
@@ -1006,7 +1027,7 @@ a:focus {
padding-bottom: 0;
border: 1px solid #DEDEDE;
border-radius: 4px;
- background: #F5F5F5;
+ background: #FFF;
}
.host-components .btn-group {
margin: 0 5px 10px 0;
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=1418938&r1=1418937&r2=1418938&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 13:22:27 2012
@@ -1,4 +1,5 @@
#apps{
+
td .red {
color: red;
}
@@ -6,15 +7,27 @@
vertical-align:top;
}
.avg-table {
+ table-layout: fixed;
background-color: #F9F9F9;
td {
text-align:center;
border:none;
+ &.avg-star{
+ border-left:1px solid #DDD;
+ width: 30px;
+ }
}
}
- td.avg-star{
- border-left:1px solid #DDD;
+
+ #dataTable {
+ table-layout: fixed;
+ td {
+ &.appId {
+ word-wrap: break-word;
+ }
+ }
}
+
.dropdown-menu label.checkbox {
margin-left: 10px;
}
@@ -126,7 +139,9 @@
tr.containerRow > td{
background: #f9f9f9;
}
-
+ button {
+ margin: 0 2px;
+ }
svg{
vertical-align: top; //remove extra spaces after svg element
}
@@ -141,6 +156,7 @@
background: #fff;
padding: 10px;
box-sizing: border-box;
+ width: auto;
}
#jobs h2{
@@ -172,5 +188,29 @@
}
}
+ div.view-wrapper {
+ float: left;
+ }
+
+ a.ui-icon-circle-close {
+ float: right;
+ opacity: 0.2;
+ padding: 1px;
+ position: relative;
+ top: -32px;
+ &:hover {
+ opacity: 0.7;
+ }
+ }
+ .notActive {
+ a.ui-icon-circle-close {
+ visibility: hidden;
+ }
+ }
+}
+.btn-group button.single-btn-group{
+ -webkit-border-radius: 4px;
+ border-radius: 4px;
+ -moz-border-radius: 4px;
}
Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/admin/user.hbs
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/admin/user.hbs?rev=1418938&r1=1418937&r2=1418938&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/admin/user.hbs (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/admin/user.hbs Sun Dec 9 13:22:27 2012
@@ -17,14 +17,15 @@
}}
{{#if view.ldapUser}}
- <p class="text-info">{{t admin.users.ldapAuthentionUsed}}.</p>
+<p class="text-info">{{t admin.users.ldapAuthentionUsed}}.</p>
{{else}}
<table class="table table-bordered table-striped span6">
<thead>
<tr>
<th style="width:50%">{{t admin.users.username}}</th>
- <th style="width:15%">{{t admin.users.privileges}}<i class="icon-question-sign"></i></th>
- <th style="width:15%">Action</th>
+ <th style="width:10%">{{t admin.users.privileges}}</th>
+ <th style="width:20%">{{t admin.users.type}}</th>
+ <th style="width:20%">{{t admin.users.action}}</th>
</tr>
</thead>
<tbody>
Modified: incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/admin/user/edit.hbs
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/admin/user/edit.hbs?rev=1418938&r1=1418937&r2=1418938&view=diff
==============================================================================
--- incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/admin/user/edit.hbs (original)
+++ incubator/ambari/branches/AMBARI-666/ambari-web/app/templates/main/admin/user/edit.hbs Sun Dec 9 13:22:27 2012
@@ -18,6 +18,7 @@
<form class="form-horizontal">
{{#each field in view.userForm.fields}}
+ {{#unless field.isHidden}}
<div class="control-group">
<label class="control-label" for="input{{unbound field.name}}">{{unbound field.displayName}}</label>
<div class="controls">
@@ -25,6 +26,7 @@
<span class="help-inline">{{field.errorMessage}}</span>
</div>
</div>
+ {{/unless}}
{{/each}}
<div class="control-group">
<div class="controls">