http://git-wip-us.apache.org/repos/asf/ambari/blob/8867b368/ambari-web/app/data/HDP2/config_mapping.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/data/HDP2/config_mapping.js b/ambari-web/app/data/HDP2/config_mapping.js deleted file mode 100644 index 2eab405d..0000000 --- a/ambari-web/app/data/HDP2/config_mapping.js +++ /dev/null @@ -1,158 +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 configs = [ -/**********************************************core-site***************************************/ - { - "name": "hadoop.proxyuser.<foreignKey[0]>.groups", - "templateName": ["proxyuser_group"], - "foreignKey": ["hive_user"], - "value": "<templateName[0]>", - "filename": "core-site.xml", - "isOverridable": true - }, - { - "name": "hadoop.proxyuser.<foreignKey[0]>.hosts", - "templateName": ["hive_master_hosts"], - "foreignKey": ["hive_user"], - "value": "<templateName[0]>", - "filename": "core-site.xml", - "isOverridable": true - }, - { - "name": "hadoop.proxyuser.<foreignKey[0]>.groups", - "templateName": [], - "foreignKey": ["oozie_user"], - "value": "*", - "filename": "core-site.xml", - "isOverridable": true - }, - { - "name": "hadoop.proxyuser.<foreignKey[0]>.hosts", - "templateName": ["oozieserver_host"], - "foreignKey": ["oozie_user"], - "value": "<templateName[0]>", - "filename": "core-site.xml", - "isOverridable": true - }, - { - "name": "hadoop.proxyuser.<foreignKey[0]>.groups", - "templateName": ["proxyuser_group"], - "foreignKey": ["webhcat_user"], - "value": "<templateName[0]>", - "filename": "core-site.xml", - "isOverridable": true - }, - { - "name": "hadoop.proxyuser.<foreignKey[0]>.hosts", - "templateName": ["hive_master_hosts"], - "foreignKey": ["webhcat_user"], - "value": "<templateName[0]>", - "filename": "core-site.xml", - "isOverridable": true - }, - { - "name": "hadoop.proxyuser.<foreignKey[0]>.groups", - "templateName": ["proxyuser_group"], - "foreignKey": ["falcon_user"], - "value": "<templateName[0]>", - "filename": "core-site.xml", - "isOverridable": true - }, - { - "name": "hadoop.proxyuser.<foreignKey[0]>.hosts", - "templateName": [], - "foreignKey": ["falcon_user"], - "value": "*", - "filename": "core-site.xml", - "isOverridable": true - }, - { - "name": "hadoop.proxyuser.<foreignKey[0]>.groups", - "templateName": [], - "foreignKey": ["hdfs_user"], - "value": "*", - "filename": "core-site.xml", - "isOverridable": true - }, - { - "name": "hadoop.proxyuser.<foreignKey[0]>.hosts", - "templateName": [], - "foreignKey": ["hdfs_user"], - "value": "*", - "filename": "core-site.xml", - "isOverridable": true - }, -/**********************************Oozie******************************/ - - { - "name": "oozie.service.ProxyUserService.proxyuser.<foreignKey[0]>.groups", - "templateName": [], - "foreignKey": ["falcon_user"], - "value": "*", - "filename": "oozie-site.xml", - "isOverridable": true, - "serviceName": "OOZIE" - }, - { - "name": "oozie.service.ProxyUserService.proxyuser.<foreignKey[0]>.hosts", - "templateName": [], - "foreignKey": ["falcon_user"], - "value": "*", - "filename": "oozie-site.xml", - "isOverridable": true, - "serviceName": "OOZIE" - } -]; - -/** - * Configs consists of 2 types: Computed values, which cannot be modified by user - * and overridable values, which user can modify. We provide interface how to get all of this - * configs separately - * @type {Object} - */ -module.exports = { - - checkPrecondition: function () { - return configs.filter(function (config) { - return ((!config.precondition) || (config.precondition())); - }); - }, - all: function (skipPreconditionCheck) { - if (skipPreconditionCheck) { - return configs.slice(0); - } else { - return this.checkPrecondition().slice(0); - } - }, - overridable: function (skipPreconditionCheck) { - if (skipPreconditionCheck) { - return configs.filterProperty('foreignKey'); - } else { - return this.checkPrecondition().filterProperty('foreignKey'); - } - }, - computed: function (skipPreconditionCheck) { - if (skipPreconditionCheck) { - return configs.filterProperty('foreignKey', null); - } else { - return this.checkPrecondition().filterProperty('foreignKey', null); - } - } -};
http://git-wip-us.apache.org/repos/asf/ambari/blob/8867b368/ambari-web/app/data/HDP2/ha_properties.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/data/HDP2/ha_properties.js b/ambari-web/app/data/HDP2/ha_properties.js index a8a24b1..dbbf81e 100644 --- a/ambari-web/app/data/HDP2/ha_properties.js +++ b/ambari-web/app/data/HDP2/ha_properties.js @@ -30,7 +30,6 @@ module.exports = configs: [ /**********************************************HDFS***************************************/ { - "id": "site property", "name": "dfs.journalnode.edits.dir", "displayName": "dfs.journalnode.edits.dir", "description": "The Directory where the JournalNode will store its local state.", @@ -43,7 +42,6 @@ module.exports = "serviceName": 'MISC' }, { - "id": "site property", "name": "fs.defaultFS", "displayName": "fs.defaultFS", "description": "The default path prefix used by the Hadoop FS client when none is given.", @@ -55,7 +53,6 @@ module.exports = serviceName: 'MISC' }, { - "id": "site property", "name": "ha.zookeeper.quorum", "displayName": "ha.zookeeper.quorum", "isReconfigurable": false, @@ -67,7 +64,6 @@ module.exports = "serviceName": 'MISC' }, { - "id": "site property", "name": "dfs.nameservices", "displayName": "dfs.nameservices", "description": "Comma-separated list of nameservices.", @@ -79,7 +75,6 @@ module.exports = "serviceName": 'MISC' }, { - "id": "site property", "name": "dfs.ha.namenodes.${dfs.nameservices}", "displayName": "dfs.ha.namenodes.${dfs.nameservices}", "description": "The prefix for a given nameservice, contains a comma-separated list of namenodes for a given nameservice.", @@ -91,7 +86,6 @@ module.exports = "serviceName": 'MISC' }, { - "id": "site property", "name": "dfs.namenode.rpc-address.${dfs.nameservices}.nn1", "displayName": "dfs.namenode.rpc-address.${dfs.nameservices}.nn1", "description": "RPC address that handles all clients requests for nn1.", @@ -103,7 +97,6 @@ module.exports = "serviceName": 'MISC' }, { - "id": "site property", "name": "dfs.namenode.rpc-address.${dfs.nameservices}.nn2", "displayName": "dfs.namenode.rpc-address.${dfs.nameservices}.nn2", "description": "RPC address that handles all clients requests for nn2.", @@ -115,7 +108,6 @@ module.exports = "serviceName": 'MISC' }, { - "id": "site property", "name": "dfs.namenode.http-address.${dfs.nameservices}.nn1", "displayName": "dfs.namenode.http-address.${dfs.nameservices}.nn1", "description": "The fully-qualified HTTP address for nn1 NameNode.", @@ -127,7 +119,6 @@ module.exports = "serviceName": 'MISC' }, { - "id": "site property", "name": "dfs.namenode.http-address.${dfs.nameservices}.nn2", "displayName": "dfs.namenode.http-address.${dfs.nameservices}.nn2", "description": "The fully-qualified HTTP address for nn2 NameNode.", @@ -139,7 +130,6 @@ module.exports = serviceName: 'MISC' }, { - "id": "site property", "name": "dfs.namenode.https-address.${dfs.nameservices}.nn1", "displayName": "dfs.namenode.https-address.${dfs.nameservices}.nn1", "description": "The fully-qualified HTTP address for nn1 NameNode.", @@ -151,7 +141,6 @@ module.exports = "serviceName": 'MISC' }, { - "id": "site property", "name": "dfs.namenode.https-address.${dfs.nameservices}.nn2", "displayName": "dfs.namenode.https-address.${dfs.nameservices}.nn2", "description": "The fully-qualified HTTP address for nn2 NameNode.", @@ -163,7 +152,6 @@ module.exports = "serviceName": 'MISC' }, { - "id": "site property", "name": "dfs.client.failover.proxy.provider.${dfs.nameservices}", "displayName": "dfs.client.failover.proxy.provider.${dfs.nameservices}", "description": "The Java class that HDFS clients use to contact the Active NameNode.", @@ -175,7 +163,6 @@ module.exports = "serviceName": 'MISC' }, { - "id": "site property", "name": "dfs.namenode.shared.edits.dir", "displayName": "dfs.namenode.shared.edits.dir", "description": " The URI which identifies the group of JNs where the NameNodes will write/read edits.", @@ -187,7 +174,6 @@ module.exports = "serviceName": 'MISC' }, { - "id": "site property", "name": "dfs.ha.fencing.methods", "displayName": "dfs.ha.fencing.methods", "description": "A list of scripts or Java classes which will be used to fence the Active NameNode during a failover.", @@ -199,7 +185,6 @@ module.exports = "serviceName": 'MISC' }, { - "id": "site property", "name": "dfs.ha.automatic-failover.enabled", "displayName": "dfs.ha.automatic-failover.enabled", "description": "Enable Automatic failover.", @@ -212,7 +197,6 @@ module.exports = "serviceName": 'MISC' }, { - "id": "site property", "name": "dfs.namenode.safemode.threshold-pct", "displayName": "dfs.namenode.safemode.threshold-pct", "description": "Specifies the percentage of blocks that should satisfy\n the minimal replication requirement defined by dfs.namenode.replication.min.\n Values less than or equal to 0 mean not to start in safe mode.\n Values greater than 1 will make safe mode permanent.\n ", @@ -224,7 +208,6 @@ module.exports = "serviceName": 'MISC' }, { - "id": "site property", "name": "hbase.rootdir", "displayName": "hbase.rootdir", "description": "The directory shared by region servers and into which HBase persists.", @@ -236,7 +219,6 @@ module.exports = "serviceName": 'MISC' }, { - "id": "site property", "name": "instance.volumes", "displayName": "instance.volumes", "isReconfigurable": false, @@ -247,7 +229,6 @@ module.exports = "serviceName": 'MISC' }, { - "id": "site property", "name": "instance.volumes.replacements", "displayName": "instance.volumes.replacements", "isReconfigurable": false, http://git-wip-us.apache.org/repos/asf/ambari/blob/8867b368/ambari-web/app/data/HDP2/rm_ha_properties.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/data/HDP2/rm_ha_properties.js b/ambari-web/app/data/HDP2/rm_ha_properties.js index 3ec106a..59bb24b 100644 --- a/ambari-web/app/data/HDP2/rm_ha_properties.js +++ b/ambari-web/app/data/HDP2/rm_ha_properties.js @@ -28,7 +28,6 @@ module.exports = configs: [ /**********************************************HDFS***************************************/ { - "id": "site property", "name": "yarn.resourcemanager.ha.enabled", "displayName": "yarn.resourcemanager.ha.enabled", "isReconfigurable": false, @@ -40,7 +39,6 @@ module.exports = serviceName: 'MISC' }, { - "id": "site property", "name": "yarn.resourcemanager.ha.rm-ids", "displayName": "yarn.resourcemanager.ha.rm-ids", "isReconfigurable": false, @@ -51,7 +49,6 @@ module.exports = serviceName: 'MISC' }, { - "id": "site property", "name": "yarn.resourcemanager.hostname.rm1", "displayName": "yarn.resourcemanager.hostname.rm1", "isReconfigurable": false, @@ -63,7 +60,6 @@ module.exports = }, { - "id": "site property", "name": "yarn.resourcemanager.webapp.address.rm1", "displayName": "yarn.resourcemanager.webapp.address.rm1", "isReconfigurable": false, @@ -74,7 +70,6 @@ module.exports = serviceName: 'MISC' }, { - "id": "site property", "name": "yarn.resourcemanager.webapp.address.rm2", "displayName": "yarn.resourcemanager.webapp.address.rm2", "isReconfigurable": false, @@ -85,7 +80,6 @@ module.exports = serviceName: 'MISC' }, { - "id": "site property", "name": "yarn.resourcemanager.webapp.https.address.rm1", "displayName": "yarn.resourcemanager.webapp.https.address.rm1", "isReconfigurable": false, @@ -96,7 +90,6 @@ module.exports = serviceName: 'MISC' }, { - "id": "site property", "name": "yarn.resourcemanager.webapp.https.address.rm2", "displayName": "yarn.resourcemanager.webapp.https.address.rm2", "isReconfigurable": false, @@ -108,7 +101,6 @@ module.exports = }, { - "id": "site property", "name": "yarn.resourcemanager.hostname.rm2", "displayName": "yarn.resourcemanager.hostname.rm2", "isReconfigurable": false, @@ -119,7 +111,6 @@ module.exports = serviceName: 'MISC' }, { - "id": "site property", "name": "yarn.resourcemanager.recovery.enabled", "displayName": "yarn.resourcemanager.recovery.enabled", "isReconfigurable": false, @@ -131,7 +122,6 @@ module.exports = serviceName: 'MISC' }, { - "id": "site property", "name": "yarn.resourcemanager.store.class", "displayName": "yarn.resourcemanager.store.class", "isReconfigurable": false, @@ -142,7 +132,6 @@ module.exports = serviceName: 'MISC' }, { - "id": "site property", "name": "yarn.resourcemanager.zk-address", "displayName": "yarn.resourcemanager.zk-address", "isReconfigurable": false, @@ -153,7 +142,6 @@ module.exports = serviceName: 'MISC' }, { - "id": "site property", "name": "yarn.resourcemanager.cluster-id", "displayName": "yarn.resourcemanager.cluster-id", "isReconfigurable": false, @@ -164,7 +152,6 @@ module.exports = serviceName: 'MISC' }, { - "id": "site property", "name": "yarn.resourcemanager.ha.automatic-failover.zk-base-path", "displayName": "yarn.resourcemanager.ha.automatic-failover.zk-base-path", "isReconfigurable": false, http://git-wip-us.apache.org/repos/asf/ambari/blob/8867b368/ambari-web/app/data/HDP2/site_properties.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/data/HDP2/site_properties.js b/ambari-web/app/data/HDP2/site_properties.js index d641c81..60f949a 100644 --- a/ambari-web/app/data/HDP2/site_properties.js +++ b/ambari-web/app/data/HDP2/site_properties.js @@ -55,7 +55,6 @@ var hdp2properties = [ }, { "name": "dfs.datanode.failed.volumes.tolerated", - "displayType": "int", "category": "DATANODE", "serviceName": "HDFS", "filename": "hdfs-site.xml", @@ -102,7 +101,6 @@ var hdp2properties = [ }, { "name": "nfs.exports.allowed.hosts", - "displayType": "string", "category": "NFS_GATEWAY", "serviceName": "HDFS", "filename": "hdfs-site.xml", @@ -267,13 +265,6 @@ var hdp2properties = [ "filename": "hadoop-env.xml", "category": "Advanced hadoop-env" }, - { - "name": "hadoop_root_logger", - "displayType": "string", - "serviceName": "HDFS", - "filename": "hadoop-env.xml", - "category": "Advanced hadoop-env" - }, /**********************************************YARN***************************************/ { @@ -724,12 +715,6 @@ var hdp2properties = [ "index": 4 }, { - "name": "hive.server2.tez.default.queues", - "serviceName": "HIVE", - "filename": "hive-site.xml", - "category": "Advanced hive-site" - }, - { "name": "hive.server2.thrift.port", "displayType": "int", "category": "Advanced hive-site", @@ -1100,24 +1085,6 @@ var hdp2properties = [ "index": 5 }, { - "name": "hbase.coprocessor.region.classes", - "category": "Advanced hbase-site", - "serviceName": "HBASE", - "filename": "hbase-site.xml" - }, - { - "name": "hbase.coprocessor.master.classes", - "category": "Advanced hbase-site", - "serviceName": "HBASE", - "filename": "hbase-site.xml" - }, - { - "name": "hbase.coprocessor.regionserver.classes", - "category": "Advanced hbase-site", - "serviceName": "HBASE", - "filename": "hbase-site.xml" - }, - { "name": "hbase.zookeeper.quorum", "displayType": "multiLine", "serviceName": "HBASE", @@ -1813,49 +1780,15 @@ var hdp2properties = [ /**********************************************webhcat-site***************************************/ { - "name": "templeton.hive.archive", - "serviceName": "HIVE", - "filename": "webhcat-site.xml", - "category": "Advanced webhcat-site" - }, - { - "name": "templeton.pig.archive", - "serviceName": "HIVE", - "filename": "webhcat-site.xml", - "category": "Advanced webhcat-site" - }, - { "name": "templeton.zookeeper.hosts", "displayType": "multiLine", "serviceName": "HIVE", "filename": "webhcat-site.xml", "category": "Advanced webhcat-site" }, -/**********************************************pig.properties*****************************************/ - { - "name": "content", - "category": "Advanced pig-properties", - "serviceName": "PIG", - "filename": "pig-properties.xml" - }, /**********************************************KNOX*****************************************/ { - "name": "content", - "displayType": "content", - "serviceName": "KNOX", - "filename": "topology.xml", - "category": "Advanced topology" - }, - - { - "name": "content", - "displayType": "content", - "serviceName": "KNOX", - "filename": "users-ldif.xml", - "category": "Advanced users-ldif" - }, - { "name": "knox_gateway_host", "displayName": "Knox Gateway host", "value": "", @@ -2611,26 +2544,12 @@ var hdp2properties = [ "category": "Advanced falcon-env" }, { - "name": "falcon.embeddedmq", - "displayType": "string", - "serviceName": "FALCON", - "filename": "falcon-env.xml", - "category": "Advanced falcon-env" - }, - { "name": "falcon.embeddedmq.data", "displayType": "directory", "serviceName": "FALCON", "filename": "falcon-env.xml", "category": "Advanced falcon-env" }, - { - "name": "falcon.emeddedmq.port", - "displayType": "string", - "serviceName": "FALCON", - "filename": "falcon-env.xml", - "category": "Advanced falcon-env" - }, /**********************************************STORM***************************************/ { "name": "storm_log_dir", @@ -2838,7 +2757,6 @@ var hdp2properties = [ /************************************************AMBARI_METRICS******************************************/ { "name": "timeline.metrics.service.operation.mode", - "displayType": "string", "serviceName": "AMBARI_METRICS", "filename": "ams-site.xml", "category": "General", @@ -2846,7 +2764,6 @@ var hdp2properties = [ }, { "name": "metrics_collector_log_dir", - "displayType": "string", "serviceName": "AMBARI_METRICS", "filename": "ams-env.xml", "category": "General", @@ -2854,7 +2771,6 @@ var hdp2properties = [ }, { "name": "metrics_collector_pid_dir", - "displayType": "string", "serviceName": "AMBARI_METRICS", "filename": "ams-env.xml", "category": "General", @@ -2862,7 +2778,6 @@ var hdp2properties = [ }, { "name": "metrics_monitor_log_dir", - "displayType": "string", "serviceName": "AMBARI_METRICS", "filename": "ams-env.xml", "category": "General", @@ -2870,7 +2785,6 @@ var hdp2properties = [ }, { "name": "metrics_monitor_pid_dir", - "displayType": "string", "serviceName": "AMBARI_METRICS", "filename": "ams-env.xml", "category": "General", @@ -2894,7 +2808,6 @@ var hdp2properties = [ }, { "name": "timeline.metrics.cluster.aggregator.hourly.disabled", - "displayType": "string", "serviceName": "AMBARI_METRICS", "filename": "ams-site.xml", "category": "MetricCollector", @@ -2918,7 +2831,6 @@ var hdp2properties = [ }, { "name": "timeline.metrics.cluster.aggregator.minute.disabled", - "displayType": "string", "serviceName": "AMBARI_METRICS", "filename": "ams-site.xml", "category": "MetricCollector", @@ -2950,7 +2862,6 @@ var hdp2properties = [ }, { "name": "timeline.metrics.host.aggregator.hourly.disabled", - "displayType": "string", "serviceName": "AMBARI_METRICS", "filename": "ams-site.xml", "category": "MetricCollector", @@ -2974,7 +2885,6 @@ var hdp2properties = [ }, { "name": "timeline.metrics.host.aggregator.minute.disabled", - "displayType": "string", "serviceName": "AMBARI_METRICS", "filename": "ams-site.xml", "category": "MetricCollector", @@ -3012,114 +2922,6 @@ var hdp2properties = [ "category": "MetricCollector", "index": 3 }, - { - "name": "ams.zookeeper.keytab", - "serviceName": "AMBARI_METRICS", - "category": "Advanced ams-hbase-security-site", - "filename": "ams-hbase-security-site.xml" - }, - { - "name": "ams.zookeeper.principal", - "serviceName": "AMBARI_METRICS", - "category": "Advanced ams-hbase-security-site", - "filename": "ams-hbase-security-site.xml" - }, - { - "name": "hadoop.security.authentication", - "serviceName": "AMBARI_METRICS", - "category": "Advanced ams-hbase-security-site", - "filename": "ams-hbase-security-site.xml" - }, - { - "name": "hbase.coprocessor.master.classes", - "serviceName": "AMBARI_METRICS", - "category": "Advanced ams-hbase-security-site", - "filename": "ams-hbase-security-site.xml" - }, - { - "name": "hbase.coprocessor.region.classes", - "serviceName": "AMBARI_METRICS", - "category": "Advanced ams-hbase-security-site", - "filename": "ams-hbase-security-site.xml" - }, - { - "name": "hbase.master.kerberos.principal", - "serviceName": "AMBARI_METRICS", - "category": "Advanced ams-hbase-security-site", - "filename": "ams-hbase-security-site.xml" - }, - { - "name": "hbase.master.keytab.file", - "serviceName": "AMBARI_METRICS", - "category": "Advanced ams-hbase-security-site", - "filename": "ams-hbase-security-site.xml" - }, - { - "name": "hbase.myclient.keytab", - "serviceName": "AMBARI_METRICS", - "category": "Advanced ams-hbase-security-site", - "filename": "ams-hbase-security-site.xml" - }, - { - "name": "hbase.myclient.principal", - "serviceName": "AMBARI_METRICS", - "category": "Advanced ams-hbase-security-site", - "filename": "ams-hbase-security-site.xml" - }, - { - "name": "hbase.regionserver.kerberos.principal", - "serviceName": "AMBARI_METRICS", - "category": "Advanced ams-hbase-security-site", - "filename": "ams-hbase-security-site.xml" - }, - { - "name": "hbase.regionserver.keytab.file", - "serviceName": "AMBARI_METRICS", - "category": "Advanced ams-hbase-security-site", - "filename": "ams-hbase-security-site.xml" - }, - { - "name": "hbase.security.authentication", - "serviceName": "AMBARI_METRICS", - "category": "Advanced ams-hbase-security-site", - "filename": "ams-hbase-security-site.xml" - }, - { - "name": "hbase.security.authorization", - "serviceName": "AMBARI_METRICS", - "category": "Advanced ams-hbase-security-site", - "filename": "ams-hbase-security-site.xml" - }, - { - "name": "hbase.zookeeper.property.authProvider.1", - "serviceName": "AMBARI_METRICS", - "category": "Advanced ams-hbase-security-site", - "filename": "ams-hbase-security-site.xml" - }, - { - "name": "hbase.zookeeper.property.jaasLoginRenew", - "serviceName": "AMBARI_METRICS", - "category": "Advanced ams-hbase-security-site", - "filename": "ams-hbase-security-site.xml" - }, - { - "name": "hbase.zookeeper.property.kerberos.removeHostFromPrincipal", - "serviceName": "AMBARI_METRICS", - "category": "Advanced ams-hbase-security-site", - "filename": "ams-hbase-security-site.xml" - }, - { - "name": "hbase.zookeeper.property.kerberos.removeRealmFromPrincipal", - "serviceName": "AMBARI_METRICS", - "category": "Advanced ams-hbase-security-site", - "filename": "ams-hbase-security-site.xml" - }, - { - "name": "zookeeper.znode.parent", - "serviceName": "AMBARI_METRICS", - "category": "Advanced ams-hbase-security-site", - "filename": "ams-hbase-security-site.xml" - }, /************************************************Kerberos Descriptor******************************************/ { "name": "smokeuser_principal_name", @@ -3335,21 +3137,18 @@ var atsProperties = [ }, { "name": "yarn.timeline-service.webapp.address", - "displayType": "string", "category": "APP_TIMELINE_SERVER", "serviceName": "YARN", "filename": "yarn-site.xml" }, { "name": "yarn.timeline-service.webapp.https.address", - "displayType": "string", "category": "APP_TIMELINE_SERVER", "serviceName": "YARN", "filename": "yarn-site.xml" }, { "name": "yarn.timeline-service.address", - "displayType": "string", "category": "APP_TIMELINE_SERVER", "serviceName": "YARN", "filename": "yarn-site.xml" http://git-wip-us.apache.org/repos/asf/ambari/blob/8867b368/ambari-web/app/mixins/common/configs/configs_comparator.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/mixins/common/configs/configs_comparator.js b/ambari-web/app/mixins/common/configs/configs_comparator.js index 263e356..191a3a3 100644 --- a/ambari-web/app/mixins/common/configs/configs_comparator.js +++ b/ambari-web/app/mixins/common/configs/configs_comparator.js @@ -225,7 +225,7 @@ App.ConfigsComparator = Em.Mixin.create({ compareObject = App.ServiceConfigProperty.create(compareObject); compareObject.setProperties({ isFinal: !!compareConfig.isFinal, - value: App.config.formatOverrideValue(serviceConfig, compareConfig.value), + value: App.config.formatPropertyValue(serviceConfig, compareConfig.value), compareConfigs: null, isOriginalSCP: false }); @@ -303,7 +303,6 @@ App.ConfigsComparator = Em.Mixin.create({ var undefinedConfig = { description: name, displayName: name, - id: "site property", isOverridable: false, isReconfigurable: false, isRequired: false, http://git-wip-us.apache.org/repos/asf/ambari/blob/8867b368/ambari-web/app/mixins/common/configs/configs_saver.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/mixins/common/configs/configs_saver.js b/ambari-web/app/mixins/common/configs/configs_saver.js index 906f9c6..aacfa75 100644 --- a/ambari-web/app/mixins/common/configs/configs_saver.js +++ b/ambari-web/app/mixins/common/configs/configs_saver.js @@ -331,8 +331,6 @@ App.ConfigsSaverMixin = Em.Mixin.create({ * @method saveSiteConfigs */ saveSiteConfigs: function (configs) { - //configs = this.setHiveHostName(configs); - //configs = this.setOozieHostName(configs); this.formatConfigValues(configs); return configs; }, @@ -350,109 +348,6 @@ App.ConfigsSaverMixin = Em.Mixin.create({ }); }, - /*********************************** 2.1 PREPARE DATABASE CONFIGS ****************************/ - - /** - * set hive hostnames in configs - * @param configs - * @private - * @method setHiveHostName - */ - setHiveHostName: function (configs) { - var dbHostPropertyName = null, configsToRemove = []; - if (configs.someProperty('name', 'hive_database')) { - var hiveDb = configs.findProperty('name', 'hive_database'); - - switch(hiveDb.value) { - case 'New MySQL Database': - case 'New PostgreSQL Database': - dbHostPropertyName = configs.someProperty('name', 'hive_ambari_host') ? 'hive_ambari_host' : dbHostPropertyName; - configsToRemove = ['hive_existing_mysql_host', 'hive_existing_mysql_database', 'hive_existing_oracle_host', 'hive_existing_oracle_database', 'hive_existing_postgresql_host', 'hive_existing_postgresql_database', 'hive_existing_mssql_server_database', 'hive_existing_mssql_server_host', 'hive_existing_mssql_server_2_database', 'hive_existing_mssql_server_2_host']; - break; - case 'Existing MySQL Database': - dbHostPropertyName = configs.someProperty('name', 'hive_existing_mysql_host') ? 'hive_existing_mysql_host' : dbHostPropertyName; - configsToRemove = ['hive_ambari_database', 'hive_existing_oracle_host', 'hive_existing_oracle_database', 'hive_existing_postgresql_host', 'hive_existing_postgresql_database', 'hive_existing_mssql_server_database', 'hive_existing_mssql_server_host', 'hive_existing_mssql_server_2_database', 'hive_existing_mssql_server_2_host']; - break; - case 'Existing PostgreSQL Database': - dbHostPropertyName = configs.someProperty('name', 'hive_existing_postgresql_host') ? 'hive_existing_postgresql_host' : dbHostPropertyName; - configsToRemove = ['hive_ambari_database', 'hive_existing_mysql_host', 'hive_existing_mysql_database', 'hive_existing_oracle_host', 'hive_existing_oracle_database', 'hive_existing_mssql_server_database', 'hive_existing_mssql_server_host', 'hive_existing_mssql_server_2_database', 'hive_existing_mssql_server_2_host']; - break; - case 'Existing Oracle Database': - dbHostPropertyName = configs.someProperty('name', 'hive_existing_oracle_host') ? 'hive_existing_oracle_host' : dbHostPropertyName; - configsToRemove = ['hive_ambari_database', 'hive_existing_mysql_host', 'hive_existing_mysql_database', 'hive_existing_postgresql_host', 'hive_existing_postgresql_database', 'hive_existing_mssql_server_database', 'hive_existing_mssql_server_host', 'hive_existing_mssql_server_2_database', 'hive_existing_mssql_server_2_host']; - break; - case 'Existing MSSQL Server database with SQL authentication': - dbHostPropertyName = configs.someProperty('name', 'hive_existing_mssql_server_host') ? 'hive_existing_mssql_server_host' : dbHostPropertyName; - configsToRemove = ['hive_ambari_database', 'hive_existing_mysql_host', 'hive_existing_mysql_database', 'hive_existing_postgresql_host', 'hive_existing_postgresql_database', 'hive_existing_oracle_host', 'hive_existing_oracle_database', 'hive_existing_mssql_server_2_database', 'hive_existing_mssql_server_2_host']; - break; - case 'Existing MSSQL Server database with integrated authentication': - dbHostPropertyName = configs.someProperty('name', 'hive_existing_mssql_server_2_host') ? 'hive_existing_mssql_server_2_host' : dbHostPropertyName; - configsToRemove = ['hive_ambari_database', 'hive_existing_mysql_host', 'hive_existing_mysql_database', 'hive_existing_postgresql_host', 'hive_existing_postgresql_database', 'hive_existing_oracle_host', 'hive_existing_oracle_database', 'hive_existing_mssql_server_database', 'hive_existing_mssql_server_host']; - break; - } - configs = dataManipulationUtils.rejectPropertyValues(configs, 'name', configsToRemove); - } - if (dbHostPropertyName) { - var hiveHostNameProperty = App.ServiceConfigProperty.create(App.config.get('preDefinedSiteProperties').findProperty('name', 'hive_hostname')); - hiveHostNameProperty.set('value', configs.findProperty('name', dbHostPropertyName).get('value')); - configs.pushObject(hiveHostNameProperty); - } - return configs; - }, - - /** - * set oozie hostnames in configs - * @param configs - * @private - * @method setOozieHostName - */ - setOozieHostName: function (configs) { - var dbHostPropertyName = null, configsToRemove = []; - if (configs.someProperty('name', 'oozie_database')) { - var oozieDb = configs.findProperty('name', 'oozie_database'); - switch (oozieDb.value) { - case 'New Derby Database': - configsToRemove = ['oozie_ambari_database', 'oozie_existing_mysql_host', 'oozie_existing_mysql_database', 'oozie_existing_oracle_host', 'oozie_existing_oracle_database', 'oozie_existing_postgresql_host', 'oozie_existing_postgresql_database', 'oozie_existing_mssql_server_database', 'oozie_existing_mssql_server_host', 'oozie_existing_mssql_server_2_database', 'oozie_existing_mssql_server_2_host']; - break; - case 'New MySQL Database': - var ambariHost = configs.findProperty('name', 'oozie_ambari_host'); - if (ambariHost) { - ambariHost.name = 'oozie_hostname'; - } - configsToRemove = ['oozie_existing_mysql_host', 'oozie_existing_mysql_database', 'oozie_existing_oracle_host', 'oozie_existing_oracle_database', 'oozie_derby_database', 'oozie_existing_postgresql_host', 'oozie_existing_postgresql_database', 'oozie_existing_mssql_server_database', 'oozie_existing_mssql_server_host', 'oozie_existing_mssql_server_2_database', 'oozie_existing_mssql_server_2_host']; - break; - case 'Existing MySQL Database': - dbHostPropertyName = configs.someProperty('name', 'oozie_existing_mysql_host') ? 'oozie_existing_mysql_host' : dbHostPropertyName; - configsToRemove = ['oozie_ambari_database', 'oozie_existing_oracle_host', 'oozie_existing_oracle_database', 'oozie_derby_database', 'oozie_existing_postgresql_host', 'oozie_existing_postgresql_database', 'oozie_existing_mssql_server_database', 'oozie_existing_mssql_server_host', 'oozie_existing_mssql_server_2_database', 'oozie_existing_mssql_server_2_host']; - break; - case 'Existing PostgreSQL Database': - dbHostPropertyName = configs.someProperty('name', 'oozie_existing_postgresql_host') ? 'oozie_existing_postgresql_host' : dbHostPropertyName; - configsToRemove = ['oozie_ambari_database', 'oozie_existing_mysql_host', 'oozie_existing_mysql_database', 'oozie_existing_oracle_host', 'oozie_existing_oracle_database', 'oozie_existing_mssql_server_database', 'oozie_existing_mssql_server_host', 'oozie_existing_mssql_server_2_database', 'oozie_existing_mssql_server_2_host']; - break; - case 'Existing Oracle Database': - dbHostPropertyName = configs.someProperty('name', 'oozie_existing_oracle_host') ? 'oozie_existing_oracle_host' : dbHostPropertyName; - configsToRemove = ['oozie_ambari_database', 'oozie_existing_mysql_host', 'oozie_existing_mysql_database', 'oozie_derby_database', 'oozie_existing_mssql_server_database', 'oozie_existing_mssql_server_host', 'oozie_existing_mssql_server_2_database', 'oozie_existing_mssql_server_2_host']; - break; - case 'Existing MSSQL Server database with SQL authentication': - dbHostPropertyName = configs.someProperty('name', 'oozie_existing_mssql_server_host') ? 'oozie_existing_mssql_server_host' : dbHostPropertyName; - configsToRemove = ['oozie_ambari_database', 'oozie_existing_oracle_host', 'oozie_existing_oracle_database', 'oozie_derby_database', 'oozie_existing_postgresql_host', 'oozie_existing_postgresql_database', 'oozie_existing_mysql_host', 'oozie_existing_mysql_database', 'oozie_existing_mssql_server_2_database', 'oozie_existing_mssql_server_2_host']; - break; - case 'Existing MSSQL Server database with integrated authentication': - dbHostPropertyName = configs.someProperty('name', 'oozie_existing_mssql_server_2_host') ? 'oozie_existing_mssql_server_2_host' : dbHostPropertyName; - configsToRemove = ['oozie_ambari_database', 'oozie_existing_oracle_host', 'oozie_existing_oracle_database', 'oozie_derby_database', 'oozie_existing_postgresql_host', 'oozie_existing_postgresql_database', 'oozie_existing_mysql_host', 'oozie_existing_mysql_database', 'oozie_existing_mssql_server_database', 'oozie_existing_mssql_server_host']; - break; - } - configs = dataManipulationUtils.rejectPropertyValues(configs, 'name', configsToRemove); - } - - if (dbHostPropertyName) { - var oozieHostNameProperty = App.ServiceConfigProperty.create(App.config.get('preDefinedSiteProperties').findProperty('name', 'oozie_hostname')); - oozieHostNameProperty.set('value', configs.findProperty('name', dbHostPropertyName).get('value')); - configs.pushObject(oozieHostNameProperty); - } - return configs; - }, - /*********************************** 3. GENERATING JSON TO SAVE *****************************/ /** http://git-wip-us.apache.org/repos/asf/ambari/blob/8867b368/ambari-web/app/models/configs/objects/service_config_property.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/models/configs/objects/service_config_property.js b/ambari-web/app/models/configs/objects/service_config_property.js index 2c87c34..932ba2c 100644 --- a/ambari-web/app/models/configs/objects/service_config_property.js +++ b/ambari-web/app/models/configs/objects/service_config_property.js @@ -99,7 +99,6 @@ App.ServiceConfigProperty = Em.Object.extend({ filename: '', isOriginalSCP : true, // if true, then this is original SCP instance and its value is not overridden value. parentSCP: null, // This is the main SCP which is overridden by this. Set only when isOriginalSCP is false. - selectedHostOptions : null, // contain array of hosts configured with overridden value overrides : null, overrideValues: [], group: null, // Contain group related to this property. Set only when isOriginalSCP is false. http://git-wip-us.apache.org/repos/asf/ambari/blob/8867b368/ambari-web/app/utils/config.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/utils/config.js b/ambari-web/app/utils/config.js index c9bc6c2..3787f9a 100644 --- a/ambari-web/app/utils/config.js +++ b/ambari-web/app/utils/config.js @@ -130,8 +130,6 @@ App.config = Em.Object.create({ secureConfigs: require('data/HDP2/secure_mapping'), - configMapping: require('data/HDP2/config_mapping'), - customStackMapping: require('data/custom_stack_map'), mapCustomStack: function () { @@ -198,74 +196,6 @@ App.config = Em.Object.create({ } }, - //configs with these filenames go to appropriate category not in Advanced - customFileNames: ['flume-conf.xml'], - - /** - * identify category by filename of config - * @param config - * @return {object|null} - */ - identifyCategory: function (config) { - var category = null, - serviceConfigMetaData = this.get('preDefinedServiceConfigs').findProperty('serviceName', Em.get(config, 'serviceName')), - configCategories = (serviceConfigMetaData && serviceConfigMetaData.get('configCategories')) || []; - - if (Em.get(config, 'filename') && Em.get(config, 'filename').contains("env")) { - if (Em.get(config, 'category')) { - category = configCategories.findProperty("name", Em.get(config, 'category')); - } else { - configCategories.forEach(function (_category) { - if (_category.name.contains(this.getConfigTagFromFileName(Em.get(config, 'filename')))) { - category = _category; - } - }, this); - } - } else { - configCategories.forEach(function (_category) { - if (_category.siteFileNames && Array.isArray(_category.siteFileNames) && _category.siteFileNames.contains(Em.get(config, 'filename'))) { - category = _category; - } - }); - category = Em.isNone(category) ? configCategories.findProperty('siteFileName', this.getOriginalFileName(Em.get(config, 'filename'))) : category; - } - return category; - }, - - /** - * additional handling for special properties such as - * checkbox and digital which values with 'm' at the end - * @param config - */ - handleSpecialProperties: function (config) { - if (Em.get(config, 'displayType') === 'int' && /\d+m$/.test(Em.get(config, 'value') )) { - Em.set(config, 'value', Em.get(config, 'value').slice(0, Em.get(config, 'value.length') - 1)); - Em.set(config, 'savedValue', Em.get(config, 'value')); - } - }, - - /** - * calculate config properties: - * category, filename, description - * @param config - * @param isAdvanced - * @param advancedProperty - */ - calculateConfigProperties: function (config, isAdvanced, advancedProperty) { - if (!isAdvanced || this.get('customFileNames').contains(Em.get(config, 'filename'))) { - var categoryMetaData = this.identifyCategory(config); - if (categoryMetaData != null) { - Em.set(config, 'category', categoryMetaData.get('name')); - } - } else { - var configType = this.getConfigTagFromFileName(Em.get(config, 'filename')); - Em.set(config, 'category', Em.get(config, 'category') ? Em.get(config, 'category') : 'Advanced ' + configType); - } - if (advancedProperty) { - Em.set(config, 'description', Em.get(advancedProperty, 'description')); - } - }, - /** * get service for current config type * @param {String} configType - config fileName without xml @@ -357,12 +287,11 @@ App.config = Em.Object.create({ description: null, category: this.getDefaultCategory(definedInStack, fileName), isSecureConfig: this.getIsSecure(name), - showLabel: this.getDefaultIsShowLabel(name, fileName), + showLabel: true, isVisible: true, isUserProperty: !definedInStack, isRequired: definedInStack, group: null, - id: 'site property', isRequiredByAgent: true, isReconfigurable: true, unit: null, @@ -472,15 +401,6 @@ App.config = Em.Object.create({ }, /** - * - * @param name - * @param fileName - */ - getDefaultIsShowLabel: function(name, fileName) { - return !this.isContentProperty(name, fileName) || this.isContentProperty(name, fileName, ['-env']); - }, - - /** * format property value depending on displayType * and one exception for 'kdc_type' * @param serviceConfigProperty @@ -527,6 +447,9 @@ App.config = Em.Object.create({ if (Em.get(serviceConfigProperty, 'name') === 'kdc_type') { return App.router.get('mainAdminKerberosController.kdcTypesValues')[value]; } + if ( /^\s+$/.test("" + value)) { + value = " "; + } return value; }, @@ -611,9 +534,7 @@ App.config = Em.Object.create({ if (advanced.get('id')) { configData = this.mergeStaticProperties(configData, advanced, null, ['name', 'filename']); - var configValue = this.formatPropertyValue(advanced, advanced.get('value')); - // for property which value is single/multiple spaces set single space as well - configData.value = configData.recommendedValue = /^\s+$/.test("" + configValue) ? " " : configValue; + configData.value = configData.recommendedValue = this.formatPropertyValue(advanced, advanced.get('value')); } mergedConfigs.push(configData); @@ -655,7 +576,6 @@ App.config = Em.Object.create({ this.get('preDefinedServiceConfigs').forEach(function (serviceConfig) { var serviceName = serviceConfig.get('serviceName'); if (allSelectedServiceNames.contains(serviceName) || serviceName === 'MISC') { - console.log('pushing ' + serviceName, serviceConfig); if (!installedServiceNames.contains(serviceName) || serviceName === 'MISC') { serviceConfig.set('showConfig', true); } @@ -666,24 +586,10 @@ App.config = Em.Object.create({ var configsByService = []; var serviceConfigs = configs.filterProperty('serviceName', service.get('serviceName')); serviceConfigs.forEach(function (_config) { - _config.isOverridable = (_config.isOverridable === undefined) ? true : _config.isOverridable; var serviceConfigProperty = App.ServiceConfigProperty.create(_config); this.updateHostOverrides(serviceConfigProperty, _config); if (!storedConfigs && !serviceConfigProperty.get('hasInitialValue')) { - var hiveMetastoreUrisConfig = configs.filterProperty('filename', 'hive-site.xml').findProperty('name', 'hive.metastore.uris'); - var clientPortConfig = configs.filterProperty('filename', 'zoo.cfg.xml').findProperty('name', 'clientPort'); - var dependencies = { - 'hive.metastore.uris': hiveMetastoreUrisConfig && hiveMetastoreUrisConfig.recommendedValue, - 'clientPort': clientPortConfig && clientPortConfig.recommendedValue - }; - configPropertyHelper.initialValue(serviceConfigProperty, localDB, dependencies); - } - if (storedConfigs && storedConfigs.filterProperty('name', _config.name).length && !!_config.filename) { - var storedConfig = storedConfigs.filterProperty('name', _config.name).findProperty('filename', _config.filename); - if (storedConfig) { - serviceConfigProperty.set('recommendedValue', storedConfig.recommendedValue); - serviceConfigProperty.set('value', storedConfig.value); - } + configPropertyHelper.initialValue(serviceConfigProperty, localDB, configs); } this.tweakDynamicDefaults(localDB, serviceConfigProperty, _config); serviceConfigProperty.validate(); @@ -732,11 +638,6 @@ App.config = Em.Object.create({ newSCP.set('value', overrideEntry.value); newSCP.set('isOriginalSCP', false); // indicated this is overridden value, newSCP.set('parentSCP', configProperty); - var hostsArray = Ember.A([]); - overrideEntry.hosts.forEach(function (host) { - hostsArray.push(host); - }); - newSCP.set('selectedHostOptions', hostsArray); overrides.pushObject(newSCP); }); configProperty.set('overrides', overrides); @@ -907,12 +808,11 @@ App.config = Em.Object.create({ for (var prop in properties) { var fileName = this.getOriginalFileName(config.type); var serviceConfig = !!params.configKeyToConfigMap[fileName] ? params.configKeyToConfigMap[fileName][prop] : false; - var hostOverrideValue = this.formatOverrideValue(serviceConfig, properties[prop]); + var hostOverrideValue = this.formatPropertyValue(serviceConfig, properties[prop]); var hostOverrideIsFinal = !!(config.properties_attributes && config.properties_attributes.final && config.properties_attributes.final[prop]); if (serviceConfig) { // Value of this property is different for this host. if (!Em.get(serviceConfig, 'overrides')) Em.set(serviceConfig, 'overrides', []); - console.log("loadServiceConfigGroupOverridesSuccess(): [" + group + "] OVERRODE(" + serviceConfig.name + "): " + serviceConfig.value + " -> " + hostOverrideValue); serviceConfig.overrides.pushObject({value: hostOverrideValue, group: group, isFinal: hostOverrideIsFinal}); } else { params.serviceConfigs.push(this.createCustomGroupConfig(prop, config, group)); @@ -933,214 +833,20 @@ App.config = Em.Object.create({ * @return {Object} **/ createCustomGroupConfig: function (propertyName, config, group, isEditable) { - var propertyValue = config.properties[propertyName]; - var propertyObject = { - name: propertyName, - displayName: propertyName, - savedValue: propertyValue, - value: propertyValue, - displayType: stringUtils.isSingleLine(propertyValue) ? 'advanced' : 'multiLine', - isSecureConfig: false, + var propertyObject = this.createDefaultConfig(propertyName, group.get('service.serviceName'), this.getOriginalFileName(config.type), false, { + savedValue: config.properties[propertyName], + value: config.properties[propertyName], group: group, - id: 'site property', - serviceName: group.get('service.serviceName'), - filename: this.getOriginalFileName(config.type), - isUserProperty: true, - isVisible: true, + isEditable: isEditable !== false, isOverridable: false - }; - propertyObject.category = this.identifyCategory(propertyObject).name; - if(isEditable == false) { - propertyObject.isEditable = isEditable; - } + }); group.set('switchGroupTextShort', Em.I18n.t('services.service.config_groups.switchGroupTextShort').format(group.get('name'))); group.set('switchGroupTextFull', Em.I18n.t('services.service.config_groups.switchGroupTextFull').format(group.get('name'))); return App.ServiceConfigProperty.create(propertyObject); }, - /** - * format value of override of config - * @param serviceConfig - * @param hostOverrideValue - */ - formatOverrideValue: function (serviceConfig, hostOverrideValue) { - if (serviceConfig && serviceConfig.displayType === 'int') { - if (/\d+m$/.test(hostOverrideValue)) { - return hostOverrideValue.slice(0, hostOverrideValue.length - 1); - } - } else if (serviceConfig && - serviceConfig.displayType === 'masterHosts' && - typeof hostOverrideValue === 'string') { - try { - var value = JSON.parse(hostOverrideValue.replace(/'/g, "\"")); - if (typeof value === 'object') { - return value; - } - } catch(err) { - console.error(err); - } - - } - return hostOverrideValue; - }, - - /** - * Set all site property that are derived from other site-properties - * Replace <foreignKey[0]>, <foreignKey[1]>, ... (in the name and value) to values from configs with names in foreignKey-array - * Replace <templateName[0]>, <templateName[1]>, ... (in the value) to values from configs with names in templateName-array - * Example: - * <code> - * config: { - * name: "name.<foreignKey[0]>.name", - * foreignKey: ["name1"], - * templateName: ["name2"], - * value: "<foreignKey[0]><templateName[0]>" - * } - * </code> - * "<foreignKey[0]>" in the name will be replaced with value from config with name "name1" (this config will be found - * in the mappedConfigs or allConfigs). New name will be set to the '_name'-property. If config with name "name1" won't - * be found, updated config will be marked as skipped (<code>noMatchSoSkipThisConfig</code>-property is set to true) - * "<templateName[0]>" in the value will be replace with value from config with name "name2" (it also will be found - * in the mappedConfigs or allConfigs). - * - * @param {object[]} mappedConfigs - * @param {object[]} allConfigs - * @param {object} config - * @method setConfigValue - */ - setConfigValue: function (mappedConfigs, allConfigs, config) { - var globalValue; - if (config.value == null) { - return; - } - var fkValue = config.value.match(/<(foreignKey.*?)>/g); - var fkName = config.name.match(/<(foreignKey.*?)>/g); - var templateValue = config.value.match(/<(templateName.*?)>/g); - - if (fkValue) { - fkValue.forEach(function (_fkValue) { - - var index = parseInt(_fkValue.match(/\[([\d]*)(?=\])/)[1]); - var cfk = config.foreignKey[index]; - var cFromMapped = mappedConfigs.findProperty('name', cfk); - if (Em.isNone(cFromMapped)) { - var cFromAll = allConfigs.findProperty('name', cfk); - if (!Em.isNone(cFromAll)) { - globalValue = Em.get(cFromAll, 'value') === '' ? Em.get(cFromAll, 'recommendedValue') : Em.get(cFromAll, 'value'); - config.value = config.value.replace(_fkValue, globalValue); - } - } - else { - globalValue = Em.get(cFromMapped, 'value'); - config.value = config.value.replace(_fkValue, globalValue); - } - }); - } - - // config._name - formatted name from original config name - if (fkName) { - fkName.forEach(function (_fkName) { - - var index = parseInt(_fkName.match(/\[([\d]*)(?=\])/)[1]); - var cfk = config.foreignKey[index]; - var cFromMapped = mappedConfigs.findProperty('name', cfk); - - if (Em.isNone(cFromMapped)) { - var cFromAll = allConfigs.findProperty('name', cfk); - if (Em.isNone(cFromAll)) { - config.noMatchSoSkipThisConfig = true; - } - else { - globalValue = Em.get(cFromAll, 'value') === '' ? Em.get(cFromAll, 'recommendedValue') : Em.get(cFromAll, 'value'); - config._name = config.name.replace(_fkName, globalValue); - } - } - else { - globalValue = Em.get(cFromMapped, 'value'); - config._name = config.name.replace(_fkName, globalValue); - } - }); - } - - //For properties in the configMapping file having foreignKey and templateName properties. - if (templateValue) { - templateValue.forEach(function (_value) { - var index = parseInt(_value.match(/\[([\d]*)(?=\])/)[1]); - var cfk = config.templateName[index]; - var cFromAll = allConfigs.findProperty('name', cfk); - if (Em.isNone(cFromAll)) { - config.value = null; - } - else { - var globalValue = Em.get(cFromAll, 'value'); - config.value = config.value.replace(_value, globalValue); - } - }); - } - }, - - /** - * identify service name of config by its config's type - * @param type - * @return {string|null} - */ - getServiceNameByConfigType: function (type) { - var preDefinedServiceConfigs = this.get('preDefinedServiceConfigs'); - var service = preDefinedServiceConfigs.find(function (serviceConfig) { - return !!serviceConfig.get('configTypes')[type]; - }, this); - return service && service.get('serviceName'); - }, - - /** - * add user property - * @param stored - * @param isAdvanced - * @param advancedConfigs - * @return {Object} - */ - addUserProperty: function (stored, isAdvanced, advancedConfigs) { - var - skipAttributeChanges = { - displayType: ['ignore_groupsusers_create'], - displayName: ['ignore_groupsusers_create', 'smokeuser', 'user_group', 'mapred_user', 'zk_user'] - }, - configData = { - id: stored.id, - name: stored.name, - displayName: skipAttributeChanges.displayName.contains(stored.name) ? - this.getOriginalConfigAttribute(stored, 'displayName', advancedConfigs) : stored.name, - serviceName: stored.serviceName, - value: stored.value, - savedValue: stored.savedValue, - recommendedValue: stored.recommendedValue, - displayType: skipAttributeChanges.displayType.contains(stored.name) ? - this.getOriginalConfigAttribute(stored, 'displayType', advancedConfigs) : - (stringUtils.isSingleLine(stored.value) ? 'advanced' : 'multiLine'), - filename: stored.filename, - isUserProperty: stored.isUserProperty === true, - hasInitialValue: !!stored.hasInitialValue, - isOverridable: true, - overrides: stored.overrides, - isRequired: false, - isVisible: stored.isVisible, - isFinal: stored.isFinal, - savedIsFinal: stored.savedIsFinal, - supportsFinal: this.shouldSupportFinal(stored.serviceName, stored.filename), - showLabel: stored.showLabel !== false, - category: stored.category - }; - if (stored.category == 'Users and Groups') { - configData.index = this.getOriginalConfigAttribute(stored, 'index', advancedConfigs); - } - var advancedConfig = advancedConfigs.filterProperty('name', stored.name).findProperty('filename', stored.filename); - App.get('config').calculateConfigProperties(configData, isAdvanced, advancedConfig); - return configData; - }, - complexConfigsTemplate: [ { - "id": "site property", "name": "capacity-scheduler", "displayName": "Capacity Scheduler", "value": "", @@ -1224,7 +930,6 @@ App.config = Em.Object.create({ name = _property[0]; value = (_property[1]) ? _property[1] : ""; configs.push(Em.Object.create({ - id: configsTextarea.get('id'), name: name, value: value, savedValue: value, @@ -1277,21 +982,6 @@ App.config = Em.Object.create({ }, /** - * exclude configs that depends on services which are uninstalled - * if config doesn't have serviceName or dependent service is installed then - * config not excluded - * @param {object[]} configs - * @param {string[]} installedServices - * @return {object[]} - * @method excludeUnsupportedConfigs - */ - excludeUnsupportedConfigs: function (configs, installedServices) { - return configs.filter(function (config) { - return !(config.serviceName && !installedServices.contains(config.serviceName)); - }); - }, - - /** * Generate minimal config property object used in *_properties.js files. * Example: * <code> @@ -1326,23 +1016,6 @@ App.config = Em.Object.create({ }, /** - * replace some values in config property - * @param {string} name - * @param {string} express - * @param {string} value - * @param {string} globValue - * @return {string} - * @private - * @method replaceConfigValues - */ - replaceConfigValues: function (name, express, value, globValue) { - if (name == 'templeton.hive.properties') { - globValue = globValue.replace(/,/g, '\\,'); - } - return value.replace(express, globValue); - }, - - /** * load cluster stack configs from server and run mapper * @returns {$.ajax} * @method loadConfigsFromStack http://git-wip-us.apache.org/repos/asf/ambari/blob/8867b368/ambari-web/app/utils/configs/config_property_helper.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/utils/configs/config_property_helper.js b/ambari-web/app/utils/configs/config_property_helper.js index d4ce44a..9b528dd 100644 --- a/ambari-web/app/utils/configs/config_property_helper.js +++ b/ambari-web/app/utils/configs/config_property_helper.js @@ -20,7 +20,14 @@ var App = require('app'); module.exports = { - initialValue: function (configProperty, localDB, dependencies) { + initialValue: function (configProperty, localDB, configs) { + var hiveMetastoreUrisConfig = configs.filterProperty('filename', 'hive-site.xml').findProperty('name', 'hive.metastore.uris'); + var clientPortConfig = configs.filterProperty('filename', 'zoo.cfg.xml').findProperty('name', 'clientPort'); + var dependencies = { + 'hive.metastore.uris': hiveMetastoreUrisConfig && hiveMetastoreUrisConfig.recommendedValue, + 'clientPort': clientPortConfig && clientPortConfig.recommendedValue + }; + var masterComponentHostsInDB = localDB.masterComponentHosts; var slaveComponentHostsInDB = localDB.slaveComponentHosts; var isOnlyFirstOneNeeded = true; http://git-wip-us.apache.org/repos/asf/ambari/blob/8867b368/ambari-web/app/views/common/configs/service_configs_by_category_view.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/views/common/configs/service_configs_by_category_view.js b/ambari-web/app/views/common/configs/service_configs_by_category_view.js index db82636..a2080d0 100644 --- a/ambari-web/app/views/common/configs/service_configs_by_category_view.js +++ b/ambari-web/app/views/common/configs/service_configs_by_category_view.js @@ -350,7 +350,6 @@ App.ServiceConfigsByCategoryView = Em.View.extend(App.UserPref, App.ConfigOverri displayType: stringUtils.isSingleLine(propertyObj.value) ? 'advanced' : 'multiLine', isSecureConfig: isSecureConfig, category: propertyObj.categoryName, - id: 'site property', serviceName: propertyObj.serviceName, savedValue: null, recommendedValue: null, @@ -386,10 +385,9 @@ App.ServiceConfigsByCategoryView = Em.View.extend(App.UserPref, App.ConfigOverri var serviceName = service.get('serviceName'); var configsOfFile = service.get('configs').filterProperty('filename', siteFileName); - var siteFileProperties = App.config.get('configMapping').all().filterProperty('filename', siteFileName); function isDuplicatedConfigKey(name) { - return siteFileProperties.findProperty('name', name) || configsOfFile.findProperty('name', name); + return configsOfFile.findProperty('name', name); } var serviceConfigObj = Ember.Object.create({ @@ -567,17 +565,6 @@ App.ServiceConfigsByCategoryView = Em.View.extend(App.UserPref, App.ConfigOverri removeProperty: function (event) { var serviceConfigProperty = event.contexts[0]; this.get('serviceConfigs').removeObject(serviceConfigProperty); - if (App.get('isClusterSupportsEnhancedConfigs')) { - var deletedConfig = App.ConfigProperty.find().find(function(cp) { - return cp.get('name') === serviceConfigProperty.get('name') - && cp.get('fileName') === serviceConfigProperty.get('filename') - && cp.get('isOriginalSCP'); - }); - if (deletedConfig) { - deletedConfig.deleteRecord(); - App.store.commit(); - } - } // push config's file name if this config was stored on server if (!serviceConfigProperty.get('isNotSaved')) { var modifiedFileNames = this.get('controller.modifiedFileNames'), http://git-wip-us.apache.org/repos/asf/ambari/blob/8867b368/ambari-web/test/controllers/main/admin/serviceAccounts_controller_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/controllers/main/admin/serviceAccounts_controller_test.js b/ambari-web/test/controllers/main/admin/serviceAccounts_controller_test.js index ba12e00..aec7274 100644 --- a/ambari-web/test/controllers/main/admin/serviceAccounts_controller_test.js +++ b/ambari-web/test/controllers/main/admin/serviceAccounts_controller_test.js @@ -186,13 +186,4 @@ describe('App.MainAdminServiceAccountsController', function () { }); }); }); - - describe('#setProxyUserGroupLabel()', function () { - - it('proxyuser_group config is absent', function () { - var misc_configs = []; - controller.setProxyUserGroupLabel(misc_configs); - expect(misc_configs.findProperty('name', 'proxyuser_group')).to.be.undefined; - }); - }) }); http://git-wip-us.apache.org/repos/asf/ambari/blob/8867b368/ambari-web/test/controllers/main/service/info/config_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/controllers/main/service/info/config_test.js b/ambari-web/test/controllers/main/service/info/config_test.js index 846a438..825a00f 100644 --- a/ambari-web/test/controllers/main/service/info/config_test.js +++ b/ambari-web/test/controllers/main/service/info/config_test.js @@ -858,220 +858,6 @@ describe("App.MainServiceInfoConfigsController", function () { }); }); - describe('#setHiveHostName', function () { - beforeEach(function () { - sinon.stub(App.StackService, 'find').returns([ - { - serviceName: 'HIVE' - }, - { - serviceName: 'OOZIE' - } - ]); - }); - - afterEach(function () { - App.StackService.find.restore(); - }); - Em.A([ - { - globals: [ - Em.Object.create({name: 'hive_database', value: 'New MySQL Database'}), - Em.Object.create({name: 'hive_database_type', value: 'mysql'}), - Em.Object.create({name: 'hive_ambari_host', value: 'h1'}), - Em.Object.create({name: 'hive_hostname', value: 'h2'}) - ], - removed: ['hive_existing_mysql_host', 'hive_existing_mysql_database', 'hive_existing_oracle_host', 'hive_existing_oracle_database', 'hive_existing_postgresql_host', 'hive_existing_postgresql_database', 'hive_existing_mssql_server_database', 'hive_existing_mssql_server_host', 'hive_existing_mssql_server_2_database', 'hive_existing_mssql_server_2_host'], - m: 'hive_database: New MySQL Database', - host: 'h2' - }, - { - globals: [ - Em.Object.create({name: 'hive_database', value: 'New PostgreSQL Database'}), - Em.Object.create({name: 'hive_database_type', value: 'mysql'}), - Em.Object.create({name: 'hive_ambari_host', value: 'h1'}), - Em.Object.create({name: 'hive_hostname', value: 'h2'}) - ], - removed: ['hive_existing_mysql_host', 'hive_existing_mysql_database', 'hive_existing_oracle_host', 'hive_existing_oracle_database', 'hive_existing_postgresql_host', 'hive_existing_postgresql_database', 'hive_existing_mssql_server_database', 'hive_existing_mssql_server_host', 'hive_existing_mssql_server_2_database', 'hive_existing_mssql_server_2_host'], - m: 'hive_database: New PostgreSQL Database', - host: 'h2' - }, - { - globals: [ - Em.Object.create({name: 'hive_database', value: 'Existing MySQL Database'}), - Em.Object.create({name: 'hive_database_type', value: 'mysql'}), - Em.Object.create({name: 'hive_existing_mysql_host', value: 'h1'}), - Em.Object.create({name: 'hive_hostname', value: 'h2'}) - ], - removed: ['hive_ambari_database', 'hive_existing_oracle_host', 'hive_existing_oracle_database', 'hive_existing_postgresql_host', 'hive_existing_postgresql_database', 'hive_existing_mssql_server_database', 'hive_existing_mssql_server_host', 'hive_existing_mssql_server_2_database', 'hive_existing_mssql_server_2_host'], - m: 'hive_database: Existing MySQL Database', - host: 'h2' - }, - { - globals: [ - Em.Object.create({name: 'hive_database', value: 'Existing PostgreSQL Database'}), - Em.Object.create({name: 'hive_database_type', value: 'postgresql'}), - Em.Object.create({name: 'hive_existing_postgresql_host', value: 'h1'}), - Em.Object.create({name: 'hive_hostname', value: 'h2'}) - ], - removed: ['hive_ambari_database', 'hive_existing_mysql_host', 'hive_existing_mysql_database', 'hive_existing_oracle_host', 'hive_existing_oracle_database', 'hive_existing_mssql_server_database', 'hive_existing_mssql_server_host', 'hive_existing_mssql_server_2_database', 'hive_existing_mssql_server_2_host'], - m: 'hive_database: Existing PostgreSQL Database', - host: 'h2' - }, - { - globals: [ - Em.Object.create({name: 'hive_database', value: 'Existing Oracle Database'}), - Em.Object.create({name: 'hive_database_type', value: 'oracle'}), - Em.Object.create({name: 'hive_existing_oracle_host', value: 'h1'}), - Em.Object.create({name: 'hive_hostname', value: 'h2'}) - ], - removed: ['hive_ambari_database', 'hive_existing_mysql_host', 'hive_existing_mysql_database', 'hive_existing_postgresql_host', 'hive_existing_postgresql_database', 'hive_existing_mssql_server_database', 'hive_existing_mssql_server_host', 'hive_existing_mssql_server_2_database', 'hive_existing_mssql_server_2_host'], - m: 'hive_database: Existing Oracle Database', - host: 'h2' - }, - { - globals: [ - Em.Object.create({name: 'hive_database', value: 'Existing MSSQL Server database with SQL authentication'}), - Em.Object.create({name: 'hive_database_type', value: 'mssql'}), - Em.Object.create({name: 'hive_existing_mssql_server_host', value: 'h1'}), - Em.Object.create({name: 'hive_hostname', value: 'h2'}) - ], - removed: ['hive_ambari_database', 'hive_existing_mysql_host', 'hive_existing_mysql_database', 'hive_existing_postgresql_host', 'hive_existing_postgresql_database', 'hive_existing_oracle_host', 'hive_existing_oracle_database', 'hive_existing_mssql_server_2_database', 'hive_existing_mssql_server_2_host'], - m: 'hive_database: Existing MSSQL Server database with SQL authentication', - host: 'h2' - }, - { - globals: [ - Em.Object.create({name: 'hive_database', value: 'Existing MSSQL Server database with integrated authentication'}), - Em.Object.create({name: 'hive_database_type', value: 'mssql'}), - Em.Object.create({name: 'hive_existing_mssql_server_2_host', value: 'h1'}), - Em.Object.create({name: 'hive_hostname', value: 'h2'}) - ], - removed: ['hive_ambari_database', 'hive_existing_mysql_host', 'hive_existing_mysql_database', 'hive_existing_postgresql_host', 'hive_existing_postgresql_database', 'hive_existing_oracle_host', 'hive_existing_oracle_database', 'hive_existing_mssql_server_database', 'hive_existing_mssql_server_host'], - m: 'hive_database: Existing MSSQL Server database with integrated authentication', - host: 'h2' - } - ]).forEach(function (test) { - it(test.m, function () { - var configs = test.globals.slice(); - test.removed.forEach(function (c) { - configs.pushObject(Em.Object.create({name: c})) - }); - configs = mainServiceInfoConfigsController.setHiveHostName(configs); - test.removed.forEach(function (name) { - if (!Em.isNone(configs.findProperty('name', name))) console.log('!!!!', name); - expect(Em.isNone(configs.findProperty('name', name))).to.equal(true); - }); - expect(configs.findProperty('name', 'hive_hostname').value).to.equal(test.host); - }); - }); - - }); - - describe('#setOozieHostName', function () { - beforeEach(function () { - sinon.stub(App.StackService, 'find').returns([ - { - serviceName: 'HIVE' - }, - { - serviceName: 'OOZIE' - } - ]); - }); - - afterEach(function () { - App.StackService.find.restore(); - }); - Em.A([ - { - globals: [ - Em.Object.create({name: 'oozie_database', value: 'New Derby Database'}), - Em.Object.create({name: 'oozie_ambari_host', value: 'h1'}), - Em.Object.create({name: 'oozie_hostname', value: 'h2'}) - ], - removed: ['oozie_ambari_database', 'oozie_existing_mysql_host', 'oozie_existing_mysql_database', 'oozie_existing_oracle_host', 'oozie_existing_oracle_database', 'oozie_existing_postgresql_host', 'oozie_existing_postgresql_database', 'oozie_existing_mssql_server_database', 'oozie_existing_mssql_server_host', 'oozie_existing_mssql_server_2_database', 'oozie_existing_mssql_server_2_host'], - m: 'oozie_database: New Derby Database', - host: 'h2' - }, - { - globals: [ - Em.Object.create({name: 'oozie_database', value: 'New MySQL Database'}), - Em.Object.create({name: 'oozie_ambari_host', value: 'h1'}), - Em.Object.create({name: 'oozie_hostname', value: 'h2'}) - ], - removed: ['oozie_existing_mysql_host', 'oozie_existing_mysql_database', 'oozie_existing_oracle_host', 'oozie_existing_oracle_database', 'oozie_derby_database', 'oozie_existing_postgresql_host', 'oozie_existing_postgresql_database', 'oozie_existing_mssql_server_database', 'oozie_existing_mssql_server_host', 'oozie_existing_mssql_server_2_database', 'oozie_existing_mssql_server_2_host'], - m: 'oozie_database: New MySQL Database', - host: 'h1' - }, - { - globals: [ - Em.Object.create({name: 'oozie_database', value: 'Existing MySQL Database'}), - Em.Object.create({name: 'oozie_existing_mysql_host', value: 'h1'}), - Em.Object.create({name: 'oozie_hostname', value: 'h2'}) - ], - removed: ['oozie_ambari_database', 'oozie_existing_oracle_host', 'oozie_existing_oracle_database', 'oozie_derby_database', 'oozie_existing_postgresql_host', 'oozie_existing_postgresql_database', 'oozie_existing_mssql_server_database', 'oozie_existing_mssql_server_host', 'oozie_existing_mssql_server_2_database', 'oozie_existing_mssql_server_2_host'], - m: 'oozie_database: Existing MySQL Database', - host: 'h2' - }, - { - globals: [ - Em.Object.create({name: 'oozie_database', value: 'Existing PostgreSQL Database'}), - Em.Object.create({name: 'oozie_existing_postgresql_host', value: 'h1'}), - Em.Object.create({name: 'oozie_hostname', value: 'h2'}) - ], - removed: ['oozie_ambari_database', 'oozie_existing_mysql_host', 'oozie_existing_mysql_database', 'oozie_existing_oracle_host', 'oozie_existing_oracle_database', 'oozie_existing_mssql_server_database', 'oozie_existing_mssql_server_host', 'oozie_existing_mssql_server_2_database', 'oozie_existing_mssql_server_2_host'], - m: 'oozie_database: Existing PostgreSQL Database', - host: 'h2' - }, - { - globals: [ - Em.Object.create({name: 'oozie_database', value: 'Existing Oracle Database'}), - Em.Object.create({name: 'oozie_existing_oracle_host', value: 'h1'}), - Em.Object.create({name: 'oozie_hostname', value: 'h2'}) - ], - removed: ['oozie_ambari_database', 'oozie_existing_mysql_host', 'oozie_existing_mysql_database', 'oozie_derby_database', 'oozie_existing_mssql_server_database', 'oozie_existing_mssql_server_host', 'oozie_existing_mssql_server_2_database', 'oozie_existing_mssql_server_2_host'], - m: 'oozie_database: Existing Oracle Database', - host: 'h2' - }, - { - globals: [ - Em.Object.create({name: 'oozie_database', value: 'Existing MSSQL Server database with SQL authentication'}), - Em.Object.create({name: 'oozie_existing_oracle_host', value: 'h1'}), - Em.Object.create({name: 'oozie_hostname', value: 'h2'}) - ], - removed: ['oozie_ambari_database', 'oozie_existing_oracle_host', 'oozie_existing_oracle_database', 'oozie_derby_database', 'oozie_existing_postgresql_host', 'oozie_existing_postgresql_database', 'oozie_existing_mysql_host', 'oozie_existing_mysql_database', 'oozie_existing_mssql_server_2_database', 'oozie_existing_mssql_server_2_host'], - m: 'oozie_database: Existing MSSQL Server database with SQL authentication', - host: 'h2' - }, - { - globals: [ - Em.Object.create({name: 'oozie_database', value: 'Existing MSSQL Server database with integrated authentication'}), - Em.Object.create({name: 'oozie_existing_oracle_host', value: 'h1'}), - Em.Object.create({name: 'oozie_hostname', value: 'h2'}) - ], - removed: ['oozie_ambari_database', 'oozie_existing_oracle_host', 'oozie_existing_oracle_database', 'oozie_derby_database', 'oozie_existing_postgresql_host', 'oozie_existing_postgresql_database', 'oozie_existing_mysql_host', 'oozie_existing_mysql_database', 'oozie_existing_mssql_server_database', 'oozie_existing_mssql_server_host'], - m: 'oozie_database: Existing MSSQL Server database with integrated authentication', - host: 'h2' - } - ]).forEach(function (test) { - it(test.m, function () { - var configs = test.globals.slice(); - test.removed.forEach(function (c) { - if (!configs.findProperty('name', c)) { - configs.pushObject(Em.Object.create({name: c})) - } - }); - configs = mainServiceInfoConfigsController.setOozieHostName(configs); - test.removed.forEach(function (name) { - expect(Em.isNone(configs.findProperty('name', name))).to.equal(true); - }); - expect(configs.findProperty('name', 'oozie_hostname').value).to.equal(test.host); - }); - }); - - }); - describe('#errorsCount', function () { it('should ignore configs with widgets (enhanced configs)', function () { http://git-wip-us.apache.org/repos/asf/ambari/blob/8867b368/ambari-web/test/controllers/wizard/step7_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/controllers/wizard/step7_test.js b/ambari-web/test/controllers/wizard/step7_test.js index d60dc15..99db7bf 100644 --- a/ambari-web/test/controllers/wizard/step7_test.js +++ b/ambari-web/test/controllers/wizard/step7_test.js @@ -1954,49 +1954,6 @@ describe('App.InstallerStep7Controller', function () { }); - describe('#restoreRecommendedConfigs', function () { - - var recommendationsConfigs = { - site: { - properties: { - a: 'recommendedA', - b: 'recommendedB' - } - } - }; - var stepConfigs = [ - Em.Object.create({ - serviceName: 'srv', - configs: [ - {name: 'a', value: '--', filename: 'site'}, - {name: 'b', value: '--', filename: 'Custom site'} - ] - }) - ]; - var serviceConfigProperties = [ - {name: 'a', value: 'valueA', filename: 'site'}, - {name: 'b', value: 'valueB', filename: 'Custom site'} - ]; - - beforeEach(function() { - installerStep7Controller.reopen({ - content: { - serviceConfigProperties: serviceConfigProperties - }, - recommendationsConfigs: recommendationsConfigs, - stepConfigs: stepConfigs - }); - }); - - it('should restore provided by user values', function () { - installerStep7Controller.restoreRecommendedConfigs(); - var configs = installerStep7Controller.get('stepConfigs')[0].configs; - expect(Em.get(configs.findProperty('name', 'a'), 'value')).to.equal('valueA'); - expect(Em.get(configs.findProperty('name', 'b'), 'value')).to.equal('valueB'); - }); - - }); - describe('#_reconfigureServicesOnNnHa', function () { var dfsNameservices = 'some_cluster';