Repository: ambari Updated Branches: refs/heads/trunk 600f1afcd -> 0ccded80f
AMBARI-8875. Repository Versions > Create&Edit E2E integration of OS list. (Richard Zang via yusaku) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/0ccded80 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/0ccded80 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/0ccded80 Branch: refs/heads/trunk Commit: 0ccded80fd88cd69b77682b0d87b08d4de151a36 Parents: 600f1af Author: Yusaku Sako <[email protected]> Authored: Tue Dec 23 16:39:24 2014 -0800 Committer: Yusaku Sako <[email protected]> Committed: Tue Dec 23 16:39:24 2014 -0800 ---------------------------------------------------------------------- .../stackVersions/StackVersionsCreateCtrl.js | 58 ++++++++------------ .../stackVersions/StackVersionsEditCtrl.js | 50 ++++++++++++++++- .../ui/admin-web/app/scripts/services/Stack.js | 15 +++++ .../app/views/stackVersions/create.html | 5 +- .../admin-web/app/views/stackVersions/edit.html | 2 +- 5 files changed, 88 insertions(+), 42 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/0ccded80/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/stackVersions/StackVersionsCreateCtrl.js ---------------------------------------------------------------------- diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/stackVersions/StackVersionsCreateCtrl.js b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/stackVersions/StackVersionsCreateCtrl.js index 4a27003..0d67f35 100644 --- a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/stackVersions/StackVersionsCreateCtrl.js +++ b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/stackVersions/StackVersionsCreateCtrl.js @@ -36,48 +36,14 @@ angular.module('ambariAdminConsole') }); $scope.upgradeStack.options = versions; $scope.upgradeStack.selected = versions[versions.length - 1]; + $scope.afterStackVersionChange(); }) .catch(function (data) { Alert.error('Fetch stack version filter list error', data.message); }); }; $scope.fetchStackVersionFilterList(); - - // TODO retrieve operating systems and repo names from stack definition - $scope.repositories = [ - { - os: 'redhat5', - packages: [ - {label:'HDP', value: null}, - {label:'HDP-UTILS', value: null} - ], - selected: false - }, - { - os: 'redhat6', - packages: [ - {label:'HDP', value: null}, - {label:'HDP-UTILS', value: null} - ], - selected: false - }, - { - os: 'sles11', - packages: [ - {label:'HDP', value: null}, - {label:'HDP-UTILS', value: null} - ], - selected: false - }, - { - os: 'ubuntu12', - packages: [ - {label:'HDP', value: null}, - {label:'HDP-UTILS', value: null} - ], - selected: false - } - ]; + $scope.repositories = []; $scope.selectedOS = 0; $scope.toggleOSSelect = function () { @@ -99,4 +65,24 @@ angular.module('ambariAdminConsole') Alert.error('Version creation error', data.message); }); }; + + $scope.afterStackVersionChange = function () { + Stack.getSupportedOSList($scope.upgradeStack.selected.stack_name, $scope.upgradeStack.selected.stack_version) + .then(function (data) { + var repositories = data.operatingSystems.map(function (os) { + return { + os: os.OperatingSystems.os_type, + packages: [ + {label:'HDP', value: null}, + {label:'HDP-UTILS', value: null} + ], + selected: false + }; + }); + $scope.repositories = repositories; + }) + .catch(function (data) { + Alert.error('getSupportedOSList error', data.message); + }); + }; }]); http://git-wip-us.apache.org/repos/asf/ambari/blob/0ccded80/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/stackVersions/StackVersionsEditCtrl.js ---------------------------------------------------------------------- diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/stackVersions/StackVersionsEditCtrl.js b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/stackVersions/StackVersionsEditCtrl.js index 27e846b..32401b9 100644 --- a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/stackVersions/StackVersionsEditCtrl.js +++ b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/stackVersions/StackVersionsEditCtrl.js @@ -19,7 +19,7 @@ angular.module('ambariAdminConsole') .controller('StackVersionsEditCtrl', ['$scope', '$location', 'Stack', '$routeParams', 'ConfirmationModal', 'Alert', function($scope, $location, Stack, $routeParams, ConfirmationModal, Alert) { - function loadStackVersionInfo () { + $scope.loadStackVersionInfo = function () { return Stack.getRepo($routeParams.versionId, $routeParams.stackName).then(function (response) { $scope.id = response.id; $scope.stack = response.stack; @@ -32,6 +32,45 @@ angular.module('ambariAdminConsole') os.selected = true; }); $scope.osList = response.osList; + $scope.addMissingOSList(); + }); + } + + $scope.addMissingOSList = function() { + Stack.getSupportedOSList($scope.stackName, $scope.stackVersion) + .then(function (data) { + var existingOSHash = {}; + angular.forEach($scope.osList, function (os) { + existingOSHash[os.OperatingSystems.os_type] = os; + }); + var osList = data.operatingSystems.map(function (os) { + return existingOSHash[os.OperatingSystems.os_type] || { + OperatingSystems: { + os_type : os.OperatingSystems.os_type + }, + repositories: [ + { + Repositories: { + base_url: '', + repo_id: 'HDP-' + $routeParams.versionId, + repo_name: 'HDP' + } + }, + { + Repositories: { + base_url: '', + repo_id: 'HDP-UTILS-' + $routeParams.versionId, + repo_name: 'HDP-UTILS' + } + } + ], + selected: false + }; + }); + $scope.osList = osList; + }) + .catch(function (data) { + Alert.error('getSupportedOSList error', data.message); }); } @@ -40,8 +79,13 @@ angular.module('ambariAdminConsole') $scope.save = function () { $scope.editVersionDisabled = true; - delete $scope.updateObj.href; + $scope.updateObj.operating_systems = []; + angular.forEach($scope.osList, function (os) { + if (os.selected) { + $scope.updateObj.operating_systems.push(os); + } + }); Stack.updateRepo($scope.stackName, $scope.stackVersion, $scope.id, $scope.updateObj).then(function () { Alert.success('Edited version <a href="#/stackVersions/' + $scope.stackName + '/' + $scope.versionName + '/edit">' + $scope.repoVersionFullName + '</a>'); $location.path('/stackVersions'); @@ -64,5 +108,5 @@ angular.module('ambariAdminConsole') }); }); }; - loadStackVersionInfo(); + $scope.loadStackVersionInfo(); }]); http://git-wip-us.apache.org/repos/asf/ambari/blob/0ccded80/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/Stack.js ---------------------------------------------------------------------- diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/Stack.js b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/Stack.js index 7a6ef70..4e93854 100644 --- a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/Stack.js +++ b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/Stack.js @@ -175,6 +175,21 @@ angular.module('ambariAdminConsole') deferred.reject(data); }); return deferred.promise; + }, + + getSupportedOSList: function (stackName, stackVersion) { + //http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/2.2?fields=operating_systems + var url = Settings.baseUrl + '/stacks/' + stackName + '/versions/' + stackVersion + '?fields=operating_systems' + var deferred = $q.defer(); + $http.get(url, {mock: 'stacks/operatingSystems.json'}) + .success(function (data) { + deferred.resolve(data); + }) + .error(function (data) { + deferred.reject(data); + }); + return deferred.promise; } + }; }]); http://git-wip-us.apache.org/repos/asf/ambari/blob/0ccded80/ambari-admin/src/main/resources/ui/admin-web/app/views/stackVersions/create.html ---------------------------------------------------------------------- diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/views/stackVersions/create.html b/ambari-admin/src/main/resources/ui/admin-web/app/views/stackVersions/create.html index c2fc3c3..c9f2668 100644 --- a/ambari-admin/src/main/resources/ui/admin-web/app/views/stackVersions/create.html +++ b/ambari-admin/src/main/resources/ui/admin-web/app/views/stackVersions/create.html @@ -29,10 +29,11 @@ <div class="panel-body"> <div class="form-inline repo-version-inline"> <label class="control-label col-sm-2 repo-version-label">Version</label> - <div class="form-group col-sm-3 repo-version-left"> + <div class="form-group col-sm-4 repo-version-left"> <select class="form-control repo-version-select" ng-model="upgradeStack.selected" - ng-options="o as o.displayName for o in upgradeStack.options"> + ng-options="o as o.displayName for o in upgradeStack.options" + ng-change="afterStackVersionChange()"> </select> <span class="bold-dot">.</span> </div> http://git-wip-us.apache.org/repos/asf/ambari/blob/0ccded80/ambari-admin/src/main/resources/ui/admin-web/app/views/stackVersions/edit.html ---------------------------------------------------------------------- diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/views/stackVersions/edit.html b/ambari-admin/src/main/resources/ui/admin-web/app/views/stackVersions/edit.html index 85ea50d..e4ae991 100644 --- a/ambari-admin/src/main/resources/ui/admin-web/app/views/stackVersions/edit.html +++ b/ambari-admin/src/main/resources/ui/admin-web/app/views/stackVersions/edit.html @@ -92,7 +92,7 @@ </div> <div class="col-sm-9"> <div class="form-group" ng-repeat="repository in os.repositories"> - <div class="col-sm-4"><label class="control-label">{{repository.Repositories.repo_id}}</label></div> + <div class="col-sm-4"><label class="control-label">{{repository.Repositories.repo_name}}</label></div> <div class="col-sm-8"><input type="text" class="form-control" ng-model="repository.Repositories.base_url"></div> </div> </div>
