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 2014/12/24 01:39:52 UTC

ambari git commit: AMBARI-8875. Repository Versions > Create&Edit E2E integration of OS list. (Richard Zang via yusaku)

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 <yu...@hortonworks.com>
Authored: Tue Dec 23 16:39:24 2014 -0800
Committer: Yusaku Sako <yu...@hortonworks.com>
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>