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 2013/05/22 23:47:31 UTC
svn commit: r1485450 - in /incubator/ambari/trunk/ambari-web/app:
assets/data/wizard/stack/HDPLocal_versions.json
assets/data/wizard/stack/HDP_versions.json
assets/data/wizard/stack/stacks2.json controllers/installer.js utils/ajax.js
Author: yusaku
Date: Wed May 22 21:47:31 2013
New Revision: 1485450
URL: http://svn.apache.org/r1485450
Log:
AMBARI-2167. Support for displaying various stacks and having the user select which stack to install. (yusaku)
Added:
incubator/ambari/trunk/ambari-web/app/assets/data/wizard/stack/HDPLocal_versions.json
incubator/ambari/trunk/ambari-web/app/assets/data/wizard/stack/HDP_versions.json
incubator/ambari/trunk/ambari-web/app/assets/data/wizard/stack/stacks2.json
Modified:
incubator/ambari/trunk/ambari-web/app/controllers/installer.js
incubator/ambari/trunk/ambari-web/app/utils/ajax.js
Added: incubator/ambari/trunk/ambari-web/app/assets/data/wizard/stack/HDPLocal_versions.json
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/assets/data/wizard/stack/HDPLocal_versions.json?rev=1485450&view=auto
==============================================================================
--- incubator/ambari/trunk/ambari-web/app/assets/data/wizard/stack/HDPLocal_versions.json (added)
+++ incubator/ambari/trunk/ambari-web/app/assets/data/wizard/stack/HDPLocal_versions.json Wed May 22 21:47:31 2013
@@ -0,0 +1,32 @@
+{
+ "href" : "http://dev.hortonworks.com:8080/api/v1/stacks2/HDPLocal/versions?fields=Versions",
+ "items" : [
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/v1/stacks2/HDPLocal/versions/1.3.0",
+ "Versions" : {
+ "stack_version" : "1.3.0",
+ "active" : false,
+ "stack_name" : "HDPLocal",
+ "min_upgrade_version" : "1.2.0"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/v1/stacks2/HDPLocal/versions/1.2.0",
+ "Versions" : {
+ "stack_version" : "1.2.0",
+ "active" : false,
+ "stack_name" : "HDPLocal",
+ "min_upgrade_version" : null
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/v1/stacks2/HDPLocal/versions/1.2.1",
+ "Versions" : {
+ "stack_version" : "1.2.1",
+ "active" : false,
+ "stack_name" : "HDPLocal",
+ "min_upgrade_version" : null
+ }
+ }
+ ]
+}
Added: incubator/ambari/trunk/ambari-web/app/assets/data/wizard/stack/HDP_versions.json
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/assets/data/wizard/stack/HDP_versions.json?rev=1485450&view=auto
==============================================================================
--- incubator/ambari/trunk/ambari-web/app/assets/data/wizard/stack/HDP_versions.json (added)
+++ incubator/ambari/trunk/ambari-web/app/assets/data/wizard/stack/HDP_versions.json Wed May 22 21:47:31 2013
@@ -0,0 +1,50 @@
+{
+ "href" : "http://dev.hortonworks.com:8080/api/v1/stacks2/HDP/versions?fields=Versions",
+ "items" : [
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/v1/stacks2/HDP/versions/0.1",
+ "Versions" : {
+ "stack_version" : "0.1",
+ "active" : false,
+ "stack_name" : "HDP",
+ "min_upgrade_version" : null
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/v1/stacks2/HDP/versions/2.0.1",
+ "Versions" : {
+ "stack_version" : "2.0.1",
+ "active" : false,
+ "stack_name" : "HDP",
+ "min_upgrade_version" : null
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/v1/stacks2/HDP/versions/1.3.0",
+ "Versions" : {
+ "stack_version" : "1.3.0",
+ "active" : true,
+ "stack_name" : "HDP",
+ "min_upgrade_version" : "1.2.0"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/v1/stacks2/HDP/versions/1.2.1",
+ "Versions" : {
+ "stack_version" : "1.2.1",
+ "active" : true,
+ "stack_name" : "HDP",
+ "min_upgrade_version" : null
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/v1/stacks2/HDP/versions/1.2.0",
+ "Versions" : {
+ "stack_version" : "1.2.0",
+ "active" : false,
+ "stack_name" : "HDP",
+ "min_upgrade_version" : null
+ }
+ }
+ ]
+}
Added: incubator/ambari/trunk/ambari-web/app/assets/data/wizard/stack/stacks2.json
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/assets/data/wizard/stack/stacks2.json?rev=1485450&view=auto
==============================================================================
--- incubator/ambari/trunk/ambari-web/app/assets/data/wizard/stack/stacks2.json (added)
+++ incubator/ambari/trunk/ambari-web/app/assets/data/wizard/stack/stacks2.json Wed May 22 21:47:31 2013
@@ -0,0 +1,17 @@
+{
+ "href" : "http://dev.hortonworks.com:8080/api/v1/stacks2",
+ "items" : [
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/v1/stacks2/HDP",
+ "Stacks" : {
+ "stack_name" : "HDP"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/v1/stacks2/HDPLocal",
+ "Stacks" : {
+ "stack_name" : "HDPLocal"
+ }
+ }
+ ]
+}
Modified: incubator/ambari/trunk/ambari-web/app/controllers/installer.js
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/controllers/installer.js?rev=1485450&r1=1485449&r2=1485450&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-web/app/controllers/installer.js (original)
+++ incubator/ambari/trunk/ambari-web/app/controllers/installer.js Wed May 22 21:47:31 2013
@@ -91,12 +91,14 @@ App.InstallerController = App.WizardCont
console.log('selected services ', servicesInfo.filterProperty('isSelected', true).mapProperty('serviceName'));
},
+ stacks: [],
+
/**
* Load stacks data from server or take exist data from local db
*/
loadStacks: function () {
var stacks = App.db.getStacks();
- if (stacks) {
+ if (stacks && stacks.length) {
var convertedStacks = [];
stacks.forEach(function (stack) {
convertedStacks.pushObject(Ember.Object.create(stack));
@@ -114,39 +116,33 @@ App.InstallerController = App.WizardCont
},
/**
- * Parse loaded data and create array of stacks objects
+ * Send queries to load versions for each stack
*/
loadStacksSuccessCallback: function (data) {
- var result = [];
var stacks = data.items;
+ var result;
+ this.get('stacks').clear();
stacks.forEach(function (stack) {
- if (stack.Stacks.stack_name.indexOf('Local') === -1) {
- stack.versions.sort(function (a, b) {
- if (a.Versions.stack_version > b.Versions.stack_version) {
- return -1;
- }
- if (a.Versions.stack_version < b.Versions.stack_version) {
- return 1;
- }
- return 0;
- });
- stack.versions.forEach(function (version) {
- if (version.Versions.active !== 'false') {
- result.push(
- Ember.Object.create({
- name: version.Versions.stack_name + "-" + version.Versions.stack_version,
- isSelected: false
- })
- );
- }
- }, this)
- }
+ App.ajax.send({
+ name: 'wizard.stacks_versions',
+ sender: this,
+ data: {
+ stackName: stack.Stacks.stack_name
+ },
+ success: 'loadStacksVersionsSuccessCallback',
+ error: 'loadStacksVersionsErrorCallback'
+ });
}, this);
- var defaultStackVersion = result.findProperty('name', App.defaultStackVersion);
- if (defaultStackVersion) {
- defaultStackVersion.set('isSelected', true)
+ result = this.get('stacks');
+ if (!result.length) {
+ console.log('Error: therea are no active stacks');
} else {
- result.objectAt(0).set('isSelected', true);
+ var defaultStackVersion = result.findProperty('name', App.defaultStackVersion);
+ if (defaultStackVersion) {
+ defaultStackVersion.set('isSelected', true)
+ } else {
+ result.objectAt(0).set('isSelected', true);
+ }
}
App.db.setStacks(result);
this.set('content.stacks', result);
@@ -160,6 +156,39 @@ App.InstallerController = App.WizardCont
},
/**
+ * Parse loaded data and create array of stacks objects
+ */
+ loadStacksVersionsSuccessCallback: function (data) {
+ var result = [];
+ var stackVersions = data.items.filterProperty('Versions.active');
+ stackVersions.sort(function (a, b) {
+ if (a.Versions.stack_version > b.Versions.stack_version) {
+ return -1;
+ }
+ if (a.Versions.stack_version < b.Versions.stack_version) {
+ return 1;
+ }
+ return 0;
+ });
+ stackVersions.forEach(function (version) {
+ result.push(
+ Ember.Object.create({
+ name: version.Versions.stack_name + "-" + version.Versions.stack_version,
+ isSelected: false
+ })
+ );
+ }, this);
+ this.get('stacks').pushObjects(result);
+ },
+
+ /**
+ * onError callback for loading stacks data
+ */
+ loadStacksVersionsErrorCallback: function () {
+ console.log('Error in loading stacks');
+ },
+
+ /**
* Save data to model
* @param stepController App.WizardStep4Controller
*/
@@ -265,7 +294,11 @@ App.InstallerController = App.WizardCont
*/
saveStacks: function (stepController) {
var stacks = stepController.get('content.stacks');
- App.set('currentStackVersion', stacks.findProperty('isSelected').get('name'));
+ if (stacks.length) {
+ App.set('currentStackVersion', stacks.findProperty('isSelected').get('name'));
+ } else {
+ App.set('currentStackVersion', App.defaultStackVersion);
+ }
App.db.setStacks(stacks);
this.set('content.stacks', stacks);
},
Modified: incubator/ambari/trunk/ambari-web/app/utils/ajax.js
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/utils/ajax.js?rev=1485450&r1=1485449&r2=1485450&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-web/app/utils/ajax.js (original)
+++ incubator/ambari/trunk/ambari-web/app/utils/ajax.js Wed May 22 21:47:31 2013
@@ -656,8 +656,17 @@ var urls = {
'mock': '/data/wizard/bootstrap/single_host_registration.json'
},
'wizard.stacks': {
- 'real': '/stacks2?fields=versions',
- 'mock': '/data/wizard/stack/versions.json',
+ 'real': '/stacks2',
+ 'mock': '/data/wizard/stack/stacks2.json',
+ 'format': function (data) {
+ return {
+ async: false
+ };
+ }
+ },
+ 'wizard.stacks_versions': {
+ 'real': '/stacks2/{stackName}/versions?fields=Versions',
+ 'mock': '/data/wizard/stack/{stackName}_versions.json',
'format': function (data) {
return {
async: false