You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by nc...@apache.org on 2016/02/24 16:08:01 UTC
[14/50] [abbrv] ambari git commit: AMBARI-14795. Register Version:
add ability to load new version definition file.
AMBARI-14795. Register Version: add ability to load new version definition file.
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/e4d03b5b
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/e4d03b5b
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/e4d03b5b
Branch: refs/heads/trunk
Commit: e4d03b5b5879aff474abdbb3a9d571215383a6c4
Parents: c72dc41
Author: Xi Wang <xi...@apache.org>
Authored: Fri Jan 22 17:24:01 2016 -0800
Committer: Xi Wang <xi...@apache.org>
Committed: Wed Feb 3 13:55:05 2016 -0800
----------------------------------------------------------------------
.../app/assets/data/version/version.json | 38 ++++++-
.../stackVersions/StackVersionsCreateCtrl.js | 100 +++++++++++++++++++
.../ui/admin-web/app/scripts/i18n.config.js | 4 +
.../ui/admin-web/app/scripts/services/Stack.js | 38 +++++++
.../resources/ui/admin-web/app/styles/main.css | 16 ++-
.../views/stackVersions/stackVersionPage.html | 31 ++++++
6 files changed, 225 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/e4d03b5b/ambari-admin/src/main/resources/ui/admin-web/app/assets/data/version/version.json
----------------------------------------------------------------------
diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/assets/data/version/version.json b/ambari-admin/src/main/resources/ui/admin-web/app/assets/data/version/version.json
index 7c604f1..b5b3601 100644
--- a/ambari-admin/src/main/resources/ui/admin-web/app/assets/data/version/version.json
+++ b/ambari-admin/src/main/resources/ui/admin-web/app/assets/data/version/version.json
@@ -14,7 +14,43 @@
"id" : 15,
"repository_version" : "2.2.0.1-901",
"stack_name" : "HDP",
- "stack_version" : "2.2"
+ "stack_version" : "2.2",
+ "release": {
+ "type": "PATCH",
+ "stack_id": "HDP-2.2",
+ "version": "2.2.0.1",
+ "build": "901",
+ "compatible_with": "2.2.0.1-[1-9]",
+ "release_notes": "http://someurl"
+ },
+ "services": [
+ {
+ "name": "HDFS",
+ "versions": [
+ {
+ "version": "2.1.1",
+ "version_id": "10",
+ "components": [ "NAMENODE"]
+ }
+ ]
+ },
+ {
+ "name": "HIVE",
+ "versions": [
+ {
+ "version": "1.2.1"
+ }
+ ]
+ },
+ {
+ "name": "ZOOKEEPER",
+ "versions": [
+ {
+ "version": "3.4.5"
+ }
+ ]
+ }
+ ]
},
"operating_systems" : [
{
http://git-wip-us.apache.org/repos/asf/ambari/blob/e4d03b5b/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 a817d88..40aa103 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
@@ -151,4 +151,104 @@ angular.module('ambariAdminConsole')
$location.path('/stackVersions');
};
+ // two options to upload version definition file
+ $scope.option1 = {
+ index: 1,
+ displayName: 'Upload Version Definition File',
+ url: 'files://',
+ selected: true,
+ hasError: true
+ };
+ $scope.option2 = {
+ index: 2,
+ displayName: 'Version Definition File URL',
+ url: 'https://',
+ selected: false,
+ hasError: false
+ };
+ $scope.selectedOption = 1;
+
+ /**
+ * User can select ONLY one option to upload version definition file
+ */
+ $scope.toggleOptionSelect = function () {
+ $scope.option1.selected = $scope.selectedOption == $scope.option1.index;
+ $scope.option2.selected = $scope.selectedOption == $scope.option2.index;
+ $scope.option1.hasError = false;
+ $scope.option2.hasError = false;
+ };
+ $scope.clearOptionsError = function () {
+ $scope.option1.hasError = false;
+ $scope.option2.hasError = false;
+ };
+ $scope.readInfoButtonDisabled = function () {
+ return $scope.option1.selected ? !$scope.option1.url : !$scope.option2.url;
+ };
+
+ $scope.onFileSelect = function(){
+ return {
+ link: function($scope,el){
+ el.bind("change", function(e){
+ $scope.file = (e.srcElement || e.target).files[0];
+ $scope.getFile();
+ })
+ }
+ }
+ };
+
+// $scope.uploadFile = function(){
+// var file = $scope.myFile;
+// console.log('file is ' );
+// console.dir(file);
+// var uploadUrl = "/fileUpload";
+// fileUpload.uploadFileToUrl(file, uploadUrl);
+// };
+
+ /**
+ * Load selected file to current page content
+ */
+ $scope.readVersionInfo = function(){
+ if ($scope.option2.selected) {
+ var url = $scope.option2.url;
+ }
+ /// POST url first then get the version definition info
+ return Stack.getLatestRepo('HDP').then(function (response) {
+ $scope.id = response.id;
+ $scope.isPatch = response.type == 'PATCH';
+ $scope.stackNameVersion = response.stackNameVersion;
+ $scope.displayName = response.displayName;
+ $scope.version = response.version;
+ $scope.actualVersion = response.actualVersion;
+ $scope.services = response.services;
+ //save default values of repos to check if they were changed
+ $scope.defaulfOSRepos = {};
+ response.updateObj.operating_systems.forEach(function(os) {
+ $scope.defaulfOSRepos[os.OperatingSystems.os_type] = {
+ defaultBaseUrl: os.repositories[0].Repositories.base_url,
+ defaultUtilsUrl: os.repositories[1].Repositories.base_url
+ };
+ });
+ $scope.repoVersionFullName = response.repoVersionFullName;
+ angular.forEach(response.osList, function (os) {
+ os.selected = true;
+ });
+ $scope.selectedOS = response.osList.length;
+ $scope.osList = response.osList;
+ // if user reach here from UI click, repo status should be cached
+ // otherwise re-fetch repo status from cluster end point.
+ $scope.repoStatus = Cluster.repoStatusCache[$scope.id];
+ if (!$scope.repoStatus) {
+ $scope.fetchClusters()
+ .then(function () {
+ return $scope.fetchRepoClusterStatus();
+ })
+ .then(function () {
+ $scope.deleteEnabled = $scope.isDeletable();
+ });
+ } else {
+ $scope.deleteEnabled = $scope.isDeletable();
+ }
+ $scope.addMissingOSList();
+ });
+ };
}]);
http://git-wip-us.apache.org/repos/asf/ambari/blob/e4d03b5b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/i18n.config.js
----------------------------------------------------------------------
diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/i18n.config.js b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/i18n.config.js
index 086bc13..21622b5 100644
--- a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/i18n.config.js
+++ b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/i18n.config.js
@@ -293,6 +293,10 @@ angular.module('ambariAdminConsole')
'current': 'Current',
'inUse': 'In Use',
'installed': 'Installed',
+ 'uploadFile': 'Upload Version Definition File',
+ 'enterURL': 'Version Definition File URL',
+ 'readInfo': 'Read Version Info',
+ 'browse': 'Browse',
'installOn': 'Install on...',
'register': 'Register Version',
'deregister': 'Deregister Version',
http://git-wip-us.apache.org/repos/asf/ambari/blob/e4d03b5b/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 ffed3cc..a28943c 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
@@ -173,6 +173,44 @@ angular.module('ambariAdminConsole')
return deferred.promise;
},
+ getLatestRepo: function (stack_name) {
+ var url = Settings.baseUrl + '/stacks/' + stack_name + '/versions?' +
+ 'fields=repository_versions/operating_systems/repositories/*' +
+ ',repository_versions/RepositoryVersions/*';
+ var deferred = $q.defer();
+ $http.get(url, {mock: 'version/version.json'})
+ .success(function (data) {
+ data = data.items[0];
+ var response = {
+ id : data.repository_versions[0].RepositoryVersions.id,
+ stackVersion : data.Versions.stack_version,
+ stackName: data.Versions.stack_name,
+ type: data.repository_versions[0].RepositoryVersions.release.type,
+ stackNameVersion: data.Versions.stack_name + '-' + data.Versions.stack_version, /// HDP-2.3
+ actualVersion: data.repository_versions[0].RepositoryVersions.repository_version, /// 2.3.4.0-3846
+ version: data.repository_versions[0].RepositoryVersions.release.version, /// 2.3.4.0
+ displayName: data.Versions.stack_name + '-' + data.repository_versions[0].RepositoryVersions.release.version, //HDP-2.3.4.0
+ repoVersionFullName : data.Versions.stack_name + '-' + data.repository_versions[0].RepositoryVersions.repository_version,
+ osList: data.repository_versions[0].operating_systems,
+ updateObj: data.repository_versions[0]
+ };
+ var services = [];
+ angular.forEach(data.repository_versions[0].RepositoryVersions.services, function (service) {
+ services.push({
+ name: service.name,
+ version: service.versions[0].version,
+ components: service.versions[0].components
+ });
+ });
+ response.services = services;
+ deferred.resolve(response);
+ })
+ .error(function (data) {
+ deferred.reject(data);
+ });
+ return deferred.promise;
+ },
+
updateRepo: function (stackName, stackVersion, id, payload) {
var url = Settings.baseUrl + '/stacks/' + stackName + '/versions/' + stackVersion + '/repository_versions/' + id;
var deferred = $q.defer();
http://git-wip-us.apache.org/repos/asf/ambari/blob/e4d03b5b/ambari-admin/src/main/resources/ui/admin-web/app/styles/main.css
----------------------------------------------------------------------
diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/styles/main.css b/ambari-admin/src/main/resources/ui/admin-web/app/styles/main.css
index cc57fa3..de3d526 100644
--- a/ambari-admin/src/main/resources/ui/admin-web/app/styles/main.css
+++ b/ambari-admin/src/main/resources/ui/admin-web/app/styles/main.css
@@ -1383,4 +1383,18 @@ thead.view-permission-header > tr > th {
.test-ldap-icon.ng-hide-add-active, .test-ldap-icon.ng-hide-remove {
display: inline-block!important;
-}
\ No newline at end of file
+}
+
+.register-version-options .read-info-button {
+ margin-bottom: 10px;
+}
+
+.register-version-options .option-radio-button {
+ padding-top: 5px;
+}
+
+.register-version-options .choose-file-input {
+ padding-top: 6px;
+ padding-bottom: 20px;
+}
+
http://git-wip-us.apache.org/repos/asf/ambari/blob/e4d03b5b/ambari-admin/src/main/resources/ui/admin-web/app/views/stackVersions/stackVersionPage.html
----------------------------------------------------------------------
diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/views/stackVersions/stackVersionPage.html b/ambari-admin/src/main/resources/ui/admin-web/app/views/stackVersions/stackVersionPage.html
index 9b7e032..e23aecb 100644
--- a/ambari-admin/src/main/resources/ui/admin-web/app/views/stackVersions/stackVersionPage.html
+++ b/ambari-admin/src/main/resources/ui/admin-web/app/views/stackVersions/stackVersionPage.html
@@ -29,6 +29,37 @@
</div>
</div>
<hr>
+
+
+
+<div class="clearfix register-version-options">
+ <div class="col-sm-5 option-radio-button">
+ <label class="option-label">
+ <input type="radio" ng-model="selectedOption" value="{{option1.index}}" ng-change="toggleOptionSelect()"> {{'versions.uploadFile' | translate}}
+ </label>
+ </div>
+ <div class="col-sm-7">
+ <input type="file" class="choose-file-input" ng-file-select="onFileSelect($files)"/>
+ </div>
+</div>
+<div class="clearfix register-version-options border-bottom bottom-margin">
+ <div class="col-sm-5 option-radio-button">
+ <label class="option-label">
+ <input type="radio" ng-model="selectedOption" value="{{option2.index}}" ng-change="toggleOptionSelect()"> {{'versions.enterURL' | translate}}
+ </label>
+ </div>
+ <div class="col-sm-7">
+ <div class="form-group {{option2.name}}" ng-class="{'has-error': option2.url.hasError }">
+ <div class=""><input type="text" class="form-control" ng-model="option2.url" ng-change="clearOptionsError()" ng-disabled="!option2.selected"></div>
+ </div>
+ </div>
+ <div class="col-sm-12 read-info-button">
+ <button class="btn btn-primary pull-right" ng-click="readVersionInfo()"
+ ng-disabled="readInfoButtonDisabled()">{{'versions.readInfo' | translate}}</button>
+ </div>
+</div>
+
+
<form class="form-horizontal register-version-form" role="form" name="repoRegForm" novalidate>
<div class="panel panel-default" ng-if="createController">
<div class="panel-heading">