You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by jl...@apache.org on 2018/04/03 16:28:51 UTC

[ambari] branch branch-feature-AMBARI-14714 updated: AMBARI-23408: Update all references to command.json in stack-hooks to… (#855)

This is an automated email from the ASF dual-hosted git repository.

jluniya pushed a commit to branch branch-feature-AMBARI-14714
in repository https://gitbox.apache.org/repos/asf/ambari.git


The following commit(s) were added to refs/heads/branch-feature-AMBARI-14714 by this push:
     new 0342af0  AMBARI-23408: Update all references to command.json in stack-hooks to… (#855)
0342af0 is described below

commit 0342af06add05a7a0868f9ab4baaa7b27c29954c
Author: sduan <sd...@hortonworks.com>
AuthorDate: Tue Apr 3 09:28:49 2018 -0700

    AMBARI-23408: Update all references to command.json in stack-hooks to… (#855)
    
    * AMBARI-23408: Update all references to command.json in stack-hooks to use new execution_command library
    
    * AMBARI-23408: Update all references to command.json in stack-hooks to use new execution_command library
---
 .../execution_command/execution_command.py         |   2 +-
 .../libraries/functions/config_helper.py           |  45 -----
 .../resource_management/libraries/script/script.py |  15 +-
 .../stack-hooks/after-INSTALL/scripts/params.py    |  55 +++---
 .../after-INSTALL/scripts/shared_initialization.py |   6 +-
 .../stack-hooks/before-ANY/scripts/params.py       | 153 ++++++++-------
 .../before-ANY/scripts/shared_initialization.py    |   8 +-
 .../stack-hooks/before-INSTALL/scripts/params.py   |  81 ++++----
 .../before-START/scripts/custom_extensions.py      |  27 +--
 .../stack-hooks/before-START/scripts/params.py     | 216 ++++++++++-----------
 10 files changed, 284 insertions(+), 324 deletions(-)

diff --git a/ambari-common/src/main/python/resource_management/libraries/execution_command/execution_command.py b/ambari-common/src/main/python/resource_management/libraries/execution_command/execution_command.py
index 55c65dc..275574f 100644
--- a/ambari-common/src/main/python/resource_management/libraries/execution_command/execution_command.py
+++ b/ambari-common/src/main/python/resource_management/libraries/execution_command/execution_command.py
@@ -72,7 +72,7 @@ class ExecutionCommand(object):
     At this time it returns hardcoded 'default' name
     :return:
     """
-    return self.__get_value("default")
+    return "default"
 
   def get_servicegroup_name(self):
     return self.__get_value("serviceGroupName")
diff --git a/ambari-common/src/main/python/resource_management/libraries/functions/config_helper.py b/ambari-common/src/main/python/resource_management/libraries/functions/config_helper.py
deleted file mode 100644
index 2d85d29..0000000
--- a/ambari-common/src/main/python/resource_management/libraries/functions/config_helper.py
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/usr/bin/env python
-"""
-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.
-
-Ambari Agent
-
-"""
-
-
-def get_mpack_name(config):
-  return config['hostLevelParams']['stack_name']
-
-
-def get_mpack_version(config):
-  return config['hostLevelParams']['stack_version']
-
-
-def get_mpack_instance_name(config):
-  return config['serviceGroupName']
-
-
-def get_module_name(config):
-  return config['serviceName']
-
-
-def get_component_type(config):
-  return config['role']
-
-
-def get_component_instance_name(config):
-  return "default"
diff --git a/ambari-common/src/main/python/resource_management/libraries/script/script.py b/ambari-common/src/main/python/resource_management/libraries/script/script.py
index 929d65f..d9a956d 100644
--- a/ambari-common/src/main/python/resource_management/libraries/script/script.py
+++ b/ambari-common/src/main/python/resource_management/libraries/script/script.py
@@ -61,8 +61,6 @@ from resource_management.libraries.functions.stack_features import check_stack_f
 from resource_management.libraries.functions.constants import StackFeature
 from resource_management.libraries.functions.show_logs import show_logs
 from resource_management.libraries.functions.fcntl_based_process_lock import FcntlBasedProcessLock
-from resource_management.libraries.functions.config_helper import get_mpack_name, get_mpack_version, \
-  get_mpack_instance_name, get_module_name, get_component_type, get_component_instance_name
 from resource_management.libraries.execution_command.execution_command import ExecutionCommand
 from resource_management.libraries.execution_command.module_configs import ModuleConfigs
 
@@ -790,12 +788,13 @@ class Script(object):
     # should be used only when mpack-instance-manager is available
     from resource_management.libraries.functions.mpack_manager_helper import create_component_instance
     config = self.get_config()
-    mpack_name = get_mpack_name(config)
-    mpack_version = get_mpack_version(config)
-    mpack_instance_name = get_mpack_instance_name(config)
-    module_name = get_module_name(config)
-    component_type = get_component_type(config)
-    component_instance_name = get_component_instance_name(config)
+    execution_command = self.get_execution_command()
+    mpack_name = execution_command.get_mpack_name()
+    mpack_version = execution_command.get_mpack_version()
+    mpack_instance_name = execution_command.get_servicegroup_name()
+    module_name = execution_command.get_module_name()
+    component_type = execution_command.get_component_type()
+    component_instance_name = execution_command.get_component_instance_name()
 
     create_component_instance(mpack_name=mpack_name, mpack_version=mpack_version, instance_name=mpack_instance_name,
                               module_name=module_name, components_instance_type=component_type,
diff --git a/ambari-server/src/main/resources/stack-hooks/after-INSTALL/scripts/params.py b/ambari-server/src/main/resources/stack-hooks/after-INSTALL/scripts/params.py
index ff4d723..bc81dd6 100644
--- a/ambari-server/src/main/resources/stack-hooks/after-INSTALL/scripts/params.py
+++ b/ambari-server/src/main/resources/stack-hooks/after-INSTALL/scripts/params.py
@@ -25,33 +25,36 @@ from resource_management.libraries.script.script import get_config_lock_file
 from resource_management.libraries.functions import default
 from resource_management.libraries.functions import conf_select
 from resource_management.libraries.functions import stack_select
-from resource_management.libraries.functions import format_jvm_option
+from resource_management.libraries.functions.format_jvm_option import format_jvm_option_value
 from resource_management.libraries.functions.version import format_stack_version, get_major_version
 from resource_management.libraries.functions.cluster_settings import get_cluster_setting_value
+from resource_management.libraries.execution_command import execution_command
+from resource_management.libraries.execution_command import module_configs
 from string import lower
 
-config = Script.get_config()
+execution_command = Script.get_execution_command()
+module_configs = Script.get_module_configs()
+module_name = execution_command.get_module_name()
 tmp_dir = Script.get_tmp_dir()
 
-dfs_type = default("/commandParams/dfs_type", "")
+dfs_type = execution_command.get_dfs_type()
 
-is_parallel_execution_enabled = int(default("/agentConfigParams/agent/parallel_execution", 0)) == 1
-host_sys_prepped = default("/ambariLevelParams/host_sys_prepped", False)
+is_parallel_execution_enabled = execution_command.check_agent_config_execute_in_parallel() == 1
+host_sys_prepped = execution_command.is_host_system_prepared()
 
 sudo = AMBARI_SUDO_BINARY
 
-stack_version_unformatted = config['clusterLevelParams']['stack_version']
-stack_version_formatted = format_stack_version(stack_version_unformatted)
+stack_version_formatted = execution_command.get_mpack_version() 
 major_stack_version = get_major_version(stack_version_formatted)
 
 # service name
-service_name = config['serviceName']
+service_name = execution_command.get_module_name()
 
 # logsearch configuration
 logsearch_logfeeder_conf = "/usr/lib/ambari-logsearch-logfeeder/conf"
 
-agent_cache_dir = config['agentLevelParams']['agentCacheDir']
-service_package_folder = config['commandParams']['service_package_folder']
+agent_cache_dir = execution_command.get_agent_cache_dir()
+service_package_folder = execution_command.get_module_package_folder()
 logsearch_service_name = service_name.lower().replace("_", "-")
 logsearch_config_file_name = 'input.config-' + logsearch_service_name + ".json"
 logsearch_config_file_path = agent_cache_dir + "/" + service_package_folder + "/templates/" + logsearch_config_file_name + ".j2"
@@ -68,36 +71,36 @@ versioned_stack_root = '/usr/hdp/current'
 security_enabled = get_cluster_setting_value('security_enabled')
 
 #java params
-java_home = config['ambariLevelParams']['java_home']
+java_home = execution_command.get_java_home()
 
 #hadoop params
-hdfs_log_dir_prefix = config['configurations']['hadoop-env']['hdfs_log_dir_prefix']
-hadoop_pid_dir_prefix = config['configurations']['hadoop-env']['hadoop_pid_dir_prefix']
-hadoop_root_logger = config['configurations']['hadoop-env']['hadoop_root_logger']
+hdfs_log_dir_prefix = module_configs.get_property_value(module_name, 'hadoop-env', 'hdfs_log_dir_prefix')
+hadoop_pid_dir_prefix = module_configs.get_property_value(module_name, 'hadoop-env', 'hadoop_pid_dir_prefix')
+hadoop_root_logger = module_configs.get_property_value(module_name, 'hadoop-env', 'hadoop_root_logger')
 
 jsvc_path = "/usr/lib/bigtop-utils"
 
-hadoop_heapsize = config['configurations']['hadoop-env']['hadoop_heapsize']
-namenode_heapsize = config['configurations']['hadoop-env']['namenode_heapsize']
-namenode_opt_newsize = config['configurations']['hadoop-env']['namenode_opt_newsize']
-namenode_opt_maxnewsize = config['configurations']['hadoop-env']['namenode_opt_maxnewsize']
-namenode_opt_permsize = format_jvm_option("/configurations/hadoop-env/namenode_opt_permsize","128m")
-namenode_opt_maxpermsize = format_jvm_option("/configurations/hadoop-env/namenode_opt_maxpermsize","256m")
+hadoop_heapsize = module_configs.get_property_value(module_name, 'hadoop-env', 'hadoop_heapsize')
+namenode_heapsize = module_configs.get_property_value(module_name, 'hadoop-env', 'namenode_heapsize')
+namenode_opt_newsize = module_configs.get_property_value(module_name, 'hadoop-env', 'namenode_opt_newsize')
+namenode_opt_maxnewsize = module_configs.get_property_value(module_name, 'hadoop-env', 'namenode_opt_maxnewsize')
+namenode_opt_permsize = format_jvm_option_value(module_configs.get_property_value(module_name, 'hadoop-env', 'namenode_opt_permsize', '128m'))
+namenode_opt_maxpermsize = format_jvm_option_value(module_configs.get_property_value(module_name, 'hadoop-env', 'namenode_opt_maxpermsize', '256m'))
 
 jtnode_opt_newsize = "200m"
 jtnode_opt_maxnewsize = "200m"
 jtnode_heapsize =  "1024m"
 ttnode_heapsize = "1024m"
 
-dtnode_heapsize = config['configurations']['hadoop-env']['dtnode_heapsize']
-mapred_pid_dir_prefix = default("/configurations/mapred-env/mapred_pid_dir_prefix","/var/run/hadoop-mapreduce")
-mapred_log_dir_prefix = default("/configurations/mapred-env/mapred_log_dir_prefix","/var/log/hadoop-mapreduce")
+dtnode_heapsize = module_configs.get_property_value(module_name, 'hadoop-env', 'dtnode_heapsize')
+mapred_pid_dir_prefix = module_configs.get_property_value(module_name, 'mapred-env', 'mapred_pid_dir_prefix', '/var/run/hadoop-mapreduce')
+mapred_log_dir_prefix = module_configs.get_property_value(module_name, 'mapred-env', 'mapred_log_dir_prefix', '/var/log/hadoop-mapreduce')
 
 #users and groups
-hdfs_user = config['configurations']['hadoop-env']['hdfs_user']
+hdfs_user = module_configs.get_property_value(module_name, 'hadoop-env', 'hdfs_user')
 user_group = get_cluster_setting_value('user_group')
 
-namenode_host = default("/clusterHostInfo/namenode_hosts", [])
+namenode_host = execution_command._execution_command.__get_value("clusterHostInfo/namenode_hosts", [])
 has_namenode = not len(namenode_host) == 0
 
 if has_namenode or dfs_type == 'HCFS':
@@ -106,4 +109,4 @@ if has_namenode or dfs_type == 'HCFS':
 link_configs_lock_file = get_config_lock_file()
 stack_select_lock_file = os.path.join(tmp_dir, "stack_select_lock_file")
 
-upgrade_suspended = default("/roleParams/upgrade_suspended", False)
+upgrade_suspended = execution_command.is_upgrade_suspended()
diff --git a/ambari-server/src/main/resources/stack-hooks/after-INSTALL/scripts/shared_initialization.py b/ambari-server/src/main/resources/stack-hooks/after-INSTALL/scripts/shared_initialization.py
index 22543bc..3febc85 100644
--- a/ambari-server/src/main/resources/stack-hooks/after-INSTALL/scripts/shared_initialization.py
+++ b/ambari-server/src/main/resources/stack-hooks/after-INSTALL/scripts/shared_initialization.py
@@ -29,6 +29,8 @@ from resource_management.libraries.functions.default import default
 from resource_management.libraries.functions.format import format
 from resource_management.libraries.functions.fcntl_based_process_lock import FcntlBasedProcessLock
 from resource_management.libraries.resources.xml_config import XmlConfig
+from resource_management.libraries.execution_command import execution_command
+from resource_management.libraries.execution_command import module_configs
 from resource_management.libraries.script import Script
 
 
@@ -81,8 +83,8 @@ def setup_config():
     # create core-site only if the hadoop config diretory exists
     XmlConfig("core-site.xml",
               conf_dir=params.hadoop_conf_dir,
-              configurations=params.config['configurations']['core-site'],
-              configuration_attributes=params.config['configurationAttributes']['core-site'],
+              configurations=params.module_configs.get_property_value(params.module_name, 'core-site', ''),
+              configuration_attributes=params.execution_command._execution_command.__get_value("configurationAttributes/core-site"),
               owner=params.hdfs_user,
               group=params.user_group,
               only_if=format("ls {hadoop_conf_dir}"))
diff --git a/ambari-server/src/main/resources/stack-hooks/before-ANY/scripts/params.py b/ambari-server/src/main/resources/stack-hooks/before-ANY/scripts/params.py
index b083702..50168e1 100644
--- a/ambari-server/src/main/resources/stack-hooks/before-ANY/scripts/params.py
+++ b/ambari-server/src/main/resources/stack-hooks/before-ANY/scripts/params.py
@@ -27,7 +27,7 @@ import ambari_simplejson as json # simplejson is much faster comparing to Python
 from resource_management.libraries.script import Script
 from resource_management.libraries.functions import default
 from resource_management.libraries.functions import format
-from resource_management.libraries.functions import format_jvm_option
+from resource_management.libraries.functions.format_jvm_option import format_jvm_option_value
 from resource_management.libraries.functions.is_empty import is_empty
 from resource_management.libraries.functions.version import format_stack_version
 from resource_management.libraries.functions.expect import expect
@@ -37,51 +37,55 @@ from resource_management.libraries.functions.stack_features import get_stack_fea
 from resource_management.libraries.functions.get_architecture import get_architecture
 from resource_management.libraries.functions.cluster_settings import get_cluster_setting_value
 from ambari_commons.constants import AMBARI_SUDO_BINARY, HADOOP_CLIENTS_MODULE_NAME, HADOOP_CLIENT_COMPONENT_TYPE
-import resource_management.libraries.functions.config_helper as config_helper
 from resource_management.libraries.functions.mpack_manager_helper import get_component_conf_path, get_component_home_path
-
+from resource_management.libraries.execution_command import execution_command
+from resource_management.libraries.execution_command import module_configs
 
 config = Script.get_config()
+execution_command = Script.get_execution_command()
+module_configs = Script.get_module_configs()
+module_name = execution_command.get_module_name()
 tmp_dir = Script.get_tmp_dir()
 
 stack_root = Script.get_stack_root()
 
 architecture = get_architecture()
 
-dfs_type = default("/commandParams/dfs_type", "")
+dfs_type = execution_command.get_dfs_type()
 
 artifact_dir = format("{tmp_dir}/AMBARI-artifacts/")
-jdk_name = default("/ambariLevelParams/jdk_name", None)
-java_home = config['ambariLevelParams']['java_home']
-java_version = expect("/ambariLevelParams/java_version", int)
-jdk_location = config['ambariLevelParams']['jdk_location']
+jdk_name = execution_command.get_jdk_name()
+java_home = execution_command.get_jdk_home()
+java_version = execution_command.get_java_version()
+jdk_location = execution_command.get_jdk_location()
 
-hadoop_custom_extensions_enabled = default("/configurations/core-site/hadoop.custom-extensions.enabled", False)
+hadoop_custom_extensions_enabled = module_configs.get_property_value(module_name, 'core-site', 'hadoop.custom-extensions.enabled', False)
 
 sudo = AMBARI_SUDO_BINARY
 
-ambari_server_hostname = config['ambariLevelParams']['ambari_server_host']
+ambari_server_hostname = execution_command.get_ambari_server_host()
 
-stack_version_unformatted = config['clusterLevelParams']['stack_version']
-stack_version_formatted = config['clusterLevelParams']['stack_version']
-#stack_version_formatted = format_stack_version(stack_version_unformatted)
+stack_version_formatted = execution_command.get_mpack_version()
 
-upgrade_type = Script.get_upgrade_type(default("/commandParams/upgrade_type", ""))
-version = default("/commandParams/version", None)
+upgrade_type = Script.get_upgrade_type(execution_command.get_upgrade_type())
+version = execution_command.get_new_mpack_version_for_upgrade()
 # Handle upgrade and downgrade
 if (upgrade_type is not None) and version:
   stack_version_formatted = format_stack_version(version)
-ambari_java_home = default("/commandParams/ambari_java_home", None)
-ambari_jdk_name = default("/commandParams/ambari_jdk_name", None)
+"""
+??? is this the same as ambariLevelParams/java_home and ambariLevelParams/java_name ???
+"""
+ambari_java_home = execution_command.get_ambari_java_home()
+ambari_jdk_name = execution_command.get_ambari_jdk_name()
 
 security_enabled = get_cluster_setting_value('security_enabled')
-hdfs_user = config['configurations']['hadoop-env']['hdfs_user']
+hdfs_user = module_configs.get_property_value(module_name, 'hadoop-env', 'hdfs_user')
 
 # Some datanode settings
-dfs_dn_addr = default('/configurations/hdfs-site/dfs.datanode.address', None)
-dfs_dn_http_addr = default('/configurations/hdfs-site/dfs.datanode.http.address', None)
-dfs_dn_https_addr = default('/configurations/hdfs-site/dfs.datanode.https.address', None)
-dfs_http_policy = default('/configurations/hdfs-site/dfs.http.policy', None)
+dfs_dn_addr = module_configs.get_property_value(module_name, 'hdfs-site', 'dfs.datanode.address')
+dfs_dn_http_addr = module_configs.get_property_value(module_name, 'hdfs-site', 'dfs.datanode.http.address')
+dfs_dn_https_addr = module_configs.get_property_value(module_name, 'hdfs-site', 'dfs.datanode.https.address')
+dfs_http_policy = module_configs.get_property_value(module_name, 'hdfs-site', 'dfs.http.policy')
 secure_dn_ports_are_in_use = False
 
 def get_port(address):
@@ -110,20 +114,19 @@ def is_secure_port(port):
 # force the use of "current" in the hook
 hdfs_user_nofile_limit = default("/configurations/hadoop-env/hdfs_user_nofile_limit", "128000")
 
-mpack_name = config_helper.get_mpack_name(config)
-mpack_instance_name = config_helper.get_mpack_instance_name(config)
-module_name = config_helper.get_module_name(config)
-component_type = config_helper.get_component_type(config)
-component_instance_name = config_helper.get_component_instance_name(config)
+mpack_name = execution_command.get_mpack_name()
+mpack_instance_name = execution_command.get_servicegroup_name()
+module_name = execution_command.get_module_name()
+component_type = execution_command.get_component_type()
+component_instance_name = execution_command.get_component_instance_name()
 
-stack_name = default("/clusterLevelParams/stack_name", None)
-stack_name = stack_name.lower()
+stack_name = mpack_name.lower()
 component_directory = "namenode"
 
 hadoop_dir = "/etc/hadoop"
 hadoop_java_io_tmpdir = os.path.join(tmp_dir, "hadoop_java_io_tmpdir")
-datanode_max_locked_memory = config['configurations']['hdfs-site']['dfs.datanode.max.locked.memory']
-is_datanode_max_locked_memory_set = not is_empty(config['configurations']['hdfs-site']['dfs.datanode.max.locked.memory'])
+datanode_max_locked_memory = module_configs.get_property_value(module_name, 'hdfs-site', 'dfs.datanode.max.locked.memory')
+is_datanode_max_locked_memory_set = not is_empty(module_configs.get_property_value(module_name, 'hdfs-site', 'dfs.datanode.max.locked.memory'))
 
 mapreduce_libs_path = "/usr/hdp/current/hadoop-mapreduce-client/*"
 
@@ -146,51 +149,51 @@ else:
     hadoop_secure_dn_user = '""'
 
 #hadoop params
-hdfs_log_dir_prefix = config['configurations']['hadoop-env']['hdfs_log_dir_prefix']
-hadoop_pid_dir_prefix = config['configurations']['hadoop-env']['hadoop_pid_dir_prefix']
-hadoop_root_logger = config['configurations']['hadoop-env']['hadoop_root_logger']
+hdfs_log_dir_prefix = module_configs.get_property_value(module_name, 'hadoop-env', 'hdfs_log_dir_prefix')
+hadoop_pid_dir_prefix = module_configs.get_property_value(module_name, 'hadoop-env', 'hadoop_pid_dir_prefix')
+hadoop_root_logger = module_configs.get_property_value(module_name, 'hadoop-env', 'hadoop_root_logger')
 
 jsvc_path = "/usr/lib/bigtop-utils"
 
-hadoop_heapsize = config['configurations']['hadoop-env']['hadoop_heapsize']
-namenode_heapsize = config['configurations']['hadoop-env']['namenode_heapsize']
-namenode_opt_newsize = config['configurations']['hadoop-env']['namenode_opt_newsize']
-namenode_opt_maxnewsize = config['configurations']['hadoop-env']['namenode_opt_maxnewsize']
-namenode_opt_permsize = format_jvm_option("/configurations/hadoop-env/namenode_opt_permsize","128m")
-namenode_opt_maxpermsize = format_jvm_option("/configurations/hadoop-env/namenode_opt_maxpermsize","256m")
+hadoop_heapsize = module_configs.get_property_value(module_name, 'hadoop-env', 'hadoop_heapsize')
+namenode_heapsize = module_configs.get_property_value(module_name, 'hadoop-env', 'namenode_heapsize')
+namenode_opt_newsize = module_configs.get_property_value(module_name, 'hadoop-env', 'namenode_opt_newsize')
+namenode_opt_maxnewsize = module_configs.get_property_value(module_name, 'hadoop-env', 'namenode_opt_maxnewsize')
+namenode_opt_permsize = format_jvm_option_value(module_configs.get_property_value(module_name, 'hadoop-env', 'namenode_opt_permsize', '128m'))
+namenode_opt_maxpermsize = format_jvm_option_value(module_configs.get_property_value(module_name, 'hadoop-env', 'namenode_opt_maxpermsize', '256m'))
 
 jtnode_opt_newsize = "200m"
 jtnode_opt_maxnewsize = "200m"
 jtnode_heapsize =  "1024m"
 ttnode_heapsize = "1024m"
 
-dtnode_heapsize = config['configurations']['hadoop-env']['dtnode_heapsize']
-nfsgateway_heapsize = config['configurations']['hadoop-env']['nfsgateway_heapsize']
-mapred_pid_dir_prefix = default("/configurations/mapred-env/mapred_pid_dir_prefix","/var/run/hadoop-mapreduce")
-mapred_log_dir_prefix = default("/configurations/mapred-env/mapred_log_dir_prefix","/var/log/hadoop-mapreduce")
-hadoop_env_sh_template = config['configurations']['hadoop-env']['content']
+dtnode_heapsize = module_configs.get_property_value(module_name, 'hadoop-env', 'dtnode_heapsize')
+nfsgateway_heapsize = module_configs.get_property_value(module_name, 'hadoop-env', 'nfsgateway_heapsize')
+mapred_pid_dir_prefix = module_configs.get_property_value(module_name, 'mapred-env', 'mapred_pid_dir_prefix', '/var/run/hadoop-mapreduce')
+mapred_log_dir_prefix = module_configs.get_property_value(module_name, 'mapred-env', 'mapred_log_dir_prefix', '/var/log/hadoop-mapreduce')
+hadoop_env_sh_template = module_configs.get_property_value(module_name, 'hadoop-env', 'content')
 
 #users and groups
-hbase_user = config['configurations']['hbase-env']['hbase_user']
+hbase_user = module_configs.get_property_value(module_name, 'hbase-env', 'hbase_user')
 smoke_user =  get_cluster_setting_value('smokeuser')
-gmetad_user = config['configurations']['ganglia-env']["gmetad_user"]
-gmond_user = config['configurations']['ganglia-env']["gmond_user"]
-tez_user = config['configurations']['tez-env']["tez_user"]
-oozie_user = config['configurations']['oozie-env']["oozie_user"]
-falcon_user = config['configurations']['falcon-env']["falcon_user"]
-ranger_user = config['configurations']['ranger-env']["ranger_user"]
-zeppelin_user = config['configurations']['zeppelin-env']["zeppelin_user"]
-zeppelin_group = config['configurations']['zeppelin-env']["zeppelin_group"]
+gmetad_user = module_configs.get_property_value(module_name, 'ganglia-env', 'gmetad_user')
+gmond_user = module_configs.get_property_value(module_name, 'ganglia-env', 'gmond_user')
+tez_user = module_configs.get_property_value(module_name, 'tez-env', 'tez_user')
+oozie_user = module_configs.get_property_value(module_name, 'oozie-env', 'oozie_user')
+falcon_user = module_configs.get_property_value(module_name, 'falcon-env', 'falcon_user')
+ranger_user = module_configs.get_property_value(module_name, 'ranger-env', 'ranger_user')
+zeppelin_user = module_configs.get_property_value(module_name, 'zeppelin-env', 'zeppelin_user')
+zeppelin_group = module_configs.get_property_value(module_name, 'zeppelin-env', 'zeppelin_group')
 
 user_group = get_cluster_setting_value('user_group')
 
-ganglia_server_hosts = default("/clusterHostInfo/ganglia_server_hosts", [])
-namenode_host = default("/clusterHostInfo/namenode_hosts", [])
-hbase_master_hosts = default("/clusterHostInfo/hbase_master_hosts", [])
-oozie_servers = default("/clusterHostInfo/oozie_server", [])
-falcon_server_hosts = default("/clusterHostInfo/falcon_server_hosts", [])
-ranger_admin_hosts = default("/clusterHostInfo/ranger_admin_hosts", [])
-zeppelin_master_hosts = default("/clusterHostInfo/zeppelin_master_hosts", [])
+ganglia_server_hosts = execution_command._execution_command.__get_value("clusterHostInfo/ganglia_server_hosts", [])
+namenode_host = execution_command._execution_command.__get_value("clusterHostInfo/namenode_hosts", [])
+hbase_master_hosts = execution_command._execution_command.__get_value("clusterHostInfo/hbase_master_hosts", [])
+oozie_servers = execution_command._execution_command.__get_value("clusterHostInfo/oozie_server", [])
+falcon_server_hosts = execution_command._execution_command.__get_value("clusterHostInfo/falcon_server_hosts", [])
+ranger_admin_hosts = execution_command._execution_command.__get_value("clusterHostInfo/ranger_admin_hosts", [])
+zeppelin_master_hosts = execution_command._execution_command.__get_value("clusterHostInfo/zeppelin_master_hosts", [])
 
 # get the correct version to use for checking stack features
 version_for_stack_feature_checks = get_stack_feature_version(config)
@@ -198,7 +201,7 @@ version_for_stack_feature_checks = get_stack_feature_version(config)
 
 has_namenode = not len(namenode_host) == 0
 has_ganglia_server = not len(ganglia_server_hosts) == 0
-has_tez = 'tez-site' in config['configurations']
+has_tez = module_configs.get_property_value(module_name, 'tez-site', '') is not None
 has_hbase_masters = not len(hbase_master_hosts) == 0
 has_oozie_server = not len(oozie_servers) == 0
 has_falcon_server_hosts = not len(falcon_server_hosts) == 0
@@ -208,10 +211,10 @@ stack_supports_zk_security = check_stack_feature(StackFeature.SECURE_ZOOKEEPER,
 
 # HDFS High Availability properties
 dfs_ha_enabled = False
-dfs_ha_nameservices = default('/configurations/hdfs-site/dfs.internal.nameservices', None)
+dfs_ha_nameservices = module_configs.get_property_value(module_name, 'hdfs-site', 'dfs.internal.nameservices')
 if dfs_ha_nameservices is None:
-  dfs_ha_nameservices = default('/configurations/hdfs-site/dfs.nameservices', None)
-dfs_ha_namenode_ids = default(format("/configurations/hdfs-site/dfs.ha.namenodes.{dfs_ha_nameservices}"), None)
+  dfs_ha_nameservices = module_configs.get_property_value(module_name, 'hdfs-site', 'dfs.nameservices')
+dfs_ha_namenode_ids = module_configs.get_property_value(module_name, 'hdfs-site', 'dfs.ha.namenodes.{dfs_ha_nameservices}')
 if dfs_ha_namenode_ids:
   dfs_ha_namemodes_ids_list = dfs_ha_namenode_ids.split(",")
   dfs_ha_namenode_ids_array_len = len(dfs_ha_namemodes_ids_list)
@@ -226,9 +229,9 @@ if has_namenode or dfs_type == 'HCFS':
 
 hbase_tmp_dir = "/tmp/hbase-hbase"
 
-proxyuser_group = default("/configurations/hadoop-env/proxyuser_group","users")
-ranger_group = config['configurations']['ranger-env']['ranger_group']
-dfs_cluster_administrators_group = config['configurations']['hdfs-site']["dfs.cluster.administrators"]
+proxyuser_group = module_configs.get_property_value(module_name, 'hadoop-env', 'proxyuser_group', 'users')
+ranger_group = module_configs.get_property_value(module_name, 'ranger-env', 'ranger_group')
+dfs_cluster_administrators_group = module_configs.get_property_value(module_name, 'hdfs-site', 'dfs.cluster.administrators')
 
 sysprep_skip_create_users_and_groups = get_cluster_setting_value('sysprep_skip_create_users_and_groups')
 ignore_groupsusers_create = get_cluster_setting_value('ignore_groupsusers_create')
@@ -238,14 +241,14 @@ smoke_user_dirs = format("/tmp/hadoop-{smoke_user},/tmp/hsperfdata_{smoke_user},
 if has_hbase_masters:
   hbase_user_dirs = format("/home/{hbase_user},/tmp/{hbase_user},/usr/bin/{hbase_user},/var/log/{hbase_user},{hbase_tmp_dir}")
 #repo params
-repo_info = config['hostLevelParams']['repoInfo']
-service_repo_info = default("/hostLevelParams/service_repo_info",None)
+repo_info = execution_command.get_repo_info()
+service_repo_info = execution_command.get_service_repo_info()
 
 user_to_groups_dict = {}
 
 #Append new user-group mapping to the dict
 try:
-  user_group_map = ast.literal_eval(config['clusterLevelParams']['user_groups'])
+  user_group_map = ast.literal_eval(execution_command.get_user_groups())
   for key in user_group_map.iterkeys():
     user_to_groups_dict[key] = user_group_map[key]
 except ValueError:
@@ -253,11 +256,11 @@ except ValueError:
 
 user_to_gid_dict = collections.defaultdict(lambda:user_group)
 
-user_list = json.loads(config['clusterLevelParams']['user_list'])
-group_list = json.loads(config['clusterLevelParams']['group_list'])
-host_sys_prepped = default("/ambariLevelParams/host_sys_prepped", False)
+user_list = json.loads(execution_command.get_user_list())
+group_list = json.loads(execution_command.get_group_list())
+host_sys_prepped = execution_command.is_host_system_prepared()
 
-tez_am_view_acls = config['configurations']['tez-site']["tez.am.view-acls"]
+tez_am_view_acls = module_configs.get_property_value(module_name, 'tez-site', 'tez.am.view-acls')
 override_uid = get_cluster_setting_value('override_uid')
 
 # if NN HA on secure clutser, access Zookeper securely
diff --git a/ambari-server/src/main/resources/stack-hooks/before-ANY/scripts/shared_initialization.py b/ambari-server/src/main/resources/stack-hooks/before-ANY/scripts/shared_initialization.py
index b63c1ff..3690821 100644
--- a/ambari-server/src/main/resources/stack-hooks/before-ANY/scripts/shared_initialization.py
+++ b/ambari-server/src/main/resources/stack-hooks/before-ANY/scripts/shared_initialization.py
@@ -25,6 +25,8 @@ from copy import copy
 from resource_management.libraries.functions.version import compare_versions
 from resource_management import *
 from resource_management.core import shell
+from resource_management.libraries.execution_command import execution_command
+from resource_management.libraries.execution_command import module_configs
 
 def setup_users():
   """
@@ -154,11 +156,11 @@ def get_uid(user, return_existing=False):
   """
   import params
   user_str = str(user) + "_uid"
-  service_env = [ serviceEnv for serviceEnv in params.config['configurations'] if user_str in params.config['configurations'][serviceEnv]]
+  service_env = [ serviceEnv for serviceEnv in params.module_configs if user_str in params.module_configs.get_property_value(params.module_name, serviceEnv, "")]
 
-  if service_env and params.config['configurations'][service_env[0]][user_str]:
+  if service_env and params.module_configs.get_property_value(params.module_name, service_env[0], user_str):
     service_env_str = str(service_env[0])
-    uid = params.config['configurations'][service_env_str][user_str]
+    uid = params.module_configs.get_property_value(params.module_name, service_env_str, user_str)
     if len(service_env) > 1:
       Logger.warning("Multiple values found for %s, using %s"  % (user_str, uid))
     return uid
diff --git a/ambari-server/src/main/resources/stack-hooks/before-INSTALL/scripts/params.py b/ambari-server/src/main/resources/stack-hooks/before-INSTALL/scripts/params.py
index 63e29b7..3004f1f 100644
--- a/ambari-server/src/main/resources/stack-hooks/before-INSTALL/scripts/params.py
+++ b/ambari-server/src/main/resources/stack-hooks/before-INSTALL/scripts/params.py
@@ -24,63 +24,68 @@ from resource_management.libraries.script.script import Script
 from resource_management.libraries.functions import default, format
 from resource_management.libraries.functions.expect import expect
 from resource_management.libraries.functions.cluster_settings import get_cluster_setting_value
+from resource_management.libraries.execution_command import execution_command
+from resource_management.libraries.execution_command import module_configs
 
 config = Script.get_config()
+execution_command = Script.get_execution_command()
+module_configs = Script.get_module_configs()
+module_name = execution_command.get_module_name()
 tmp_dir = Script.get_tmp_dir()
 sudo = AMBARI_SUDO_BINARY
 
-stack_version_unformatted = config['clusterLevelParams']['stack_version']
-agent_stack_retry_on_unavailability = config['ambariLevelParams']['agent_stack_retry_on_unavailability']
-agent_stack_retry_count = expect("/ambariLevelParams/agent_stack_retry_count", int)
+stack_version_unformatted = execution_command.get_mpack_version()
+agent_stack_retry_on_unavailability = execution_command.check_agent_stack_want_retry_on_unavailability()
+agent_stack_retry_count = execution_command.get_agent_stack_retry_count_on_unavailability()
 stack_version_formatted = format_stack_version(stack_version_unformatted)
 
 #users and groups
-hbase_user = config['configurations']['hbase-env']['hbase_user']
+hbase_user = module_configs.get_property_value(module_name, 'hbase-env', 'hbase_user')
 smoke_user = get_cluster_setting_value('smokeuser')
-gmetad_user = config['configurations']['ganglia-env']["gmetad_user"]
-gmond_user = config['configurations']['ganglia-env']["gmond_user"]
-tez_user = config['configurations']['tez-env']["tez_user"]
+gmetad_user = module_configs.get_property_value(module_name, 'ganglia-env', 'gmetad_user')
+gmond_user = module_configs.get_property_value(module_name, 'ganglia-env', 'gmond_user')
+tez_user = module_configs.get_property_value(module_name, 'tez-env', 'tez_user')
 
 user_group = get_cluster_setting_value('user_group')
-proxyuser_group = default("/configurations/hadoop-env/proxyuser_group","users")
+proxyuser_group = module_configs.get_property_value(module_name, 'hadoop-env', 'proxyuser_group', 'users')
 
-hdfs_log_dir_prefix = config['configurations']['hadoop-env']['hdfs_log_dir_prefix']
+hdfs_log_dir_prefix = module_configs.get_property_value(module_name, 'hadoop-env', 'hdfs_log_dir_prefix')
 
 # repo templates
 repo_rhel_suse =  get_cluster_setting_value('repo_suse_rhel_template')
 repo_ubuntu =  get_cluster_setting_value('repo_ubuntu_template')
 
 #hosts
-hostname = config['agentLevelParams']['hostname']
-ambari_server_hostname = config['ambariLevelParams']['ambari_server_host']
-rm_host = default("/clusterHostInfo/resourcemanager_hosts", [])
-slave_hosts = default("/clusterHostInfo/datanode_hosts", [])
-oozie_servers = default("/clusterHostInfo/oozie_server", [])
-hcat_server_hosts = default("/clusterHostInfo/webhcat_server_hosts", [])
-hive_server_host =  default("/clusterHostInfo/hive_server_hosts", [])
-hbase_master_hosts = default("/clusterHostInfo/hbase_master_hosts", [])
-hs_host = default("/clusterHostInfo/historyserver_hosts", [])
-jtnode_host = default("/clusterHostInfo/jtnode_hosts", [])
-namenode_host = default("/clusterHostInfo/namenode_hosts", [])
-zk_hosts = default("/clusterHostInfo/zookeeper_server_hosts", [])
-ganglia_server_hosts = default("/clusterHostInfo/ganglia_server_hosts", [])
-storm_server_hosts = default("/clusterHostInfo/nimbus_hosts", [])
-falcon_host =  default('/clusterHostInfo/falcon_server_hosts', [])
-
-has_sqoop_client = 'sqoop-env' in config['configurations']
+hostname = execution_command.get_host_name()
+ambari_server_hostname = execution_command.get_ambari_server_host()
+rm_host = execution_command._execution_command.__get_value("clusterHostInfo/resourcemanager_hosts", [])
+slave_hosts = execution_command._execution_command.__get_value("clusterHostInfo/datanode_hosts", [])
+oozie_servers = execution_command._execution_command.__get_value("clusterHostInfo/oozie_server", [])
+hcat_server_hosts = execution_command._execution_command.__get_value("clusterHostInfo/webhcat_server_hosts", [])
+hive_server_host =  execution_command._execution_command.__get_value("clusterHostInfo/hive_server_hosts", [])
+hbase_master_hosts = execution_command._execution_command.__get_value("clusterHostInfo/hbase_master_hosts", [])
+hs_host = execution_command._execution_command.__get_value("clusterHostInfo/historyserver_hosts", [])
+jtnode_host = execution_command._execution_command.__get_value("clusterHostInfo/jtnode_hosts", [])
+namenode_host = execution_command._execution_command.__get_value("clusterHostInfo/namenode_hosts", [])
+zk_hosts = execution_command._execution_command.__get_value("clusterHostInfo/zookeeper_server_hosts", [])
+ganglia_server_hosts = execution_command._execution_command.__get_value("clusterHostInfo/ganglia_server_hosts", [])
+storm_server_hosts = execution_command._execution_command.__get_value("clusterHostInfo/nimbus_hosts", [])
+falcon_host = execution_command._execution_command.__get_value("clusterHostInfo/falcon_server_hosts", [])
+
+has_sqoop_client = 'sqoop-env' in module_configs
 has_namenode = not len(namenode_host) == 0
 has_hs = not len(hs_host) == 0
 has_resourcemanager = not len(rm_host) == 0
 has_slaves = not len(slave_hosts) == 0
 has_oozie_server = not len(oozie_servers)  == 0
-has_hcat_server_host = not len(hcat_server_hosts)  == 0
-has_hive_server_host = not len(hive_server_host)  == 0
+has_hcat_server_host = not len(hcat_server_hosts) == 0
+has_hive_server_host = not len(hive_server_host) == 0
 has_hbase_masters = not len(hbase_master_hosts) == 0
 has_zk_host = not len(zk_hosts) == 0
 has_ganglia_server = not len(ganglia_server_hosts) == 0
 has_storm_server = not len(storm_server_hosts) == 0
 has_falcon_server = not len(falcon_host) == 0
-has_tez = 'tez-site' in config['configurations']
+has_tez = module_configs.get_property_value(module_name, 'tez-site', '') is not None
 
 is_namenode_master = hostname in namenode_host
 is_jtnode_master = hostname in jtnode_host
@@ -97,20 +102,20 @@ hbase_tmp_dir = "/tmp/hbase-hbase"
 security_enabled = get_cluster_setting_value('security_enabled')
 
 #java params
-java_home = config['ambariLevelParams']['java_home']
+java_home = execution_command.get_java_home()
 artifact_dir = format("{tmp_dir}/AMBARI-artifacts/")
-jdk_name = default("/ambariLevelParams/jdk_name", None) # None when jdk is already installed by user
-jce_policy_zip = default("/ambariLevelParams/jce_name", None) # None when jdk is already installed by user
-jce_location = config['ambariLevelParams']['jdk_location']
-jdk_location = config['ambariLevelParams']['jdk_location']
+jdk_name = execution_command.get_jdk_name() # None when jdk is already installed by user
+jce_policy_zip = execution_command.get_jce_name() # None when jdk is already installed by user
+jce_location = execution_command.get_jdk_location()
+jdk_location = execution_command.get_jdk_location()
 ignore_groupsusers_create = get_cluster_setting_value('ignore_groupsusers_create')
-host_sys_prepped = default("/ambariLevelParams/host_sys_prepped", False)
+host_sys_prepped = execution_command.is_host_system_prepared()
 
 smoke_user_dirs = format("/tmp/hadoop-{smoke_user},/tmp/hsperfdata_{smoke_user},/home/{smoke_user},/tmp/{smoke_user},/tmp/sqoop-{smoke_user}")
 if has_hbase_masters:
   hbase_user_dirs = format("/home/{hbase_user},/tmp/{hbase_user},/usr/bin/{hbase_user},/var/log/{hbase_user},{hbase_tmp_dir}")
 #repo params
-repo_info = config['hostLevelParams']['repoInfo']
-service_repo_info = default("/hostLevelParams/service_repo_info",None)
+repo_info = execution_command.get_repo_info()
+service_repo_info = execution_command.get_service_repo_info()
 
-repo_file = default("/repositoryFile", None)
+repo_file = execution_command._execution_command.__get_value("repositoryFile")
diff --git a/ambari-server/src/main/resources/stack-hooks/before-START/scripts/custom_extensions.py b/ambari-server/src/main/resources/stack-hooks/before-START/scripts/custom_extensions.py
index 04299ba..ab9646b 100644
--- a/ambari-server/src/main/resources/stack-hooks/before-START/scripts/custom_extensions.py
+++ b/ambari-server/src/main/resources/stack-hooks/before-START/scripts/custom_extensions.py
@@ -21,9 +21,10 @@ import os
 
 from resource_management.core.resources import Directory
 from resource_management.core.resources import Execute
-from resource_management.libraries.functions import default
 from resource_management.libraries.script.script import Script
 from resource_management.libraries.functions import format
+from resource_management.libraries.execution_command import execution_command
+from resource_management.libraries.execution_command import module_configs
 
 
 DEFAULT_HADOOP_HDFS_EXTENSION_DIR = "/hdp/ext/{0}/hadoop"
@@ -41,10 +42,10 @@ def setup_extensions():
   import params
 
   # Hadoop Custom extensions
-  hadoop_custom_extensions_enabled = default("/configurations/core-site/hadoop.custom-extensions.enabled", False)
-  hadoop_custom_extensions_services = default("/configurations/core-site/hadoop.custom-extensions.services", "")
-  hadoop_custom_extensions_owner = default("/configurations/core-site/hadoop.custom-extensions.owner", params.hdfs_user)
-  hadoop_custom_extensions_hdfs_dir = get_config_formatted_value(default("/configurations/core-site/hadoop.custom-extensions.root",
+  hadoop_custom_extensions_enabled = params.module_configs.get_property_value(params.module_name, 'core-site', 'hadoop.custom-extensions.enabled', False)
+  hadoop_custom_extensions_services = params.module_configs.get_property_value(params.module_name, 'core-site', 'hadoop.custom-extensions.services', "")
+  hadoop_custom_extensions_owner = params.module_configs.get_property_value(params.module_name, 'core-site', 'hadoop.custom-extensions.owner', params.hdfs_user)
+  hadoop_custom_extensions_hdfs_dir = get_config_formatted_value(params.module_configs.get_property_value(params.module_name, 'core-site', 'hadoop.custom-extensions.root',
                                                  DEFAULT_HADOOP_HDFS_EXTENSION_DIR.format(params.major_stack_version)))
   hadoop_custom_extensions_services = [ service.strip().upper() for service in hadoop_custom_extensions_services.split(",") ]
   hadoop_custom_extensions_services.append("YARN")
@@ -70,14 +71,14 @@ def setup_hbase_extensions():
   import params
 
   # HBase Custom extensions
-  hbase_custom_extensions_enabled = default("/configurations/hbase-site/hbase.custom-extensions.enabled", False)
-  hbase_custom_extensions_owner = default("/configurations/hbase-site/hbase.custom-extensions.owner", params.hdfs_user)
-  hbase_custom_extensions_hdfs_dir = get_config_formatted_value(default("/configurations/hbase-site/hbase.custom-extensions.root",
+  hbase_custom_extensions_enabled = params.module_configs.get_property_value(params.module_name, 'hbase-site', 'hbase.custom-extensions.enabled', False)
+  hbase_custom_extensions_owner = params.module_configs.get_property_value(params.module_name, 'hbase-site', 'hbase.custom-extensions.owner', params.hdfs_user)
+  hbase_custom_extensions_hdfs_dir = get_config_formatted_value(params.module_configs.get_property_value(params.module_name, 'hbase-site', 'hbase.custom-extensions.root',
                                                 DEFAULT_HADOOP_HBASE_EXTENSION_DIR.format(params.major_stack_version)))
   hbase_custom_extensions_local_dir = "{0}/current/ext/hbase".format(Script.get_stack_root())
 
   impacted_components = ['HBASE_MASTER', 'HBASE_REGIONSERVER', 'PHOENIX_QUERY_SERVER'];
-  role = params.config.get('role','')
+  role = params.execution_command.get_component_type()
 
   if role in impacted_components:
     clean_extensions(hbase_custom_extensions_local_dir)
@@ -90,14 +91,14 @@ def setup_hbase_extensions():
 def setup_extensions_hive():
   import params
 
-  hive_custom_extensions_enabled = default("/configurations/hive-site/hive.custom-extensions.enabled", False)
-  hive_custom_extensions_owner = default("/configurations/hive-site/hive.custom-extensions.owner", params.hdfs_user)
+  hive_custom_extensions_enabled = params.module_configs.get_property_value(params.module_name, 'hive-site', 'hive.custom-extensions.enabled', False)
+  hive_custom_extensions_owner = params.module_configs.get_property_value(params.module_name, 'hive-site', 'hive.custom-extensions.owner', params.hdfs_user)
   hive_custom_extensions_hdfs_dir = DEFAULT_HADOOP_HIVE_EXTENSION_DIR.format(params.major_stack_version)
 
   hive_custom_extensions_local_dir = "{0}/current/ext/hive".format(Script.get_stack_root())
 
-  impacted_components = ['HIVE_SERVER', 'HIVE_CLIENT'];
-  role = params.config.get('role','')
+  impacted_components = ['HIVE_SERVER', 'HIVE_CLIENT']
+  role = params.execution_command.get_component_type()
 
   # Run copying for HIVE_SERVER and HIVE_CLIENT
   if params.current_service == 'HIVE' and role in impacted_components:
diff --git a/ambari-server/src/main/resources/stack-hooks/before-START/scripts/params.py b/ambari-server/src/main/resources/stack-hooks/before-START/scripts/params.py
index eeeea5e..40e95b6 100644
--- a/ambari-server/src/main/resources/stack-hooks/before-START/scripts/params.py
+++ b/ambari-server/src/main/resources/stack-hooks/before-START/scripts/params.py
@@ -22,7 +22,7 @@ import os
 from resource_management.libraries.functions import conf_select
 from resource_management.libraries.functions import stack_select
 from resource_management.libraries.functions import default
-from resource_management.libraries.functions import format_jvm_option
+from resource_management.libraries.functions.format_jvm_option import format_jvm_option_value
 from resource_management.libraries.functions import format
 from resource_management.libraries.functions.version import format_stack_version, compare_versions, get_major_version
 from ambari_commons.os_check import OSCheck
@@ -33,10 +33,14 @@ from resource_management.libraries.resources.hdfs_resource import HdfsResource
 from resource_management.libraries.functions.stack_features import check_stack_feature
 from resource_management.libraries.functions.stack_features import get_stack_feature_version
 from resource_management.libraries.functions import StackFeature
+from resource_management.libraries.execution_command import execution_command
+from resource_management.libraries.execution_command import module_configs
 from ambari_commons.constants import AMBARI_SUDO_BINARY
 from resource_management.libraries.functions.cluster_settings import get_cluster_setting_value
 
-config = Script.get_config()
+execution_command = Script.get_execution_command()
+module_configs = Script.get_module_configs()
+module_name = execution_command.get_module_name()
 tmp_dir = Script.get_tmp_dir()
 artifact_dir = tmp_dir + "/AMBARI-artifacts"
 
@@ -46,7 +50,7 @@ stack_supports_hadoop_custom_extensions = check_stack_feature(StackFeature.HADOO
 sudo = AMBARI_SUDO_BINARY
 
 # Global flag enabling or disabling the sysprep feature
-host_sys_prepped = default("/ambariLevelParams/host_sys_prepped", False)
+host_sys_prepped = execution_command.is_host_system_prepared()
 
 # Whether to skip copying fast-hdfs-resource.jar to /var/lib/ambari-agent/lib/
 # This is required if tarballs are going to be copied to HDFS, so set to False
@@ -55,19 +59,17 @@ sysprep_skip_copy_fast_jar_hdfs = host_sys_prepped and get_cluster_setting_value
 # Whether to skip setting up the unlimited key JCE policy
 sysprep_skip_setup_jce = host_sys_prepped and get_cluster_setting_value('sysprep_skip_setup_jce')
 
-stack_version_unformatted = config['clusterLevelParams']['stack_version']
+stack_version_unformatted = execution_command.get_mpack_version()
 stack_version_formatted = format_stack_version(stack_version_unformatted)
 major_stack_version = get_major_version(stack_version_formatted)
 
-dfs_type = default("/commandParams/dfs_type", "")
+dfs_type = execution_command.get_dfs_type()
 hadoop_conf_dir = "/etc/hadoop/conf"
-component_list = default("/localComponents", [])
+component_list = execution_command._execution_command.__get_value("localComponents", [])
 
-hdfs_tmp_dir = default("/configurations/hadoop-env/hdfs_tmp_dir", "/tmp")
+hdfs_tmp_dir = module_configs.get_property_value(module_name, 'hadoop-env', 'hdfs_tmp_dir', '/tmp')
 
-hadoop_metrics2_properties_content = None
-if 'hadoop-metrics2.properties' in config['configurations']:
-  hadoop_metrics2_properties_content = config['configurations']['hadoop-metrics2.properties']['content']
+hadoop_metrics2_properties_content = module_configs.get_property_value(module_name, 'hadoop-metrics2.properties', 'content')
 
 hadoop_libexec_dir = stack_select.get_hadoop_dir("libexec")
 hadoop_lib_home = stack_select.get_hadoop_dir("lib")
@@ -77,52 +79,51 @@ mapreduce_libs_path = "/usr/hdp/current/hadoop-mapreduce-client/*"
 hadoop_home = stack_select.get_hadoop_dir("home")
 create_lib_snappy_symlinks = False
   
-current_service = config['serviceName']
+current_service = module_name
 
 #security params
 security_enabled = get_cluster_setting_value('security_enabled')
 
-ambari_server_resources_url = default("/ambariLevelParams/jdk_location", None)
-if ambari_server_resources_url is not None and ambari_server_resources_url.endswith('/'):
+ambari_server_resources_url = execution_command.get_jdk_location()
+if ambari_server_resources_url and ambari_server_resources_url.endswith('/'):
   ambari_server_resources_url = ambari_server_resources_url[:-1]
 
 # Unlimited key JCE policy params
-jce_policy_zip = default("/ambariLevelParams/jce_name", None) # None when jdk is already installed by user
-unlimited_key_jce_required = default("/componentLevelParams/unlimited_key_jce_required", False)
-jdk_name = default("/ambariLevelParams/jdk_name", None)
-java_home = default("/ambariLevelParams/java_home", None)
+jce_policy_zip = execution_command.get_jce_name() # None when jdk is already installed by user
+unlimited_key_jce_required = execution_command.check_unlimited_key_jce_required()
+jdk_name = execution_command.get_jdk_name()
+java_home = execution_command.get_java_home()
 java_exec = "{0}/bin/java".format(java_home) if java_home is not None else "/bin/java"
 
 #users and groups
-has_hadoop_env = 'hadoop-env' in config['configurations']
-mapred_user = config['configurations']['mapred-env']['mapred_user']
-hdfs_user = config['configurations']['hadoop-env']['hdfs_user']
-yarn_user = config['configurations']['yarn-env']['yarn_user']
+has_hadoop_env = 'hadoop-env' in module_configs
+mapred_user = module_configs.get_property_value(module_name, 'mapred-env', 'mapred_user')
+hdfs_user = module_configs.get_property_value(module_name, 'hadoop-env', 'hdfs_user')
+yarn_user = module_configs.get_property_value(module_name, 'yarn-env', 'yarn_user')
 
 user_group = get_cluster_setting_value('user_group')
 
 #hosts
-hostname = config['agentLevelParams']['hostname']
-ambari_server_hostname = config['ambariLevelParams']['ambari_server_host']
-rm_host = default("/clusterHostInfo/resourcemanager_hosts", [])
-slave_hosts = default("/clusterHostInfo/datanode_hosts", [])
-oozie_servers = default("/clusterHostInfo/oozie_server", [])
-hcat_server_hosts = default("/clusterHostInfo/webhcat_server_hosts", [])
-hive_server_host =  default("/clusterHostInfo/hive_server_hosts", [])
-hbase_master_hosts = default("/clusterHostInfo/hbase_master_hosts", [])
-hs_host = default("/clusterHostInfo/historyserver_hosts", [])
-jtnode_host = default("/clusterHostInfo/jtnode_hosts", [])
-namenode_host = default("/clusterHostInfo/namenode_hosts", [])
-zk_hosts = default("/clusterHostInfo/zookeeper_server_hosts", [])
-ganglia_server_hosts = default("/clusterHostInfo/ganglia_server_hosts", [])
-cluster_name = config["clusterName"]
+hostname = execution_command.get_host_name()
+ambari_server_hostname = execution_command.get_ambari_server_host()
+rm_host = execution_command._execution_command.__get_value("clusterHostInfo/resourcemanager_hosts", [])
+slave_hosts = execution_command._execution_command.__get_value("clusterHostInfo/datanode_hosts", [])
+oozie_servers = execution_command._execution_command.__get_value("clusterHostInfo/oozie_server", [])
+hcat_server_hosts = execution_command._execution_command.__get_value("clusterHostInfo/webhcat_server_hosts", [])
+hive_server_host =  execution_command._execution_command.__get_value("clusterHostInfo/hive_server_hosts", [])
+hbase_master_hosts = execution_command._execution_command.__get_value("clusterHostInfo/hbase_master_hosts", [])
+hs_host = execution_command._execution_command.__get_value("clusterHostInfo/historyserver_hosts", [])
+jtnode_host = execution_command._execution_command.__get_value("clusterHostInfo/jtnode_hosts", [])
+namenode_host = execution_command._execution_command.__get_value("clusterHostInfo/namenode_hosts", [])
+zk_hosts = execution_command._execution_command.__get_value("clusterHostInfo/zookeeper_server_hosts", [])
+ganglia_server_hosts = execution_command._execution_command.__get_value("clusterHostInfo/ganglia_server_hosts", [])
+cluster_name = execution_command.get_cluster_name()
 set_instanceId = "false"
-if 'cluster-env' in config['configurations'] and \
-    'metrics_collector_external_hosts' in config['configurations']['cluster-env']:
-  ams_collector_hosts = config['configurations']['cluster-env']['metrics_collector_external_hosts']
+ams_collector_hosts = module_configs.get_property_value(module_name, 'cluster-env', 'metrics_collector_external_hosts')
+if ams_collector_hosts:
   set_instanceId = "true"
 else:
-  ams_collector_hosts = ",".join(default("/clusterHostInfo/metrics_collector_hosts", []))
+  ams_collector_hosts = ",".join(execution_command._execution_command.__get_value("clusterHostInfo/metrics_collector_hosts", []))
 
 has_namenode = not len(namenode_host) == 0
 has_resourcemanager = not len(rm_host) == 0
@@ -145,40 +146,35 @@ is_slave = hostname in slave_hosts
 if has_ganglia_server:
   ganglia_server_host = ganglia_server_hosts[0]
 
-metric_collector_port = None
+metric_collector_port = module_configs.get_property_value(module_name, 'cluster-env', 'metrics_collector_external_port')
 if has_metric_collector:
-  if 'cluster-env' in config['configurations'] and \
-      'metrics_collector_external_port' in config['configurations']['cluster-env']:
-    metric_collector_port = config['configurations']['cluster-env']['metrics_collector_external_port']
-  else:
-    metric_collector_web_address = default("/configurations/ams-site/timeline.metrics.service.webapp.address", "0.0.0.0:6188")
+  if not metric_collector_port:
+    metric_collector_web_address = module_configs.get_property_value(module_name, 'ams-env', 'timeline.metrics.service.webapp.address', '0.0.0.0:6188')
     if metric_collector_web_address.find(':') != -1:
       metric_collector_port = metric_collector_web_address.split(':')[1]
     else:
       metric_collector_port = '6188'
-  if default("/configurations/ams-site/timeline.metrics.service.http.policy", "HTTP_ONLY") == "HTTPS_ONLY":
+  if module_configs.get_property_value(module_name, 'ams-env', 'timeline.metrics.service.http.policy', 'HTTP_ONLY') == "HTTPS_ONLY":
     metric_collector_protocol = 'https'
   else:
     metric_collector_protocol = 'http'
-  metric_truststore_path= default("/configurations/ams-ssl-client/ssl.client.truststore.location", "")
-  metric_truststore_type= default("/configurations/ams-ssl-client/ssl.client.truststore.type", "")
-  metric_truststore_password= default("/configurations/ams-ssl-client/ssl.client.truststore.password", "")
+  metric_truststore_path= module_configs.get_property_value(module_name, 'ams-ssl-client', 'ams-ssl-client/ssl.client.truststore.location', '')
+  metric_truststore_type= module_configs.get_property_value(module_name, 'ams-ssl-client', 'ams-ssl-client/ssl.client.truststore.type', '')
+  metric_truststore_password= module_configs.get_property_value(module_name, 'ams-ssl-client', 'ssl.client.truststore.password', '')
 
   pass
-metrics_report_interval = default("/configurations/ams-site/timeline.metrics.sink.report.interval", 60)
-metrics_collection_period = default("/configurations/ams-site/timeline.metrics.sink.collection.period", 10)
+metrics_report_interval = module_configs.get_property_value(module_name, 'ams-site', 'timeline.metrics.sink.report.interval', 60)
+metrics_collection_period = module_configs.get_property_value(module_name, 'ams-site', 'timeline.metrics.sink.collection.period', 10)
 
-host_in_memory_aggregation = default("/configurations/ams-site/timeline.metrics.host.inmemory.aggregation", True)
-host_in_memory_aggregation_port = default("/configurations/ams-site/timeline.metrics.host.inmemory.aggregation.port", 61888)
+host_in_memory_aggregation = module_configs.get_property_value(module_name, 'ams-site', 'timeline.metrics.host.inmemory.aggregation', True)
+host_in_memory_aggregation_port = module_configs.get_property_value(module_name, 'ams-site', 'timeline.metrics.host.inmemory.aggregation.port', 61888)
 
 # Cluster Zookeeper quorum
-zookeeper_quorum = None
+zookeeper_quorum = module_configs.get_property_value(module_name, 'zoo.cfg', 'clientPort')
 if has_zk_host:
-  if 'zoo.cfg' in config['configurations'] and 'clientPort' in config['configurations']['zoo.cfg']:
-    zookeeper_clientPort = config['configurations']['zoo.cfg']['clientPort']
-  else:
+  if not zookeeper_quorum:
     zookeeper_clientPort = '2181'
-  zookeeper_quorum = (':' + zookeeper_clientPort + ',').join(config['clusterHostInfo']['zookeeper_server_hosts'])
+  zookeeper_quorum = (':' + zookeeper_clientPort + ',').join(execution_command._execution_command.__get_value("clusterHostInfo/zookeeper_server_hosts"))
   # last port config
   zookeeper_quorum += ':' + zookeeper_clientPort
 
@@ -189,15 +185,15 @@ if has_namenode or dfs_type == 'HCFS':
   hadoop_conf_dir = conf_select.get_hadoop_conf_dir()
   task_log4j_properties_location = os.path.join(hadoop_conf_dir, "task-log4j.properties")
 
-hadoop_pid_dir_prefix = config['configurations']['hadoop-env']['hadoop_pid_dir_prefix']
-hdfs_log_dir_prefix = config['configurations']['hadoop-env']['hdfs_log_dir_prefix']
+hadoop_pid_dir_prefix = module_configs.get_property_value(module_name, 'hadoop-env', 'hadoop_pid_dir_prefix')
+hdfs_log_dir_prefix = module_configs.get_property_value(module_name, 'hadoop-env', 'hdfs_log_dir_prefix')
 hbase_tmp_dir = "/tmp/hbase-hbase"
 #db params
 oracle_driver_symlink_url = format("{ambari_server_resources_url}/oracle-jdbc-driver.jar")
 mysql_driver_symlink_url = format("{ambari_server_resources_url}/mysql-jdbc-driver.jar")
 
-if has_namenode and 'rca_enabled' in config['configurations']['hadoop-env']:
-  rca_enabled =  config['configurations']['hadoop-env']['rca_enabled']
+if has_namenode:
+  rca_enabled = module_configs.get_property_value(module_name, 'hadoop-env', 'rca_enabled', False)
 else:
   rca_enabled = False
 rca_disabled_prefix = "###"
@@ -210,64 +206,58 @@ else:
 
 jsvc_path = "/usr/lib/bigtop-utils"
 
-hadoop_heapsize = config['configurations']['hadoop-env']['hadoop_heapsize']
-namenode_heapsize = config['configurations']['hadoop-env']['namenode_heapsize']
-namenode_opt_newsize = config['configurations']['hadoop-env']['namenode_opt_newsize']
-namenode_opt_maxnewsize = config['configurations']['hadoop-env']['namenode_opt_maxnewsize']
-namenode_opt_permsize = format_jvm_option("/configurations/hadoop-env/namenode_opt_permsize","128m")
-namenode_opt_maxpermsize = format_jvm_option("/configurations/hadoop-env/namenode_opt_maxpermsize","256m")
+hadoop_heapsize = module_configs.get_property_value(module_name, 'hadoop-env', 'hadoop_heapsize')
+namenode_heapsize = module_configs.get_property_value(module_name, 'hadoop-env', 'namenode_heapsize')
+namenode_opt_newsize = module_configs.get_property_value(module_name, 'hadoop-env', 'namenode_opt_newsize')
+namenode_opt_maxnewsize = module_configs.get_property_value(module_name, 'hadoop-env', 'namenode_opt_maxnewsize')
+namenode_opt_permsize = format_jvm_option_value(module_configs.get_property_value(module_name, 'hadoop-env', 'namenode_opt_permsize', '128m'))
+namenode_opt_maxpermsize = format_jvm_option_value(module_configs.get_property_value(module_name, 'hadoop-env', 'namenode_opt_maxpermsize', '256m'))
 
 jtnode_opt_newsize = "200m"
 jtnode_opt_maxnewsize = "200m"
 jtnode_heapsize =  "1024m"
 ttnode_heapsize = "1024m"
 
-dtnode_heapsize = config['configurations']['hadoop-env']['dtnode_heapsize']
-mapred_pid_dir_prefix = default("/configurations/mapred-env/mapred_pid_dir_prefix","/var/run/hadoop-mapreduce")
-mapred_log_dir_prefix = default("/configurations/mapred-env/mapred_log_dir_prefix","/var/log/hadoop-mapreduce")
+dtnode_heapsize = module_configs.get_property_value(module_name, 'hadoop-env', 'dtnode_heapsize')
+mapred_pid_dir_prefix = module_configs.get_property_value(module_name, 'mapred-env', 'mapred_pid_dir_prefix', '/var/run/hadoop-mapreduce')
+mapred_log_dir_prefix = module_configs.get_property_value(module_name, 'mapred-env', 'mapred_log_dir_prefix', '/var/log/hadoop-mapreduce')
 
 #log4j.properties
 
-yarn_log_dir_prefix = default("/configurations/yarn-env/yarn_log_dir_prefix","/var/log/hadoop-yarn")
+yarn_log_dir_prefix = module_configs.get_property_value(module_name, 'yarn-env', 'yarn_log_dir_prefix', '/var/log/hadoop-yarn')
 
-dfs_hosts = default('/configurations/hdfs-site/dfs.hosts', None)
+dfs_hosts = module_configs.get_property_value(module_name, 'hdfs-site', 'dfs.hosts')
 
 # Hdfs log4j settings
-hadoop_log_max_backup_size = default('configurations/hdfs-log4j/hadoop_log_max_backup_size', 256)
-hadoop_log_number_of_backup_files = default('configurations/hdfs-log4j/hadoop_log_number_of_backup_files', 10)
-hadoop_security_log_max_backup_size = default('configurations/hdfs-log4j/hadoop_security_log_max_backup_size', 256)
-hadoop_security_log_number_of_backup_files = default('configurations/hdfs-log4j/hadoop_security_log_number_of_backup_files', 20)
+hadoop_log_max_backup_size = module_configs.get_property_value(module_name, 'hdfs-log4j', 'hadoop_log_max_backup_size', 256)
+hadoop_log_number_of_backup_files = module_configs.get_property_value(module_name, 'hdfs-log4j', 'hadoop_log_number_of_backup_files', 10)
+hadoop_security_log_max_backup_size = module_configs.get_property_value(module_name, 'hdfs-log4j', 'hadoop_security_log_max_backup_size', 256)
+hadoop_security_log_number_of_backup_files = module_configs.get_property_value(module_name, 'hdfs-log4j', 'hadoop_security_log_number_of_backup_files', 20)
 
 # Yarn log4j settings
-yarn_rm_summary_log_max_backup_size = default('configurations/yarn-log4j/yarn_rm_summary_log_max_backup_size', 256)
-yarn_rm_summary_log_number_of_backup_files = default('configurations/yarn-log4j/yarn_rm_summary_log_number_of_backup_files', 20)
+yarn_rm_summary_log_max_backup_size = module_configs.get_property_value(module_name, 'yarn-log4j', 'yarn_rm_summary_log_max_backup_size', 256)
+yarn_rm_summary_log_number_of_backup_files = module_configs.get_property_value(module_name, 'yarn-log4j', 'yarn_rm_summary_log_number_of_backup_files', 20)
 
 #log4j.properties
-if (('hdfs-log4j' in config['configurations']) and ('content' in config['configurations']['hdfs-log4j'])):
-  log4j_props = config['configurations']['hdfs-log4j']['content']
-  if (('yarn-log4j' in config['configurations']) and ('content' in config['configurations']['yarn-log4j'])):
-    log4j_props += config['configurations']['yarn-log4j']['content']
-else:
-  log4j_props = None
+log4j_props = module_configs.get_property_value(module_name, 'hdfs-log4j', 'content')
+if log4j_props:
+  log4j_props += module_configs.get_property_value(module_name, 'yarn-log4j', 'content')
 
-refresh_topology = False
-command_params = config["commandParams"] if "commandParams" in config else None
-if command_params is not None:
-  refresh_topology = bool(command_params["refresh_topology"]) if "refresh_topology" in command_params else False
+refresh_topology = execution_command.need_refresh_topology()
 
-ambari_java_home = default("/commandParams/ambari_java_home", None)
-ambari_jdk_name = default("/commandParams/ambari_jdk_name", None)
-ambari_jce_name = default("/commandParams/ambari_jce_name", None)
+ambari_java_home = execution_command.get_ambari_java_home()
+ambari_jdk_name = execution_command.get_ambari_jdk_name()
+ambari_jce_name = execution_command.get_ambari_jce_name()
   
 ambari_libs_dir = "/var/lib/ambari-agent/lib"
-is_webhdfs_enabled = config['configurations']['hdfs-site']['dfs.webhdfs.enabled']
-default_fs = config['configurations']['core-site']['fs.defaultFS']
+is_webhdfs_enabled = module_configs.get_property_value(module_name, 'hdfs-site', 'dfs.webhdfs.enabled')
+default_fs = module_configs.get_property_value(module_name, 'core-site', 'fs.defaultFS')
 
 #host info
-all_hosts = default("/clusterHostInfo/all_hosts", [])
-all_racks = default("/clusterHostInfo/all_racks", [])
-all_ipv4_ips = default("/clusterHostInfo/all_ipv4_ips", [])
-slave_hosts = default("/clusterHostInfo/datanode_hosts", [])
+all_hosts = execution_command._execution_command.__get_value("clusterHostInfo/all_hosts", [])
+all_racks = execution_command._execution_command.__get_value("clusterHostInfo/all_racks", [])
+all_ipv4_ips = execution_command._execution_command.__get_value("clusterHostInfo/all_ipv4_ips", [])
+slave_hosts = execution_command._execution_command.__get_value("clusterHostInfo/datanode_hosts", [])
 
 #topology files
 net_topology_script_file_path = "/etc/hadoop/conf/topology_script.py"
@@ -276,14 +266,14 @@ net_topology_mapping_data_file_name = 'topology_mappings.data'
 net_topology_mapping_data_file_path = os.path.join(net_topology_script_dir, net_topology_mapping_data_file_name)
 
 #Added logic to create /tmp and /user directory for HCFS stack.  
-has_core_site = 'core-site' in config['configurations']
-hdfs_user_keytab = config['configurations']['hadoop-env']['hdfs_user_keytab']
+has_core_site = 'core-site' in module_configs
+hdfs_user_keytab = module_configs.get_property_value(module_name, 'hadoop-env', 'hdfs_user_keytab')
 kinit_path_local = get_kinit_path()
-stack_version_unformatted = config['clusterLevelParams']['stack_version']
+stack_version_unformatted = execution_command.get_mpack_version()
 stack_version_formatted = format_stack_version(stack_version_unformatted)
 hadoop_bin_dir = stack_select.get_hadoop_dir("bin")
-hdfs_principal_name = default('/configurations/hadoop-env/hdfs_principal_name', None)
-hdfs_site = config['configurations']['hdfs-site']
+hdfs_principal_name = module_configs.get_property_value(module_name, 'hadoop-env', 'hdfs_principal_name')
+hdfs_site = module_configs.get_property_value(module_name, 'hdfs-site', '')
 smoke_user =  get_cluster_setting_value('smokeuser')
 smoke_hdfs_user_dir = format("/user/{smoke_user}")
 smoke_hdfs_user_mode = 0770
@@ -300,10 +290,10 @@ namenode_id = None
 namenode_rpc = None
 
 dfs_ha_enabled = False
-dfs_ha_nameservices = default('/configurations/hdfs-site/dfs.internal.nameservices', None)
+dfs_ha_nameservices = module_configs.get_property_value(module_name, 'hdfs-site', 'dfs.internal.nameservices')
 if dfs_ha_nameservices is None:
-  dfs_ha_nameservices = default('/configurations/hdfs-site/dfs.nameservices', None)
-dfs_ha_namenode_ids = default(format("/configurations/hdfs-site/dfs.ha.namenodes.{dfs_ha_nameservices}"), None)
+  dfs_ha_nameservices = module_configs.get_property_value(module_name, 'hdfs-site', 'dfs.nameservices')
+dfs_ha_namenode_ids = module_configs.get_property_value(module_name, 'hdfs-site', 'dfs.ha.namenodes.{dfs_ha_nameservices}')
 
 dfs_ha_namemodes_ids_list = []
 other_namenode_id = None
@@ -316,17 +306,17 @@ if dfs_ha_namenode_ids:
 
 if dfs_ha_enabled:
  for nn_id in dfs_ha_namemodes_ids_list:
-   nn_host = config['configurations']['hdfs-site'][format('dfs.namenode.rpc-address.{dfs_ha_nameservices}.{nn_id}')]
+   nn_host = module_configs.get_property_value(module_name, 'hdfs-site', format('dfs.namenode.rpc-address.{dfs_ha_nameservices}.{nn_id}'))
    if hostname.lower() in nn_host.lower():
      namenode_id = nn_id
      namenode_rpc = nn_host
    pass
  pass
 else:
-  namenode_rpc = default('/configurations/hdfs-site/dfs.namenode.rpc-address', default_fs)
+  namenode_rpc = module_configs.get_property_value(module_name, 'hdfs-site', 'dfs.namenode.rpc-address', default_fs)
 
 # if HDFS is not installed in the cluster, then don't try to access namenode_rpc
-if has_namenode and namenode_rpc and "core-site" in config['configurations']:
+if has_namenode and namenode_rpc and 'core-site' in module_configs:
   port_str = namenode_rpc.split(':')[-1].strip()
   try:
     nn_rpc_client_port = int(port_str)
@@ -334,11 +324,11 @@ if has_namenode and namenode_rpc and "core-site" in config['configurations']:
     nn_rpc_client_port = None
 
 if dfs_ha_enabled:
- dfs_service_rpc_address = default(format('/configurations/hdfs-site/dfs.namenode.servicerpc-address.{dfs_ha_nameservices}.{namenode_id}'), None)
- dfs_lifeline_rpc_address = default(format('/configurations/hdfs-site/dfs.namenode.lifeline.rpc-address.{dfs_ha_nameservices}.{namenode_id}'), None)
+ dfs_service_rpc_address = module_configs.get_property_value(module_name, 'hdfs-site', 'dfs.namenode.servicerpc-address.{dfs_ha_nameservices}.{namenode_id}')
+ dfs_lifeline_rpc_address = module_configs.get_property_value(module_name, 'hdfs-site', 'dfs.namenode.lifeline.rpc-address.{dfs_ha_nameservices}.{namenode_id}')
 else:
- dfs_service_rpc_address = default('/configurations/hdfs-site/dfs.namenode.servicerpc-address', None)
- dfs_lifeline_rpc_address = default(format('/configurations/hdfs-site/dfs.namenode.lifeline.rpc-address'), None)
+ dfs_service_rpc_address = module_configs.get_property_value(module_name, 'hdfs-site', 'dfs.namenode.servicerpc-address')
+ dfs_lifeline_rpc_address = module_configs.get_property_value(module_name, 'hdfs-site', 'dfs.namenode.lifeline.rpc-address')
 
 if dfs_service_rpc_address:
  nn_rpc_dn_port = dfs_service_rpc_address.split(':')[1].strip()

-- 
To stop receiving notification emails like this one, please contact
jluniya@apache.org.