| /** |
| * 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'); |
| |
| require('controllers/main/service/info/configs'); |
| |
| App.MainAdminMiscController = App.MainServiceInfoConfigsController.extend({ |
| name:'mainAdminMiscController', |
| users: null, |
| content: { |
| 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 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.sites.indexOf(site) > -1) { |
| loadedClusterSiteToTagMap[site] = data.Clusters.desired_configs[site]['tag']; |
| } |
| } |
| this.setServiceConfigTags(loadedClusterSiteToTagMap); |
| var configGroups = App.router.get('configurationController').getConfigsByTags(this.get('serviceConfigTags')); |
| var configSet = App.config.mergePreDefinedWithLoaded(configGroups, [], this.get('serviceConfigTags'), serviceName); |
| |
| var misc_configs = configSet.globalConfigs.filterProperty('serviceName', this.get('selectedService')).filterProperty('category', 'Users and Groups').filterProperty('isVisible', true); |
| |
| misc_configs = App.config.miscConfigVisibleProperty(misc_configs, installedServices); |
| |
| var sortOrder = this.get('configs').filterProperty('serviceName', this.get('selectedService')).filterProperty('category', 'Users and Groups').filterProperty('isVisible', true).mapProperty('name'); |
| |
| var sorted = []; |
| |
| if(sortOrder) { |
| sortOrder.forEach(function(name) { |
| sorted.push(misc_configs.findProperty('name', name)); |
| }); |
| this.set('users', sorted); |
| } |
| else { |
| this.set('users', misc_configs); |
| } |
| if(this.get("content.hdfsUser")){ |
| this.get('content').set('hdfsUser', misc_configs.findProperty('name','hdfs_user').get("value")); |
| } |
| if (this.get("content.group")) { |
| this.get('content').set('group', misc_configs.findProperty('name','user_group').get("value")); |
| } |
| this.set('dataIsLoaded', true); |
| } |
| }); |