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/18 02:13:59 UTC

ambari git commit: AMBARI-8571. Misc TODOs for Ambari View > Version > Registration & Table List. (Richard Zang via yusaku)

Repository: ambari
Updated Branches:
  refs/heads/trunk b950cea20 -> 19f251150


AMBARI-8571. Misc TODOs for Ambari View > Version > Registration & Table 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/19f25115
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/19f25115
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/19f25115

Branch: refs/heads/trunk
Commit: 19f25115090fd6b7e8e6bec6d85555f606decc37
Parents: b950cea
Author: Yusaku Sako <yu...@hortonworks.com>
Authored: Wed Dec 17 17:13:06 2014 -0800
Committer: Yusaku Sako <yu...@hortonworks.com>
Committed: Wed Dec 17 17:13:52 2014 -0800

----------------------------------------------------------------------
 .../app/assets/data/version/versions.json       | 172 ++++++++++++++-----
 .../stackVersions/StackVersionsCreateCtrl.js    |  15 +-
 .../stackVersions/StackVersionsEditCtrl.js      |   9 +-
 .../stackVersions/StackVersionsListCtrl.js      |  14 +-
 .../ui/admin-web/app/scripts/routes.js          |   2 +-
 .../ui/admin-web/app/scripts/services/Stack.js  |  32 ++--
 .../app/views/stackVersions/create.html         |   8 +-
 .../admin-web/app/views/stackVersions/list.html |   4 +-
 8 files changed, 170 insertions(+), 86 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/19f25115/ambari-admin/src/main/resources/ui/admin-web/app/assets/data/version/versions.json
----------------------------------------------------------------------
diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/assets/data/version/versions.json b/ambari-admin/src/main/resources/ui/admin-web/app/assets/data/version/versions.json
index 939f556..a74cf34 100644
--- a/ambari-admin/src/main/resources/ui/admin-web/app/assets/data/version/versions.json
+++ b/ambari-admin/src/main/resources/ui/admin-web/app/assets/data/version/versions.json
@@ -1,52 +1,130 @@
 {
-  "items": [
+  "href" : "http://c6401.ambari.apache.org:8080/api/v1/stacks?fields=versions/repository_versions/RepositoryVersions",
+  "items" : [
     {
-      "RepositoryVersions": {
-        "id": 1,
-        "repository_version": "2.2.0.1-885",
-        "display_name": "HDP 2.2.0",
-        "upgrade_pack": "upgrade-2.2",
-        "current_hosts": ["host1", "host2"],
-        "status": "CURRENT",
-        "totalHosts": 100,
-        "cluster": "myCluster"
-      }
-},
-{
-"RepositoryVersions": {
-"id": 2,
-"repository_version": "2.2.1.1-885",
-"display_name": "HDP 2.2.1",
-"upgrade_pack": "upgrade-2.2",
-"current_hosts": ["host1", "host2"],
-"status": "INSTALLED",
-"totalHosts": 100,
-"cluster": "anotherCluster"
-}
-},
-    {
-      "RepositoryVersions": {
-        "id": 3,
-        "repository_version": "2.2.2.1-885",
-        "display_name": "HDP 2.2.2",
-        "upgrade_pack": "upgrade-2.2",
-        "current_hosts": ["host1", "host2"],
-        "status": "IN_USE",
-        "totalHosts": 100,
-        "cluster": "myCluster"
-      }
-    },
-    {
-      "RepositoryVersions": {
-        "id": 4,
-        "repository_version": "2.2.3.1-885",
-        "display_name": "HDP 2.2.3",
-        "upgrade_pack": "upgrade-2.2",
-        "current_hosts": [],
-        "status": "INIT",
-        "totalHosts": 100,
-        "cluster": ""
-      }
+      "href" : "http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP",
+      "Stacks" : {
+        "stack_name" : "HDP"
+      },
+      "versions" : [
+        {
+          "href" : "http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/1.3",
+          "Versions" : {
+            "stack_name" : "HDP",
+            "stack_version" : "1.3"
+          },
+          "repository_versions" : [ ]
+        },
+        {
+          "href" : "http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/1.3.2",
+          "Versions" : {
+            "stack_name" : "HDP",
+            "stack_version" : "1.3.2"
+          },
+          "repository_versions" : [ ]
+        },
+        {
+          "href" : "http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/1.3.3",
+          "Versions" : {
+            "stack_name" : "HDP",
+            "stack_version" : "1.3.3"
+          },
+          "repository_versions" : [ ]
+        },
+        {
+          "href" : "http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/2.0",
+          "Versions" : {
+            "stack_name" : "HDP",
+            "stack_version" : "2.0"
+          },
+          "repository_versions" : [ ]
+        },
+        {
+          "href" : "http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/2.0.6",
+          "Versions" : {
+            "stack_name" : "HDP",
+            "stack_version" : "2.0.6"
+          },
+          "repository_versions" : [ ]
+        },
+        {
+          "href" : "http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/2.0.6.GlusterFS",
+          "Versions" : {
+            "stack_name" : "HDP",
+            "stack_version" : "2.0.6.GlusterFS"
+          },
+          "repository_versions" : [ ]
+        },
+        {
+          "href" : "http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/2.1",
+          "Versions" : {
+            "stack_name" : "HDP",
+            "stack_version" : "2.1"
+          },
+          "repository_versions" : [ ]
+        },
+        {
+          "href" : "http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/2.1.GlusterFS",
+          "Versions" : {
+            "stack_name" : "HDP",
+            "stack_version" : "2.1.GlusterFS"
+          },
+          "repository_versions" : [ ]
+        },
+        {
+          "href" : "http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/2.2",
+          "Versions" : {
+            "stack_name" : "HDP",
+            "stack_version" : "2.2"
+          },
+          "repository_versions" : [
+            {
+              "href" : "http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/2.2/repository_versions/1",
+              "RepositoryVersions" : {
+                "display_name" : "HDP-2.2",
+                "id" : 1,
+                "repository_version" : "2.2",
+                "stack_name" : "HDP",
+                "stack_version" : "2.2",
+                "upgrade_pack" : ""
+              }
+            },
+            {
+              "href" : "http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/2.2/repository_versions/5",
+              "RepositoryVersions" : {
+                "display_name" : "HDP-2.2.0.1-112",
+                "id" : 5,
+                "repository_version" : "2.2.0.1-112",
+                "stack_name" : "HDP",
+                "stack_version" : "2.2",
+                "upgrade_pack" : "upgrade-2.2"
+              }
+            },
+            {
+              "href" : "http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/2.2/repository_versions/6",
+              "RepositoryVersions" : {
+                "display_name" : "HDP-2.2.0.1-113",
+                "id" : 6,
+                "repository_version" : "2.2.0.1-113",
+                "stack_name" : "HDP",
+                "stack_version" : "2.2",
+                "upgrade_pack" : "upgrade-2.2"
+              }
+            },
+            {
+              "href" : "http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/2.2/repository_versions/9",
+              "RepositoryVersions" : {
+                "display_name" : "HDP-2.2.1.1-111",
+                "id" : 9,
+                "repository_version" : "2.2.1.1-111",
+                "stack_name" : "HDP",
+                "stack_version" : "2.2",
+                "upgrade_pack" : "upgrade-2.2"
+              }
+            }
+          ]
+        }
+      ]
     }
   ]
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/19f25115/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 9f3e0fa..99a6a1a 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
@@ -21,7 +21,7 @@ angular.module('ambariAdminConsole')
 .controller('StackVersionsCreateCtrl', ['$scope', 'Stack', '$routeParams', '$location', 'Alert', function($scope, Stack, $routeParams, $location, Alert) {
   $scope.clusterName = $routeParams.clusterName;
   $scope.upgradeStack = {
-    value: null,
+    selected: null,
     options: []
   };
   $scope.fetchStackVersionFilterList = function () {
@@ -34,14 +34,13 @@ angular.module('ambariAdminConsole')
         }
       });
       $scope.upgradeStack.options = versions;
-      $scope.upgradeStack.value = versions[versions.length - 1].value;
+      $scope.upgradeStack.selected = versions[versions.length - 1];
     })
     .catch(function (data) {
       Alert.error('Fetch stack version filter list error', data.message);
     });
   };
   $scope.fetchStackVersionFilterList();
-  $scope.upgradeStack.value = $scope.upgradeStack.options[0];
 
   // TODO retrieve operating systems and repo names from stack definition
   $scope.repositories = [
@@ -85,10 +84,14 @@ angular.module('ambariAdminConsole')
   };
 
   $scope.create = function () {
-    Stack.addRepo($scope.upgradeStack.value, $scope.versionName, $scope.repositories)
+    Stack.addRepo($scope.upgradeStack.selected, $scope.repoSubversion, $scope.repositories)
     .success(function () {
-      var versionName = $scope.upgradeStack.value + '.' + $scope.versionName;
-      Alert.success('Created version <a href="#/stackVersions/' + versionName + '/edit">' + versionName + '</a>');
+      var versionName = $scope.upgradeStack.selected.stack_version + '.' + $scope.repoSubversion;
+      var stackName = $scope.upgradeStack.selected.stack_name;
+      Alert.success('Created version ' +
+      '<a href="#/stackVersions/' + stackName + '/' + versionName + '/edit">'
+        + stackName + versionName +
+      '</a>');
       $location.path('/stackVersions');
     })
     .error(function (data) {

http://git-wip-us.apache.org/repos/asf/ambari/blob/19f25115/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 6583545..27e846b 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
@@ -20,9 +20,10 @@
 angular.module('ambariAdminConsole')
 .controller('StackVersionsEditCtrl', ['$scope', '$location', 'Stack', '$routeParams', 'ConfirmationModal', 'Alert', function($scope, $location, Stack, $routeParams, ConfirmationModal, Alert) {
   function loadStackVersionInfo () {
-    return Stack.getRepo($routeParams.versionId).then(function (response) {
+    return Stack.getRepo($routeParams.versionId, $routeParams.stackName).then(function (response) {
       $scope.id = response.id;
       $scope.stack = response.stack;
+      $scope.stackName = response.stackName;
       $scope.versionName = response.versionName;
       $scope.stackVersion = response.stackVersion;
       $scope.updateObj = response.updateObj;
@@ -41,8 +42,8 @@ angular.module('ambariAdminConsole')
     $scope.editVersionDisabled = true;
 
     delete $scope.updateObj.href;
-    Stack.updateRepo($scope.stackVersion, $scope.id, $scope.updateObj).then(function () {
-      Alert.success('Edited version <a href="#/stackVersions/' + $scope.versionName + '/edit">' + $scope.repoVersionFullName + '</a>');
+    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');
     }).catch(function (data) {
       Alert.error('Version update error', data.message);
@@ -56,7 +57,7 @@ angular.module('ambariAdminConsole')
 
   $scope.delete = function () {
     ConfirmationModal.show('Delete Version', 'Are you sure you want to delete version "'+ $scope.versionName +'"?').then(function() {
-      Stack.deleteRepo($scope.stackVersion, $scope.id).then( function () {
+      Stack.deleteRepo($scope.stackName, $scope.stackVersion, $scope.id).then( function () {
         $location.path('/stackVersions');
       }).catch(function (data) {
         Alert.error('Version delete error', data.message);

http://git-wip-us.apache.org/repos/asf/ambari/blob/19f25115/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/stackVersions/StackVersionsListCtrl.js
----------------------------------------------------------------------
diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/stackVersions/StackVersionsListCtrl.js b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/stackVersions/StackVersionsListCtrl.js
index 4702db8..0744a9a 100644
--- a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/stackVersions/StackVersionsListCtrl.js
+++ b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/stackVersions/StackVersionsListCtrl.js
@@ -20,8 +20,6 @@
 angular.module('ambariAdminConsole')
   .controller('StackVersionsListCtrl', ['$scope', 'Cluster', 'Stack', '$routeParams', function ($scope, Cluster, Stack, $routeParams) {
   $scope.clusterName = $routeParams.clusterName;
-
-  // TODO retrieve a list of stacks having "upgrade_pack" from backend
   $scope.filter = {
     version: '',
     cluster: {
@@ -79,10 +77,12 @@ angular.module('ambariAdminConsole')
       $scope.pagination.totalStacks = stacks.items.length;
       var repos = [];
       angular.forEach(stacks.items, function(stack) {
-        var repoVersions = stack.repository_versions;
-        if (repoVersions.length > 0) {
-          repos = repos.concat(repoVersions);
-        }
+        angular.forEach(stack.versions, function (version) {
+          var repoVersions = version.repository_versions;
+          if (repoVersions.length > 0) {
+            repos = repos.concat(repoVersions);
+          }
+        });
       });
       repos = repos.map(function (stack) {
         return stack.RepositoryVersions;
@@ -97,7 +97,7 @@ angular.module('ambariAdminConsole')
   $scope.fillClusters = function (clusters) {
     $scope.dropDownClusters = [{
       Clusters: {
-        cluster_name: 'Install on...'
+        cluster_name: 'Configure on...'
       }
     }].concat(clusters);
     $scope.selectedCluster = $scope.dropDownClusters[0];

http://git-wip-us.apache.org/repos/asf/ambari/blob/19f25115/ambari-admin/src/main/resources/ui/admin-web/app/scripts/routes.js
----------------------------------------------------------------------
diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/routes.js b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/routes.js
index b62fafc..f86a47f 100644
--- a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/routes.js
+++ b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/routes.js
@@ -92,7 +92,7 @@ angular.module('ambariAdminConsole')
       controller: 'StackVersionsCreateCtrl'
     },
     edit: {
-      url: '/stackVersions/:versionId/edit',
+      url: '/stackVersions/:stackName/:versionId/edit',
       templateUrl: 'views/stackVersions/edit.html',
       controller: 'StackVersionsEditCtrl'
     }

http://git-wip-us.apache.org/repos/asf/ambari/blob/19f25115/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 76783b6..7a6ef70 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
@@ -51,7 +51,7 @@ angular.module('ambariAdminConsole')
 
   return {
     allStackVersions: function () {
-      var url = Settings.baseUrl + '/stacks?fields=versions/Versions';
+      var url = Settings.baseUrl + '/stacks?fields=versions/*';
       var deferred = $q.defer();
       $http.get(url, {mock: 'stack/allStackVersions.json'})
       .success(function (data) {
@@ -62,8 +62,9 @@ angular.module('ambariAdminConsole')
             var stack_version = version.Versions.stack_version;
             var upgrade_packs = version.Versions.upgrade_packs;
             allStackVersions.push({
+              stack_name: stack_name,
+              stack_version: stack_version,
               displayName: stack_name + '-' + stack_version,
-              value: stack_version,
               upgrade_packs: upgrade_packs
             });
           });
@@ -78,9 +79,9 @@ angular.module('ambariAdminConsole')
 
     allRepos: function (filter, pagination) {
       var versionFilter = filter.version;
-      var url = '/stacks/HDP/versions?fields=repository_versions/RepositoryVersions'; // TODO should not hard code HDP
+      var url = '/stacks?fields=versions/repository_versions/RepositoryVersions';
       if (versionFilter) {
-        url += '&repository_versions/RepositoryVersions/repository_version.matches(.*' + versionFilter + '.*)';
+        url += '&versions/repository_versions/RepositoryVersions/repository_version.matches(.*' + versionFilter + '.*)';
       }
       url += '&from='+ (pagination.currentPage - 1) * pagination.itemsPerPage;
       url += '&page_size=' + pagination.itemsPerPage;
@@ -95,13 +96,12 @@ angular.module('ambariAdminConsole')
       return deferred.promise;
     },
 
-    addRepo: function (stack, version, osList) {
-      var url = '/stacks/HDP/versions/2.2/repository_versions/';
+    addRepo: function (stack, repoSubversion, osList) {
+      var url = '/stacks/' + stack.stack_name + '/versions/' + stack.stack_version + '/repository_versions/';
       var payload = {};
       var payloadWrap = { RepositoryVersions : payload };
-      payload.repository_version = stack + '.' + version;
-      payload.display_name = 'HDP-' + payload.repository_version;
-      payload.upgrade_pack = "upgrade-2.2"; // TODO get this value from backend
+      payload.repository_version = stack.stack_version + '.' + repoSubversion;
+      payload.display_name = stack.stack_name + '-' + payload.repository_version;
       payloadWrap.operating_systems = [];
       angular.forEach(osList, function (osItem) {
         if (osItem.selected)
@@ -125,9 +125,8 @@ angular.module('ambariAdminConsole')
       return $http.post(Settings.baseUrl + url, payloadWrap);
     },
 
-    getRepo: function (repoVersion) {
-      // TODO do not hard code HDP
-      var url = Settings.baseUrl + '/stacks/HDP/versions?' +
+    getRepo: function (repoVersion, stack_name) {
+      var url = Settings.baseUrl + '/stacks/' + stack_name + '/versions?' +
                 'fields=repository_versions/operating_systems/repositories/*' +
                 '&repository_versions/RepositoryVersions/repository_version=' + repoVersion;
       var deferred = $q.defer();
@@ -138,6 +137,7 @@ angular.module('ambariAdminConsole')
           id : data.repository_versions[0].RepositoryVersions.id,
           stackVersion : data.Versions.stack_version,
           stack: data.Versions.stack_name + '-' + data.Versions.stack_version,
+          stackName: data.Versions.stack_name,
           versionName: data.repository_versions[0].RepositoryVersions.repository_version,
           repoVersionFullName : data.Versions.stack_name + '-' + data.repository_versions[0].RepositoryVersions.repository_version,
           osList: data.repository_versions[0].operating_systems,
@@ -151,8 +151,8 @@ angular.module('ambariAdminConsole')
       return deferred.promise;
     },
 
-    updateRepo: function (stackVersion, id, payload) {
-      var url = Settings.baseUrl + '/stacks/HDP/versions/' + stackVersion + '/repository_versions/' + id;
+    updateRepo: function (stackName, stackVersion, id, payload) {
+      var url = Settings.baseUrl + '/stacks/' + stackName + '/versions/' + stackVersion + '/repository_versions/' + id;
       var deferred = $q.defer();
       $http.put(url, payload)
       .success(function (data) {
@@ -164,8 +164,8 @@ angular.module('ambariAdminConsole')
       return deferred.promise;
     },
 
-    deleteRepo: function (stackVersion, id) {
-      var url = Settings.baseUrl + '/stacks/HDP/versions/' + stackVersion + '/repository_versions/' + id;
+    deleteRepo: function (stackName, stackVersion, id) {
+      var url = Settings.baseUrl + '/stacks/' + stackName + '/versions/' + stackVersion + '/repository_versions/' + id;
       var deferred = $q.defer();
       $http.delete(url)
       .success(function (data) {

http://git-wip-us.apache.org/repos/asf/ambari/blob/19f25115/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 70d55a1..b4487db 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
@@ -31,15 +31,15 @@
         <label class="control-label col-sm-2 repo-version-label">Version</label>
         <div class="form-group col-sm-3 repo-version-left">
           <select class="form-control repo-version-select"
-                  ng-model="upgradeStack.value"
-                  ng-options="o.value as o.displayName for o in upgradeStack.options">
+                  ng-model="upgradeStack.selected"
+                  ng-options="o as o.displayName for o in upgradeStack.options">
           </select>
           <span class="bold-dot">.</span>
         </div>
         <div class="form-group col-sm-6" ng-class="{'has-error' : repoRegForm.version.$error.pattern}">
-          <input class="form-control" name="version" type="text" ng-model="versionName" ng-pattern="/^\d(\.\d)?(\-\d*)?$/"
+          <input class="form-control" name="version" type="text" ng-model="repoSubversion" ng-pattern="/^\d(\.\d)?(\-\d*)?$/"
                  placeholder="Version Name" required/>
-          <span class="text-primary" ng-show="!repoRegForm.version.$error.pattern">&nbsp;{{upgradeStack.value + '.' + versionName}}</span>
+          <span class="text-primary" ng-show="!repoRegForm.version.$error.pattern">&nbsp;{{upgradeStack.selected.displayName + '.' + repoSubversion}}</span>
           <span class="text-danger" ng-show="repoRegForm.version.$error.pattern">Invalid subversion. eg: 1.0-123</span>
         </div>
       </div>

http://git-wip-us.apache.org/repos/asf/ambari/blob/19f25115/ambari-admin/src/main/resources/ui/admin-web/app/views/stackVersions/list.html
----------------------------------------------------------------------
diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/views/stackVersions/list.html b/ambari-admin/src/main/resources/ui/admin-web/app/views/stackVersions/list.html
index 5c280f5..d357ef3 100644
--- a/ambari-admin/src/main/resources/ui/admin-web/app/views/stackVersions/list.html
+++ b/ambari-admin/src/main/resources/ui/admin-web/app/views/stackVersions/list.html
@@ -49,7 +49,9 @@
     </thead>
     <tbody>
     <tr ng-repeat="repo in repos">
-      <td class="col-medium"><a href="#/stackVersions/{{repo.repository_version}}/edit">{{'HDP-' + repo.repository_version}}</a></td>
+      <td class="col-medium">
+        <a href="#/stackVersions/{{repo.stack_name}}/{{repo.repository_version}}/edit">{{repo.stack_name + '-' + repo.repository_version}}</a>
+      </td>
       <td class="col-small">
         <a href ng-show="repo.cluster">
           <i class="glyphicon glyphicon-cloud"></i>