Code coverage report for app/utils/configs/modification_handlers/modification_handler.js

Statements: 83.33% (5 / 6)      Branches: 100% (3 / 3)      Functions: 75% (3 / 4)      Lines: 83.33% (5 / 6)      Ignored: none     

All files » app/utils/configs/modification_handlers/ » modification_handler.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73    1                                   1                 1                                                                         4 4          
'use strict';
 
;require.register("utils/configs/modification_handlers/modification_handler", function (exports, require, module) {
  /**
   * 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');
 
  /**
   * Config modification handler for a given service.
   * 
   * This handler should take care of scenarios that arise from modification of a
   * config. Scenarios like updating dependency configs, or doing any special
   * processing.
   */
  App.ServiceConfigModificationHandler = Em.Object.extend({
 
    /**
     * Service whose configs this handler will react to.
     */
    serviceId: DS.attr('string'),
 
    /**
     * Given a changed config, provide an array of changes to dependent configs
     * across all services. Dependent configs can be created, updated and deleted.
     * 
     *  Example: Here, setting 'hdfs_user' updates 'dfs.permissions.superusergroup'. 
     *  [
     *   {
     *     serviceName: "HDFS",
     *     sourceServiceName: "MISC",  // Cross service configs
     *     propertyName: "dfs.permissions.superusergroup",
     *     propertyDisplayName: "dfs.permissions.superusergroup",
     *     filename: 'hdfs-site',
     *     remove: false,
     *     curValue: "hdfs",
     *     newValue: "my_hdfs",
     *     changedPropertyName: "hdfs_user"
     *   }
     *  ]
     *  
     * @param changedConfig
     * @param selectedServices
     * @param allConfigs
     * @param securityEnabled
     * @return Array of dependent config updates
     */
    getDependentConfigChanges: function getDependentConfigChanges(changedConfig, selectedServices, allConfigs, securityEnabled) {
      return [];
    },
 
    getConfig: function getConfig(allConfigs, configName, configFilename, configServiceName) {
      return allConfigs.findProperty('serviceName', configServiceName).get('configs').find(function (config) {
        return configName == config.get('name') && (configFilename == null || configFilename == config.get('filename'));
      });
    }
 
  });
});