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/08/14 22:24:19 UTC
[2/2] git commit: AMBARI-6787. Cleanup of Cluster > Admin tab.
(xiwang via yusaku)
AMBARI-6787. Cleanup of Cluster > Admin tab. (xiwang via yusaku)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/43333740
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/43333740
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/43333740
Branch: refs/heads/trunk
Commit: 433337402553978dd2ca7818cd935f9c2b625858
Parents: c6c2165
Author: Yusaku Sako <yu...@hortonworks.com>
Authored: Thu Aug 14 13:23:23 2014 -0700
Committer: Yusaku Sako <yu...@hortonworks.com>
Committed: Thu Aug 14 13:23:40 2014 -0700
----------------------------------------------------------------------
ambari-web/app/controllers.js | 7 +-
.../app/controllers/main/admin/cluster.js | 161 ------------
.../nameNode/step1_controller.js | 2 +-
.../nameNode/step4_controller.js | 2 +-
.../resourceManager/step4_controller.js | 2 +-
.../controllers/main/admin/misc_controller.js | 127 ----------
.../app/controllers/main/admin/repositories.js | 161 ++++++++++++
.../main/admin/serviceAccounts_controller.js | 127 ++++++++++
ambari-web/app/controllers/main/admin/user.js | 76 ------
.../app/controllers/main/admin/user/create.js | 24 --
.../app/controllers/main/admin/user/edit.js | 24 --
ambari-web/app/controllers/wizard.js | 2 +-
ambari-web/app/messages.js | 2 +
ambari-web/app/routes/main.js | 84 +------
ambari-web/app/templates/main/admin/access.hbs | 29 ---
ambari-web/app/templates/main/admin/cluster.hbs | 121 ---------
ambari-web/app/templates/main/admin/misc.hbs | 50 ----
.../app/templates/main/admin/repositories.hbs | 121 +++++++++
.../templates/main/admin/serviceAccounts.hbs | 50 ++++
ambari-web/app/templates/main/admin/user.hbs | 42 ----
.../app/templates/main/admin/user/create.hbs | 43 ----
.../app/templates/main/admin/user/edit.hbs | 38 ---
.../app/templates/main/admin/user/row.hbs | 27 --
ambari-web/app/views.js | 10 +-
ambari-web/app/views/main/admin.js | 41 ++--
ambari-web/app/views/main/admin/access_view.js | 23 --
ambari-web/app/views/main/admin/cluster.js | 246 -------------------
ambari-web/app/views/main/admin/menu.js | 89 -------
ambari-web/app/views/main/admin/misc_view.js | 26 --
ambari-web/app/views/main/admin/repositories.js | 246 +++++++++++++++++++
.../views/main/admin/serviceAccounts_view.js | 26 ++
ambari-web/app/views/main/admin/user.js | 37 ---
ambari-web/app/views/main/admin/user/create.js | 129 ----------
ambari-web/app/views/main/admin/user/edit.js | 137 -----------
ambari-web/app/views/main/admin/user/row.js | 24 --
ambari-web/app/views/main/menu.js | 42 ++--
36 files changed, 780 insertions(+), 1618 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/43333740/ambari-web/app/controllers.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers.js b/ambari-web/app/controllers.js
index 3601cd2..063af6a 100644
--- a/ambari-web/app/controllers.js
+++ b/ambari-web/app/controllers.js
@@ -51,13 +51,10 @@ require('controllers/main/admin/highAvailability/resourceManager/step1_controlle
require('controllers/main/admin/highAvailability/resourceManager/step2_controller');
require('controllers/main/admin/highAvailability/resourceManager/step3_controller');
require('controllers/main/admin/highAvailability/resourceManager/step4_controller');
-require('controllers/main/admin/cluster');
+require('controllers/main/admin/repositories');
require('controllers/main/admin/stack_upgrade_controller');
-require('controllers/main/admin/user');
-require('controllers/main/admin/misc_controller');
+require('controllers/main/admin/serviceAccounts_controller');
require('controllers/main/admin/access_controller');
-require('controllers/main/admin/user/edit');
-require('controllers/main/admin/user/create');
require('controllers/main/admin/advanced');
require('utils/polling');
require('controllers/main/admin/security');
http://git-wip-us.apache.org/repos/asf/ambari/blob/43333740/ambari-web/app/controllers/main/admin/cluster.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/admin/cluster.js b/ambari-web/app/controllers/main/admin/cluster.js
deleted file mode 100644
index 30095d3..0000000
--- a/ambari-web/app/controllers/main/admin/cluster.js
+++ /dev/null
@@ -1,161 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-var App = require('app');
-var stringUtils = require('utils/string_utils');
-
-App.MainAdminClusterController = Em.Controller.extend({
- name: 'mainAdminClusterController',
- services: [],
- allRepos: [],
- upgradeVersion: '',
- /**
- * get the newest version of HDP from server
- */
- updateUpgradeVersion: function () {
- if (App.router.get('clusterController.isLoaded')) {
- App.ajax.send({
- name: 'cluster.update_upgrade_version',
- sender: this,
- success: 'updateUpgradeVersionSuccessCallback',
- error: 'updateUpgradeVersionErrorCallback'
- });
- }
- }.observes('App.router.clusterController.isLoaded', 'App.currentStackVersion', 'App.router.mainServiceController.content.length'),
-
- updateUpgradeVersionSuccessCallback: function (data) {
- var upgradeVersion = this.get('upgradeVersion') || App.get('defaultStackVersion');
- var currentVersion = App.get('currentStackVersionNumber');
- upgradeVersion = upgradeVersion.replace(/HDP-/, '');
- data.items.mapProperty('Versions.stack_version').forEach(function (version) {
- upgradeVersion = (stringUtils.compareVersions(upgradeVersion, version) === -1) ? version : upgradeVersion;
- });
- var currentStack = data.items.findProperty('Versions.stack_version', currentVersion);
- var upgradeStack = data.items.findProperty('Versions.stack_version', upgradeVersion);
- var minUpgradeVersion = upgradeStack.Versions.min_upgrade_version;
- if (minUpgradeVersion && (stringUtils.compareVersions(minUpgradeVersion, currentVersion) === 1)) {
- upgradeVersion = currentVersion;
- upgradeStack = currentStack;
- }
- upgradeVersion = 'HDP-' + upgradeVersion;
- this.set('upgradeVersion', upgradeVersion);
- if (currentStack && upgradeStack) {
- this.parseServicesInfo(currentStack, upgradeStack);
- }
- else {
- console.log('HDP stack doesn\'t have services with defaultStackVersion');
- }
- },
-
- updateUpgradeVersionErrorCallback: function (request, ajaxOptions, error) {
- console.log('Error message is: ' + request.responseText);
- console.log('HDP stack doesn\'t have services with defaultStackVersion');
- },
-
- /**
- * get the installed repositories of HDP from server
- */
- loadRepositories: function () {
- if (App.router.get('clusterController.isLoaded')) {
- var nameVersionCombo = App.get('currentStackVersion');
- var stackName = nameVersionCombo.split('-')[0];
- var stackVersion = nameVersionCombo.split('-')[1];
- App.ajax.send({
- name: 'cluster.load_repositories',
- sender: this,
- data: {
- stackName: stackName,
- stackVersion: stackVersion
- },
- success: 'loadRepositoriesSuccessCallback',
- error: 'loadRepositoriesErrorCallback'
- });
- }
- }.observes('App.router.clusterController.isLoaded'),
-
- loadRepositoriesSuccessCallback: function (data) {
- var allRepos = [];
- data.items.forEach(function (os) {
- if (!App.get('supports.ubuntu') && os.OperatingSystems.os_type == 'debian12') return; // @todo: remove after Ubuntu support confirmation
- os.repositories.forEach(function (repository) {
- var osType = repository.Repositories.os_type;
- var repo = Em.Object.create({
- baseUrl: repository.Repositories.base_url,
- osType: osType,
- repoId: repository.Repositories.repo_id,
- repoName : repository.Repositories.repo_name,
- stackName : repository.Repositories.stack_name,
- stackVersion : repository.Repositories.stack_version,
- isFirst: false
- });
- var group = allRepos.findProperty('name', osType);
- if (!group) {
- group = {
- name: osType,
- repositories: []
- };
- repo.set('isFirst', true);
- allRepos.push(group);
- }
- group.repositories.push(repo);
- });
- }, this);
- allRepos.stackVersion = App.get('currentStackVersionNumber');
- this.set('allRepos', allRepos);
- },
-
- loadRepositoriesErrorCallback: function (request, ajaxOptions, error) {
- console.log('Error message is: ' + request.responseText);
- },
-
- /**
- * parse services info(versions, description) by version
- */
- parseServicesInfo: function (currentStack, upgradeStack) {
- var result = [];
- var installedServices = App.Service.find().mapProperty('serviceName');
- var displayOrder = App.StackService.displayOrder;
- if (currentStack.stackServices.length && upgradeStack.stackServices.length) {
- // loop through all the service components
- displayOrder.forEach(function (_stackServiceName) {
- var entry = currentStack.stackServices.
- findProperty("StackServices.service_name", _stackServiceName);
- var stackService = App.StackService.find().findProperty('serviceName', _stackServiceName);
- if (!!stackService) {
- var myService = Em.Object.create({
- serviceName: stackService.get('serviceName'),
- displayName: stackService.get('displayNameOnSelectServicePage'),
- isSelected: true,
- isInstalled: false,
- isHidden: stackService.get('isHiddenOnSelectServicePage'),
- description: stackService.get('comments'),
- version: stackService.get('serviceVersion'),
- newVersion: ''
- });
- // it's possible that there is no corresponding service in the new stack
- var matchedService = upgradeStack.stackServices.findProperty("StackServices.service_name", stackService.get('serviceName'));
- if (matchedService) {
- myService.newVersion = matchedService.StackServices.service_version;
- }
- result.push(myService);
- }
- }, this);
- }
- this.set('services', result);
- }
-});
http://git-wip-us.apache.org/repos/asf/ambari/blob/43333740/ambari-web/app/controllers/main/admin/highAvailability/nameNode/step1_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/admin/highAvailability/nameNode/step1_controller.js b/ambari-web/app/controllers/main/admin/highAvailability/nameNode/step1_controller.js
index d3c1da4..91a35b2 100644
--- a/ambari-web/app/controllers/main/admin/highAvailability/nameNode/step1_controller.js
+++ b/ambari-web/app/controllers/main/admin/highAvailability/nameNode/step1_controller.js
@@ -18,7 +18,7 @@
var App = require('app');
-require('controllers/main/admin/misc_controller');
+require('controllers/main/admin/serviceAccounts_controller');
App.HighAvailabilityWizardStep1Controller = Em.Controller.extend({
name: "highAvailabilityWizardStep1Controller",
http://git-wip-us.apache.org/repos/asf/ambari/blob/43333740/ambari-web/app/controllers/main/admin/highAvailability/nameNode/step4_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/admin/highAvailability/nameNode/step4_controller.js b/ambari-web/app/controllers/main/admin/highAvailability/nameNode/step4_controller.js
index cc243a1..2fba24e 100644
--- a/ambari-web/app/controllers/main/admin/highAvailability/nameNode/step4_controller.js
+++ b/ambari-web/app/controllers/main/admin/highAvailability/nameNode/step4_controller.js
@@ -18,7 +18,7 @@
var App = require('app');
-require('controllers/main/admin/misc_controller');
+require('controllers/main/admin/serviceAccounts_controller');
App.HighAvailabilityWizardStep4Controller = Em.Controller.extend({
http://git-wip-us.apache.org/repos/asf/ambari/blob/43333740/ambari-web/app/controllers/main/admin/highAvailability/resourceManager/step4_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/admin/highAvailability/resourceManager/step4_controller.js b/ambari-web/app/controllers/main/admin/highAvailability/resourceManager/step4_controller.js
index 5e0e97c..335f8e0 100644
--- a/ambari-web/app/controllers/main/admin/highAvailability/resourceManager/step4_controller.js
+++ b/ambari-web/app/controllers/main/admin/highAvailability/resourceManager/step4_controller.js
@@ -18,7 +18,7 @@
var App = require('app');
-require('controllers/main/admin/misc_controller');
+require('controllers/main/admin/serviceAccounts_controller');
App.RMHighAvailabilityWizardStep4Controller = App.HighAvailabilityProgressPageController.extend({
http://git-wip-us.apache.org/repos/asf/ambari/blob/43333740/ambari-web/app/controllers/main/admin/misc_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/admin/misc_controller.js b/ambari-web/app/controllers/main/admin/misc_controller.js
deleted file mode 100644
index 01b92d9..0000000
--- a/ambari-web/app/controllers/main/admin/misc_controller.js
+++ /dev/null
@@ -1,127 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-var App = require('app');
-var stringUtils = require('utils/string_utils');
-
-require('controllers/main/service/info/configs');
-
-App.MainAdminMiscController = App.MainServiceInfoConfigsController.extend({
- name: 'mainAdminMiscController',
- users: null,
- content: Em.Object.create({
- serviceName: 'MISC'
- }),
- loadUsers: function () {
- this.set('selectedService', this.get('content.serviceName'));
- this.loadServiceConfig();
- },
- loadServiceConfig: function () {
- App.ajax.send({
- name: 'config.tags',
- sender: this,
- data: {
- serviceName: this.get('content.serviceName'),
- serviceConfigsDef: this.get('serviceConfigs').findProperty('serviceName', this.get('content.serviceName'))
- },
- success: 'loadServiceTagSuccess'
- });
- },
- loadServiceTagSuccess: function (data, opt, params) {
- var self = this;
- var installedServices = App.Service.find().mapProperty("serviceName");
- var serviceConfigsDef = params.serviceConfigsDef;
- var serviceName = this.get('content.serviceName');
- var loadedClusterSiteToTagMap = {};
-
- for (var site in data.Clusters.desired_configs) {
- if (!!serviceConfigsDef.configTypes[site]) {
- loadedClusterSiteToTagMap[site] = data.Clusters.desired_configs[site]['tag'];
- }
- }
- this.setServiceConfigTags(loadedClusterSiteToTagMap);
- App.router.get('configurationController').getConfigsByTags(this.get('serviceConfigTags')).done(function(configGroups){
- var configSet = App.config.mergePreDefinedWithLoaded(configGroups, [], self.get('serviceConfigTags'), serviceName);
-
- var misc_configs = configSet.configs.filterProperty('serviceName', self.get('selectedService')).filterProperty('category', 'Users and Groups').filterProperty('isVisible', true);
-
- misc_configs = App.config.miscConfigVisibleProperty(misc_configs, installedServices);
-
- var sortOrder = self.get('configs').filterProperty('serviceName', self.get('selectedService')).filterProperty('category', 'Users and Groups').filterProperty('isVisible', true).mapProperty('name');
-
- //stack, with version lower than 2.1, doesn't have Falcon service
- self.setProxyUserGroupLabel(misc_configs);
-
- self.set('users', self.sortByOrder(sortOrder, misc_configs));
-
- self.setContentProperty('hdfsUser', 'hdfs_user', misc_configs);
- self.setContentProperty('group', 'user_group', misc_configs);
-
- self.set('dataIsLoaded', true);
- });
- },
- /**
- * set config value to property of "content"
- * @param key
- * @param configName
- * @param misc_configs
- * @return {Boolean}
- */
- setContentProperty: function (key, configName, misc_configs) {
- var content = this.get('content');
- if (key && configName && misc_configs.someProperty('name', configName) && content.get(key)) {
- content.set(key, misc_configs.findProperty('name', configName).get("value"));
- return true;
- }
- return false;
- },
- /**
- * sort miscellaneous configs by specific order
- * @param sortOrder
- * @param arrayToSort
- * @return {Array}
- */
- sortByOrder: function (sortOrder, arrayToSort) {
- var sorted = [];
- if (sortOrder && sortOrder.length > 0) {
- sortOrder.forEach(function (name) {
- var user = arrayToSort.findProperty('name', name);
- if (user) {
- sorted.push({
- isVisible: user.get('isVisible'),
- displayName: user.get('displayName'),
- value: user.get('value')
- });
- }
- });
- return sorted;
- } else {
- return arrayToSort;
- }
- },
- /**
- * set displayName of "proxyuser_group" depending on stack version
- * @param misc_configs
- */
- setProxyUserGroupLabel: function (misc_configs) {
- var proxyUserGroup = misc_configs.findProperty('name', 'proxyuser_group');
- if (proxyUserGroup && !App.get('isHadoop21Stack')) {
- proxyUserGroup.set('displayName', "Proxy group for Hive, WebHCat and Oozie");
- }
- }
-});
http://git-wip-us.apache.org/repos/asf/ambari/blob/43333740/ambari-web/app/controllers/main/admin/repositories.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/admin/repositories.js b/ambari-web/app/controllers/main/admin/repositories.js
new file mode 100644
index 0000000..d233031
--- /dev/null
+++ b/ambari-web/app/controllers/main/admin/repositories.js
@@ -0,0 +1,161 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+var App = require('app');
+var stringUtils = require('utils/string_utils');
+
+App.MainAdminRepositoriesController = Em.Controller.extend({
+ name: 'mainAdminRepositoriesController',
+ services: [],
+ allRepos: [],
+ upgradeVersion: '',
+ /**
+ * get the newest version of HDP from server
+ */
+ updateUpgradeVersion: function () {
+ if (App.router.get('clusterController.isLoaded')) {
+ App.ajax.send({
+ name: 'cluster.update_upgrade_version',
+ sender: this,
+ success: 'updateUpgradeVersionSuccessCallback',
+ error: 'updateUpgradeVersionErrorCallback'
+ });
+ }
+ }.observes('App.router.clusterController.isLoaded', 'App.currentStackVersion', 'App.router.mainServiceController.content.length'),
+
+ updateUpgradeVersionSuccessCallback: function (data) {
+ var upgradeVersion = this.get('upgradeVersion') || App.get('defaultStackVersion');
+ var currentVersion = App.get('currentStackVersionNumber');
+ upgradeVersion = upgradeVersion.replace(/HDP-/, '');
+ data.items.mapProperty('Versions.stack_version').forEach(function (version) {
+ upgradeVersion = (stringUtils.compareVersions(upgradeVersion, version) === -1) ? version : upgradeVersion;
+ });
+ var currentStack = data.items.findProperty('Versions.stack_version', currentVersion);
+ var upgradeStack = data.items.findProperty('Versions.stack_version', upgradeVersion);
+ var minUpgradeVersion = upgradeStack.Versions.min_upgrade_version;
+ if (minUpgradeVersion && (stringUtils.compareVersions(minUpgradeVersion, currentVersion) === 1)) {
+ upgradeVersion = currentVersion;
+ upgradeStack = currentStack;
+ }
+ upgradeVersion = 'HDP-' + upgradeVersion;
+ this.set('upgradeVersion', upgradeVersion);
+ if (currentStack && upgradeStack) {
+ this.parseServicesInfo(currentStack, upgradeStack);
+ }
+ else {
+ console.log('HDP stack doesn\'t have services with defaultStackVersion');
+ }
+ },
+
+ updateUpgradeVersionErrorCallback: function (request, ajaxOptions, error) {
+ console.log('Error message is: ' + request.responseText);
+ console.log('HDP stack doesn\'t have services with defaultStackVersion');
+ },
+
+ /**
+ * get the installed repositories of HDP from server
+ */
+ loadRepositories: function () {
+ if (App.router.get('clusterController.isLoaded')) {
+ var nameVersionCombo = App.get('currentStackVersion');
+ var stackName = nameVersionCombo.split('-')[0];
+ var stackVersion = nameVersionCombo.split('-')[1];
+ App.ajax.send({
+ name: 'cluster.load_repositories',
+ sender: this,
+ data: {
+ stackName: stackName,
+ stackVersion: stackVersion
+ },
+ success: 'loadRepositoriesSuccessCallback',
+ error: 'loadRepositoriesErrorCallback'
+ });
+ }
+ }.observes('App.router.clusterController.isLoaded'),
+
+ loadRepositoriesSuccessCallback: function (data) {
+ var allRepos = [];
+ data.items.forEach(function (os) {
+ if (!App.get('supports.ubuntu') && os.OperatingSystems.os_type == 'debian12') return; // @todo: remove after Ubuntu support confirmation
+ os.repositories.forEach(function (repository) {
+ var osType = repository.Repositories.os_type;
+ var repo = Em.Object.create({
+ baseUrl: repository.Repositories.base_url,
+ osType: osType,
+ repoId: repository.Repositories.repo_id,
+ repoName : repository.Repositories.repo_name,
+ stackName : repository.Repositories.stack_name,
+ stackVersion : repository.Repositories.stack_version,
+ isFirst: false
+ });
+ var group = allRepos.findProperty('name', osType);
+ if (!group) {
+ group = {
+ name: osType,
+ repositories: []
+ };
+ repo.set('isFirst', true);
+ allRepos.push(group);
+ }
+ group.repositories.push(repo);
+ });
+ }, this);
+ allRepos.stackVersion = App.get('currentStackVersionNumber');
+ this.set('allRepos', allRepos);
+ },
+
+ loadRepositoriesErrorCallback: function (request, ajaxOptions, error) {
+ console.log('Error message is: ' + request.responseText);
+ },
+
+ /**
+ * parse services info(versions, description) by version
+ */
+ parseServicesInfo: function (currentStack, upgradeStack) {
+ var result = [];
+ var installedServices = App.Service.find().mapProperty('serviceName');
+ var displayOrder = App.StackService.displayOrder;
+ if (currentStack.stackServices.length && upgradeStack.stackServices.length) {
+ // loop through all the service components
+ displayOrder.forEach(function (_stackServiceName) {
+ var entry = currentStack.stackServices.
+ findProperty("StackServices.service_name", _stackServiceName);
+ var stackService = App.StackService.find().findProperty('serviceName', _stackServiceName);
+ if (!!stackService) {
+ var myService = Em.Object.create({
+ serviceName: stackService.get('serviceName'),
+ displayName: stackService.get('displayNameOnSelectServicePage'),
+ isSelected: true,
+ isInstalled: false,
+ isHidden: stackService.get('isHiddenOnSelectServicePage'),
+ description: stackService.get('comments'),
+ version: stackService.get('serviceVersion'),
+ newVersion: ''
+ });
+ // it's possible that there is no corresponding service in the new stack
+ var matchedService = upgradeStack.stackServices.findProperty("StackServices.service_name", stackService.get('serviceName'));
+ if (matchedService) {
+ myService.newVersion = matchedService.StackServices.service_version;
+ }
+ result.push(myService);
+ }
+ }, this);
+ }
+ this.set('services', result);
+ }
+});
http://git-wip-us.apache.org/repos/asf/ambari/blob/43333740/ambari-web/app/controllers/main/admin/serviceAccounts_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/admin/serviceAccounts_controller.js b/ambari-web/app/controllers/main/admin/serviceAccounts_controller.js
new file mode 100644
index 0000000..741597a
--- /dev/null
+++ b/ambari-web/app/controllers/main/admin/serviceAccounts_controller.js
@@ -0,0 +1,127 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+var App = require('app');
+var stringUtils = require('utils/string_utils');
+
+require('controllers/main/service/info/configs');
+
+App.MainAdminServiceAccountsController = App.MainServiceInfoConfigsController.extend({
+ name: 'mainAdminServiceAccountsController',
+ users: null,
+ content: Em.Object.create({
+ serviceName: 'MISC'
+ }),
+ loadUsers: function () {
+ this.set('selectedService', this.get('content.serviceName'));
+ this.loadServiceConfig();
+ },
+ loadServiceConfig: function () {
+ App.ajax.send({
+ name: 'config.tags',
+ sender: this,
+ data: {
+ serviceName: this.get('content.serviceName'),
+ serviceConfigsDef: this.get('serviceConfigs').findProperty('serviceName', this.get('content.serviceName'))
+ },
+ success: 'loadServiceTagSuccess'
+ });
+ },
+ loadServiceTagSuccess: function (data, opt, params) {
+ var self = this;
+ var installedServices = App.Service.find().mapProperty("serviceName");
+ var serviceConfigsDef = params.serviceConfigsDef;
+ var serviceName = this.get('content.serviceName');
+ var loadedClusterSiteToTagMap = {};
+
+ for (var site in data.Clusters.desired_configs) {
+ if (!!serviceConfigsDef.configTypes[site]) {
+ loadedClusterSiteToTagMap[site] = data.Clusters.desired_configs[site]['tag'];
+ }
+ }
+ this.setServiceConfigTags(loadedClusterSiteToTagMap);
+ App.router.get('configurationController').getConfigsByTags(this.get('serviceConfigTags')).done(function(configGroups){
+ var configSet = App.config.mergePreDefinedWithLoaded(configGroups, [], self.get('serviceConfigTags'), serviceName);
+
+ var misc_configs = configSet.configs.filterProperty('serviceName', self.get('selectedService')).filterProperty('category', 'Users and Groups').filterProperty('isVisible', true);
+
+ misc_configs = App.config.miscConfigVisibleProperty(misc_configs, installedServices);
+
+ var sortOrder = self.get('configs').filterProperty('serviceName', self.get('selectedService')).filterProperty('category', 'Users and Groups').filterProperty('isVisible', true).mapProperty('name');
+
+ //stack, with version lower than 2.1, doesn't have Falcon service
+ self.setProxyUserGroupLabel(misc_configs);
+
+ self.set('users', self.sortByOrder(sortOrder, misc_configs));
+
+ self.setContentProperty('hdfsUser', 'hdfs_user', misc_configs);
+ self.setContentProperty('group', 'user_group', misc_configs);
+
+ self.set('dataIsLoaded', true);
+ });
+ },
+ /**
+ * set config value to property of "content"
+ * @param key
+ * @param configName
+ * @param misc_configs
+ * @return {Boolean}
+ */
+ setContentProperty: function (key, configName, misc_configs) {
+ var content = this.get('content');
+ if (key && configName && misc_configs.someProperty('name', configName) && content.get(key)) {
+ content.set(key, misc_configs.findProperty('name', configName).get("value"));
+ return true;
+ }
+ return false;
+ },
+ /**
+ * sort miscellaneous configs by specific order
+ * @param sortOrder
+ * @param arrayToSort
+ * @return {Array}
+ */
+ sortByOrder: function (sortOrder, arrayToSort) {
+ var sorted = [];
+ if (sortOrder && sortOrder.length > 0) {
+ sortOrder.forEach(function (name) {
+ var user = arrayToSort.findProperty('name', name);
+ if (user) {
+ sorted.push({
+ isVisible: user.get('isVisible'),
+ displayName: user.get('displayName'),
+ value: user.get('value')
+ });
+ }
+ });
+ return sorted;
+ } else {
+ return arrayToSort;
+ }
+ },
+ /**
+ * set displayName of "proxyuser_group" depending on stack version
+ * @param misc_configs
+ */
+ setProxyUserGroupLabel: function (misc_configs) {
+ var proxyUserGroup = misc_configs.findProperty('name', 'proxyuser_group');
+ if (proxyUserGroup && !App.get('isHadoop21Stack')) {
+ proxyUserGroup.set('displayName', "Proxy group for Hive, WebHCat and Oozie");
+ }
+ }
+});
http://git-wip-us.apache.org/repos/asf/ambari/blob/43333740/ambari-web/app/controllers/main/admin/user.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/admin/user.js b/ambari-web/app/controllers/main/admin/user.js
deleted file mode 100644
index aacc544..0000000
--- a/ambari-web/app/controllers/main/admin/user.js
+++ /dev/null
@@ -1,76 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-var App = require('app');
-
-App.MainAdminUserController = Em.Controller.extend({
-
- name: 'mainAdminUserController',
-
- /**
- * Send request to the server to delete user if selected user is not current user
- * @param {object} event
- * @method deleteRecord
- */
- deleteRecord: function (event) {
- var self = this;
- if (event.context.get('userName') == App.get('router').getLoginName()) {
- App.ModalPopup.show({
- header: Em.I18n.t('admin.users.delete.yourself.header'),
- body: Em.I18n.t('admin.users.delete.yourself.message'),
- secondary: false
- });
- return;
- }
-
- App.ModalPopup.show({
- header: Em.I18n.t('admin.users.delete.header').format(event.context.get('userName')),
- body: Em.I18n.t('question.sure').format(''),
- primary: Em.I18n.t('yes'),
- secondary: Em.I18n.t('no'),
-
- onPrimary: function () {
- App.ajax.send({
- name: 'common.delete.user',
- sender: self,
- data: {
- user: event.context.get("userName"),
- event: event
- },
- success: 'deleteUserSuccessCallback'
- });
- this.hide();
- }
- });
- },
-
- /**
- * Success callback for delete user request
- * @param {object} data
- * @param {object} opt
- * @param {object} params
- * @method deleteUserSuccessCallback
- */
- deleteUserSuccessCallback: function (data, opt, params) {
- params.event.context.deleteRecord();
- try {
- App.store.commit();
- } catch (err) {
- }
- }
-});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/43333740/ambari-web/app/controllers/main/admin/user/create.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/admin/user/create.js b/ambari-web/app/controllers/main/admin/user/create.js
deleted file mode 100644
index 5b833a3..0000000
--- a/ambari-web/app/controllers/main/admin/user/create.js
+++ /dev/null
@@ -1,24 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-var App = require('app');
-
-App.MainAdminUserCreateController = Em.Controller.extend({
- name:'mainAdminUserCreateController',
- content:false
-});
http://git-wip-us.apache.org/repos/asf/ambari/blob/43333740/ambari-web/app/controllers/main/admin/user/edit.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/admin/user/edit.js b/ambari-web/app/controllers/main/admin/user/edit.js
deleted file mode 100644
index 71c19ef..0000000
--- a/ambari-web/app/controllers/main/admin/user/edit.js
+++ /dev/null
@@ -1,24 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-var App = require('app');
-
-App.MainAdminUserEditController = App.MainAdminUserController.extend({
- name:'mainAdminUserEditController',
- content:false
-});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/43333740/ambari-web/app/controllers/wizard.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/wizard.js b/ambari-web/app/controllers/wizard.js
index f680a07..723b929 100644
--- a/ambari-web/app/controllers/wizard.js
+++ b/ambari-web/app/controllers/wizard.js
@@ -742,7 +742,7 @@ App.WizardController = Em.Controller.extend(App.LocalStorage, {
usersLoading: function () {
var self = this;
var dfd = $.Deferred();
- var miscController = App.MainAdminMiscController.create({content: self.get('content')});
+ var miscController = App.MainAdminServiceAccountsController.create({content: self.get('content')});
miscController.loadUsers();
var interval = setInterval(function () {
if (miscController.get('dataIsLoaded')) {
http://git-wip-us.apache.org/repos/asf/ambari/blob/43333740/ambari-web/app/messages.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/messages.js b/ambari-web/app/messages.js
index 75ef3fc..f29e7bf 100644
--- a/ambari-web/app/messages.js
+++ b/ambari-web/app/messages.js
@@ -148,6 +148,8 @@ Em.I18n.translations = {
'common.reUpgrade': 'Retry Upgrade',
'common.security':'Security',
'common.cluster':'Cluster',
+ 'common.repositories':'Repositories',
+ 'common.serviceAccounts': 'Service Accounts',
'common.add': 'Add',
'common.edit': 'Edit',
'common.delete': 'Delete',
http://git-wip-us.apache.org/repos/asf/ambari/blob/43333740/ambari-web/app/routes/main.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/routes/main.js b/ambari-web/app/routes/main.js
index ab4b0b3..1501f0f 100644
--- a/ambari-web/app/routes/main.js
+++ b/ambari-web/app/routes/main.js
@@ -355,63 +355,9 @@ module.exports = Em.Route.extend({
router.transitionTo('admin' + controller.get('category').capitalize());
}, */
route: '/',
- redirectsTo: 'adminUser'
+ redirectsTo: 'adminRepositories'
}),
-
- adminUser: Em.Route.extend({
- route: '/user',
- index: Em.Route.extend({
- route: '/',
- redirectsTo: 'allUsers'
- }),
- enter: function (router) {
- router.set('mainAdminController.category', "user");
- Em.run.next(function () {
- router.transitionTo('allUsers');
- });
- },
- routePath: function (router, event) {
- router.set('mainAdminController.category', "user");
- router.transitionTo('allUsers');
- Em.run.next(function () {
- router.transitionTo('allUsers');
- });
- },
- // events
- gotoUsers: Em.Router.transitionTo("allUsers"),
- gotoCreateUser: Em.Router.transitionTo("createUser"),
- gotoEditUser: function (router, event) {
- router.transitionTo("editUser", event.context)
- },
-
- // states
- allUsers: Em.Route.extend({
- route: '/allUsers',
- // index: Ember.Route.extend({
- //route: '/',
- connectOutlets: function (router) {
- router.get('mainAdminController').connectOutlet('mainAdminUser');
- }
- //})
- }),
-
- createUser: Em.Route.extend({
- route: '/create',
- connectOutlets: function (router) {
- router.get('mainAdminController').connectOutlet('mainAdminUserCreate', {});
- }
- }),
-
- editUser: Em.Route.extend({
- route: '/edit/:user_id',
- connectOutlets: function (router, user) {
- router.get('mainAdminController').connectOutlet('mainAdminUserEdit', user);
- }
- })
- }),
-
-
adminAuthentication: Em.Route.extend({
route: '/authentication',
connectOutlets: function (router, context) {
@@ -553,11 +499,11 @@ module.exports = Em.Route.extend({
adminAddSecurity: require('routes/add_security')
}),
- adminCluster: Em.Route.extend({
- route: '/cluster',
+ adminRepositories: Em.Route.extend({
+ route: '/repositories',
connectOutlets: function (router) {
- router.set('mainAdminController.category', "cluster");
- router.get('mainAdminController').connectOutlet('mainAdminCluster');
+ router.set('mainAdminController.category', "repositories");
+ router.get('mainAdminController').connectOutlet('mainAdminRepositories');
}
}),
adminAdvanced: Em.Route.extend({
@@ -567,23 +513,11 @@ module.exports = Em.Route.extend({
router.get('mainAdminController').connectOutlet('mainAdminAdvanced');
}
}),
- adminMisc: Em.Route.extend({
- route: '/misc',
- connectOutlets: function (router) {
- router.set('mainAdminController.category', "misc");
- router.get('mainAdminController').connectOutlet('mainAdminMisc');
- }
- }),
- adminAccess: Em.Route.extend({
- enter: function (router) {
- router.get('mainController').dataLoading().done(function () {
- if (!router.get('mainAdminController.isAccessAvailable')) router.transitionTo('adminUser.allUsers');
- });
- },
- route: '/access',
+ adminServiceAccounts: Em.Route.extend({
+ route: '/serviceAccounts',
connectOutlets: function (router) {
- router.set('mainAdminController.category', "access");
- router.get('mainAdminController').connectOutlet('mainAdminAccess');
+ router.set('mainAdminController.category', "serviceAccounts");
+ router.get('mainAdminController').connectOutlet('mainAdminServiceAccounts');
}
}),
http://git-wip-us.apache.org/repos/asf/ambari/blob/43333740/ambari-web/app/templates/main/admin/access.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/main/admin/access.hbs b/ambari-web/app/templates/main/admin/access.hbs
deleted file mode 100644
index 9e85a06..0000000
--- a/ambari-web/app/templates/main/admin/access.hbs
+++ /dev/null
@@ -1,29 +0,0 @@
-{{!
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements. See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership. The ASF licenses this file
-* to you under the Apache License, Version 2.0 (the
-* "License"); you may not use this file except in compliance
-* with the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-}}
-<div id="access">
- <div class="header">
- <strong>{{t common.access}}</strong>
- </div>
- <div class="acces-values">
- </div>
- <div class="control-group">
- <div class="controls">
- <button type="submit" class="btn btn-primary" {{action save target="controller"}}>{{t common.save}}</button>
- </div>
- </div>
-</div>
http://git-wip-us.apache.org/repos/asf/ambari/blob/43333740/ambari-web/app/templates/main/admin/cluster.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/main/admin/cluster.hbs b/ambari-web/app/templates/main/admin/cluster.hbs
deleted file mode 100644
index b38b28c..0000000
--- a/ambari-web/app/templates/main/admin/cluster.hbs
+++ /dev/null
@@ -1,121 +0,0 @@
-{{!
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements. See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership. The ASF licenses this file
-* to you under the Apache License, Version 2.0 (the
-* "License"); you may not use this file except in compliance
-* with the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-}}
-
-<div class="admin-cluster">
- <div class="header">
- <strong>{{t admin.cluster.stackVersion}}: {{App.currentStackVersion}}
- {{#if App.supports.stackUpgrade}}
- (<a href="#" {{bindAttr class="view.isUpgradeAvailable::inactive"}}{{action "upgradeStack"}}>
- {{#if view.isUpgradeAvailable}}
- {{t admin.cluster.upgradeAvailable}}: {{upgradeVersion}}
- {{else}}
- {{t admin.cluster.upgradeUnavailable}}
- {{/if}}
- </a>)
- {{/if}}
- </strong>
- </div>
- <table class="table table-bordered table-striped">
- <thead>
- <tr>
- <th>{{t common.service}}</th>
- <th>{{t common.version}}</th>
- <th>{{t common.description}}</th>
- </tr>
- </thead>
- <tbody>
- {{#each service in services}}
- {{#unless service.isHidden}}
- <tr>
- <td>{{service.displayName}}</td>
- <td>{{service.version}}</td>
- <td>{{{service.description}}}</td>
- </tr>
- {{/unless}}
- {{/each}}
- </tbody>
- </table>
-
- <div class="header">
- <strong>{{t admin.cluster.repositories.repositories}}</strong>
- </div>
- <ul class="nav nav-tabs">
- <li class="active">
- <a href="javascript:void(null);">{{view.allRepositoriesGroups.stackVersion}}</a>
- </li>
- </ul>
-
- <div class="repositories-table">
- <div class="thead">
- <div class="th os-th">{{t common.os}}</div>
- <div class="th name-th">{{t common.name}}</div>
- <div class="th url-th">{{t installer.step1.advancedRepo.localRepo.column.baseUrl}}</div>
- </div>
- <div class="tbody">
- {{#each repoGroup in view.allRepositoriesGroups}}
- <div class="trow">
- <div class="os-td">
- <label>
- <span class="os">{{repoGroup.name}}</span>
- </label>
- </div>
- <div style="width:89%">
- {{#each repository in repoGroup.repositories}}
- <div class="sub-trow">
- <div class="name-td">{{repository.repoId}}</div>
- <!--edit mode for current url-->
- {{#if repository.onEdit}}
- <div {{bindAttr class=":url-td repository.empty-error:textfield-error repository.invalid-error:textfield-error"}}>
- {{view Ember.TextField valueBinding="repository.baseUrl"}}
- </div>
- <div class="clear-td">
- {{#if repository.clearAll}}
- <a {{action "clearGroupLocalRepository" repository target="view" }}>
- <i class="icon-remove-sign"></i>
- </a>
- {{/if}}
- </div>
- <div class="edit-buttons-td">
- <a class="btn" {{action doCancel repository target="view"}}>{{t common.cancel}}</a>
- </div>
- <div class="edit-buttons-td">
- {{#if repository.empty-error}}
- <a class="btn btn-primary" disabled="disabled">{{t common.save}}</a>
- {{else}}
- <a class="btn btn-primary" {{action saveRepoUrls repository target="view"}}>{{t common.save}}</a>
- {{/if}}
- </div>
- <!--non-edit mode for current url-->
- {{else}}
- <div class="url-text-td">
- {{repository.baseUrl}}
- </div>
- <div class="edit-td">
- <a {{action "onEditClick" repository target="view" }}>
- <i class="icon-edit"></i> {{t common.edit}}
- </a>
- </div>
- {{/if}}
- </div>
- {{/each}}
- </div>
- </div>
- {{/each}}
- </div>
- </div>
-</div>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/43333740/ambari-web/app/templates/main/admin/misc.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/main/admin/misc.hbs b/ambari-web/app/templates/main/admin/misc.hbs
deleted file mode 100644
index 09b7020..0000000
--- a/ambari-web/app/templates/main/admin/misc.hbs
+++ /dev/null
@@ -1,50 +0,0 @@
-{{!
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements. See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership. The ASF licenses this file
-* to you under the Apache License, Version 2.0 (the
-* "License"); you may not use this file except in compliance
-* with the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-}}
-<div class="admin-misc">
- <div class="header">
- <strong>{{t admin.misc.header}}</strong>
- </div>
- {{#if controller.dataIsLoaded}}
- {{#if controller.users}}
- <div class="span6">
- <table class="table table-bordered table-striped">
- <thead>
- <tr>
- <th>{{t common.name}}</th>
- <th>{{t common.value}}</th>
- </tr>
- </thead>
- <tbody>
- {{#each user in controller.users}}
- {{#if user.isVisible}}
- <tr>
- <td>{{user.displayName}}</td>
- <td>{{user.value}}</td>
- </tr>
- {{/if}}
- {{/each}}
- </tbody>
- </table>
- </div>
- {{else}}
- <p>{{t admin.misc.nothingToShow}}</p>
- {{/if}}
- {{else}}
- <div class="spinner"></div>
- {{/if}}
-</div>
http://git-wip-us.apache.org/repos/asf/ambari/blob/43333740/ambari-web/app/templates/main/admin/repositories.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/main/admin/repositories.hbs b/ambari-web/app/templates/main/admin/repositories.hbs
new file mode 100644
index 0000000..b38b28c
--- /dev/null
+++ b/ambari-web/app/templates/main/admin/repositories.hbs
@@ -0,0 +1,121 @@
+{{!
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements. See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership. The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+}}
+
+<div class="admin-cluster">
+ <div class="header">
+ <strong>{{t admin.cluster.stackVersion}}: {{App.currentStackVersion}}
+ {{#if App.supports.stackUpgrade}}
+ (<a href="#" {{bindAttr class="view.isUpgradeAvailable::inactive"}}{{action "upgradeStack"}}>
+ {{#if view.isUpgradeAvailable}}
+ {{t admin.cluster.upgradeAvailable}}: {{upgradeVersion}}
+ {{else}}
+ {{t admin.cluster.upgradeUnavailable}}
+ {{/if}}
+ </a>)
+ {{/if}}
+ </strong>
+ </div>
+ <table class="table table-bordered table-striped">
+ <thead>
+ <tr>
+ <th>{{t common.service}}</th>
+ <th>{{t common.version}}</th>
+ <th>{{t common.description}}</th>
+ </tr>
+ </thead>
+ <tbody>
+ {{#each service in services}}
+ {{#unless service.isHidden}}
+ <tr>
+ <td>{{service.displayName}}</td>
+ <td>{{service.version}}</td>
+ <td>{{{service.description}}}</td>
+ </tr>
+ {{/unless}}
+ {{/each}}
+ </tbody>
+ </table>
+
+ <div class="header">
+ <strong>{{t admin.cluster.repositories.repositories}}</strong>
+ </div>
+ <ul class="nav nav-tabs">
+ <li class="active">
+ <a href="javascript:void(null);">{{view.allRepositoriesGroups.stackVersion}}</a>
+ </li>
+ </ul>
+
+ <div class="repositories-table">
+ <div class="thead">
+ <div class="th os-th">{{t common.os}}</div>
+ <div class="th name-th">{{t common.name}}</div>
+ <div class="th url-th">{{t installer.step1.advancedRepo.localRepo.column.baseUrl}}</div>
+ </div>
+ <div class="tbody">
+ {{#each repoGroup in view.allRepositoriesGroups}}
+ <div class="trow">
+ <div class="os-td">
+ <label>
+ <span class="os">{{repoGroup.name}}</span>
+ </label>
+ </div>
+ <div style="width:89%">
+ {{#each repository in repoGroup.repositories}}
+ <div class="sub-trow">
+ <div class="name-td">{{repository.repoId}}</div>
+ <!--edit mode for current url-->
+ {{#if repository.onEdit}}
+ <div {{bindAttr class=":url-td repository.empty-error:textfield-error repository.invalid-error:textfield-error"}}>
+ {{view Ember.TextField valueBinding="repository.baseUrl"}}
+ </div>
+ <div class="clear-td">
+ {{#if repository.clearAll}}
+ <a {{action "clearGroupLocalRepository" repository target="view" }}>
+ <i class="icon-remove-sign"></i>
+ </a>
+ {{/if}}
+ </div>
+ <div class="edit-buttons-td">
+ <a class="btn" {{action doCancel repository target="view"}}>{{t common.cancel}}</a>
+ </div>
+ <div class="edit-buttons-td">
+ {{#if repository.empty-error}}
+ <a class="btn btn-primary" disabled="disabled">{{t common.save}}</a>
+ {{else}}
+ <a class="btn btn-primary" {{action saveRepoUrls repository target="view"}}>{{t common.save}}</a>
+ {{/if}}
+ </div>
+ <!--non-edit mode for current url-->
+ {{else}}
+ <div class="url-text-td">
+ {{repository.baseUrl}}
+ </div>
+ <div class="edit-td">
+ <a {{action "onEditClick" repository target="view" }}>
+ <i class="icon-edit"></i> {{t common.edit}}
+ </a>
+ </div>
+ {{/if}}
+ </div>
+ {{/each}}
+ </div>
+ </div>
+ {{/each}}
+ </div>
+ </div>
+</div>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/43333740/ambari-web/app/templates/main/admin/serviceAccounts.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/main/admin/serviceAccounts.hbs b/ambari-web/app/templates/main/admin/serviceAccounts.hbs
new file mode 100644
index 0000000..09b7020
--- /dev/null
+++ b/ambari-web/app/templates/main/admin/serviceAccounts.hbs
@@ -0,0 +1,50 @@
+{{!
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements. See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership. The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+}}
+<div class="admin-misc">
+ <div class="header">
+ <strong>{{t admin.misc.header}}</strong>
+ </div>
+ {{#if controller.dataIsLoaded}}
+ {{#if controller.users}}
+ <div class="span6">
+ <table class="table table-bordered table-striped">
+ <thead>
+ <tr>
+ <th>{{t common.name}}</th>
+ <th>{{t common.value}}</th>
+ </tr>
+ </thead>
+ <tbody>
+ {{#each user in controller.users}}
+ {{#if user.isVisible}}
+ <tr>
+ <td>{{user.displayName}}</td>
+ <td>{{user.value}}</td>
+ </tr>
+ {{/if}}
+ {{/each}}
+ </tbody>
+ </table>
+ </div>
+ {{else}}
+ <p>{{t admin.misc.nothingToShow}}</p>
+ {{/if}}
+ {{else}}
+ <div class="spinner"></div>
+ {{/if}}
+</div>
http://git-wip-us.apache.org/repos/asf/ambari/blob/43333740/ambari-web/app/templates/main/admin/user.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/main/admin/user.hbs b/ambari-web/app/templates/main/admin/user.hbs
deleted file mode 100644
index 16af547..0000000
--- a/ambari-web/app/templates/main/admin/user.hbs
+++ /dev/null
@@ -1,42 +0,0 @@
-{{!
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements. See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership. The ASF licenses this file
-* to you under the Apache License, Version 2.0 (the
-* "License"); you may not use this file except in compliance
-* with the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-}}
-
-{{#if view.ldapUser}}
-<p class="text-info">{{t admin.users.ldapAuthUsed}}.</p>
-{{else}}
-<table class="table table-bordered table-striped span6">
- <thead>
- <tr>
- <th style="width:50%">{{t admin.users.username}}</th>
- <th style="width:10%">{{t admin.users.privileges}}</th>
- <th style="width:20%">{{t admin.users.type}}</th>
- <th style="width:20%">{{t admin.users.action}}</th>
- </tr>
- </thead>
- <tbody>
- {{#each user in view.users}}
- {{view App.MainAdminUserRowView userBinding="user"}}
- {{/each}}
- </tbody>
-</table>
-<div class="span2">
- <button class="btn" {{action gotoCreateUser on="click"}} >
- <i class="icon-plus"></i>{{t admin.users.addButton}}
- </button>
-</div>
-{{/if}}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/43333740/ambari-web/app/templates/main/admin/user/create.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/main/admin/user/create.hbs b/ambari-web/app/templates/main/admin/user/create.hbs
deleted file mode 100644
index a49b4cb..0000000
--- a/ambari-web/app/templates/main/admin/user/create.hbs
+++ /dev/null
@@ -1,43 +0,0 @@
-{{!
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements. See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership. The ASF licenses this file
-* to you under the Apache License, Version 2.0 (the
-* "License"); you may not use this file except in compliance
-* with the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-}}
-
-<form class="form-horizontal" autocomplete="off">
- {{#each field in view.userForm.fields}}
- {{#unless field.isHidden}}
- <div {{bindAttr class="field.errorMessage:error field.warnMessage:warning :control-group"}}>
- <label class="control-label" for="input{{unbound field.name}}">{{unbound field.displayName}}</label>
- <div class="controls">
- {{view field.viewClass valueBinding="field.value" disabledBinding="field.disabled"}}
- {{#if field.errorMessage}}
- <span class="help-inline">{{field.errorMessage}}</span>
- {{/if}}
- {{#if field.warnMessage}}
- <span class="help-inline">{{field.warnMessage}}</span>
- {{/if}}
- </div>
- </div>
- {{/unless}}
- {{/each}}
- <div class="control-group">
- <div class="controls">
- <button type="submit" class="btn" {{action gotoUsers}}>{{t form.cancel}}</button>
- <button type="submit"
- class="btn btn-primary" {{action create target="view"}}>Create</button>
- </div>
- </div>
-</form>
http://git-wip-us.apache.org/repos/asf/ambari/blob/43333740/ambari-web/app/templates/main/admin/user/edit.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/main/admin/user/edit.hbs b/ambari-web/app/templates/main/admin/user/edit.hbs
deleted file mode 100644
index 374a947..0000000
--- a/ambari-web/app/templates/main/admin/user/edit.hbs
+++ /dev/null
@@ -1,38 +0,0 @@
-{{!
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements. See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership. The ASF licenses this file
-* to you under the Apache License, Version 2.0 (the
-* "License"); you may not use this file except in compliance
-* with the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-}}
-
-<form class="form-horizontal" autocomplete="off">
- {{#each field in view.userForm.fields}}
- {{#unless field.isHidden}}
- <div {{bindAttr class="field.errorMessage:error :control-group"}}>
- <label class="control-label" for="input{{unbound field.name}}">{{unbound field.displayName}}</label>
- <div class="controls">
- {{view field.viewClass valueBinding="field.value" disabledBinding="field.disabled"}}
- <span class="help-inline">{{field.errorMessage}}</span>
- </div>
- </div>
- {{/unless}}
- {{/each}}
- <div class="control-group">
- <div class="controls">
- <button type="submit" class="btn" {{action gotoUsers}}>{{t form.cancel}}</button>
- <button type="submit"
- class="btn btn-primary" {{action edit target="view"}}>{{t common.save}}</button>
- </div>
- </div>
-</form>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/43333740/ambari-web/app/templates/main/admin/user/row.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/main/admin/user/row.hbs b/ambari-web/app/templates/main/admin/user/row.hbs
deleted file mode 100644
index 3cf2148..0000000
--- a/ambari-web/app/templates/main/admin/user/row.hbs
+++ /dev/null
@@ -1,27 +0,0 @@
-{{!
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements. See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership. The ASF licenses this file
-* to you under the Apache License, Version 2.0 (the
-* "License"); you may not use this file except in compliance
-* with the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-}}
-
-<tr>
- <td>{{user.userName}}</td>
- <td>{{view Ember.Checkbox disabledBinding="view.disableCheckBoxes" checkedBinding="user.admin"}}</td>
- <td>{{user.type}}</td>
- <td>
- <a href="#" {{action gotoEditUser user on="click"}}>{{t admin.users.edit}}</a>
- <a href="#" {{action deleteRecord user target="App.router.mainAdminUserController" }}>{{t admin.users.delete}}</a>
- </td>
-</tr>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/43333740/ambari-web/app/views.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views.js b/ambari-web/app/views.js
index 21eeb16..a1d1a4e 100644
--- a/ambari-web/app/views.js
+++ b/ambari-web/app/views.js
@@ -87,19 +87,13 @@ require('views/main/admin/highAvailability/resourceManager/step1_view');
require('views/main/admin/highAvailability/resourceManager/step2_view');
require('views/main/admin/highAvailability/resourceManager/step3_view');
require('views/main/admin/highAvailability/resourceManager/step4_view');
-require('views/main/admin/cluster');
-require('views/main/admin/misc_view');
+require('views/main/admin/repositories');
+require('views/main/admin/serviceAccounts_view');
require('views/main/admin/stack_upgrade');
require('views/main/admin/advanced');
-require('views/main/admin/access_view');
require('views/main/admin/advanced/password');
require('views/main/admin/audit');
require('views/main/admin/authentication');
-require('views/main/admin/menu');
-require('views/main/admin/user');
-require('views/main/admin/user/create');
-require('views/main/admin/user/edit');
-require('views/main/admin/user/row');
require('views/main/admin/security');
require('views/main/admin/security/disable');
require('views/main/admin/security/add/menu');
http://git-wip-us.apache.org/repos/asf/ambari/blob/43333740/ambari-web/app/views/main/admin.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/admin.js b/ambari-web/app/views/main/admin.js
index bd7da50..789a845 100644
--- a/ambari-web/app/views/main/admin.js
+++ b/ambari-web/app/views/main/admin.js
@@ -22,18 +22,17 @@ App.MainAdminView = Em.View.extend({
templateName: require('templates/main/admin'),
selectedBinding: 'controller.category',
categories: function() {
- var items = [{
- name: 'user',
- url: 'admin.index',
- label: Em.I18n.t('common.users')
- }];
- if (App.get('isHadoop2Stack') && App.supports.highAvailability) {
- items.push({
- name: 'highAvailability',
- url: 'adminHighAvailability',
- label: Em.I18n.t('admin.highAvailability')
- });
- }
+ var items = [];
+ items.push({
+ name: 'repositories',
+ url: 'adminRepositories',
+ label: Em.I18n.t('common.repositories')
+ });
+ items.push({
+ name: 'serviceAccounts',
+ url: 'adminServiceAccounts',
+ label: Em.I18n.t('common.serviceAccounts')
+ });
if (App.supports.secureCluster) {
items.push({
name: 'security',
@@ -41,21 +40,11 @@ App.MainAdminView = Em.View.extend({
label: Em.I18n.t('common.security')
});
}
- items.push({
- name: 'cluster',
- url: 'adminCluster',
- label: Em.I18n.t('common.cluster')
- });
- items.push({
- name: 'misc',
- url: 'adminMisc',
- label: Em.I18n.t('common.misc')
- });
- if (this.get('controller.isAccessAvailable')) {
+ if (App.get('isHadoop2Stack') && App.supports.highAvailability) {
items.push({
- name: 'access',
- url: 'adminAccess',
- label: Em.I18n.t('common.access')
+ name: 'highAvailability',
+ url: 'adminHighAvailability',
+ label: Em.I18n.t('admin.highAvailability')
});
}
return items;
http://git-wip-us.apache.org/repos/asf/ambari/blob/43333740/ambari-web/app/views/main/admin/access_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/admin/access_view.js b/ambari-web/app/views/main/admin/access_view.js
deleted file mode 100644
index 2fbf46e..0000000
--- a/ambari-web/app/views/main/admin/access_view.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-var App = require('app');
-
-App.MainAdminAccessView = Em.View.extend({
- templateName: require('templates/main/admin/access')
-});
http://git-wip-us.apache.org/repos/asf/ambari/blob/43333740/ambari-web/app/views/main/admin/cluster.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/admin/cluster.js b/ambari-web/app/views/main/admin/cluster.js
deleted file mode 100644
index a028c4b..0000000
--- a/ambari-web/app/views/main/admin/cluster.js
+++ /dev/null
@@ -1,246 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-var App = require('app');
-var stringUtils = require('utils/string_utils');
-
-App.MainAdminClusterView = Em.View.extend({
- templateName: require('templates/main/admin/cluster'),
-
- isUpgradeAvailable: function(){
- return stringUtils.compareVersions(this.get('controller.upgradeVersion').replace(/HDP(Local)?-/, ''), App.get('currentStackVersionNumber')) === 1;
- }.property('controller.upgradeVersion', 'App.currentStackVersion'),
-
- didInsertElement: function () {
- this.get('controller').loadRepositories();
- },
-
- /**
- * List of all repo-groups
- * @type {Object[][]}
- */
- allRepositoriesGroups: function () {
- var repos = this.get('controller.allRepos');
- var reposGroup = [];
- var repositories = [];
- reposGroup.set('stackVersion', App.get('currentStackVersionNumber'));
- if (repos) {
- repos.forEach(function (group) {
- group.repositories.forEach (function(repo) {
- var cur_repo = Em.Object.create({
- 'repoId': repo.repoId,
- 'id': repo.repoId + '-' + repo.osType,
- 'repoName' : repo.repoName,
- 'stackName' : repo.stackName,
- 'stackVersion' : repo.stackVersion,
- 'baseUrl': repo.baseUrl,
- 'originalBaseUrl': repo.baseUrl,
- 'osType': repo.osType,
- 'onEdit': false,
- 'empty-error': !repo.baseUrl,
- 'undo': false,
- 'clearAll': repo.baseUrl
- });
- var cur_group = reposGroup.findProperty('name', group.name);
- if (!cur_group) {
- var cur_group = Ember.Object.create({
- name: group.name,
- repositories: []
- });
- reposGroup.push(cur_group);
- }
- cur_group.repositories.push(cur_repo);
- repositories.push(cur_repo);
- });
- });
- }
- this.set('allRepos', repositories);
- return reposGroup;
- }.property('controller.allRepos'),
-
- /**
- * Onclick handler for edit action of each repo, enter edit mode
- * @param {object} event
- */
- onEditClick:function (event) {
- var targetRepo = this.get('allRepos').findProperty('id', event.context.get('id'));
- if (targetRepo) {
- targetRepo.set('onEdit', true);
- }
- },
-
- /**
- * Onclick handler for undo action of each repo group
- * @method undoGroupLocalRepository
- * @param {object} event
- */
- undoGroupLocalRepository: function (event) {
- this.doActionForGroupLocalRepository(event, 'originalBaseUrl');
- },
-
- /**
- * Handler for clear icon click
- * @method clearGroupLocalRepository
- * @param {object} event
- */
- clearGroupLocalRepository: function (event) {
- this.doActionForGroupLocalRepository(event, '');
- },
-
- /**
- * Common handler for repo groups actions
- * @method doActionForGroupLocalRepository
- * @param {object} event
- * @param {string} newBaseUrlField
- */
- doActionForGroupLocalRepository: function (event, newBaseUrlField) {
- var targetRepo = this.get('allRepos').findProperty('id', event.context.get('id'));
- if (targetRepo) {
- targetRepo.set('baseUrl', Em.isEmpty(newBaseUrlField) ? '' : Em.get(targetRepo, newBaseUrlField));
- }
- },
-
- /**
- * Handler when editing any repo group BaseUrl
- * @method editGroupLocalRepository
- */
- editGroupLocalRepository: function (event) {
- var repos = this.get('allRepos');
- repos.forEach(function (targetRepo) {
- targetRepo.set('undo', targetRepo.get('baseUrl') != targetRepo.get('originalBaseUrl'));
- targetRepo.set('clearAll', targetRepo.get('baseUrl'));
- targetRepo.set('empty-error', !targetRepo.get('baseUrl'));
-
- });
- }.observes('allRepos.@each.baseUrl'),
-
- /**
- * onSuccess callback for save Repo URL.
- */
- doSaveRepoUrlsSuccessCallback: function (response, request, data) {
- var id = data.repoId + '-' + data.osType;
- console.log('Success in check Repo URL. data repoId+osType: ' + id);
- var targetRepo = this.get('allRepos').findProperty('id', id);
- if (!targetRepo) {
- return;
- } else {
-
- var modalCloseHandler = function() {
- this.hide();
- targetRepo.set('baseUrl', data.data.Repositories.base_url);
- targetRepo.set('originalBaseUrl', data.data.Repositories.base_url);
- targetRepo.set('onEdit', false);
- };
-
- App.ModalPopup.show({
- header: Em.I18n.t('admin.cluster.repositories.popup.header.success'),
- secondary: null,
- onPrimary: modalCloseHandler,
- onClose: modalCloseHandler,
- message: Em.I18n.t('admin.cluster.repositories.popup.body.success'),
- bodyClass: Em.View.extend({
- template: Em.Handlebars.compile('<div class="alert alert-success">{{{message}}}</div>')
- })
- })
- }
- },
-
- /**
- * onError callback for save Repo URL.
- */
- doSaveRepoUrlsErrorCallback: function (request, ajaxOptions, error, data) {
- console.log('Error in check Repo URL. The baseURL sent is: ' + data.data);
- var self = this;
- var id = data.url.split('/')[10] + '-' + data.url.split('/')[8];
- var targetRepo = this.get('allRepos').findProperty('id', id);
- if (!targetRepo) {
- return;
- } else {
- App.ModalPopup.show({
- header: Em.I18n.t('admin.cluster.repositories.popup.header.fail'),
- primary: Em.I18n.t('common.saveAnyway'),
- secondary: Em.I18n.t('common.revert'),
- third: Em.I18n.t('common.cancel'),
- onPrimary: function () {
- // save anyway: Go ahead and save with Repo URL validation turned off and close Dialog when done.
- this.hide();
- self.doSaveRepoUrls(id, false);
- },
- onSecondary: function () {
- // Revert: Close dialog, revert URL value, go back to non-Edit mode
- this.hide();
- targetRepo.set('baseUrl', targetRepo.get('originalBaseUrl'));
- targetRepo.set('onEdit', false);
- },
- onThird: function () {
- // cancel: Close dialog but stay in Edit mode
- this.hide();
- },
- message: Em.I18n.t('admin.cluster.repositories.popup.body.fail'),
- bodyClass: Em.View.extend({
- template: Em.Handlebars.compile('<div class="alert alert-warning">{{{message}}}</div>')
- })
- })
- }
- },
-
- /**
- * Check validation and Save the customized local urls
- */
- doSaveRepoUrls: function (id, verifyBaseUrl) {
- var targetRepo = this.get('allRepos').findProperty('id', id);
- var verifyBaseUrl = verifyBaseUrl;
- App.ajax.send({
- name: 'wizard.advanced_repositories.valid_url',
- sender: this,
- data: {
- stackName: targetRepo.stackName,
- stackVersion: targetRepo.stackVersion,
- repoId: targetRepo.repoId,
- osType: targetRepo.osType,
- data: {
- 'Repositories': {
- 'base_url': targetRepo.baseUrl,
- "verify_base_url": verifyBaseUrl
- }
- }
- },
- success: 'doSaveRepoUrlsSuccessCallback',
- error: 'doSaveRepoUrlsErrorCallback'
- });
- },
- /**
- * Check validation and Save the customized local urls
- */
- saveRepoUrls: function (event) {
- this.doSaveRepoUrls(event.context.get('id'), true);
- },
-
- /**
- * on click handler 'Cancel' for current repo in edit mode
- */
- doCancel: function (event) {
- var targetRepo = this.get('allRepos').findProperty('id', event.context.get('id'));
- if (targetRepo) {
- targetRepo.set('baseUrl', targetRepo.get('originalBaseUrl'));
- targetRepo.set('onEdit', false);
- }
- }
-
-});
-
http://git-wip-us.apache.org/repos/asf/ambari/blob/43333740/ambari-web/app/views/main/admin/menu.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/admin/menu.js b/ambari-web/app/views/main/admin/menu.js
deleted file mode 100644
index 7001e89..0000000
--- a/ambari-web/app/views/main/admin/menu.js
+++ /dev/null
@@ -1,89 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-var App = require('app');
-
-// This logic is substituted by MainAdminView for now.
-App.MainAdminMenuView = Em.CollectionView.extend({
- //contentBinding: 'controller',
- /*content: [
- {
- route:'user',
- label:'Users'
- },
- {
- route:'security',
- label:'Security'
- },
- {
- route:'cluster',
- label:'Cluster'
- }
- /*,
- {
- route:'authentication',
- label:'Authentication'
- },
-
-{
- route: 'user',
- label: 'Users'
-
- },
- {
- route: 'security',
- label: 'Security'
- }/*,
- {
- route:'authentication',
- label:'Authentication'
- },
-
- {
- route:'audit',
- label:'Audit'
- }*/
- /*,
- {
- route:'advanced',
- label:'Advanced'
- }
-
- ],
- tagName: "ul",
- classNames: ["nav", "nav-list"],
-
- init: function () {
- this._super();
- this.activateView(); // default selected menu
- },
-
- activateView: function () {
- var route = App.get('router.mainAdminController.category');
- $.each(this._childViews, function () {
- this.set('active', (this.get('content.route') == route ? "active" : ""));
- });
- }.observes('App.router.mainAdminController.category'),
-
- itemViewClass:Em.View.extend({
- classNameBindings:["active"],
- active:"",
- template:Ember.Handlebars.compile('<a class="text-center" {{action adminNavigate view.content.route }} href="#"> {{unbound view.content.label}}</a>')
- })
-*/
-});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/43333740/ambari-web/app/views/main/admin/misc_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/admin/misc_view.js b/ambari-web/app/views/main/admin/misc_view.js
deleted file mode 100644
index a2e6e9b..0000000
--- a/ambari-web/app/views/main/admin/misc_view.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-var App = require('app');
-
-App.MainAdminMiscView = Em.View.extend({
- templateName: require('templates/main/admin/misc'),
- didInsertElement: function() {
- this.get('controller').loadUsers();
- }
-});