You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by al...@apache.org on 2015/09/09 11:16:03 UTC
ambari git commit: AMBARI-13043. Ambari upgrade 1.6.1 to 2.1.1.
Missed info from stack_versions endpoint. (alexantonenko)
Repository: ambari
Updated Branches:
refs/heads/trunk 82396b1fd -> c1f34ba71
AMBARI-13043. Ambari upgrade 1.6.1 to 2.1.1. Missed info from stack_versions endpoint. (alexantonenko)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/c1f34ba7
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/c1f34ba7
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/c1f34ba7
Branch: refs/heads/trunk
Commit: c1f34ba7133585acb29e730bfa335340b77815cc
Parents: 82396b1
Author: Alex Antonenko <hi...@gmail.com>
Authored: Wed Sep 9 12:01:48 2015 +0300
Committer: Alex Antonenko <hi...@gmail.com>
Committed: Wed Sep 9 12:15:56 2015 +0300
----------------------------------------------------------------------
.../app/controllers/wizard/step8_controller.js | 61 ++++++++++++++++++--
1 file changed, 55 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/c1f34ba7/ambari-web/app/controllers/wizard/step8_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/wizard/step8_controller.js b/ambari-web/app/controllers/wizard/step8_controller.js
index 729471a..722a9b6 100644
--- a/ambari-web/app/controllers/wizard/step8_controller.js
+++ b/ambari-web/app/controllers/wizard/step8_controller.js
@@ -454,7 +454,12 @@ App.WizardStep8Controller = Em.Controller.extend(App.AddSecurityConfigs, App.wiz
//repo
if (['addHostController', 'addServiceController'].contains(this.get('content.controllerName'))) {
- this.loadRepoInfo();
+ // For some stacks there is no info regarding stack versions to upgrade, e.g. HDP-2.1
+ if (App.StackVersion.find().get('content.length')) {
+ this.loadRepoInfo();
+ } else {
+ this.loadDefaultRepoInfo();
+ }
} else {
// from install wizard
var selectedStack = App.Stack.find().findProperty('isSelected');
@@ -505,17 +510,61 @@ App.WizardStep8Controller = Em.Controller.extend(App.AddSecurityConfigs, App.wiz
* @method loadRepoInfoSuccessCallback
*/
loadRepoInfoSuccessCallback: function (data) {
- var allRepos = [];
Em.assert('Current repo-version may be only one', data.items.length === 1);
- data.items[0].repository_versions[0].operating_systems.forEach(function (os) {
- os.repositories.forEach(function (repository) {
- allRepos.push(Em.Object.create({
+ if (data.items.length) {
+ var allRepos = this.generateRepoInfo(Em.getWithDefault(data, 'items.0.repository_versions.0.operating_systems', []));
+ allRepos.set('display_name', Em.I18n.t("installer.step8.repoInfo.displayName"));
+ this.get('clusterInfo').set('repoInfo', allRepos);
+ } else {
+ this.loadDefaultRepoInfo();
+ }
+ },
+
+ /**
+ * Generate list regarding info about OS versions and repositories.
+ *
+ * @param {Object{}} oses - OS array
+ * @returns {Em.Object[]}
+ */
+ generateRepoInfo: function(oses) {
+ return oses.map(function(os) {
+ return os.repositories.map(function (repository) {
+ return Em.Object.create({
base_url: repository.Repositories.base_url,
os_type: repository.Repositories.os_type,
repo_id: repository.Repositories.repo_id
- }));
+ });
});
+ }).reduce(function(p, c) { return p.concat(c); });
+ },
+
+ /**
+ * Load repo info from stack. Used if installed stack doesn't have upgrade info.
+ *
+ * @returns {$.Deferred}
+ * @method loadDefaultRepoInfo
+ */
+ loadDefaultRepoInfo: function() {
+ var nameVersionCombo = App.get('currentStackVersion').split('-');
+
+ return App.ajax.send({
+ name: 'cluster.load_repositories',
+ sender: this,
+ data: {
+ stackName: nameVersionCombo[0],
+ stackVersion: nameVersionCombo[1]
+ },
+ success: 'loadDefaultRepoInfoSuccessCallback',
+ error: 'loadRepoInfoErrorCallback'
});
+ },
+
+ /**
+ * @param {Object} data - JSON data from server
+ * @method loadDefaultRepoInfoSuccessCallback
+ */
+ loadDefaultRepoInfoSuccessCallback: function (data) {
+ var allRepos = this.generateRepoInfo(Em.getWithDefault(data, 'items', []));
allRepos.set('display_name', Em.I18n.t("installer.step8.repoInfo.displayName"));
this.get('clusterInfo').set('repoInfo', allRepos);
},