You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ao...@apache.org on 2015/12/16 12:10:39 UTC

[1/5] ambari git commit: AMBARI-14396. Add support for recursive chown in resource management library. (aonishuk)

Repository: ambari
Updated Branches:
  refs/heads/trunk 314bbc6b8 -> 92c054b1d


http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.3/STORM/test_storm_base.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.3/STORM/test_storm_base.py b/ambari-server/src/test/python/stacks/2.3/STORM/test_storm_base.py
index 5033bff..3c60234 100644
--- a/ambari-server/src/test/python/stacks/2.3/STORM/test_storm_base.py
+++ b/ambari-server/src/test/python/stacks/2.3/STORM/test_storm_base.py
@@ -31,23 +31,23 @@ class TestStormBase(RMFTestCase):
       owner = 'storm',
       group = 'hadoop',
       mode = 0777,
-      recursive = True,
+      create_parents = True,
     )
     self.assertResourceCalled('Directory', '/var/run/storm',
       owner = 'storm',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access='a'
     )
     self.assertResourceCalled('Directory', '/hadoop/storm',
       owner = 'storm',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access='a'
     )
     self.assertResourceCalled('Directory', confDir,
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access='a'
     )
     self.assertResourceCalled('File', confDir + '/config.yaml',
@@ -72,23 +72,23 @@ class TestStormBase(RMFTestCase):
       owner = 'storm',
       group = 'hadoop',
       mode = 0777,
-      recursive = True,
+      create_parents = True,
     )
     self.assertResourceCalled('Directory', '/var/run/storm',
       owner = 'storm',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access='a'
     )
     self.assertResourceCalled('Directory', '/hadoop/storm',
       owner = 'storm',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access='a'
     )
     self.assertResourceCalled('Directory', confDir,
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access='a'
     )
     self.assertResourceCalled('File', confDir + '/config.yaml',

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.3/YARN/test_ats_1_5.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.3/YARN/test_ats_1_5.py b/ambari-server/src/test/python/stacks/2.3/YARN/test_ats_1_5.py
index 75222a3..0b3d434 100644
--- a/ambari-server/src/test/python/stacks/2.3/YARN/test_ats_1_5.py
+++ b/ambari-server/src/test/python/stacks/2.3/YARN/test_ats_1_5.py
@@ -52,49 +52,49 @@ class TestAts(RMFTestCase):
     self.assertResourceCalled('Directory', '/var/run/hadoop-yarn',
                               owner = 'yarn',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('Directory', '/var/run/hadoop-yarn/yarn',
                               owner = 'yarn',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('Directory', '/var/log/hadoop-yarn/yarn',
                               owner = 'yarn',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('Directory', '/var/run/hadoop-mapreduce',
                               owner = 'mapred',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('Directory', '/var/run/hadoop-mapreduce/mapred',
                               owner = 'mapred',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('Directory', '/var/log/hadoop-mapreduce',
                               owner = 'mapred',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('Directory', '/var/log/hadoop-mapreduce/mapred',
                               owner = 'mapred',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('Directory', '/var/log/hadoop-yarn',
                               owner = 'yarn',
                               ignore_failures = True,
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('XmlConfig', 'core-site.xml',
@@ -147,7 +147,7 @@ class TestAts(RMFTestCase):
     self.assertResourceCalled('Directory', '/var/log/hadoop-yarn/timeline',
                               owner = 'yarn',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('HdfsResource', '/ats',
@@ -263,7 +263,7 @@ class TestAts(RMFTestCase):
     self.assertResourceCalled('Directory', '/cgroups_test/cpu',
                               mode = 0755,
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('File', '/etc/hadoop/conf/mapred-env.sh',

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/resources/TestAmbaryServer.samples/dummy_common_services/HIVE/0.11.0.2.0.5.0/package/scripts/hcat.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/resources/TestAmbaryServer.samples/dummy_common_services/HIVE/0.11.0.2.0.5.0/package/scripts/hcat.py b/ambari-server/src/test/resources/TestAmbaryServer.samples/dummy_common_services/HIVE/0.11.0.2.0.5.0/package/scripts/hcat.py
index 2993d3a..29de1c0 100644
--- a/ambari-server/src/test/resources/TestAmbaryServer.samples/dummy_common_services/HIVE/0.11.0.2.0.5.0/package/scripts/hcat.py
+++ b/ambari-server/src/test/resources/TestAmbaryServer.samples/dummy_common_services/HIVE/0.11.0.2.0.5.0/package/scripts/hcat.py
@@ -32,7 +32,7 @@ def hcat():
 
   Directory(params.hcat_pid_dir,
             owner=params.webhcat_user,
-            recursive=True
+            create_parents = True
   )
 
   hcat_TemplateConfig('hcat-env.sh')

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/resources/TestAmbaryServer.samples/dummy_common_services/HIVE/0.11.0.2.0.5.0/package/scripts/hive.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/resources/TestAmbaryServer.samples/dummy_common_services/HIVE/0.11.0.2.0.5.0/package/scripts/hive.py b/ambari-server/src/test/resources/TestAmbaryServer.samples/dummy_common_services/HIVE/0.11.0.2.0.5.0/package/scripts/hive.py
index 69da61d..f9ad166 100644
--- a/ambari-server/src/test/resources/TestAmbaryServer.samples/dummy_common_services/HIVE/0.11.0.2.0.5.0/package/scripts/hive.py
+++ b/ambari-server/src/test/resources/TestAmbaryServer.samples/dummy_common_services/HIVE/0.11.0.2.0.5.0/package/scripts/hive.py
@@ -36,7 +36,7 @@ def hive(name=None):
   Directory(hive_config_dir,
             owner=params.hive_user,
             group=params.user_group,
-            recursive=True
+            create_parents = True
   )
 
   XmlConfig("hive-site.xml",
@@ -87,7 +87,7 @@ def crt_directory(name):
   import params
 
   Directory(name,
-            recursive=True,
+            create_parents = True,
             owner=params.hive_user,
             group=params.user_group,
             mode=0755)

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/resources/TestAmbaryServer.samples/dummy_stack/HIVE/package/scripts/hcat.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/resources/TestAmbaryServer.samples/dummy_stack/HIVE/package/scripts/hcat.py b/ambari-server/src/test/resources/TestAmbaryServer.samples/dummy_stack/HIVE/package/scripts/hcat.py
index 2993d3a..29de1c0 100644
--- a/ambari-server/src/test/resources/TestAmbaryServer.samples/dummy_stack/HIVE/package/scripts/hcat.py
+++ b/ambari-server/src/test/resources/TestAmbaryServer.samples/dummy_stack/HIVE/package/scripts/hcat.py
@@ -32,7 +32,7 @@ def hcat():
 
   Directory(params.hcat_pid_dir,
             owner=params.webhcat_user,
-            recursive=True
+            create_parents = True
   )
 
   hcat_TemplateConfig('hcat-env.sh')

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/resources/TestAmbaryServer.samples/dummy_stack/HIVE/package/scripts/hive.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/resources/TestAmbaryServer.samples/dummy_stack/HIVE/package/scripts/hive.py b/ambari-server/src/test/resources/TestAmbaryServer.samples/dummy_stack/HIVE/package/scripts/hive.py
index 69da61d..f9ad166 100644
--- a/ambari-server/src/test/resources/TestAmbaryServer.samples/dummy_stack/HIVE/package/scripts/hive.py
+++ b/ambari-server/src/test/resources/TestAmbaryServer.samples/dummy_stack/HIVE/package/scripts/hive.py
@@ -36,7 +36,7 @@ def hive(name=None):
   Directory(hive_config_dir,
             owner=params.hive_user,
             group=params.user_group,
-            recursive=True
+            create_parents = True
   )
 
   XmlConfig("hive-site.xml",
@@ -87,7 +87,7 @@ def crt_directory(name):
   import params
 
   Directory(name,
-            recursive=True,
+            create_parents = True,
             owner=params.hive_user,
             group=params.user_group,
             mode=0755)

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/resources/stacks/HDP/2.0.7/services/HIVE/package/scripts/hcat.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/resources/stacks/HDP/2.0.7/services/HIVE/package/scripts/hcat.py b/ambari-server/src/test/resources/stacks/HDP/2.0.7/services/HIVE/package/scripts/hcat.py
index 2993d3a..29de1c0 100644
--- a/ambari-server/src/test/resources/stacks/HDP/2.0.7/services/HIVE/package/scripts/hcat.py
+++ b/ambari-server/src/test/resources/stacks/HDP/2.0.7/services/HIVE/package/scripts/hcat.py
@@ -32,7 +32,7 @@ def hcat():
 
   Directory(params.hcat_pid_dir,
             owner=params.webhcat_user,
-            recursive=True
+            create_parents = True
   )
 
   hcat_TemplateConfig('hcat-env.sh')

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/resources/stacks/HDP/2.0.7/services/HIVE/package/scripts/hive.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/resources/stacks/HDP/2.0.7/services/HIVE/package/scripts/hive.py b/ambari-server/src/test/resources/stacks/HDP/2.0.7/services/HIVE/package/scripts/hive.py
index 63e7fa3..f813755 100644
--- a/ambari-server/src/test/resources/stacks/HDP/2.0.7/services/HIVE/package/scripts/hive.py
+++ b/ambari-server/src/test/resources/stacks/HDP/2.0.7/services/HIVE/package/scripts/hive.py
@@ -36,7 +36,7 @@ def hive(name=None):
   Directory(hive_config_dir,
             owner=params.hive_user,
             group=params.user_group,
-            recursive=True
+            create_parents = True
   )
 
   XmlConfig("hive-site.xml",
@@ -87,7 +87,7 @@ def crt_directory(name):
   import params
 
   Directory(name,
-            recursive=True,
+            create_parents = True,
             owner=params.hive_user,
             group=params.user_group,
             mode=0755)


[4/5] ambari git commit: AMBARI-14396. Add support for recursive chown in resource management library. (aonishuk)

Posted by ao...@apache.org.
http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/package/scripts/slider.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/package/scripts/slider.py b/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/package/scripts/slider.py
index 2f03d5b..3799c5b 100644
--- a/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/package/scripts/slider.py
+++ b/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/package/scripts/slider.py
@@ -47,7 +47,7 @@ def slider():
   import params
 
   Directory(params.slider_conf_dir,
-            recursive=True
+            create_parents = True
   )
 
   slider_client_config = params.config['configurations']['slider-client'] if 'configurations' in params.config and 'slider-client' in params.config['configurations'] else {}
@@ -63,7 +63,7 @@ def slider():
   )
 
   Directory(params.storm_slider_conf_dir,
-            recursive=True
+            create_parents = True
   )
 
   File(format("{storm_slider_conf_dir}/storm-slider-env.sh"),

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/common-services/SPARK/1.2.0.2.2/package/scripts/setup_spark.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/SPARK/1.2.0.2.2/package/scripts/setup_spark.py b/ambari-server/src/main/resources/common-services/SPARK/1.2.0.2.2/package/scripts/setup_spark.py
index b0ca499..0a32055 100644
--- a/ambari-server/src/main/resources/common-services/SPARK/1.2.0.2.2/package/scripts/setup_spark.py
+++ b/ambari-server/src/main/resources/common-services/SPARK/1.2.0.2.2/package/scripts/setup_spark.py
@@ -35,7 +35,7 @@ def setup_spark(env, type, action = None):
             owner=params.spark_user,
             group=params.user_group,
             mode=0775,
-            recursive=True
+            create_parents = True
   )
   if type == 'server' and action == 'config':
     params.HdfsResource(params.spark_hdfs_user_dir,

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/common-services/SQOOP/1.4.4.2.0/package/scripts/sqoop.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/SQOOP/1.4.4.2.0/package/scripts/sqoop.py b/ambari-server/src/main/resources/common-services/SQOOP/1.4.4.2.0/package/scripts/sqoop.py
index 8a74bb0..66a5ee4 100644
--- a/ambari-server/src/main/resources/common-services/SQOOP/1.4.4.2.0/package/scripts/sqoop.py
+++ b/ambari-server/src/main/resources/common-services/SQOOP/1.4.4.2.0/package/scripts/sqoop.py
@@ -44,7 +44,7 @@ def sqoop(type=None):
   Directory(params.sqoop_conf_dir,
             owner = params.sqoop_user,
             group = params.user_group,
-            recursive = True
+            create_parents = True
   )
   File(format("{sqoop_conf_dir}/sqoop-env.sh"),
     owner=params.sqoop_user,

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/storm.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/storm.py b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/storm.py
index 0fddcd2..43736fa 100644
--- a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/storm.py
+++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/storm.py
@@ -56,20 +56,20 @@ def storm(name=None):
             owner=params.storm_user,
             group=params.user_group,
             mode=0777,
-            recursive=True
+            create_parents = True
   )
 
   Directory([params.pid_dir, params.local_dir],
             owner=params.storm_user,
             group=params.user_group,
-            recursive=True,
+            create_parents = True,
             cd_access="a",
             mode=0755,
   )
 
   Directory(params.conf_dir,
             group=params.user_group,
-            recursive=True,
+            create_parents = True,
             cd_access="a",
   )
 
@@ -115,7 +115,7 @@ def storm(name=None):
               owner=params.storm_user,
               group=params.user_group,
               mode=0755,
-              recursive=True
+              create_parents = True
     )
     
     File(format("{log4j_dir}/cluster.xml"),

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/storm_upgrade.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/storm_upgrade.py b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/storm_upgrade.py
index abc858e..a8b1eca 100644
--- a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/storm_upgrade.py
+++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/storm_upgrade.py
@@ -160,12 +160,12 @@ class StormUpgrade(Script):
     # Delete from local directory
     if os.path.isdir(storm_local_directory):
       Logger.info("Deleting storm local directory, {0}".format(storm_local_directory))
-      Directory(storm_local_directory, action="delete", recursive=True)
+      Directory(storm_local_directory, action="delete", create_parents = True)
 
     # Recreate storm local directory
     Logger.info("Recreating storm local directory, {0}".format(storm_local_directory))
     Directory(storm_local_directory, mode=0755, owner=params.storm_user,
-      group=params.user_group, recursive=True)
+      group=params.user_group, create_parents = True)
 
     # The file doesn't exist, so create it
     Logger.info("Saving marker file to {0} with contents: {1}".format(marker_file, str(json_map)))

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/common-services/TEZ/0.4.0.2.1/package/scripts/tez.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/TEZ/0.4.0.2.1/package/scripts/tez.py b/ambari-server/src/main/resources/common-services/TEZ/0.4.0.2.1/package/scripts/tez.py
index a9b246d..198674d 100644
--- a/ambari-server/src/main/resources/common-services/TEZ/0.4.0.2.1/package/scripts/tez.py
+++ b/ambari-server/src/main/resources/common-services/TEZ/0.4.0.2.1/package/scripts/tez.py
@@ -32,7 +32,7 @@ def tez():
   Directory(params.config_dir,
             owner = params.tez_user,
             group = params.user_group,
-            recursive = True)
+            create_parents = True)
 
   XmlConfig( "tez-site.xml",
              conf_dir = params.config_dir,

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/yarn.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/yarn.py b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/yarn.py
index 05e19cf..edfbe44 100644
--- a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/yarn.py
+++ b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/yarn.py
@@ -101,12 +101,10 @@ def yarn(name = None):
     Directory(params.jhs_leveldb_state_store_dir,
               owner=params.mapred_user,
               group=params.user_group,
-              recursive=True,
+              create_parents = True,
               cd_access="a",
+              recursive_ownership = True,
               )
-    Execute(("chown", "-R", format("{mapred_user}:{user_group}"), params.jhs_leveldb_state_store_dir),
-            sudo = True,
-    )
 
   if name == "nodemanager":
 
@@ -134,23 +132,28 @@ def yarn(name = None):
 
 
     if not params.security_enabled or params.toggle_nm_security:
-      Directory(params.nm_local_dirs_list + params.nm_log_dirs_list,
+      Directory(params.nm_log_dirs_list,
                 owner=params.yarn_user,
                 group=params.user_group,
-                recursive=True,
+                create_parents = True,
                 cd_access="a",
                 ignore_failures=True,
-                mode=0775
+                mode=0775)
+      Directory(params.nm_local_dirs_list,
+                owner=params.yarn_user,
+                group=params.user_group,
+                create_parents = True,
+                cd_access="a",
+                ignore_failures=True,
+                mode=0775,
+                recursive_mode_flags = {'f': 'a+rw', 'd': 'a+rwx'},
                 )
-      Execute(("chmod", "-R", "755") + tuple(params.nm_local_dirs_list),
-                sudo=True,
-      )
 
   if params.yarn_nodemanager_recovery_dir:
     Directory(InlineTemplate(params.yarn_nodemanager_recovery_dir).get_content(),
               owner=params.yarn_user,
               group=params.user_group,
-              recursive=True,
+              create_parents = True,
               mode=0755,
               cd_access = 'a',
     )
@@ -158,19 +161,19 @@ def yarn(name = None):
   Directory([params.yarn_pid_dir_prefix, params.yarn_pid_dir, params.yarn_log_dir],
             owner=params.yarn_user,
             group=params.user_group,
-            recursive=True,
+            create_parents = True,
             cd_access = 'a',
   )
 
   Directory([params.mapred_pid_dir_prefix, params.mapred_pid_dir, params.mapred_log_dir_prefix, params.mapred_log_dir],
             owner=params.mapred_user,
             group=params.user_group,
-            recursive=True,
+            create_parents = True,
             cd_access = 'a',
   )
   Directory([params.yarn_log_dir_prefix],
             owner=params.yarn_user,
-            recursive=True,
+            create_parents = True,
             ignore_failures=True,
             cd_access = 'a',
   )
@@ -245,7 +248,7 @@ def yarn(name = None):
     Directory(params.ats_leveldb_dir,
        owner=params.yarn_user,
        group=params.user_group,
-       recursive=True,
+       create_parents = True,
        cd_access="a",
     )
 
@@ -254,7 +257,7 @@ def yarn(name = None):
       Directory(params.ats_leveldb_state_store_dir,
        owner=params.yarn_user,
        group=params.user_group,
-       recursive=True,
+       create_parents = True,
        cd_access="a",
       )
     # app timeline server 1.5 directories
@@ -330,7 +333,7 @@ def yarn(name = None):
 
   Directory(params.cgroups_dir,
             group=params.user_group,
-            recursive=True,
+            create_parents = True,
             mode=0755,
             cd_access="a")
 
@@ -393,7 +396,7 @@ def yarn(name = None):
     )
 
     Directory(params.hadoop_conf_secure_dir,
-              recursive=True,
+              create_parents = True,
               owner='root',
               group=params.user_group,
               cd_access='a',

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper.py b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper.py
index e9f44cc..2727641 100644
--- a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper.py
+++ b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper.py
@@ -42,7 +42,7 @@ def zookeeper(type = None, upgrade_type=None):
 
   Directory(params.config_dir,
             owner=params.zk_user,
-            recursive=True,
+            create_parents = True,
             group=params.user_group
   )
 
@@ -58,21 +58,21 @@ def zookeeper(type = None, upgrade_type=None):
 
   Directory(params.zk_pid_dir,
             owner=params.zk_user,
-            recursive=True,
+            create_parents = True,
             group=params.user_group,
             mode=0755,
   )
 
   Directory(params.zk_log_dir,
             owner=params.zk_user,
-            recursive=True,
+            create_parents = True,
             group=params.user_group,
             mode=0755,
   )
 
   Directory(params.zk_data_dir,
             owner=params.zk_user,
-            recursive=True,
+            create_parents = True,
             cd_access="a",
             group=params.user_group,
             mode=0755,
@@ -127,7 +127,7 @@ def zookeeper(type = None, upgrade_type=None):
   Directory(params.zk_data_dir,
             owner=params.zk_user,
             mode="(OI)(CI)F",
-            recursive=True
+            create_parents = True
   )
   if (params.log4j_props != None):
     File(os.path.join(params.config_dir, "log4j.properties"),

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/custom_actions/scripts/check_host.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/custom_actions/scripts/check_host.py b/ambari-server/src/main/resources/custom_actions/scripts/check_host.py
index e4b059e..83a3287 100644
--- a/ambari-server/src/main/resources/custom_actions/scripts/check_host.py
+++ b/ambari-server/src/main/resources/custom_actions/scripts/check_host.py
@@ -356,7 +356,7 @@ class CheckHost(Script):
           Execute(chmod_cmd, not_if = format("test -e {java_exec}"), sudo = True)
           Execute(install_cmd, not_if = format("test -e {java_exec}"))
           File(format("{java_home}/bin/java"), mode=0755, cd_access="a")
-          Execute(("chown","-R", getpass.getuser(), java_home), sudo = True)
+          Directory(java_home, user=getpass.getuser(), recursive_ownership=True)
         except Exception, e:
           message = "Error installing java.\n" + str(e)
           print message

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/stacks/BIGTOP/0.8/hooks/before-ANY/scripts/shared_initialization.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/hooks/before-ANY/scripts/shared_initialization.py b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/hooks/before-ANY/scripts/shared_initialization.py
index 126b8bb..606a000 100644
--- a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/hooks/before-ANY/scripts/shared_initialization.py
+++ b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/hooks/before-ANY/scripts/shared_initialization.py
@@ -100,7 +100,7 @@ def setup_hadoop_env():
     else:
       tc_owner = params.hdfs_user
     Directory(params.hadoop_conf_empty_dir,
-              recursive=True,
+              create_parents = True,
               owner='root',
               group='root'
     )

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/stacks/BIGTOP/0.8/hooks/before-START/scripts/shared_initialization.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/hooks/before-START/scripts/shared_initialization.py b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/hooks/before-START/scripts/shared_initialization.py
index f70eee8..2d2331a 100644
--- a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/hooks/before-START/scripts/shared_initialization.py
+++ b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/hooks/before-START/scripts/shared_initialization.py
@@ -36,19 +36,19 @@ def setup_hadoop():
   #directories
   if params.has_namenode:
     Directory(params.hdfs_log_dir_prefix,
-              recursive=True,
+              create_parents = True,
               owner='root',
               group=params.user_group,
               mode=0775
     )
     Directory(params.hadoop_pid_dir_prefix,
-              recursive=True,
+              create_parents = True,
               owner='root',
               group='root'
     )
   #this doesn't needed with stack 1
     Directory(params.hadoop_tmp_dir,
-              recursive=True,
+              create_parents = True,
               owner=params.hdfs_user,
               )
   #files

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/FLUME/package/scripts/flume.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/FLUME/package/scripts/flume.py b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/FLUME/package/scripts/flume.py
index 2db4039..d63ab80 100644
--- a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/FLUME/package/scripts/flume.py
+++ b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/FLUME/package/scripts/flume.py
@@ -30,7 +30,7 @@ def flume(action = None):
     for n in find_expected_agent_names():
       os.unlink(os.path.join(params.flume_conf_dir, n, 'ambari-meta.json'))
 
-    Directory(params.flume_conf_dir, recursive=True)
+    Directory(params.flume_conf_dir, create_parents = True)
     Directory(params.flume_log_dir, owner=params.flume_user)
 
     File(format("{flume_conf_dir}/flume-env.sh"),

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/GANGLIA/package/scripts/ganglia.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/GANGLIA/package/scripts/ganglia.py b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/GANGLIA/package/scripts/ganglia.py
index 69fde27..9a69b72 100644
--- a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/GANGLIA/package/scripts/ganglia.py
+++ b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/GANGLIA/package/scripts/ganglia.py
@@ -35,7 +35,7 @@ def config():
   Directory(shell_cmds_dir,
             owner="root",
             group="root",
-            recursive=True
+            create_parents = True
   )
   init_file("gmetad")
   init_file("gmond")

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/GANGLIA/package/scripts/ganglia_monitor.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/GANGLIA/package/scripts/ganglia_monitor.py b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/GANGLIA/package/scripts/ganglia_monitor.py
index ede1a0b..66551be 100644
--- a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/GANGLIA/package/scripts/ganglia_monitor.py
+++ b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/GANGLIA/package/scripts/ganglia_monitor.py
@@ -71,7 +71,7 @@ class GangliaMonitor(Script):
     Directory(params.ganglia_conf_dir,
               owner="root",
               group=params.user_group,
-              recursive=True
+              create_parents = True
     )
 
     ganglia.config()

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/GANGLIA/package/scripts/ganglia_server.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/GANGLIA/package/scripts/ganglia_server.py b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/GANGLIA/package/scripts/ganglia_server.py
index c38366f..8965d95 100644
--- a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/GANGLIA/package/scripts/ganglia_server.py
+++ b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/GANGLIA/package/scripts/ganglia_server.py
@@ -82,7 +82,7 @@ def change_permission():
 
   Directory(params.dwoo_path,
             mode=0755,
-            recursive=True
+            create_parents = True
   )
   Execute(format("chown -R {web_user} {dwoo_path}"))
 
@@ -91,7 +91,7 @@ def server_files():
 
   rrd_py_path = params.rrd_py_path
   Directory(rrd_py_path,
-            recursive=True
+            create_parents = True
   )
   rrd_py_file_path = path.join(rrd_py_path, "rrd.py")
   TemplateConfig(rrd_py_file_path,
@@ -105,7 +105,7 @@ def server_files():
             owner=rrd_file_owner,
             group=rrd_file_owner,
             mode=0755,
-            recursive=True
+            create_parents = True
   )
   
   if System.get_instance().os_family in ["ubuntu","suse"]:

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HBASE/package/scripts/hbase.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HBASE/package/scripts/hbase.py b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HBASE/package/scripts/hbase.py
index 2829c7b..9a48a43 100644
--- a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HBASE/package/scripts/hbase.py
+++ b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HBASE/package/scripts/hbase.py
@@ -29,19 +29,19 @@ def hbase(name=None # 'master' or 'regionserver' or 'client'
   Directory( params.hbase_conf_dir,
       owner = params.hbase_user,
       group = params.user_group,
-      recursive = True
+      create_parents = True
   )
 
   Directory (params.tmp_dir,
              owner = params.hbase_user,
-             recursive = True
+             create_parents = True
   )
 
   Directory (os.path.join(params.local_dir, "jars"),
              owner = params.hbase_user,
              group = params.user_group,
              mode=0775,
-             recursive = True
+             create_parents = True
   )
 
   XmlConfig( "hbase-site.xml",
@@ -100,12 +100,12 @@ def hbase(name=None # 'master' or 'regionserver' or 'client'
   if name != "client":
     Directory( params.pid_dir,
       owner = params.hbase_user,
-      recursive = True
+      create_parents = True
     )
   
     Directory (params.log_dir,
       owner = params.hbase_user,
-      recursive = True
+      create_parents = True
     )
 
   if (params.log4j_props != None):

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HDFS/package/scripts/hdfs.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HDFS/package/scripts/hdfs.py b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HDFS/package/scripts/hdfs.py
index 873aa15..33543c4 100644
--- a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HDFS/package/scripts/hdfs.py
+++ b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HDFS/package/scripts/hdfs.py
@@ -29,7 +29,7 @@ def hdfs(name=None):
 
   # On some OS this folder could be not exists, so we will create it before pushing there files
   Directory(params.limits_conf_dir,
-            recursive=True,
+            create_parents = True,
             owner='root',
             group='root'
   )

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HDFS/package/scripts/hdfs_datanode.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HDFS/package/scripts/hdfs_datanode.py b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HDFS/package/scripts/hdfs_datanode.py
index c93c6e4..c1c190e 100644
--- a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HDFS/package/scripts/hdfs_datanode.py
+++ b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HDFS/package/scripts/hdfs_datanode.py
@@ -28,7 +28,7 @@ def create_dirs(data_dir, params):
   :param params: parameters
   """
   Directory(data_dir,
-            recursive=True,
+            create_parents = True,
             mode=0755,
             owner=params.hdfs_user,
             group=params.user_group,
@@ -40,7 +40,7 @@ def datanode(action=None):
   import params
   if action == "configure":
     Directory(params.dfs_domain_socket_dir,
-              recursive=True,
+              create_parents = True,
               mode=0751,
               owner=params.hdfs_user,
               group=params.user_group)

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HDFS/package/scripts/hdfs_namenode.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HDFS/package/scripts/hdfs_namenode.py b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HDFS/package/scripts/hdfs_namenode.py
index 197bdf6..6b4d0f6 100644
--- a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HDFS/package/scripts/hdfs_namenode.py
+++ b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HDFS/package/scripts/hdfs_namenode.py
@@ -77,7 +77,7 @@ def create_name_dirs(directories):
             mode=0755,
             owner=params.hdfs_user,
             group=params.user_group,
-            recursive=True
+            create_parents = True
   )
 
 
@@ -125,7 +125,7 @@ def format_namenode(force=None):
       )
     
       Directory(mark_dir,
-        recursive = True
+        create_parents = True
       )
 
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HDFS/package/scripts/hdfs_snamenode.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HDFS/package/scripts/hdfs_snamenode.py b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HDFS/package/scripts/hdfs_snamenode.py
index 49241b4..e734973 100644
--- a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HDFS/package/scripts/hdfs_snamenode.py
+++ b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HDFS/package/scripts/hdfs_snamenode.py
@@ -27,7 +27,7 @@ def snamenode(action=None, format=False):
 
   if action == "configure":
     Directory(params.fs_checkpoint_dir,
-              recursive=True,
+              create_parents = True,
               mode=0755,
               owner=params.hdfs_user,
               group=params.user_group)

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HDFS/package/scripts/journalnode.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HDFS/package/scripts/journalnode.py b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HDFS/package/scripts/journalnode.py
index de18c88..c47866c 100644
--- a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HDFS/package/scripts/journalnode.py
+++ b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HDFS/package/scripts/journalnode.py
@@ -54,7 +54,7 @@ class JournalNode(Script):
     import params
 
     Directory(params.jn_edits_dir,
-              recursive=True,
+              create_parents = True,
               owner=params.hdfs_user,
               group=params.user_group
     )

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HDFS/package/scripts/utils.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HDFS/package/scripts/utils.py b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HDFS/package/scripts/utils.py
index 3f4bdb5..7dcbca8 100644
--- a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HDFS/package/scripts/utils.py
+++ b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HDFS/package/scripts/utils.py
@@ -36,11 +36,11 @@ def service(action=None, name=None, user=None, create_pid_dir=False,
   if create_pid_dir:
     Directory(pid_dir,
               owner=user,
-              recursive=True)
+              create_parents = True)
   if create_log_dir:
     Directory(log_dir,
               owner=user,
-              recursive=True)
+              create_parents = True)
 
   hadoop_env_exports = {
     'HADOOP_LIBEXEC_DIR': params.hadoop_libexec_dir

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HIVE/package/scripts/hcat.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HIVE/package/scripts/hcat.py b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HIVE/package/scripts/hcat.py
index 31c1673..af75d36 100644
--- a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HIVE/package/scripts/hcat.py
+++ b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HIVE/package/scripts/hcat.py
@@ -26,21 +26,21 @@ def hcat():
   import params
 
   Directory(params.hive_conf_dir,
-            recursive=True,
+            create_parents = True,
             owner=params.hcat_user,
             group=params.user_group,
   )
 
 
   Directory(params.hcat_conf_dir,
-            recursive=True,
+            create_parents = True,
             owner=params.hcat_user,
             group=params.user_group,
   )
 
   Directory(params.hcat_pid_dir,
             owner=params.webhcat_user,
-            recursive=True
+            create_parents = True
   )
 
   XmlConfig("hive-site.xml",

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HIVE/package/scripts/hive.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HIVE/package/scripts/hive.py b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HIVE/package/scripts/hive.py
index e388ee5..2e382ff 100644
--- a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HIVE/package/scripts/hive.py
+++ b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HIVE/package/scripts/hive.py
@@ -113,7 +113,7 @@ def fill_conf_dir(component_conf_dir):
   Directory(component_conf_dir,
             owner=params.hive_user,
             group=params.user_group,
-            recursive=True
+            create_parents = True
   )
 
   XmlConfig("mapred-site.xml",
@@ -165,7 +165,7 @@ def crt_directory(name):
   import params
 
   Directory(name,
-            recursive=True,
+            create_parents = True,
             owner=params.hive_user,
             group=params.user_group,
             mode=0755)

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HIVE/package/scripts/webhcat.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HIVE/package/scripts/webhcat.py b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HIVE/package/scripts/webhcat.py
index c6f41dd..9a7fc0c 100644
--- a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HIVE/package/scripts/webhcat.py
+++ b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HIVE/package/scripts/webhcat.py
@@ -49,16 +49,16 @@ def webhcat():
             owner=params.webhcat_user,
             mode=0755,
             group=params.user_group,
-            recursive=True)
+            create_parents = True)
 
   Directory(params.templeton_log_dir,
             owner=params.webhcat_user,
             mode=0755,
             group=params.user_group,
-            recursive=True)
+            create_parents = True)
 
   Directory(params.config_dir,
-            recursive=True,
+            create_parents = True,
             owner=params.webhcat_user,
             group=params.user_group)
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/OOZIE/package/scripts/oozie.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/OOZIE/package/scripts/oozie.py b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/OOZIE/package/scripts/oozie.py
index cbb5e69..db86bc1 100644
--- a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/OOZIE/package/scripts/oozie.py
+++ b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/OOZIE/package/scripts/oozie.py
@@ -32,7 +32,7 @@ def oozie(is_server=False # TODO: see if see can remove this
                          mode=params.oozie_hdfs_user_mode
     )
   Directory( params.conf_dir,
-             recursive = True,
+             create_parents = True,
              owner = params.oozie_user,
              group = params.user_group
   )
@@ -137,7 +137,7 @@ def oozie_server_specific(
   Directory( oozie_server_directorties,
     owner = params.oozie_user,
     mode = 0755,
-    recursive = True
+    create_parents = True
   )
 
   cmd1 = "sh"

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/PIG/package/scripts/pig.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/PIG/package/scripts/pig.py b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/PIG/package/scripts/pig.py
index afdba8d..cda257a 100644
--- a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/PIG/package/scripts/pig.py
+++ b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/PIG/package/scripts/pig.py
@@ -26,7 +26,7 @@ def pig():
   import params
 
   Directory( params.pig_conf_dir,
-    recursive = True,
+    create_parents = True,
     owner = params.hdfs_user,
     group = params.user_group
   )

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/YARN/package/scripts/mapred_service_check.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/YARN/package/scripts/mapred_service_check.py b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/YARN/package/scripts/mapred_service_check.py
index f12ea61..0e5148f 100644
--- a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/YARN/package/scripts/mapred_service_check.py
+++ b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/YARN/package/scripts/mapred_service_check.py
@@ -36,7 +36,7 @@ class MapReduce2ServiceCheck(Script):
     run_wordcount_job = format("jar {jar_path} wordcount {input_file} {output_file}")
 
     log_dir = format("{mapred_log_dir_prefix}/{smokeuser}")
-    Directory(log_dir, owner=params.smokeuser, recursive=True)
+    Directory(log_dir, owner=params.smokeuser, create_parents = True)
 
     if params.security_enabled:
       kinit_cmd = format("{kinit_path_local} -kt {smoke_user_keytab} {smokeuser};")

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/YARN/package/scripts/yarn.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/YARN/package/scripts/yarn.py b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/YARN/package/scripts/yarn.py
index df3a9d2..402030d 100644
--- a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/YARN/package/scripts/yarn.py
+++ b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/YARN/package/scripts/yarn.py
@@ -63,24 +63,24 @@ def yarn(name = None):
   if name == "nodemanager":
     Directory(params.nm_local_dirs.split(',') + params.nm_log_dirs.split(','),
               owner=params.yarn_user,
-              recursive=True,
+              create_parents = True,
               ignore_failures=True,
               )
 
   Directory([params.yarn_pid_dir, params.yarn_log_dir],
             owner=params.yarn_user,
             group=params.user_group,
-            recursive=True
+            create_parents = True
   )
 
   Directory([params.mapred_pid_dir, params.mapred_log_dir],
             owner=params.mapred_user,
             group=params.user_group,
-            recursive=True
+            create_parents = True
   )
   Directory([params.yarn_log_dir_prefix],
             owner=params.yarn_user,
-            recursive=True,
+            create_parents = True,
             ignore_failures=True,
   )
 
@@ -129,7 +129,7 @@ def yarn(name = None):
     Directory(params.ats_leveldb_dir,
        owner=params.yarn_user,
        group=params.user_group,
-       recursive=True
+       create_parents = True
     )
 
   File(params.rm_nodes_exclude_path,

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/ZOOKEEPER/package/scripts/zookeeper.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/ZOOKEEPER/package/scripts/zookeeper.py b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/ZOOKEEPER/package/scripts/zookeeper.py
index 4f2bb1f..d4d86e2 100644
--- a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/ZOOKEEPER/package/scripts/zookeeper.py
+++ b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/ZOOKEEPER/package/scripts/zookeeper.py
@@ -29,7 +29,7 @@ def zookeeper(type = None):
 
   Directory(params.config_dir,
             owner=params.zk_user,
-            recursive=True,
+            create_parents = True,
             group=params.user_group
   )
 
@@ -45,19 +45,19 @@ def zookeeper(type = None):
 
   Directory(params.zk_pid_dir,
             owner=params.zk_user,
-            recursive=True,
+            create_parents = True,
             group=params.user_group
   )
 
   Directory(params.zk_log_dir,
             owner=params.zk_user,
-            recursive=True,
+            create_parents = True,
             group=params.user_group
   )
 
   Directory(params.zk_data_dir,
             owner=params.zk_user,
-            recursive=True,
+            create_parents = True,
             group=params.user_group
   )
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-ANY/scripts/shared_initialization.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-ANY/scripts/shared_initialization.py b/ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-ANY/scripts/shared_initialization.py
index 3bd0f53..6db30d2 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-ANY/scripts/shared_initialization.py
+++ b/ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-ANY/scripts/shared_initialization.py
@@ -54,7 +54,7 @@ def setup_users():
     Directory (params.hbase_tmp_dir,
                owner = params.hbase_user,
                mode=0775,
-               recursive = True,
+               create_parents = True,
                cd_access="a",
     )
     if not params.host_sys_prepped and params.override_uid == "true":
@@ -144,7 +144,7 @@ def setup_hadoop_env():
 
     # HDP < 2.2 used a conf -> conf.empty symlink for /etc/hadoop/
     if Script.is_hdp_stack_less_than("2.2"):
-      Directory(params.hadoop_conf_empty_dir, recursive=True, owner="root",
+      Directory(params.hadoop_conf_empty_dir, create_parents = True, owner="root",
         group=params.user_group )
 
       Link(params.hadoop_conf_dir, to=params.hadoop_conf_empty_dir,
@@ -182,7 +182,7 @@ def setup_java():
       return
 
     Directory(params.artifact_dir,
-              recursive = True,
+              create_parents = True,
               )
 
     File(jdk_curl_target,
@@ -211,10 +211,8 @@ def setup_java():
          mode=0755,
          cd_access="a",
          )
-
-    Execute(("chgrp","-R", params.user_group, params.java_home),
-            sudo = True,
-            )
-    Execute(("chown","-R", getpass.getuser(), params.java_home),
-            sudo = True,
-            )
+    Directory(params.java_home,
+              owner = getpass.getuser(),
+              group = params.user_group,
+              recursive_ownership = True,
+    )

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-START/scripts/rack_awareness.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-START/scripts/rack_awareness.py b/ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-START/scripts/rack_awareness.py
index 453de63..9579d18 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-START/scripts/rack_awareness.py
+++ b/ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-START/scripts/rack_awareness.py
@@ -31,7 +31,7 @@ def create_topology_mapping():
   # only create the parent directory and set its permission if it does not exist
   if not os.path.exists(parent_dir): 
     Directory(parent_dir, 
-              recursive=True, 
+              create_parents = True, 
               owner=params.hdfs_user, 
               group=params.user_group) 
 
@@ -52,7 +52,7 @@ def create_topology_script():
   # only create the parent directory and set its permission if it does not exist 
   if not os.path.exists(parent_dir): 
     Directory(parent_dir, 
-              recursive=True, 
+              create_parents = True, 
               owner=params.hdfs_user, 
               group=params.user_group) 
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-START/scripts/shared_initialization.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-START/scripts/shared_initialization.py b/ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-START/scripts/shared_initialization.py
index 61c1ca1..85d8fec 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-START/scripts/shared_initialization.py
+++ b/ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-START/scripts/shared_initialization.py
@@ -37,7 +37,7 @@ def setup_hadoop():
   #directories
   if params.has_namenode or params.dfs_type == 'HCFS':
     Directory(params.hdfs_log_dir_prefix,
-              recursive=True,
+              create_parents = True,
               owner='root',
               group=params.user_group,
               mode=0775,
@@ -45,13 +45,13 @@ def setup_hadoop():
     )
     if params.has_namenode:
       Directory(params.hadoop_pid_dir_prefix,
-              recursive=True,
+              create_parents = True,
               owner='root',
               group='root',
               cd_access='a',
       )
     Directory(params.hadoop_tmp_dir,
-              recursive=True,
+              create_parents = True,
               owner=params.hdfs_user,
               cd_access='a',
               )
@@ -146,7 +146,7 @@ def generate_include_file():
 def create_javahome_symlink():
   if os.path.exists("/usr/jdk/jdk1.6.0_31") and not os.path.exists("/usr/jdk64/jdk1.6.0_31"):
     Directory("/usr/jdk64/",
-         recursive=True,
+         create_parents = True,
     )
     Link("/usr/jdk/jdk1.6.0_31",
          to="/usr/jdk64/jdk1.6.0_31",

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/FALCON/package/scripts/falcon.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/FALCON/package/scripts/falcon.py b/ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/FALCON/package/scripts/falcon.py
index 88c1f6c..9a72af1 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/FALCON/package/scripts/falcon.py
+++ b/ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/FALCON/package/scripts/falcon.py
@@ -65,12 +65,12 @@ def falcon(type, action = None):
       params.HdfsDirectory(None, action="create")
       Directory(params.falcon_local_dir,
                 owner=params.falcon_user,
-                recursive=True
+                create_parents = True
       )
       if params.falcon_embeddedmq_enabled == True:
         Directory(params.falcon_embeddedmq_data,
                   owner=params.falcon_user,
-                  recursive=True
+                  create_parents = True
         )
 
     if action == 'start':

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/STORM/package/scripts/storm.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/STORM/package/scripts/storm.py b/ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/STORM/package/scripts/storm.py
index 2e7f818..f5cbcd8 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/STORM/package/scripts/storm.py
+++ b/ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/STORM/package/scripts/storm.py
@@ -29,7 +29,7 @@ def storm():
   Directory([params.log_dir, params.pid_dir, params.local_dir, params.conf_dir],
             owner=params.storm_user,
             group=params.user_group,
-            recursive=True
+            create_parents = True
   )
 
   File(format("{conf_dir}/config.yaml"),

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/TEZ/package/scripts/tez.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/TEZ/package/scripts/tez.py b/ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/TEZ/package/scripts/tez.py
index 7ec78a3..0dbae0c 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/TEZ/package/scripts/tez.py
+++ b/ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/TEZ/package/scripts/tez.py
@@ -27,7 +27,7 @@ def tez():
   Directory(params.config_dir,
     owner = params.tez_user,
     group = params.user_group,
-    recursive = True
+    create_parents = True
   )
 
   XmlConfig( "tez-site.xml",

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/YARN/package/scripts/yarn.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/YARN/package/scripts/yarn.py b/ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/YARN/package/scripts/yarn.py
index 8754605..fcfdcba 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/YARN/package/scripts/yarn.py
+++ b/ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/YARN/package/scripts/yarn.py
@@ -62,28 +62,28 @@ def yarn(name = None):
   if name == "nodemanager":
     Directory(params.nm_local_dirs.split(','),
               owner=params.yarn_user,
-              recursive=True
+              create_parents = True
     )
     Directory(params.nm_log_dirs.split(','),
               owner=params.yarn_user,
-              recursive=True
+              create_parents = True
     )
 
   Directory([params.yarn_pid_dir, params.yarn_log_dir],
             owner=params.yarn_user,
             group=params.user_group,
-            recursive=True
+            create_parents = True
   )
 
   Directory([params.mapred_pid_dir, params.mapred_log_dir],
             owner=params.mapred_user,
             group=params.user_group,
-            recursive=True
+            create_parents = True
   )
 
   Directory(params.yarn_log_dir_prefix,
             owner=params.yarn_user,
-            recursive=True
+            create_parents = True
   )
 
   XmlConfig("core-site.xml",

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.0.6/AMBARI_METRICS/test_metrics_collector.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.0.6/AMBARI_METRICS/test_metrics_collector.py b/ambari-server/src/test/python/stacks/2.0.6/AMBARI_METRICS/test_metrics_collector.py
index bccf865..ab4d006 100644
--- a/ambari-server/src/test/python/stacks/2.0.6/AMBARI_METRICS/test_metrics_collector.py
+++ b/ambari-server/src/test/python/stacks/2.0.6/AMBARI_METRICS/test_metrics_collector.py
@@ -114,22 +114,17 @@ class TestMetricsCollector(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/ambari-metrics-collector/conf',
                               owner = 'ams',
                               group = 'hadoop',
-                              recursive = True
+                              create_parents = True,
+                              recursive_ownership = True,
     )
-
-    self.assertResourceCalled('Execute', ('chown','-R', u'ams', '/etc/ambari-metrics-collector/conf'),
-                              sudo=True)
-
     self.assertResourceCalled('Directory', '/var/lib/ambari-metrics-collector/checkpoint',
                               owner = 'ams',
                               group = 'hadoop',
                               cd_access = 'a',
-                              recursive = True
+                              create_parents = True,
+                              recursive_ownership = True,
     )
 
-    self.assertResourceCalled('Execute', ('chown','-R', u'ams', '/var/lib/ambari-metrics-collector/checkpoint'),
-                              sudo=True)
-
     self.assertResourceCalled('XmlConfig', 'ams-site.xml',
                               owner = 'ams',
                               group = 'hadoop',
@@ -163,14 +158,14 @@ class TestMetricsCollector(RMFTestCase):
                               owner = 'ams',
                               group = 'hadoop',
                               cd_access = 'a',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
     )
     self.assertResourceCalled('Directory', '/var/run/ambari-metrics-collector',
                               owner = 'ams',
                               cd_access = 'a',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode=0755,
     )
     self.assertResourceCalled('File', '/usr/lib/ams-hbase/bin/hadoop',
@@ -180,7 +175,7 @@ class TestMetricsCollector(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/security/limits.d',
                               owner = 'root',
                               group = 'root',
-                              recursive = True
+                              create_parents = True
     )
     self.assertResourceCalled('File', '/etc/security/limits.d/ams.conf',
                               owner='root',
@@ -226,27 +221,23 @@ class TestMetricsCollector(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/ams-hbase/conf',
                               owner = 'ams',
                               group = 'hadoop',
-                              recursive = True
+                              create_parents = True,
+                              recursive_ownership = True,
     )
 
-    self.assertResourceCalled('Execute', ('chown','-R', u'ams', '/etc/ams-hbase/conf'),
-                                sudo=True)
-
     self.assertResourceCalled('Directory', '/var/lib/ambari-metrics-collector/hbase-tmp',
                               owner = 'ams',
                               cd_access = 'a',
-                              recursive = True
+                              create_parents = True,
+                              recursive_ownership = True,
     )
 
-    self.assertResourceCalled('Execute', ('chown','-R', u'ams', '/var/lib/ambari-metrics-collector/hbase-tmp'),
-                            sudo=True)
-
     self.assertResourceCalled('Directory', '/var/lib/ambari-metrics-collector/hbase-tmp/local/jars',
                               owner = 'ams',
                               cd_access = 'a',
                               group = 'hadoop',
                               mode = 0775,
-                              recursive = True
+                              create_parents = True
     )
     self.assertResourceCalled('XmlConfig', 'hbase-site.xml',
                               owner = 'ams',
@@ -277,13 +268,13 @@ class TestMetricsCollector(RMFTestCase):
                               )
     self.assertResourceCalled('Directory', '/var/run/ambari-metrics-collector/',
                               owner = 'ams',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access = "a",
     )
     self.assertResourceCalled('Directory', '/var/log/ambari-metrics-collector',
                               owner = 'ams',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access = "a",
     )
@@ -340,13 +331,11 @@ class TestMetricsCollector(RMFTestCase):
         self.assertResourceCalled('Directory', '/var/lib/ambari-metrics-collector/hbase',
                                   owner = 'ams',
                                   cd_access="a",
-                                  recursive = True
+                                  create_parents = True,
+                                  recursive_ownership = True,
         )
 
       if (not distributed):
-        self.assertResourceCalled('Execute', ('chown','-R','ams', '/var/lib/ambari-metrics-collector/hbase'),
-                                  sudo=True)
-
 
         self.assertResourceCalled('File', '/var/run/ambari-metrics-collector//distributed_mode',
                                   owner = 'ams',

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.0.6/FLUME/test_flume.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.0.6/FLUME/test_flume.py b/ambari-server/src/test/python/stacks/2.0.6/FLUME/test_flume.py
index 318d2bb..3e7c595 100644
--- a/ambari-server/src/test/python/stacks/2.0.6/FLUME/test_flume.py
+++ b/ambari-server/src/test/python/stacks/2.0.6/FLUME/test_flume.py
@@ -231,7 +231,7 @@ class TestFlumeHandler(RMFTestCase):
     self.assertResourceCalled('Directory',
                               '/etc/flume/conf',
                               owner='flume',
-                              recursive=True)
+                              create_parents = True)
 
     self.assertResourceCalled('Directory',
                               '/var/log/flume',
@@ -279,7 +279,7 @@ class TestFlumeHandler(RMFTestCase):
     self.assertResourceCalled('Directory',
                               '/etc/flume/conf',
                               owner='flume',
-                              recursive=True)
+                              create_parents = True)
 
     self.assertResourceCalled('Directory', '/var/log/flume', owner = 'flume', cd_access = 'a', mode=0755)
 
@@ -442,7 +442,7 @@ class TestFlumeHandler(RMFTestCase):
     self.assertResourceCalled('Directory',
                               '/etc/flume/conf',
                               owner='flume',
-                              recursive=True)
+                              create_parents = True)
 
     self.assertResourceCalled('Directory',
                               '/var/log/flume',
@@ -493,7 +493,7 @@ class TestFlumeHandler(RMFTestCase):
     self.assertResourceCalled('Directory',
                               '/usr/hdp/current/flume-server/conf',
                               owner='flume',
-                              recursive=True)
+                              create_parents = True)
 
     self.assertResourceCalled('Directory',
                               '/var/log/flume',

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.0.6/GANGLIA/test_ganglia_monitor.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.0.6/GANGLIA/test_ganglia_monitor.py b/ambari-server/src/test/python/stacks/2.0.6/GANGLIA/test_ganglia_monitor.py
index e4ca5d6..fd27cde 100644
--- a/ambari-server/src/test/python/stacks/2.0.6/GANGLIA/test_ganglia_monitor.py
+++ b/ambari-server/src/test/python/stacks/2.0.6/GANGLIA/test_ganglia_monitor.py
@@ -107,12 +107,12 @@ class TestGangliaMonitor(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/ganglia/hdp',
                               owner = 'root',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('Directory', '/usr/libexec/hdp/ganglia',
                               owner = 'root',
                               group = 'root',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/etc/init.d/hdp-gmetad',
                               content = StaticFile('gmetad.init'),

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.0.6/GANGLIA/test_ganglia_server.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.0.6/GANGLIA/test_ganglia_server.py b/ambari-server/src/test/python/stacks/2.0.6/GANGLIA/test_ganglia_server.py
index 0367912..53415b1 100644
--- a/ambari-server/src/test/python/stacks/2.0.6/GANGLIA/test_ganglia_server.py
+++ b/ambari-server/src/test/python/stacks/2.0.6/GANGLIA/test_ganglia_server.py
@@ -84,7 +84,7 @@ class TestGangliaServer(RMFTestCase):
     self.assertResourceCalled('Directory', '/usr/libexec/hdp/ganglia',
         owner = 'root',
         group = 'root',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('File', '/etc/init.d/hdp-gmetad',
         content = StaticFile('gmetad.init'),
@@ -173,17 +173,16 @@ class TestGangliaServer(RMFTestCase):
     )
     self.assertResourceCalled('Directory', '/var/run/ganglia',
         mode=0755,
-        recursive=True
+        create_parents = True
     )
     self.assertResourceCalled('Directory', '/var/lib/ganglia-web/dwoo',
-        recursive = True,
+        owner = 'wwwrun',
+        create_parents = True,
+        recursive_ownership = True,
         mode = 0755,
     )
-    self.assertResourceCalled('Execute', ('chown', '-R', 'wwwrun', '/var/lib/ganglia-web/dwoo'),
-        sudo = True,
-    )
     self.assertResourceCalled('Directory', '/srv/www/cgi-bin',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('TemplateConfig', '/srv/www/cgi-bin/rrd.py',
                               owner = "root",
@@ -193,7 +192,7 @@ class TestGangliaServer(RMFTestCase):
     self.assertResourceCalled('Directory', '/var/lib/ganglia/rrds',
                               owner = 'nobody',
                               group = 'nobody',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               )
     self.assertResourceCalled('File', '/etc/apache2/conf.d/ganglia.conf',

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_hbase_client.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_hbase_client.py b/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_hbase_client.py
index a1c762a..9f3e19e 100644
--- a/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_hbase_client.py
+++ b/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_hbase_client.py
@@ -44,16 +44,16 @@ class TestHBaseClient(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/hbase/conf',
       owner = 'hbase',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
     )
     self.assertResourceCalled('Directory', '/tmp',
       owner = 'hbase',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       mode = 0777
     )
     self.assertResourceCalled('Directory', '/hadoop',
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('Execute', ('chmod', '1777', u'/hadoop'),
@@ -99,7 +99,7 @@ class TestHBaseClient(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/security/limits.d',
       owner = 'root',
       group = 'root',
-      recursive = True,
+      create_parents = True,
     )
     self.assertResourceCalled('File', '/etc/security/limits.d/hbase.conf',
       content = Template('hbase.conf.j2'),
@@ -142,16 +142,16 @@ class TestHBaseClient(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/hbase/conf',
       owner = 'hbase',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
     )
     self.assertResourceCalled('Directory', '/tmp',
       owner = 'hbase',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       mode = 0777
     )
     self.assertResourceCalled('Directory', '/hadoop',
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('Execute', ('chmod', '1777', u'/hadoop'),
@@ -197,7 +197,7 @@ class TestHBaseClient(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/security/limits.d',
       owner = 'root',
       group = 'root',
-      recursive = True,
+      create_parents = True,
     )
     self.assertResourceCalled('File', '/etc/security/limits.d/hbase.conf',
       content = Template('hbase.conf.j2'),

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_hbase_master.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_hbase_master.py b/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_hbase_master.py
index 3f6096c..5a95fe2 100644
--- a/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_hbase_master.py
+++ b/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_hbase_master.py
@@ -233,16 +233,16 @@ class TestHBaseMaster(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/hbase/conf',
       owner = 'hbase',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
     )
     self.assertResourceCalled('Directory', '/tmp',
       owner = 'hbase',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       mode = 0777
     )
     self.assertResourceCalled('Directory', '/hadoop',
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('Execute', ('chmod', '1777', u'/hadoop'),
@@ -288,7 +288,7 @@ class TestHBaseMaster(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/security/limits.d',
       owner = 'root',
       group = 'root',
-      recursive = True,
+      create_parents = True,
     )
     self.assertResourceCalled('File', '/etc/security/limits.d/hbase.conf',
       content = Template('hbase.conf.j2'),
@@ -306,13 +306,13 @@ class TestHBaseMaster(RMFTestCase):
     )
     self.assertResourceCalled('Directory', '/var/run/hbase',
       owner = 'hbase',
-      recursive = True,
+      create_parents = True,
       mode = 0755,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hbase',
       owner = 'hbase',
-      recursive = True,
+      create_parents = True,
       mode = 0755,
       cd_access = 'a',
     )
@@ -370,16 +370,16 @@ class TestHBaseMaster(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/hbase/conf',
       owner = 'hbase',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
     )
     self.assertResourceCalled('Directory', '/tmp',
       owner = 'hbase',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       mode = 0777
     )
     self.assertResourceCalled('Directory', '/hadoop',
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('Execute', ('chmod', '1777', u'/hadoop'),
@@ -425,7 +425,7 @@ class TestHBaseMaster(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/security/limits.d',
       owner = 'root',
       group = 'root',
-      recursive = True,
+      create_parents = True,
     )
     self.assertResourceCalled('File', '/etc/security/limits.d/hbase.conf',
       content = Template('hbase.conf.j2'),
@@ -447,13 +447,13 @@ class TestHBaseMaster(RMFTestCase):
     )
     self.assertResourceCalled('Directory', '/var/run/hbase',
       owner = 'hbase',
-      recursive = True,
+      create_parents = True,
       mode = 0755,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hbase',
       owner = 'hbase',
-      recursive = True,
+      create_parents = True,
       mode = 0755,
       cd_access = 'a',
     )
@@ -517,15 +517,15 @@ class TestHBaseMaster(RMFTestCase):
     self.assertResourceCalled('Directory', '/usr/hdp/current/hbase-master/conf',
       owner = 'hbase',
       group = 'hadoop',
-      recursive = True)
+      create_parents = True)
     self.assertResourceCalled('Directory', '/tmp',
       owner = 'hbase',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       mode = 0777
     )
     self.assertResourceCalled('Directory', '/hadoop',
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
 
@@ -576,7 +576,7 @@ class TestHBaseMaster(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/security/limits.d',
       owner = 'root',
       group = 'root',
-      recursive = True,
+      create_parents = True,
     )
     self.assertResourceCalled('File', '/etc/security/limits.d/hbase.conf',
       content = Template('hbase.conf.j2'),
@@ -594,14 +594,14 @@ class TestHBaseMaster(RMFTestCase):
 
     self.assertResourceCalled('Directory', '/var/run/hbase',
       owner = 'hbase',
-      recursive = True,
+      create_parents = True,
       mode = 0755,
       cd_access = 'a',
     )
 
     self.assertResourceCalled('Directory', '/var/log/hbase',
       owner = 'hbase',
-      recursive = True,
+      create_parents = True,
       mode = 0755,
       cd_access = 'a',
     )

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_hbase_regionserver.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_hbase_regionserver.py b/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_hbase_regionserver.py
index 224d81d..c36bd89 100644
--- a/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_hbase_regionserver.py
+++ b/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_hbase_regionserver.py
@@ -133,16 +133,16 @@ class TestHbaseRegionServer(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/hbase/conf',
       owner = 'hbase',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
     )
     self.assertResourceCalled('Directory', '/tmp',
       owner = 'hbase',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       mode = 0777
     )
     self.assertResourceCalled('Directory', '/hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Execute', ('chmod', '1777', u'/hadoop'),
@@ -188,7 +188,7 @@ class TestHbaseRegionServer(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/security/limits.d',
       owner = 'root',
       group = 'root',
-      recursive = True,
+      create_parents = True,
     )
     self.assertResourceCalled('File', '/etc/security/limits.d/hbase.conf',
       content = Template('hbase.conf.j2'),
@@ -206,13 +206,13 @@ class TestHbaseRegionServer(RMFTestCase):
     )
     self.assertResourceCalled('Directory', '/var/run/hbase',
       owner = 'hbase',
-      recursive = True,
+      create_parents = True,
       mode = 0755,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hbase',
       owner = 'hbase',
-      recursive = True,
+      create_parents = True,
       mode = 0755,
       cd_access = 'a',
     )
@@ -231,16 +231,16 @@ class TestHbaseRegionServer(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/hbase/conf',
       owner = 'hbase',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
     )
     self.assertResourceCalled('Directory', '/tmp',
       owner = 'hbase',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       mode = 0777
     )
     self.assertResourceCalled('Directory', '/hadoop',
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('Execute', ('chmod', '1777', u'/hadoop'),
@@ -286,7 +286,7 @@ class TestHbaseRegionServer(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/security/limits.d',
         owner = 'root',
         group = 'root',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('File', '/etc/security/limits.d/hbase.conf',
         content = Template('hbase.conf.j2'),
@@ -308,13 +308,13 @@ class TestHbaseRegionServer(RMFTestCase):
     )
     self.assertResourceCalled('Directory', '/var/run/hbase',
       owner = 'hbase',
-      recursive = True,
+      create_parents = True,
       mode = 0755,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hbase',
       owner = 'hbase',
-      recursive = True,
+      create_parents = True,
       mode = 0755,
       cd_access = 'a',
     )
@@ -340,16 +340,16 @@ class TestHbaseRegionServer(RMFTestCase):
     self.assertResourceCalled('Directory', '/usr/hdp/current/hbase-regionserver/conf',
       owner = 'hbase',
       group = 'hadoop',
-      recursive = True)
+      create_parents = True)
     self.assertResourceCalled('Directory', '/tmp',
       owner = 'hbase',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       mode = 0777
     )
 
     self.assertResourceCalled('Directory', '/hadoop',
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
 
@@ -399,7 +399,7 @@ class TestHbaseRegionServer(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/security/limits.d',
       owner = 'root',
       group = 'root',
-      recursive = True,
+      create_parents = True,
     )
     self.assertResourceCalled('File', '/etc/security/limits.d/hbase.conf',
       content = Template('hbase.conf.j2'),
@@ -418,14 +418,14 @@ class TestHbaseRegionServer(RMFTestCase):
 
     self.assertResourceCalled('Directory', '/var/run/hbase',
       owner = 'hbase',
-      recursive = True,
+      create_parents = True,
       mode = 0755,
       cd_access = 'a',
     )
 
     self.assertResourceCalled('Directory', '/var/log/hbase',
       owner = 'hbase',
-      recursive = True,
+      create_parents = True,
       mode = 0755,
       cd_access = 'a',
     )
@@ -456,16 +456,16 @@ class TestHbaseRegionServer(RMFTestCase):
     self.assertResourceCalled('Directory', '/usr/hdp/current/hbase-regionserver/conf',
       owner = 'hbase',
       group = 'hadoop',
-      recursive = True)
+      create_parents = True)
     self.assertResourceCalled('Directory', '/tmp',
       owner = 'hbase',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       mode = 0777
     )
 
     self.assertResourceCalled('Directory', '/hadoop',
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
 
@@ -516,7 +516,7 @@ class TestHbaseRegionServer(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/security/limits.d',
       owner = 'root',
       group = 'root',
-      recursive = True,
+      create_parents = True,
     )
 
     self.assertResourceCalled('File', '/etc/security/limits.d/hbase.conf',
@@ -536,14 +536,14 @@ class TestHbaseRegionServer(RMFTestCase):
 
     self.assertResourceCalled('Directory', '/var/run/hbase',
       owner = 'hbase',
-      recursive = True,
+      create_parents = True,
       mode = 0755,
       cd_access = 'a',
     )
 
     self.assertResourceCalled('Directory', '/var/log/hbase',
       owner = 'hbase',
-      recursive = True,
+      create_parents = True,
       mode = 0755,
       cd_access = 'a',
     )

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_phoenix_queryserver.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_phoenix_queryserver.py b/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_phoenix_queryserver.py
index 6ae5785..6f3199e 100644
--- a/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_phoenix_queryserver.py
+++ b/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_phoenix_queryserver.py
@@ -169,7 +169,7 @@ class TestPhoenixQueryServer(RMFTestCase):
       '/usr/hdp/current/hbase-regionserver/conf',
       owner = 'hbase',
       group = 'hadoop',
-      recursive = True)
+      create_parents = True)
 
     self.assertResourceCalled('XmlConfig', 'hbase-site.xml',
       owner = 'hbase',
@@ -196,11 +196,11 @@ class TestPhoenixQueryServer(RMFTestCase):
 
     self.assertResourceCalled('Directory', '/var/run/hbase',
       owner = 'hbase',
-      recursive = True)
+      create_parents = True)
 
     self.assertResourceCalled('Directory', '/var/log/hbase',
       owner = 'hbase',
-      recursive = True)
+      create_parents = True)
 
     self.assertResourceCalled('File',
       '/usr/lib/phoenix/bin/log4j.properties',
@@ -235,16 +235,16 @@ class TestPhoenixQueryServer(RMFTestCase):
       '/usr/hdp/current/hbase-regionserver/conf',
       owner = 'hbase',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
     )
     self.assertResourceCalled('Directory', '/tmp',
       owner = 'hbase',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       mode = 0777
     )
     self.assertResourceCalled('Directory', '/hadoop',
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('Execute', ('chmod', '1777', u'/hadoop'),
@@ -300,7 +300,7 @@ class TestPhoenixQueryServer(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/security/limits.d',
       owner = 'root',
       group = 'root',
-      recursive = True,
+      create_parents = True,
     )
     self.assertResourceCalled('File', '/etc/security/limits.d/hbase.conf',
       content = Template('hbase.conf.j2'),
@@ -320,13 +320,13 @@ class TestPhoenixQueryServer(RMFTestCase):
     )
     self.assertResourceCalled('Directory', '/var/run/hbase',
       owner = 'hbase',
-      recursive = True,
+      create_parents = True,
       mode = 0755,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hbase',
       owner = 'hbase',
-      recursive = True,
+      create_parents = True,
       mode = 0755,
       cd_access = 'a',
     )
@@ -348,16 +348,16 @@ class TestPhoenixQueryServer(RMFTestCase):
       '/usr/hdp/current/hbase-regionserver/conf',
       owner = 'hbase',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
     )
     self.assertResourceCalled('Directory', '/tmp',
       owner = 'hbase',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       mode = 0777
     )
     self.assertResourceCalled('Directory', '/hadoop',
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('Execute', ('chmod', '1777', u'/hadoop'),
@@ -413,7 +413,7 @@ class TestPhoenixQueryServer(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/security/limits.d',
       owner = 'root',
       group = 'root',
-      recursive = True,
+      create_parents = True,
     )
     self.assertResourceCalled('File', '/etc/security/limits.d/hbase.conf',
       content = Template('hbase.conf.j2'),
@@ -438,13 +438,13 @@ class TestPhoenixQueryServer(RMFTestCase):
     )
     self.assertResourceCalled('Directory', '/var/run/hbase',
       owner = 'hbase',
-      recursive = True,
+      create_parents = True,
       mode = 0755,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hbase',
       owner = 'hbase',
-      recursive = True,
+      create_parents = True,
       mode = 0755,
       cd_access = 'a',
     )
@@ -473,7 +473,7 @@ class TestPhoenixQueryServer(RMFTestCase):
       target = RMFTestCase.TARGET_COMMON_SERVICES)
 
     self.assertResourceCalled('Directory', '/etc/hbase/2.3.0.0-1234/0',
-        recursive = True,
+        create_parents = True,
         mode = 0755,
         cd_access = 'a',
     )

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.0.6/HDFS/test_datanode.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.0.6/HDFS/test_datanode.py b/ambari-server/src/test/python/stacks/2.0.6/HDFS/test_datanode.py
index da1b07f..113fb7f 100644
--- a/ambari-server/src/test/python/stacks/2.0.6/HDFS/test_datanode.py
+++ b/ambari-server/src/test/python/stacks/2.0.6/HDFS/test_datanode.py
@@ -57,11 +57,11 @@ class TestDatanode(RMFTestCase):
                               )
     self.assertResourceCalled('Directory', '/var/run/hadoop/hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('Directory', '/var/log/hadoop/hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/var/run/hadoop/hdfs/hadoop-hdfs-datanode.pid',
         action = ['delete'],
@@ -117,11 +117,11 @@ class TestDatanode(RMFTestCase):
                               )
     self.assertResourceCalled('Directory', '/var/run/hadoop/hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('Directory', '/var/log/hadoop/hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/var/run/hadoop/hdfs/hadoop-hdfs-datanode.pid',
         action = ['delete'],
@@ -155,11 +155,11 @@ class TestDatanode(RMFTestCase):
                               )
     self.assertResourceCalled('Directory', '/var/run/hadoop/hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('Directory', '/var/log/hadoop/hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/var/run/hadoop/hdfs/hadoop-hdfs-datanode.pid',
         action = ['delete'],
@@ -196,11 +196,11 @@ class TestDatanode(RMFTestCase):
                               )
     self.assertResourceCalled('Directory', '/var/run/hadoop/hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('Directory', '/var/log/hadoop/hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/var/run/hadoop/hdfs/hadoop-hdfs-datanode.pid',
         action = ['delete'],
@@ -278,10 +278,10 @@ class TestDatanode(RMFTestCase):
 
   def assert_configure_default(self):
     self.assertResourceCalled('Directory', '/usr/lib/hadoop/lib/native/Linux-i386-32',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('Directory', '/usr/lib/hadoop/lib/native/Linux-amd64-64',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('Link', '/usr/lib/hadoop/lib/native/Linux-i386-32/libsnappy.so',
         to = '/usr/lib/hadoop/lib/libsnappy.so',
@@ -292,7 +292,7 @@ class TestDatanode(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/security/limits.d',
                               owner = 'root',
                               group = 'root',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/etc/security/limits.d/hdfs.conf',
                               content = Template('hdfs.conf.j2'),
@@ -324,20 +324,20 @@ class TestDatanode(RMFTestCase):
                               owner = 'hdfs',
                               group = 'hadoop',
                               mode = 0751,
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('Directory', '/var/lib/ambari-agent/data/datanode',
                               owner = 'hdfs',
                               group = 'hadoop',
                               mode = 0755,
-                              recursive = True
+                              create_parents = True
     )
     self.assertResourceCalled('Directory', '/hadoop/hdfs/data',
                               owner = 'hdfs',
                               ignore_failures = True,
                               group = 'hadoop',
                               mode = 0755,
-                              recursive = True,
+                              create_parents = True,
                               cd_access='a'
                               )
     content = resource_management.libraries.functions.dfs_datanode_helper.DATA_DIR_TO_MOUNT_HEADER
@@ -355,10 +355,10 @@ class TestDatanode(RMFTestCase):
     
     if snappy_enabled:
       self.assertResourceCalled('Directory', '/usr/lib/hadoop/lib/native/Linux-i386-32',
-          recursive = True,
+          create_parents = True,
       )
       self.assertResourceCalled('Directory', '/usr/lib/hadoop/lib/native/Linux-amd64-64',
-          recursive = True,
+          create_parents = True,
       )
       self.assertResourceCalled('Link', '/usr/lib/hadoop/lib/native/Linux-i386-32/libsnappy.so',
           to = '/usr/lib/hadoop/lib/libsnappy.so',
@@ -369,7 +369,7 @@ class TestDatanode(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/security/limits.d',
                               owner = 'root',
                               group = 'root',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/etc/security/limits.d/hdfs.conf',
                               content = Template('hdfs.conf.j2'),
@@ -402,20 +402,20 @@ class TestDatanode(RMFTestCase):
                               owner = 'hdfs',
                               group = 'hadoop',
                               mode = 0751,
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('Directory', '/var/lib/ambari-agent/data/datanode',
                               owner = 'hdfs',
                               group = 'hadoop',
                               mode = 0755,
-                              recursive = True
+                              create_parents = True
     )
     self.assertResourceCalled('Directory', '/hadoop/hdfs/data',
                               owner = 'hdfs',
                               ignore_failures = True,
                               group = 'hadoop',
                               mode = 0755,
-                              recursive = True,
+                              create_parents = True,
                               cd_access='a'
                               )
     content = resource_management.libraries.functions.dfs_datanode_helper.DATA_DIR_TO_MOUNT_HEADER

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.0.6/HDFS/test_hdfs_client.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.0.6/HDFS/test_hdfs_client.py b/ambari-server/src/test/python/stacks/2.0.6/HDFS/test_hdfs_client.py
index 1039a2d..1e3057f 100644
--- a/ambari-server/src/test/python/stacks/2.0.6/HDFS/test_hdfs_client.py
+++ b/ambari-server/src/test/python/stacks/2.0.6/HDFS/test_hdfs_client.py
@@ -44,7 +44,7 @@ class Test(RMFTestCase):
                        target = RMFTestCase.TARGET_COMMON_SERVICES
     )
     self.assertResourceCalled('Directory', '/tmp',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('XmlConfig', 'hdfs-site.xml',
                               conf_dir = '/tmp/123',


[3/5] ambari git commit: AMBARI-14396. Add support for recursive chown in resource management library. (aonishuk)

Posted by ao...@apache.org.
http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.0.6/HDFS/test_journalnode.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.0.6/HDFS/test_journalnode.py b/ambari-server/src/test/python/stacks/2.0.6/HDFS/test_journalnode.py
index f8400a1..417921a 100644
--- a/ambari-server/src/test/python/stacks/2.0.6/HDFS/test_journalnode.py
+++ b/ambari-server/src/test/python/stacks/2.0.6/HDFS/test_journalnode.py
@@ -55,11 +55,11 @@ class TestJournalnode(RMFTestCase):
                               )
     self.assertResourceCalled('Directory', '/var/run/hadoop/hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('Directory', '/var/log/hadoop/hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/var/run/hadoop/hdfs/hadoop-hdfs-journalnode.pid',
         action = ['delete'],
@@ -113,11 +113,11 @@ class TestJournalnode(RMFTestCase):
                               )
     self.assertResourceCalled('Directory', '/var/run/hadoop/hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('Directory', '/var/log/hadoop/hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/var/run/hadoop/hdfs/hadoop-hdfs-journalnode.pid',
         action = ['delete'],
@@ -148,14 +148,14 @@ class TestJournalnode(RMFTestCase):
     self.assertResourceCalled('Directory', '/grid/0/hdfs/journal',
                               owner = 'hdfs',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               cd_access='a'
                               )
     self.assertResourceCalled('Directory', '/usr/lib/hadoop/lib/native/Linux-i386-32',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('Directory', '/usr/lib/hadoop/lib/native/Linux-amd64-64',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('Link', '/usr/lib/hadoop/lib/native/Linux-i386-32/libsnappy.so',
         to = '/usr/lib/hadoop/lib/libsnappy.so',
@@ -166,7 +166,7 @@ class TestJournalnode(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/security/limits.d',
                               owner = 'root',
                               group = 'root',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/etc/security/limits.d/hdfs.conf',
                               content = Template('hdfs.conf.j2'),
@@ -199,14 +199,14 @@ class TestJournalnode(RMFTestCase):
     self.assertResourceCalled('Directory', '/grid/0/hdfs/journal',
                               owner = 'hdfs',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               cd_access='a'
                               )
     self.assertResourceCalled('Directory', '/usr/lib/hadoop/lib/native/Linux-i386-32',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('Directory', '/usr/lib/hadoop/lib/native/Linux-amd64-64',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('Link', '/usr/lib/hadoop/lib/native/Linux-i386-32/libsnappy.so',
         to = '/usr/lib/hadoop/lib/libsnappy.so',
@@ -217,7 +217,7 @@ class TestJournalnode(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/security/limits.d',
                               owner = 'root',
                               group = 'root',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/etc/security/limits.d/hdfs.conf',
                               content = Template('hdfs.conf.j2'),

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.0.6/HDFS/test_namenode.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.0.6/HDFS/test_namenode.py b/ambari-server/src/test/python/stacks/2.0.6/HDFS/test_namenode.py
index 2f6ae48..fa701cf 100644
--- a/ambari-server/src/test/python/stacks/2.0.6/HDFS/test_namenode.py
+++ b/ambari-server/src/test/python/stacks/2.0.6/HDFS/test_namenode.py
@@ -60,7 +60,7 @@ class TestNamenode(RMFTestCase):
                               user = 'hdfs',
                               )
     self.assertResourceCalled('Directory', '/hadoop/hdfs/namenode/namenode-formatted/',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/etc/hadoop/conf/dfs.exclude',
                               owner = 'hdfs',
@@ -74,11 +74,11 @@ class TestNamenode(RMFTestCase):
     )
     self.assertResourceCalled('Directory', '/var/run/hadoop/hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('Directory', '/var/log/hadoop/hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/var/run/hadoop/hdfs/hadoop-hdfs-namenode.pid',
         action = ['delete'],
@@ -173,7 +173,7 @@ class TestNamenode(RMFTestCase):
         user = 'hdfs',
     )
     self.assertResourceCalled('Directory', '/hadoop/hdfs/namenode/namenode-formatted/',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('File', '/etc/hadoop/conf/dfs.exclude',
                               owner = 'hdfs',
@@ -187,11 +187,11 @@ class TestNamenode(RMFTestCase):
                               )
     self.assertResourceCalled('Directory', '/var/run/hadoop/hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('Directory', '/var/log/hadoop/hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/var/run/hadoop/hdfs/hadoop-hdfs-namenode.pid',
         action = ['delete'],
@@ -299,7 +299,7 @@ class TestNamenode(RMFTestCase):
         user = 'hdfs',
     )
     self.assertResourceCalled('Directory', '/hadoop/hdfs/namenode/namenode-formatted/',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('File', '/etc/hadoop/conf/dfs.exclude',
                               owner = 'hdfs',
@@ -313,11 +313,11 @@ class TestNamenode(RMFTestCase):
                               )
     self.assertResourceCalled('Directory', '/var/run/hadoop/hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('Directory', '/var/log/hadoop/hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/var/run/hadoop/hdfs/hadoop-hdfs-namenode.pid',
         action = ['delete'],
@@ -412,11 +412,11 @@ class TestNamenode(RMFTestCase):
                               )
     self.assertResourceCalled('Directory', '/var/run/hadoop/hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('Directory', '/var/log/hadoop/hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/var/run/hadoop/hdfs/hadoop-hdfs-namenode.pid',
         action = ['delete'],
@@ -509,11 +509,11 @@ class TestNamenode(RMFTestCase):
                               )
     self.assertResourceCalled('Directory', '/var/run/hadoop/hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('Directory', '/var/log/hadoop/hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/var/run/hadoop/hdfs/hadoop-hdfs-namenode.pid',
         action = ['delete'],
@@ -609,11 +609,11 @@ class TestNamenode(RMFTestCase):
                               )
     self.assertResourceCalled('Directory', '/var/run/hadoop/hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('Directory', '/var/log/hadoop/hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/var/run/hadoop/hdfs/hadoop-hdfs-namenode.pid',
         action = ['delete'],
@@ -701,7 +701,7 @@ class TestNamenode(RMFTestCase):
         user = 'hdfs',
     )
     self.assertResourceCalled('Directory', '/hadoop/hdfs/namenode/namenode-formatted/',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('File', '/etc/hadoop/conf/dfs.exclude',
                               owner = 'hdfs',
@@ -715,11 +715,11 @@ class TestNamenode(RMFTestCase):
     )
     self.assertResourceCalled('Directory', '/var/run/hadoop/hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('Directory', '/var/log/hadoop/hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/var/run/hadoop/hdfs/hadoop-hdfs-namenode.pid',
         action = ['delete'],
@@ -817,11 +817,11 @@ class TestNamenode(RMFTestCase):
     # command is run before the namenode launches
     self.assertResourceCalled('Directory', '/var/run/hadoop/hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('Directory', '/var/log/hadoop/hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/var/run/hadoop/hdfs/hadoop-hdfs-namenode.pid',
         action = ['delete'],
@@ -927,11 +927,11 @@ class TestNamenode(RMFTestCase):
     # command is run before the namenode launches
     self.assertResourceCalled('Directory', '/var/run/hadoop/hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('Directory', '/var/log/hadoop/hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/var/run/hadoop/hdfs/hadoop-hdfs-namenode.pid',
                               action = ['delete'],
@@ -1089,10 +1089,10 @@ class TestNamenode(RMFTestCase):
 
   def assert_configure_default(self):
     self.assertResourceCalled('Directory', '/usr/lib/hadoop/lib/native/Linux-i386-32',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('Directory', '/usr/lib/hadoop/lib/native/Linux-amd64-64',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('Link', '/usr/lib/hadoop/lib/native/Linux-i386-32/libsnappy.so',
         to = '/usr/lib/hadoop/lib/libsnappy.so',
@@ -1103,7 +1103,7 @@ class TestNamenode(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/security/limits.d',
                               owner = 'root',
                               group = 'root',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/etc/security/limits.d/hdfs.conf',
                               content = Template('hdfs.conf.j2'),
@@ -1134,17 +1134,17 @@ class TestNamenode(RMFTestCase):
     self.assertResourceCalled('Directory', '/hadoop/hdfs/namenode',
                               owner = 'hdfs',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access='a'
                               )
 
   def assert_configure_secured(self):
     self.assertResourceCalled('Directory', '/usr/lib/hadoop/lib/native/Linux-i386-32',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('Directory', '/usr/lib/hadoop/lib/native/Linux-amd64-64',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('Link', '/usr/lib/hadoop/lib/native/Linux-i386-32/libsnappy.so',
         to = '/usr/lib/hadoop/lib/libsnappy.so',
@@ -1155,7 +1155,7 @@ class TestNamenode(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/security/limits.d',
                               owner = 'root',
                               group = 'root',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/etc/security/limits.d/hdfs.conf',
                               content = Template('hdfs.conf.j2'),
@@ -1186,7 +1186,7 @@ class TestNamenode(RMFTestCase):
     self.assertResourceCalled('Directory', '/hadoop/hdfs/namenode',
                               owner = 'hdfs',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access='a'
                               )

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.0.6/HDFS/test_nfsgateway.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.0.6/HDFS/test_nfsgateway.py b/ambari-server/src/test/python/stacks/2.0.6/HDFS/test_nfsgateway.py
index e744219..9f36bdd 100644
--- a/ambari-server/src/test/python/stacks/2.0.6/HDFS/test_nfsgateway.py
+++ b/ambari-server/src/test/python/stacks/2.0.6/HDFS/test_nfsgateway.py
@@ -61,7 +61,7 @@ class TestNFSGateway(RMFTestCase):
                               )
     self.assertResourceCalled('Directory', '/var/run/hadoop/root',
                               owner = 'root',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('Directory', '/var/log/hadoop/root',
                               owner = 'root',
@@ -128,7 +128,7 @@ class TestNFSGateway(RMFTestCase):
                               )
     self.assertResourceCalled('Directory', '/var/run/hadoop/root',
                               owner = 'root',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('Directory', '/var/log/hadoop/root',
                               owner = 'root',
@@ -168,10 +168,10 @@ class TestNFSGateway(RMFTestCase):
 
   def assert_configure_default(self):
     self.assertResourceCalled('Directory', '/usr/lib/hadoop/lib/native/Linux-i386-32',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('Directory', '/usr/lib/hadoop/lib/native/Linux-amd64-64',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('Link', '/usr/lib/hadoop/lib/native/Linux-i386-32/libsnappy.so',
         to = '/usr/lib/hadoop/lib/libsnappy.so',
@@ -182,7 +182,7 @@ class TestNFSGateway(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/security/limits.d',
                               owner = 'root',
                               group = 'root',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/etc/security/limits.d/hdfs.conf',
                               content = Template('hdfs.conf.j2'),
@@ -213,10 +213,10 @@ class TestNFSGateway(RMFTestCase):
 
   def assert_configure_secured(self):
     self.assertResourceCalled('Directory', '/usr/lib/hadoop/lib/native/Linux-i386-32',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('Directory', '/usr/lib/hadoop/lib/native/Linux-amd64-64',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('Link', '/usr/lib/hadoop/lib/native/Linux-i386-32/libsnappy.so',
         to = '/usr/lib/hadoop/lib/libsnappy.so',
@@ -227,7 +227,7 @@ class TestNFSGateway(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/security/limits.d',
                               owner = 'root',
                               group = 'root',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/etc/security/limits.d/hdfs.conf',
                               content = Template('hdfs.conf.j2'),

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.0.6/HDFS/test_snamenode.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.0.6/HDFS/test_snamenode.py b/ambari-server/src/test/python/stacks/2.0.6/HDFS/test_snamenode.py
index 4fc2298..fea5ecf 100644
--- a/ambari-server/src/test/python/stacks/2.0.6/HDFS/test_snamenode.py
+++ b/ambari-server/src/test/python/stacks/2.0.6/HDFS/test_snamenode.py
@@ -62,11 +62,11 @@ class TestSNamenode(RMFTestCase):
                               )
     self.assertResourceCalled('Directory', '/var/run/hadoop/hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('Directory', '/var/log/hadoop/hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/var/run/hadoop/hdfs/hadoop-hdfs-secondarynamenode.pid',
         action = ['delete'],
@@ -130,11 +130,11 @@ class TestSNamenode(RMFTestCase):
                               )
     self.assertResourceCalled('Directory', '/var/run/hadoop/hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('Directory', '/var/log/hadoop/hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/var/run/hadoop/hdfs/hadoop-hdfs-secondarynamenode.pid',
         action = ['delete'],
@@ -163,10 +163,10 @@ class TestSNamenode(RMFTestCase):
 
   def assert_configure_default(self):
     self.assertResourceCalled('Directory', '/usr/lib/hadoop/lib/native/Linux-i386-32',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('Directory', '/usr/lib/hadoop/lib/native/Linux-amd64-64',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('Link', '/usr/lib/hadoop/lib/native/Linux-i386-32/libsnappy.so',
         to = '/usr/lib/hadoop/lib/libsnappy.so',
@@ -177,7 +177,7 @@ class TestSNamenode(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/security/limits.d',
                               owner = 'root',
                               group = 'root',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/etc/security/limits.d/hdfs.conf',
                               content = Template('hdfs.conf.j2'),
@@ -209,23 +209,23 @@ class TestSNamenode(RMFTestCase):
                               owner = 'hdfs',
                               group = 'hadoop',
                               mode = 0755,
-                              recursive = True,
+                              create_parents = True,
                               cd_access='a'
                               )
     self.assertResourceCalled('Directory', '/hadoop/hdfs/namesecondary2',
                               owner = 'hdfs',
                               group = 'hadoop',
                               mode = 0755,
-                              recursive = True,
+                              create_parents = True,
                               cd_access='a'
     )
 
   def assert_configure_secured(self):
     self.assertResourceCalled('Directory', '/usr/lib/hadoop/lib/native/Linux-i386-32',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('Directory', '/usr/lib/hadoop/lib/native/Linux-amd64-64',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('Link', '/usr/lib/hadoop/lib/native/Linux-i386-32/libsnappy.so',
         to = '/usr/lib/hadoop/lib/libsnappy.so',
@@ -236,7 +236,7 @@ class TestSNamenode(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/security/limits.d',
                               owner = 'root',
                               group = 'root',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/etc/security/limits.d/hdfs.conf',
                               content = Template('hdfs.conf.j2'),
@@ -268,7 +268,7 @@ class TestSNamenode(RMFTestCase):
                               owner = 'hdfs',
                               group = 'hadoop',
                               mode = 0755,
-                              recursive = True,
+                              create_parents = True,
                               cd_access='a'
                               )
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.0.6/HDFS/test_zkfc.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.0.6/HDFS/test_zkfc.py b/ambari-server/src/test/python/stacks/2.0.6/HDFS/test_zkfc.py
index 7c7d8a3..358b56f 100644
--- a/ambari-server/src/test/python/stacks/2.0.6/HDFS/test_zkfc.py
+++ b/ambari-server/src/test/python/stacks/2.0.6/HDFS/test_zkfc.py
@@ -35,10 +35,10 @@ class TestZkfc(RMFTestCase):
                        target = RMFTestCase.TARGET_COMMON_SERVICES
     )
     self.assertResourceCalled('Directory', '/usr/lib/hadoop/lib/native/Linux-i386-32',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('Directory', '/usr/lib/hadoop/lib/native/Linux-amd64-64',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('Link', '/usr/lib/hadoop/lib/native/Linux-i386-32/libsnappy.so',
         to = '/usr/lib/hadoop/lib/libsnappy.so',
@@ -49,7 +49,7 @@ class TestZkfc(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/security/limits.d',
                               owner = 'root',
                               group = 'root',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/etc/security/limits.d/hdfs.conf',
                               content = Template('hdfs.conf.j2'),
@@ -89,11 +89,11 @@ class TestZkfc(RMFTestCase):
     )
     self.assertResourceCalled('Directory', '/var/run/hadoop/hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('Directory', '/var/log/hadoop/hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/var/run/hadoop/hdfs/hadoop-hdfs-zkfc.pid',
         action = ['delete'],
@@ -130,10 +130,10 @@ class TestZkfc(RMFTestCase):
                        target = RMFTestCase.TARGET_COMMON_SERVICES
     )
     self.assertResourceCalled('Directory', '/usr/lib/hadoop/lib/native/Linux-i386-32',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('Directory', '/usr/lib/hadoop/lib/native/Linux-amd64-64',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('Link', '/usr/lib/hadoop/lib/native/Linux-i386-32/libsnappy.so',
         to = '/usr/lib/hadoop/lib/libsnappy.so',
@@ -144,7 +144,7 @@ class TestZkfc(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/security/limits.d',
                               owner = 'root',
                               group = 'root',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/etc/security/limits.d/hdfs.conf',
                               content = Template('hdfs.conf.j2'),
@@ -184,11 +184,11 @@ class TestZkfc(RMFTestCase):
     )
     self.assertResourceCalled('Directory', '/var/run/hadoop/hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('Directory', '/var/log/hadoop/hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/var/run/hadoop/hdfs/hadoop-hdfs-zkfc.pid',
         action = ['delete'],
@@ -224,10 +224,10 @@ class TestZkfc(RMFTestCase):
                        target = RMFTestCase.TARGET_COMMON_SERVICES
     )
     self.assertResourceCalled('Directory', '/usr/lib/hadoop/lib/native/Linux-i386-32',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('Directory', '/usr/lib/hadoop/lib/native/Linux-amd64-64',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('Link', '/usr/lib/hadoop/lib/native/Linux-i386-32/libsnappy.so',
         to = '/usr/lib/hadoop/lib/libsnappy.so',
@@ -238,7 +238,7 @@ class TestZkfc(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/security/limits.d',
                               owner = 'root',
                               group = 'root',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/etc/security/limits.d/hdfs.conf',
                               content = Template('hdfs.conf.j2'),
@@ -279,11 +279,11 @@ class TestZkfc(RMFTestCase):
     )
     self.assertResourceCalled('Directory', '/var/run/hadoop/hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('Directory', '/var/log/hadoop/hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/var/run/hadoop/hdfs/hadoop-hdfs-zkfc.pid',
         action = ['delete'],
@@ -304,10 +304,10 @@ class TestZkfc(RMFTestCase):
                        target = RMFTestCase.TARGET_COMMON_SERVICES
     )
     self.assertResourceCalled('Directory', '/usr/lib/hadoop/lib/native/Linux-i386-32',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('Directory', '/usr/lib/hadoop/lib/native/Linux-amd64-64',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('Link', '/usr/lib/hadoop/lib/native/Linux-i386-32/libsnappy.so',
         to = '/usr/lib/hadoop/lib/libsnappy.so',
@@ -318,7 +318,7 @@ class TestZkfc(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/security/limits.d',
                               owner = 'root',
                               group = 'root',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/etc/security/limits.d/hdfs.conf',
                               content = Template('hdfs.conf.j2'),
@@ -359,11 +359,11 @@ class TestZkfc(RMFTestCase):
     )
     self.assertResourceCalled('Directory', '/var/run/hadoop/hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('Directory', '/var/log/hadoop/hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/var/run/hadoop/hdfs/hadoop-hdfs-zkfc.pid',
         action = ['delete'],

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_hcat_client.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_hcat_client.py b/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_hcat_client.py
index e709693..396e6a1 100644
--- a/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_hcat_client.py
+++ b/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_hcat_client.py
@@ -35,16 +35,16 @@ class TestHcatClient(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/hive/conf',
                               owner = 'hcat',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
     )
     self.assertResourceCalled('Directory', '/etc/hive-hcatalog/conf',
       owner = 'hcat',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
     )
     self.assertResourceCalled('Directory', '/var/run/webhcat',
       owner = 'hcat',
-      recursive = True,
+      create_parents = True,
     )
     self.assertResourceCalled('XmlConfig', 'hive-site.xml',
       owner = 'hive',
@@ -72,18 +72,18 @@ class TestHcatClient(RMFTestCase):
                          target = RMFTestCase.TARGET_COMMON_SERVICES
     )
     self.assertResourceCalled('Directory', '/etc/hive/conf',
-                              recursive = True,
+                              create_parents = True,
                               owner = 'hcat',
                               group = 'hadoop',
     )
     self.assertResourceCalled('Directory', '/etc/hive-hcatalog/conf',
-      recursive = True,
+      create_parents = True,
       owner = 'hcat',
       group = 'hadoop',
     )
     self.assertResourceCalled('Directory', '/var/run/webhcat',
       owner = 'hcat',
-      recursive = True,
+      create_parents = True,
     )
     self.assertResourceCalled('XmlConfig', 'hive-site.xml',
       owner = 'hive',

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_hive_client.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_hive_client.py b/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_hive_client.py
index c81a70f..f008745 100644
--- a/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_hive_client.py
+++ b/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_hive_client.py
@@ -39,7 +39,7 @@ class TestHiveClient(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/hive/conf',
         owner = 'hive',
         group = 'hadoop',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('XmlConfig', 'mapred-site.xml',
         group = 'hadoop',
@@ -85,7 +85,7 @@ class TestHiveClient(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/security/limits.d',
                               owner = 'root',
                               group = 'root',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/etc/security/limits.d/hive.conf',
                               content = Template('hive.conf.j2'),
@@ -115,7 +115,7 @@ class TestHiveClient(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/hive/conf',
         owner = 'hive',
         group = 'hadoop',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('XmlConfig', 'mapred-site.xml',
         group = 'hadoop',
@@ -161,7 +161,7 @@ class TestHiveClient(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/security/limits.d',
                               owner = 'root',
                               group = 'root',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/etc/security/limits.d/hive.conf',
                               content = Template('hive.conf.j2'),

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_hive_metastore.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_hive_metastore.py b/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_hive_metastore.py
index 5df0fb8..136ff6e 100644
--- a/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_hive_metastore.py
+++ b/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_hive_metastore.py
@@ -153,7 +153,7 @@ class TestHiveMetastore(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/hive/conf',
                               owner = 'hive',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('XmlConfig', 'mapred-site.xml',
                               group = 'hadoop',
@@ -202,7 +202,7 @@ class TestHiveMetastore(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/security/limits.d',
                               owner = 'root',
                               group = 'root',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/etc/security/limits.d/hive.conf',
                               content = Template('hive.conf.j2'),
@@ -236,21 +236,21 @@ class TestHiveMetastore(RMFTestCase):
                               owner = 'hive',
                               group = 'hadoop',
                               mode = 0755,
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('Directory', '/var/log/hive',
                               owner = 'hive',
                               group = 'hadoop',
                               mode = 0755,
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('Directory', '/var/lib/hive',
                               owner = 'hive',
                               group = 'hadoop',
                               mode = 0755,
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
 
@@ -261,7 +261,7 @@ class TestHiveMetastore(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/hive/conf',
                               owner = 'hive',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('XmlConfig', 'mapred-site.xml',
                               group = 'hadoop',
@@ -310,7 +310,7 @@ class TestHiveMetastore(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/security/limits.d',
                               owner = 'root',
                               group = 'root',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/etc/security/limits.d/hive.conf',
                               content = Template('hive.conf.j2'),
@@ -344,21 +344,21 @@ class TestHiveMetastore(RMFTestCase):
                               owner = 'hive',
                               group = 'hadoop',
                               mode = 0755,
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('Directory', '/var/log/hive',
                               owner = 'hive',
                               group = 'hadoop',
                               mode = 0755,
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('Directory', '/var/lib/hive',
                               owner = 'hive',
                               group = 'hadoop',
                               mode = 0755,
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
 
@@ -394,7 +394,7 @@ class TestHiveMetastore(RMFTestCase):
     self.assertResourceCalled('Directory', '/usr/hdp/current/hive-server2/conf',
                               owner = 'hive',
                               group = 'hadoop',
-                              recursive = True)
+                              create_parents = True)
 
     self.assertResourceCalled('XmlConfig', 'mapred-site.xml',
                               group = 'hadoop',
@@ -444,7 +444,7 @@ class TestHiveMetastore(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/security/limits.d',
                               owner = 'root',
                               group = 'root',
-                              recursive = True)
+                              create_parents = True)
 
     self.assertResourceCalled('File', '/etc/security/limits.d/hive.conf',
                               content = Template('hive.conf.j2'),
@@ -481,21 +481,21 @@ class TestHiveMetastore(RMFTestCase):
                               owner = 'hive',
                               group = 'hadoop',
                               mode = 0755,
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a')
 
     self.assertResourceCalled('Directory', '/var/log/hive',
                               owner = 'hive',
                               group = 'hadoop',
                               mode = 0755,
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a')
 
     self.assertResourceCalled('Directory', '/var/lib/hive',
                               owner = 'hive',
                               group = 'hadoop',
                               mode = 0755,
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a')
 
     self.assertResourceCalled('Execute', '/tmp/start_metastore_script /var/log/hive/hive.out /var/log/hive/hive.log /var/run/hive/hive.pid /usr/hdp/current/hive-server2/conf/conf.server /var/log/hive',

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_hive_server.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_hive_server.py b/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_hive_server.py
index 4dafaa9..cf308a0 100644
--- a/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_hive_server.py
+++ b/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_hive_server.py
@@ -418,7 +418,7 @@ class TestHiveServer(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/hive/conf',
                               owner='hive',
                               group='hadoop',
-                              recursive=True,
+                              create_parents = True,
     )
 
     self.assertResourceCalled('XmlConfig', 'mapred-site.xml',
@@ -468,7 +468,7 @@ class TestHiveServer(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/security/limits.d',
                               owner='root',
                               group='root',
-                              recursive=True,
+                              create_parents = True,
     )
     self.assertResourceCalled('File', '/etc/security/limits.d/hive.conf',
                               content=Template('hive.conf.j2'),
@@ -499,21 +499,21 @@ class TestHiveServer(RMFTestCase):
                               owner='hive',
                               mode=0755,
                               group='hadoop',
-                              recursive=True,
+                              create_parents = True,
                               cd_access='a',
     )
     self.assertResourceCalled('Directory', '/var/log/hive',
                               owner='hive',
                               mode=0755,
                               group='hadoop',
-                              recursive=True,
+                              create_parents = True,
                               cd_access='a',
     )
     self.assertResourceCalled('Directory', '/var/lib/hive',
                               owner='hive',
                               mode=0755,
                               group='hadoop',
-                              recursive=True,
+                              create_parents = True,
                               cd_access='a',
     )
 
@@ -601,7 +601,7 @@ class TestHiveServer(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/hive/conf',
                               owner='hive',
                               group='hadoop',
-                              recursive=True,
+                              create_parents = True,
     )
     self.assertResourceCalled('XmlConfig', 'mapred-site.xml',
                               group='hadoop',
@@ -650,7 +650,7 @@ class TestHiveServer(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/security/limits.d',
                               owner='root',
                               group='root',
-                              recursive=True,
+                              create_parents = True,
     )
     self.assertResourceCalled('File', '/etc/security/limits.d/hive.conf',
                               content=Template('hive.conf.j2'),
@@ -681,21 +681,21 @@ class TestHiveServer(RMFTestCase):
                               owner='hive',
                               group='hadoop',
                               mode=0755,
-                              recursive=True,
+                              create_parents = True,
                               cd_access='a',
     )
     self.assertResourceCalled('Directory', '/var/log/hive',
                               owner='hive',
                               group='hadoop',
                               mode=0755,
-                              recursive=True,
+                              create_parents = True,
                               cd_access='a',
     )
     self.assertResourceCalled('Directory', '/var/lib/hive',
                               owner='hive',
                               group='hadoop',
                               mode=0755,
-                              recursive=True,
+                              create_parents = True,
                               cd_access='a',
     )
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_webhcat_server.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_webhcat_server.py b/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_webhcat_server.py
index 653074d..82cf177 100644
--- a/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_webhcat_server.py
+++ b/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_webhcat_server.py
@@ -143,19 +143,19 @@ class TestWebHCatServer(RMFTestCase):
     self.assertResourceCalled('Directory', '/var/run/webhcat',
                               owner = 'hcat',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               )
     self.assertResourceCalled('Directory', '/var/log/webhcat',
                               owner = 'hcat',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               )
     self.assertResourceCalled('Directory', '/etc/hive-webhcat/conf',
                               owner = 'hcat',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a'
                               )
     self.assertResourceCalled('XmlConfig', 'webhcat-site.xml',
@@ -172,7 +172,7 @@ class TestWebHCatServer(RMFTestCase):
                               )
     self.assertResourceCalled('Directory', '/etc/hive-webhcat/conf',
         cd_access = 'a',
-        recursive=True
+        create_parents = True
     )
     self.assertResourceCalled('File', '/etc/hive-webhcat/conf/webhcat-log4j.properties',
                               content = 'log4jproperties\nline2',
@@ -185,19 +185,19 @@ class TestWebHCatServer(RMFTestCase):
     self.assertResourceCalled('Directory', '/var/run/webhcat',
                               owner = 'hcat',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               )
     self.assertResourceCalled('Directory', '/var/log/webhcat',
                               owner = 'hcat',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               )
     self.assertResourceCalled('Directory', '/etc/hive-webhcat/conf',
                               owner = 'hcat',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a'
                               )
     self.assertResourceCalled('Execute', '/usr/bin/kinit -kt /etc/security/keytabs/hdfs.headless.keytab hdfs;',
@@ -218,7 +218,7 @@ class TestWebHCatServer(RMFTestCase):
                               )
     self.assertResourceCalled('Directory', '/etc/hive-webhcat/conf',
         cd_access = 'a',
-        recursive=True
+        create_parents = True
     )
     self.assertResourceCalled('File', '/etc/hive-webhcat/conf/webhcat-log4j.properties',
                               content = 'log4jproperties\nline2',
@@ -428,19 +428,19 @@ class TestWebHCatServer(RMFTestCase):
     self.assertResourceCalled('Directory', '/var/run/webhcat',
       owner = 'hcat',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       mode = 0755)
 
     self.assertResourceCalled('Directory', '/var/log/webhcat',
       owner = 'hcat',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       mode = 0755)
 
     self.assertResourceCalled('Directory', '/usr/hdp/current/hive-webhcat/etc/webhcat',
       owner = 'hcat',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',)
 
     self.assertResourceCalled('XmlConfig', 'webhcat-site.xml',
@@ -476,7 +476,7 @@ class TestWebHCatServer(RMFTestCase):
 
     self.assertResourceCalled('Directory', '/usr/hdp/current/hive-webhcat/etc/webhcat',
       cd_access = 'a',
-      recursive=True)
+      create_parents = True)
 
     self.assertResourceCalled('File', '/usr/hdp/current/hive-webhcat/etc/webhcat/webhcat-log4j.properties',
                               content = 'log4jproperties\nline2',

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.0.6/OOZIE/test_oozie_client.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.0.6/OOZIE/test_oozie_client.py b/ambari-server/src/test/python/stacks/2.0.6/OOZIE/test_oozie_client.py
index 954e4b6..ce63b80 100644
--- a/ambari-server/src/test/python/stacks/2.0.6/OOZIE/test_oozie_client.py
+++ b/ambari-server/src/test/python/stacks/2.0.6/OOZIE/test_oozie_client.py
@@ -37,7 +37,7 @@ class TestOozieClient(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/oozie/conf',
                               owner = 'oozie',
                               group = 'hadoop',
-                              recursive = True
+                              create_parents = True
     )
     self.assertResourceCalled('XmlConfig', 'oozie-site.xml',
                               owner = 'oozie',
@@ -92,7 +92,7 @@ class TestOozieClient(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/oozie/conf',
                               owner = 'oozie',
                               group = 'hadoop',
-                              recursive = True
+                              create_parents = True
     )
     self.assertResourceCalled('XmlConfig', 'oozie-site.xml',
                               owner = 'oozie',
@@ -153,7 +153,7 @@ class TestOozieClient(RMFTestCase):
     self.assertResourceCalled('Directory', '/usr/hdp/current/oozie-client/conf',
                               owner = 'oozie',
                               group = 'hadoop',
-                              recursive = True
+                              create_parents = True
     )
     self.assertResourceCalled('XmlConfig', 'oozie-site.xml',
                               owner = 'oozie',

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.0.6/OOZIE/test_oozie_server.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.0.6/OOZIE/test_oozie_server.py b/ambari-server/src/test/python/stacks/2.0.6/OOZIE/test_oozie_server.py
index 03e8934..33facf7 100644
--- a/ambari-server/src/test/python/stacks/2.0.6/OOZIE/test_oozie_server.py
+++ b/ambari-server/src/test/python/stacks/2.0.6/OOZIE/test_oozie_server.py
@@ -89,7 +89,7 @@ class TestOozieServer(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/oozie/conf',
                               owner = 'oozie',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('XmlConfig', 'oozie-site.xml',
                               group = 'hadoop',
@@ -142,67 +142,67 @@ class TestOozieServer(RMFTestCase):
                               owner = 'oozie',
                               cd_access = 'a',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               )
     self.assertResourceCalled('Directory', '/var/run/oozie',
                               owner = 'oozie',
                               cd_access = 'a',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               )
     self.assertResourceCalled('Directory', '/var/log/oozie',
                               owner = 'oozie',
                               cd_access = 'a',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               )
     self.assertResourceCalled('Directory', '/var/tmp/oozie',
                               owner = 'oozie',
                               cd_access = 'a',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               )
     self.assertResourceCalled('Directory', '/hadoop/oozie/data',
                               owner = 'oozie',
                               cd_access = 'a',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               )
     self.assertResourceCalled('Directory', '/var/lib/oozie',
                               owner = 'oozie',
                               cd_access = 'a',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               )
     self.assertResourceCalled('Directory', '/var/lib/oozie/oozie-server/webapps/',
                               owner = 'oozie',
                               cd_access = 'a',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               )
     self.assertResourceCalled('Directory', '/var/lib/oozie/oozie-server/conf',
                               owner = 'oozie',
                               cd_access = 'a',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               )
     self.assertResourceCalled('Directory', '/var/lib/oozie/oozie-server',
                               owner = 'oozie',
-                              recursive = True,
+                              create_parents = True,
                               group = 'hadoop',
                               mode = 0755,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('Directory', '/usr/lib/oozie/libext',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('Execute', ('tar', '-xvf', '/usr/lib/oozie/oozie-sharelib.tar.gz', '-C', '/usr/lib/oozie'),
         not_if = "ambari-sudo.sh su oozie -l -s /bin/bash -c '[RMF_EXPORT_PLACEHOLDER]ls /var/run/oozie/oozie.pid >/dev/null 2>&1 && ps -p `cat /var/run/oozie/oozie.pid` >/dev/null 2>&1' || test -f /usr/lib/oozie/.hashcode && test -d /usr/lib/oozie/share && [[ `cat /usr/lib/oozie/.hashcode` == 'abc123hash' ]]",
@@ -297,7 +297,7 @@ class TestOozieServer(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/oozie/conf',
                               owner = 'oozie',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('XmlConfig', 'oozie-site.xml',
                               group = 'hadoop',
@@ -347,67 +347,67 @@ class TestOozieServer(RMFTestCase):
                               owner = 'oozie',
                               cd_access = 'a',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               )
     self.assertResourceCalled('Directory', '/var/run/oozie',
                               owner = 'oozie',
                               cd_access = 'a',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               )
     self.assertResourceCalled('Directory', '/var/log/oozie',
                               owner = 'oozie',
                               cd_access = 'a',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               )
     self.assertResourceCalled('Directory', '/var/tmp/oozie',
                               owner = 'oozie',
                               cd_access = 'a',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               )
     self.assertResourceCalled('Directory', '/hadoop/oozie/data',
                               owner = 'oozie',
                               cd_access = 'a',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               )
     self.assertResourceCalled('Directory', '/var/lib/oozie',
                               owner = 'oozie',
                               cd_access = 'a',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               )
     self.assertResourceCalled('Directory', '/var/lib/oozie/oozie-server/webapps/',
                               owner = 'oozie',
                               cd_access = 'a',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               )
     self.assertResourceCalled('Directory', '/var/lib/oozie/oozie-server/conf',
                               owner = 'oozie',
                               cd_access = 'a',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               )
     self.assertResourceCalled('Directory', '/var/lib/oozie/oozie-server',
                               owner = 'oozie',
-                              recursive = True,
+                              create_parents = True,
                               group = 'hadoop',
                               mode = 0755,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('Directory', '/usr/lib/oozie/libext',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('Execute', ('tar', '-xvf', '/usr/lib/oozie/oozie-sharelib.tar.gz', '-C', '/usr/lib/oozie'),
                               not_if = "ambari-sudo.sh su oozie -l -s /bin/bash -c '[RMF_EXPORT_PLACEHOLDER]ls /var/run/oozie/oozie.pid >/dev/null 2>&1 && ps -p `cat /var/run/oozie/oozie.pid` >/dev/null 2>&1' || test -f /usr/lib/oozie/.hashcode && test -d /usr/lib/oozie/share && [[ `cat /usr/lib/oozie/.hashcode` == 'abc123hash' ]]",
@@ -433,7 +433,7 @@ class TestOozieServer(RMFTestCase):
                               )
     self.assertResourceCalled('Execute', 'yes | ambari-sudo.sh cp /tmp/sqla-client-jdbc/java/* /usr/lib/oozie/libext')
     self.assertResourceCalled('Directory', '/usr/lib/oozie/libext/native/lib64',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('Execute', 'yes | ambari-sudo.sh cp /tmp/sqla-client-jdbc/native/lib64/* /usr/lib/oozie/libext/native/lib64')
     self.assertResourceCalled('Execute', 'ambari-sudo.sh chown -R oozie:hadoop /usr/lib/oozie/libext/*')
@@ -658,7 +658,7 @@ class TestOozieServer(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/oozie/conf',
                               owner = 'oozie',
                               group = 'hadoop',
-                              recursive = True
+                              create_parents = True
     )
     self.assertResourceCalled('XmlConfig', 'oozie-site.xml',
                               owner = 'oozie',
@@ -706,68 +706,68 @@ class TestOozieServer(RMFTestCase):
     self.assertResourceCalled('Directory', '/usr/lib/oozie//var/tmp/oozie',
         owner = 'oozie',
         group = 'hadoop',
-        recursive = True,
+        create_parents = True,
         mode = 0755,
         cd_access='a'
     )
     self.assertResourceCalled('Directory', '/var/run/oozie',
                               owner = 'oozie',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access='a'
                               )
     self.assertResourceCalled('Directory', '/var/log/oozie',
                               owner = 'oozie',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access='a'
                               )
     self.assertResourceCalled('Directory', '/var/tmp/oozie',
                               owner = 'oozie',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access='a'
                               )
     self.assertResourceCalled('Directory', '/hadoop/oozie/data',
                               owner = 'oozie',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access='a'
                               )
     self.assertResourceCalled('Directory', '/var/lib/oozie',
                               owner = 'oozie',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access='a'
                               )
     self.assertResourceCalled('Directory', '/var/lib/oozie/oozie-server/webapps/',
                               owner = 'oozie',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access='a'
                               )
     self.assertResourceCalled('Directory', '/var/lib/oozie/oozie-server/conf',
                               owner = 'oozie',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access='a'
                               )
     self.assertResourceCalled('Directory', '/var/lib/oozie/oozie-server',
                               owner = 'oozie',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access='a'
                               )
     self.assertResourceCalled('Directory', '/usr/lib/oozie/libext',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('Execute', ('tar', '-xvf', '/usr/lib/oozie/oozie-sharelib.tar.gz', '-C', '/usr/lib/oozie'),
         not_if = "ambari-sudo.sh su oozie -l -s /bin/bash -c '[RMF_EXPORT_PLACEHOLDER]ls /var/run/oozie/oozie.pid >/dev/null 2>&1 && ps -p `cat /var/run/oozie/oozie.pid` >/dev/null 2>&1' || test -f /usr/lib/oozie/.hashcode && test -d /usr/lib/oozie/share && [[ `cat /usr/lib/oozie/.hashcode` == 'abc123hash' ]]",
@@ -837,7 +837,7 @@ class TestOozieServer(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/oozie/conf',
                               owner = 'oozie',
                               group = 'hadoop',
-                              recursive = True
+                              create_parents = True
                               )
     self.assertResourceCalled('XmlConfig', 'oozie-site.xml',
                               owner = 'oozie',
@@ -885,68 +885,68 @@ class TestOozieServer(RMFTestCase):
     self.assertResourceCalled('Directory', '/usr/lib/oozie//var/tmp/oozie',
         owner = 'oozie',
         group = 'hadoop',
-        recursive = True,
+        create_parents = True,
         mode = 0755,
         cd_access='a'
     )
     self.assertResourceCalled('Directory', '/var/run/oozie',
                               owner = 'oozie',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access='a'
                               )
     self.assertResourceCalled('Directory', '/var/log/oozie',
                               owner = 'oozie',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access='a'
                               )
     self.assertResourceCalled('Directory', '/var/tmp/oozie',
                               owner = 'oozie',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access='a'
                               )
     self.assertResourceCalled('Directory', '/hadoop/oozie/data',
                               owner = 'oozie',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access='a'
                               )
     self.assertResourceCalled('Directory', '/var/lib/oozie',
                               owner = 'oozie',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access='a'
                               )
     self.assertResourceCalled('Directory', '/var/lib/oozie/oozie-server/webapps/',
                               owner = 'oozie',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access='a'
                               )
     self.assertResourceCalled('Directory', '/var/lib/oozie/oozie-server/conf',
                               owner = 'oozie',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access='a'
                               )
     self.assertResourceCalled('Directory', '/var/lib/oozie/oozie-server',
                               owner = 'oozie',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access='a'
                               )
     self.assertResourceCalled('Directory', '/usr/lib/oozie/libext',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('Execute', ('tar', '-xvf', '/usr/lib/oozie/oozie-sharelib.tar.gz', '-C', '/usr/lib/oozie'),
         not_if = "ambari-sudo.sh su oozie -l -s /bin/bash -c '[RMF_EXPORT_PLACEHOLDER]ls /var/run/oozie/oozie.pid >/dev/null 2>&1 && ps -p `cat /var/run/oozie/oozie.pid` >/dev/null 2>&1' || test -f /usr/lib/oozie/.hashcode && test -d /usr/lib/oozie/share && [[ `cat /usr/lib/oozie/.hashcode` == 'abc123hash' ]]",
@@ -1003,7 +1003,7 @@ class TestOozieServer(RMFTestCase):
       self.assertResourceCalled('Directory', '/etc/oozie/conf/action-conf/hive',
                               owner = 'oozie',
                               group = 'hadoop',
-                              recursive = True
+                              create_parents = True
                               )
       self.assertResourceCalled('XmlConfig', 'hive-site',
                                 owner = 'oozie',

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.0.6/PIG/test_pig_client.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.0.6/PIG/test_pig_client.py b/ambari-server/src/test/python/stacks/2.0.6/PIG/test_pig_client.py
index 9d4b062..99b795e 100644
--- a/ambari-server/src/test/python/stacks/2.0.6/PIG/test_pig_client.py
+++ b/ambari-server/src/test/python/stacks/2.0.6/PIG/test_pig_client.py
@@ -35,7 +35,7 @@ class TestPigClient(RMFTestCase):
     )
 
     self.assertResourceCalled('Directory', '/etc/pig/conf',
-      recursive = True,
+      create_parents = True,
       owner = 'hdfs',
       group = 'hadoop'
     )
@@ -70,7 +70,7 @@ class TestPigClient(RMFTestCase):
     )
     
     self.assertResourceCalled('Directory', '/etc/pig/conf',
-      recursive = True,
+      create_parents = True,
       owner = 'hdfs',
       group = 'hadoop'
     )
@@ -110,7 +110,7 @@ class TestPigClient(RMFTestCase):
     )
 
     self.assertResourceCalled('Directory', '/usr/hdp/current/pig-client/conf',
-                              recursive = True,
+                              create_parents = True,
                               owner = 'hdfs',
                               group = 'hadoop'
     )

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.0.6/SQOOP/test_sqoop.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.0.6/SQOOP/test_sqoop.py b/ambari-server/src/test/python/stacks/2.0.6/SQOOP/test_sqoop.py
index 6717649..5a10305 100644
--- a/ambari-server/src/test/python/stacks/2.0.6/SQOOP/test_sqoop.py
+++ b/ambari-server/src/test/python/stacks/2.0.6/SQOOP/test_sqoop.py
@@ -36,7 +36,7 @@ class TestSqoop(RMFTestCase):
     self.assertResourceCalled('Link', '/usr/lib/sqoop/lib/mysql-connector-java.jar',
                               to = '/usr/share/java/mysql-connector-java.jar',)
     self.assertResourceCalled('Directory', '/usr/lib/sqoop/conf',
-                              recursive = True,
+                              create_parents = True,
                               owner = 'sqoop',
                               group = 'hadoop',)
     self.assertResourceCalled('File', '/usr/lib/sqoop/conf/sqoop-env.sh',
@@ -87,7 +87,7 @@ class TestSqoop(RMFTestCase):
     self.assertResourceCalled('Directory', '/usr/lib/sqoop/conf',
                               owner = 'sqoop',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/usr/lib/sqoop/conf/sqoop-env.sh',
                               content = InlineTemplate(self.getConfig()['configurations']['sqoop-env']['content']),

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.0.6/YARN/test_historyserver.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.0.6/YARN/test_historyserver.py b/ambari-server/src/test/python/stacks/2.0.6/YARN/test_historyserver.py
index 1108d8f..185db68 100644
--- a/ambari-server/src/test/python/stacks/2.0.6/YARN/test_historyserver.py
+++ b/ambari-server/src/test/python/stacks/2.0.6/YARN/test_historyserver.py
@@ -276,57 +276,55 @@ class TestHistoryServer(RMFTestCase):
     self.assertResourceCalled('Directory', '/hadoop/mapreduce/jhs',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
-    )
-    self.assertResourceCalled('Execute', ('chown', '-R', u'mapred:hadoop', '/hadoop/mapreduce/jhs'),
-        sudo = True,
+      recursive_ownership = True,
     )
     self.assertResourceCalled('Directory', '/var/run/hadoop-yarn',
       owner = 'yarn',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/run/hadoop-yarn/yarn',
       owner = 'yarn',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-yarn/yarn',
       owner = 'yarn',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/run/hadoop-mapreduce',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/run/hadoop-mapreduce/mapred',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-mapreduce',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-mapreduce/mapred',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-yarn',
       owner = 'yarn',
-      recursive = True,
+      create_parents = True,
       ignore_failures = True,
       cd_access = 'a',
     )
@@ -399,7 +397,7 @@ class TestHistoryServer(RMFTestCase):
                               )
     self.assertResourceCalled('Directory', '/cgroups_test/cpu',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access="a"
     )
@@ -524,57 +522,55 @@ class TestHistoryServer(RMFTestCase):
     self.assertResourceCalled('Directory', '/hadoop/mapreduce/jhs',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
-    )
-    self.assertResourceCalled('Execute', ('chown', '-R', u'mapred:hadoop', '/hadoop/mapreduce/jhs'),
-        sudo = True,
+      recursive_ownership = True,
     )
     self.assertResourceCalled('Directory', '/var/run/hadoop-yarn',
       owner = 'yarn',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/run/hadoop-yarn/yarn',
       owner = 'yarn',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-yarn/yarn',
       owner = 'yarn',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/run/hadoop-mapreduce',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/run/hadoop-mapreduce/mapred',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-mapreduce',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-mapreduce/mapred',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-yarn',
       owner = 'yarn',
-      recursive = True,
+      create_parents = True,
       ignore_failures = True,
       cd_access = 'a',
     )
@@ -647,7 +643,7 @@ class TestHistoryServer(RMFTestCase):
     )
     self.assertResourceCalled('Directory', '/cgroups_test/cpu',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access="a"
     )

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.0.6/YARN/test_mapreduce2_client.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.0.6/YARN/test_mapreduce2_client.py b/ambari-server/src/test/python/stacks/2.0.6/YARN/test_mapreduce2_client.py
index 6d310d4..a66d829 100644
--- a/ambari-server/src/test/python/stacks/2.0.6/YARN/test_mapreduce2_client.py
+++ b/ambari-server/src/test/python/stacks/2.0.6/YARN/test_mapreduce2_client.py
@@ -46,48 +46,48 @@ class TestMapReduce2Client(RMFTestCase):
     self.assertResourceCalled('Directory', '/var/run/hadoop-yarn',
       owner = 'yarn',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/run/hadoop-yarn/yarn',
       owner = 'yarn',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-yarn/yarn',
       owner = 'yarn',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/run/hadoop-mapreduce',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/run/hadoop-mapreduce/mapred',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-mapreduce',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-mapreduce/mapred',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-yarn',
       owner = 'yarn',
-      recursive = True,
+      create_parents = True,
       ignore_failures = True,
       cd_access = 'a',
     )
@@ -160,7 +160,7 @@ class TestMapReduce2Client(RMFTestCase):
                               )
     self.assertResourceCalled('Directory', '/cgroups_test/cpu',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access="a"
     )
@@ -213,48 +213,48 @@ class TestMapReduce2Client(RMFTestCase):
     self.assertResourceCalled('Directory', '/var/run/hadoop-yarn',
       owner = 'yarn',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/run/hadoop-yarn/yarn',
       owner = 'yarn',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-yarn/yarn',
       owner = 'yarn',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/run/hadoop-mapreduce',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/run/hadoop-mapreduce/mapred',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-mapreduce',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-mapreduce/mapred',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-yarn',
       owner = 'yarn',
-      recursive = True,
+      create_parents = True,
       ignore_failures = True,
       cd_access = 'a',
     )
@@ -327,7 +327,7 @@ class TestMapReduce2Client(RMFTestCase):
     )
     self.assertResourceCalled('Directory', '/cgroups_test/cpu',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access="a"
     )


[2/5] ambari git commit: AMBARI-14396. Add support for recursive chown in resource management library. (aonishuk)

Posted by ao...@apache.org.
http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.0.6/YARN/test_nodemanager.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.0.6/YARN/test_nodemanager.py b/ambari-server/src/test/python/stacks/2.0.6/YARN/test_nodemanager.py
index 201443a..d9f0d2e 100644
--- a/ambari-server/src/test/python/stacks/2.0.6/YARN/test_nodemanager.py
+++ b/ambari-server/src/test/python/stacks/2.0.6/YARN/test_nodemanager.py
@@ -137,86 +137,85 @@ class TestNodeManager(RMFTestCase):
     self.assertNoMoreResources()
 
   def assert_configure_default(self):
-    self.assertResourceCalled('Directory', '/hadoop/yarn/local',
+    self.assertResourceCalled('Directory', '/hadoop/yarn/log',
                               owner = 'yarn',
                               group = 'hadoop',
-                              mode = 0775,
-                              recursive = True,
+                              create_parents = True,
                               ignore_failures = True,
+                              mode = 0775,
                               cd_access='a'
                               )
-    self.assertResourceCalled('Directory', '/hadoop/yarn/local1',
+    self.assertResourceCalled('Directory', '/hadoop/yarn/log1',
                               owner = 'yarn',
-                              recursive = True,
                               group = 'hadoop',
+                              create_parents = True,
                               ignore_failures = True,
                               mode = 0775,
                               cd_access='a'
                               )
-    self.assertResourceCalled('Directory', '/hadoop/yarn/log',
+    self.assertResourceCalled('Directory', '/hadoop/yarn/local',
                               owner = 'yarn',
                               group = 'hadoop',
-                              recursive = True,
-                              ignore_failures = True,
                               mode = 0775,
-                              cd_access='a'
+                              create_parents = True,
+                              ignore_failures = True,
+                              cd_access='a',
+                              recursive_mode_flags = {'d': 'a+rwx', 'f': 'a+rw'},
                               )
-    self.assertResourceCalled('Directory', '/hadoop/yarn/log1',
+    self.assertResourceCalled('Directory', '/hadoop/yarn/local1',
                               owner = 'yarn',
+                              create_parents = True,
                               group = 'hadoop',
-                              recursive = True,
                               ignore_failures = True,
                               mode = 0775,
-                              cd_access='a'
+                              cd_access='a',
+                              recursive_mode_flags = {'d': 'a+rwx', 'f': 'a+rw'}
                               )
-    self.assertResourceCalled('Execute', ('chmod', '-R', '755', u'/hadoop/yarn/local',  u'/hadoop/yarn/local1'),
-        sudo = True,
-    )
     self.assertResourceCalled('Directory', '/var/run/hadoop-yarn',
       owner = 'yarn',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/run/hadoop-yarn/yarn',
       owner = 'yarn',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-yarn/yarn',
       owner = 'yarn',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/run/hadoop-mapreduce',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/run/hadoop-mapreduce/mapred',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-mapreduce',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-mapreduce/mapred',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-yarn',
       owner = 'yarn',
-      recursive = True,
+      create_parents = True,
       ignore_failures = True,
       cd_access = 'a',
     )
@@ -289,7 +288,7 @@ class TestNodeManager(RMFTestCase):
                               )
     self.assertResourceCalled('Directory', '/cgroups_test/cpu',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access="a"
     )
@@ -340,70 +339,69 @@ class TestNodeManager(RMFTestCase):
     self.assertResourceCalled('File', '/var/lib/hadoop-yarn/nm_security_enabled',
                               content= 'Marker file to track first start after enabling/disabling security. During first start yarn local, log dirs are removed and recreated'
     )
-    self.assertResourceCalled('Directory', '/hadoop/yarn/local',
+    self.assertResourceCalled('Directory', '/hadoop/yarn/log',
                               owner = 'yarn',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               ignore_failures = True,
                               mode = 0775,
-                              cd_access='a'
+                              cd_access='a',
+                              
                               )
-    self.assertResourceCalled('Directory', '/hadoop/yarn/log',
+    self.assertResourceCalled('Directory', '/hadoop/yarn/local',
                               owner = 'yarn',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               ignore_failures = True,
                               mode = 0775,
-                              cd_access='a'
+                              cd_access='a',
+                              recursive_mode_flags = {'d': 'a+rwx', 'f': 'a+rw'},
                               )
-    self.assertResourceCalled('Execute', ('chmod', '-R', '755', u'/hadoop/yarn/local'),
-        sudo = True,
-    )
     self.assertResourceCalled('Directory', '/var/run/hadoop-yarn',
       owner = 'yarn',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/run/hadoop-yarn/yarn',
       owner = 'yarn',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-yarn/yarn',
       owner = 'yarn',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/run/hadoop-mapreduce',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/run/hadoop-mapreduce/mapred',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-mapreduce',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-mapreduce/mapred',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-yarn',
       owner = 'yarn',
-      recursive = True,
+      create_parents = True,
       ignore_failures = True,
       cd_access = 'a',
     )
@@ -476,7 +474,7 @@ class TestNodeManager(RMFTestCase):
     )
     self.assertResourceCalled('Directory', '/cgroups_test/cpu',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access="a"
     )

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.0.6/YARN/test_resourcemanager.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.0.6/YARN/test_resourcemanager.py b/ambari-server/src/test/python/stacks/2.0.6/YARN/test_resourcemanager.py
index 610f98c..ee6cd3a 100644
--- a/ambari-server/src/test/python/stacks/2.0.6/YARN/test_resourcemanager.py
+++ b/ambari-server/src/test/python/stacks/2.0.6/YARN/test_resourcemanager.py
@@ -183,48 +183,48 @@ class TestResourceManager(RMFTestCase):
     self.assertResourceCalled('Directory', '/var/run/hadoop-yarn',
       owner = 'yarn',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/run/hadoop-yarn/yarn',
       owner = 'yarn',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-yarn/yarn',
       owner = 'yarn',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/run/hadoop-mapreduce',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/run/hadoop-mapreduce/mapred',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-mapreduce',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-mapreduce/mapred',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-yarn',
       owner = 'yarn',
-      recursive = True,
+      create_parents = True,
       ignore_failures = True,
       cd_access = 'a',
     )
@@ -301,7 +301,7 @@ class TestResourceManager(RMFTestCase):
                               )
     self.assertResourceCalled('Directory', '/cgroups_test/cpu',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access="a"
     )
@@ -346,48 +346,48 @@ class TestResourceManager(RMFTestCase):
     self.assertResourceCalled('Directory', '/var/run/hadoop-yarn',
       owner = 'yarn',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/run/hadoop-yarn/yarn',
       owner = 'yarn',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-yarn/yarn',
       owner = 'yarn',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/run/hadoop-mapreduce',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/run/hadoop-mapreduce/mapred',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-mapreduce',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-mapreduce/mapred',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-yarn',
       owner = 'yarn',
-      recursive = True,
+      create_parents = True,
       ignore_failures = True,
       cd_access = 'a',
     )
@@ -464,7 +464,7 @@ class TestResourceManager(RMFTestCase):
     )
     self.assertResourceCalled('Directory', '/cgroups_test/cpu',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access="a"
     )

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.0.6/YARN/test_yarn_client.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.0.6/YARN/test_yarn_client.py b/ambari-server/src/test/python/stacks/2.0.6/YARN/test_yarn_client.py
index 199721e..be075bc 100644
--- a/ambari-server/src/test/python/stacks/2.0.6/YARN/test_yarn_client.py
+++ b/ambari-server/src/test/python/stacks/2.0.6/YARN/test_yarn_client.py
@@ -46,48 +46,48 @@ class TestYarnClient(RMFTestCase):
     self.assertResourceCalled('Directory', '/var/run/hadoop-yarn',
       owner = 'yarn',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/run/hadoop-yarn/yarn',
       owner = 'yarn',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-yarn/yarn',
       owner = 'yarn',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/run/hadoop-mapreduce',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/run/hadoop-mapreduce/mapred',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-mapreduce',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-mapreduce/mapred',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-yarn',
       owner = 'yarn',
-      recursive = True,
+      create_parents = True,
       ignore_failures = True,
       cd_access = 'a',
     )
@@ -160,7 +160,7 @@ class TestYarnClient(RMFTestCase):
                               )
     self.assertResourceCalled('Directory', '/cgroups_test/cpu',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access="a"
     )
@@ -213,48 +213,48 @@ class TestYarnClient(RMFTestCase):
     self.assertResourceCalled('Directory', '/var/run/hadoop-yarn',
       owner = 'yarn',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/run/hadoop-yarn/yarn',
       owner = 'yarn',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-yarn/yarn',
       owner = 'yarn',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/run/hadoop-mapreduce',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/run/hadoop-mapreduce/mapred',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-mapreduce',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-mapreduce/mapred',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-yarn',
       owner = 'yarn',
-      recursive = True,
+      create_parents = True,
       ignore_failures = True,
       cd_access = 'a',
     )
@@ -327,7 +327,7 @@ class TestYarnClient(RMFTestCase):
     )
     self.assertResourceCalled('Directory', '/cgroups_test/cpu',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access="a"
     )
@@ -388,48 +388,48 @@ class TestYarnClient(RMFTestCase):
     self.assertResourceCalled('Directory', '/var/run/hadoop-yarn',
       owner = 'yarn',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/run/hadoop-yarn/yarn',
       owner = 'yarn',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-yarn/yarn',
       owner = 'yarn',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/run/hadoop-mapreduce',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/run/hadoop-mapreduce/mapred',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-mapreduce',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-mapreduce/mapred',
       owner = 'mapred',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/var/log/hadoop-yarn',
       owner = 'yarn',
-      recursive = True,
+      create_parents = True,
       ignore_failures = True,
       cd_access = 'a',
     )
@@ -502,7 +502,7 @@ class TestYarnClient(RMFTestCase):
                               )
     self.assertResourceCalled('Directory', '/cgroups_test/cpu',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access="a"
     )

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.0.6/ZOOKEEPER/test_zookeeper_client.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.0.6/ZOOKEEPER/test_zookeeper_client.py b/ambari-server/src/test/python/stacks/2.0.6/ZOOKEEPER/test_zookeeper_client.py
index 0d24a73..468f48d 100644
--- a/ambari-server/src/test/python/stacks/2.0.6/ZOOKEEPER/test_zookeeper_client.py
+++ b/ambari-server/src/test/python/stacks/2.0.6/ZOOKEEPER/test_zookeeper_client.py
@@ -39,7 +39,7 @@ class TestZookeeperClient(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/zookeeper/conf',
       owner = 'zookeeper',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
     )
     self.assertResourceCalled('File', '/etc/zookeeper/conf/zookeeper-env.sh',
       owner = 'zookeeper',
@@ -61,19 +61,19 @@ class TestZookeeperClient(RMFTestCase):
     self.assertResourceCalled('Directory', '/var/run/zookeeper',
       owner = 'zookeeper',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       mode = 0755,
     )
     self.assertResourceCalled('Directory', '/var/log/zookeeper',
       owner = 'zookeeper',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       mode = 0755,
     )
     self.assertResourceCalled('Directory', '/hadoop/zookeeper',
       owner = 'zookeeper',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access='a',
       mode = 0755,
     )
@@ -102,7 +102,7 @@ class TestZookeeperClient(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/zookeeper/conf',
       owner = 'zookeeper',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
     )
     self.assertResourceCalled('File', '/etc/zookeeper/conf/zookeeper-env.sh',
       owner = 'zookeeper',
@@ -124,19 +124,19 @@ class TestZookeeperClient(RMFTestCase):
     self.assertResourceCalled('Directory', '/var/run/zookeeper',
       owner = 'zookeeper',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       mode = 0755,
     )
     self.assertResourceCalled('Directory', '/var/log/zookeeper',
       owner = 'zookeeper',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       mode = 0755,
     )
     self.assertResourceCalled('Directory', '/hadoop/zookeeper',
       owner = 'zookeeper',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access='a',
       mode = 0755
     )

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.0.6/ZOOKEEPER/test_zookeeper_server.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.0.6/ZOOKEEPER/test_zookeeper_server.py b/ambari-server/src/test/python/stacks/2.0.6/ZOOKEEPER/test_zookeeper_server.py
index 336a3bc..260cf33 100644
--- a/ambari-server/src/test/python/stacks/2.0.6/ZOOKEEPER/test_zookeeper_server.py
+++ b/ambari-server/src/test/python/stacks/2.0.6/ZOOKEEPER/test_zookeeper_server.py
@@ -119,7 +119,7 @@ class TestZookeeperServer(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/zookeeper/conf',
       owner = 'zookeeper',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
     )
     self.assertResourceCalled('File', '/etc/zookeeper/conf/zookeeper-env.sh',
       owner = 'zookeeper',
@@ -141,19 +141,19 @@ class TestZookeeperServer(RMFTestCase):
     self.assertResourceCalled('Directory', '/var/run/zookeeper',
       owner = 'zookeeper',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       mode = 0755,
     )
     self.assertResourceCalled('Directory', '/var/log/zookeeper',
       owner = 'zookeeper',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       mode = 0755,
     )
     self.assertResourceCalled('Directory', '/hadoop/zookeeper',
       owner = 'zookeeper',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access='a',
       mode = 0755,
     )
@@ -177,7 +177,7 @@ class TestZookeeperServer(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/zookeeper/conf',
       owner = 'zookeeper',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
     )
     self.assertResourceCalled('File', '/etc/zookeeper/conf/zookeeper-env.sh',
       owner = 'zookeeper',
@@ -199,19 +199,19 @@ class TestZookeeperServer(RMFTestCase):
     self.assertResourceCalled('Directory', '/var/run/zookeeper',
       owner = 'zookeeper',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       mode = 0755,
     )
     self.assertResourceCalled('Directory', '/var/log/zookeeper',
       owner = 'zookeeper',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       mode = 0755,
     )
     self.assertResourceCalled('Directory', '/hadoop/zookeeper',
       owner = 'zookeeper',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access='a',
       mode = 0755,
     )

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.0.6/hooks/before-ANY/test_before_any.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.0.6/hooks/before-ANY/test_before_any.py b/ambari-server/src/test/python/stacks/2.0.6/hooks/before-ANY/test_before_any.py
index a7172dd..4020ede 100644
--- a/ambari-server/src/test/python/stacks/2.0.6/hooks/before-ANY/test_before_any.py
+++ b/ambari-server/src/test/python/stacks/2.0.6/hooks/before-ANY/test_before_any.py
@@ -123,7 +123,7 @@ class TestHookBeforeInstall(RMFTestCase):
     self.assertResourceCalled('Directory', self.TMP_PATH,
         owner = 'hbase',
         mode = 0775,
-        recursive = True,
+        create_parents = True,
         cd_access='a'
     )
     self.assertResourceCalled('File', '/tmp/changeUid.sh',
@@ -155,7 +155,7 @@ class TestHookBeforeInstall(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/hadoop/conf.empty',
         owner = 'root',
         group = 'hadoop',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('Link', '/etc/hadoop/conf',
         not_if = 'ls /etc/hadoop/conf',
@@ -173,7 +173,7 @@ class TestHookBeforeInstall(RMFTestCase):
     )
 
     self.assertResourceCalled('Directory', '/tmp/AMBARI-artifacts/',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/tmp/jdk-7u67-linux-x64.tar.gz',
                               content = DownloadSource('http://c6401.ambari.apache.org:8080/resources//jdk-7u67-linux-x64.tar.gz'),
@@ -189,11 +189,10 @@ class TestHookBeforeInstall(RMFTestCase):
                               mode = 0755,
                               cd_access = "a",
                               )
-    self.assertResourceCalled('Execute', ('chgrp', '-R', u'hadoop', u'/usr/jdk64/jdk1.7.0_45'),
-                              sudo = True,
-                              )
-    self.assertResourceCalled('Execute', ('chown', '-R', 'some_user', u'/usr/jdk64/jdk1.7.0_45'),
-                              sudo = True,
-                              )
+    self.assertResourceCalled('Directory', '/usr/jdk64/jdk1.7.0_45',
+        owner = 'some_user',
+        group = 'hadoop',
+        recursive_ownership = True,
+    )
 
     self.assertNoMoreResources()

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.0.6/hooks/before-START/test_before_start.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.0.6/hooks/before-START/test_before_start.py b/ambari-server/src/test/python/stacks/2.0.6/hooks/before-START/test_before_start.py
index 504fd04..da2b87f 100644
--- a/ambari-server/src/test/python/stacks/2.0.6/hooks/before-START/test_before_start.py
+++ b/ambari-server/src/test/python/stacks/2.0.6/hooks/before-START/test_before_start.py
@@ -42,18 +42,18 @@ class TestHookBeforeStart(RMFTestCase):
                               owner = 'root',
                               group = 'hadoop',
                               mode = 0775,
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('Directory', '/var/run/hadoop',
                               owner = 'root',
                               group = 'root',
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('Directory', '/tmp/hadoop-hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('File', '/etc/hadoop/conf/commons-logging.properties',
@@ -115,18 +115,18 @@ class TestHookBeforeStart(RMFTestCase):
                               owner = 'root',
                               group = 'hadoop',
                               mode = 0775,
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('Directory', '/var/run/hadoop',
                               owner = 'root',
                               group = 'root',
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('Directory', '/tmp/hadoop-hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('File', '/etc/hadoop/conf/commons-logging.properties',
@@ -193,18 +193,18 @@ class TestHookBeforeStart(RMFTestCase):
                               owner = 'root',
                               group = 'hadoop',
                               mode = 0775,
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('Directory', '/var/run/hadoop',
                               owner = 'root',
                               group = 'root',
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('Directory', '/tmp/hadoop-hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('File', '/etc/hadoop/conf/commons-logging.properties',
@@ -273,18 +273,18 @@ class TestHookBeforeStart(RMFTestCase):
                               owner = 'root',
                               group = 'hadoop',
                               mode = 0775,
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('Directory', '/var/run/hadoop',
                               owner = 'root',
                               group = 'root',
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('Directory', '/tmp/hadoop-hdfs',
                               owner = 'hdfs',
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('File', '/etc/hadoop/conf/commons-logging.properties',

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.1/FALCON/test_falcon_client.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.1/FALCON/test_falcon_client.py b/ambari-server/src/test/python/stacks/2.1/FALCON/test_falcon_client.py
index da52643..4d900eb 100644
--- a/ambari-server/src/test/python/stacks/2.1/FALCON/test_falcon_client.py
+++ b/ambari-server/src/test/python/stacks/2.1/FALCON/test_falcon_client.py
@@ -37,31 +37,31 @@ class TestFalconClient(RMFTestCase):
     )
     self.assertResourceCalled('Directory', '/var/run/falcon',
                               owner = 'falcon',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access = "a",
                               )
     self.assertResourceCalled('Directory', '/var/log/falcon',
                               owner = 'falcon',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access = "a",
                               )
     self.assertResourceCalled('Directory', '/var/lib/falcon/webapp',
                               owner = 'falcon',
-                              recursive = True
+                              create_parents = True
                               )
     self.assertResourceCalled('Directory', '/usr/lib/falcon',
                               owner = 'falcon',
-                              recursive = True
+                              create_parents = True
                               )
     self.assertResourceCalled('Directory', '/etc/falcon',
                               mode = 0755,
-                              recursive = True
+                              create_parents = True
                               )
     self.assertResourceCalled('Directory', '/etc/falcon/conf',
                               owner = 'falcon',
-                              recursive = True
+                              create_parents = True
                               )
     self.assertResourceCalled('File', '/etc/falcon/conf/falcon-env.sh',
                               content = InlineTemplate(self.getConfig()['configurations']['falcon-env']['content']),

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.1/FALCON/test_falcon_server.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.1/FALCON/test_falcon_server.py b/ambari-server/src/test/python/stacks/2.1/FALCON/test_falcon_server.py
index efdb9fe..b14a527 100644
--- a/ambari-server/src/test/python/stacks/2.1/FALCON/test_falcon_server.py
+++ b/ambari-server/src/test/python/stacks/2.1/FALCON/test_falcon_server.py
@@ -81,31 +81,31 @@ class TestFalconServer(RMFTestCase):
   def assert_configure_default(self):
     self.assertResourceCalled('Directory', '/var/run/falcon',
                               owner = 'falcon',
-                              recursive = True,
+                              create_parents = True,
                               cd_access = "a",
                               mode = 0755,
                               )
     self.assertResourceCalled('Directory', '/var/log/falcon',
                               owner = 'falcon',
-                              recursive = True,
+                              create_parents = True,
                               cd_access = "a",
                               mode = 0755,
                               )
     self.assertResourceCalled('Directory', '/var/lib/falcon/webapp',
                               owner = 'falcon',
-                              recursive = True
+                              create_parents = True
                               )
     self.assertResourceCalled('Directory', '/usr/lib/falcon',
                               owner = 'falcon',
-                              recursive = True
+                              create_parents = True
                               )
     self.assertResourceCalled('Directory', '/etc/falcon',
                               mode = 0755,
-                              recursive = True
+                              create_parents = True
     )
     self.assertResourceCalled('Directory', '/etc/falcon/conf',
                               owner = 'falcon',
-                              recursive = True
+                              create_parents = True
     )
     self.assertResourceCalled('File', '/etc/falcon/conf/falcon-env.sh',
                               content = InlineTemplate(self.getConfig()['configurations']['falcon-env']['content']),
@@ -129,7 +129,7 @@ class TestFalconServer(RMFTestCase):
                               )
     self.assertResourceCalled('Directory', '/hadoop/falcon/store',
                               owner = 'falcon',
-                              recursive = True
+                              create_parents = True
                               )
     self.assertResourceCalled('HdfsResource', '/apps/falcon',
         security_enabled = False,
@@ -146,7 +146,7 @@ class TestFalconServer(RMFTestCase):
     )
     self.assertResourceCalled('Directory', '/hadoop/falcon/store',
         owner = 'falcon',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('HdfsResource', '/apps/data-mirroring',
         security_enabled = False,
@@ -178,16 +178,16 @@ class TestFalconServer(RMFTestCase):
     )
     self.assertResourceCalled('Directory', '/hadoop/falcon',
                               owner = 'falcon',
-                              recursive = True,
+                              create_parents = True,
                               cd_access='a'
                               )
     self.assertResourceCalled('Directory', '/hadoop/falcon/embeddedmq',
                               owner = 'falcon',
-                              recursive = True
+                              create_parents = True
                               )
     self.assertResourceCalled('Directory', '/hadoop/falcon/embeddedmq/data',
                               owner = 'falcon',
-                              recursive = True
+                              create_parents = True
                               )
 
   @patch("os.path.isdir")
@@ -246,31 +246,31 @@ class TestFalconServer(RMFTestCase):
     )
     self.assertResourceCalled('Directory', '/var/run/falcon',
         owner = 'falcon',
-        recursive = True,
+        create_parents = True,
         cd_access = "a",
         mode = 0755,
     )
     self.assertResourceCalled('Directory', '/var/log/falcon',
         owner = 'falcon',
-        recursive = True,
+        create_parents = True,
         cd_access = "a",
         mode = 0755,
     )
     self.assertResourceCalled('Directory', '/usr/hdp/current/falcon-server/webapp',
         owner = 'falcon',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('Directory', '/usr/hdp/current/falcon-server',
         owner = 'falcon',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('Directory', '/etc/falcon',
-        recursive = True,
+        create_parents = True,
         mode = 0755,
     )
     self.assertResourceCalled('Directory', '/usr/hdp/current/falcon-server/conf',
         owner = 'falcon',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('File', '/usr/hdp/current/falcon-server/conf/falcon-env.sh',
         owner = 'falcon',
@@ -298,21 +298,21 @@ class TestFalconServer(RMFTestCase):
     )
     self.assertResourceCalled('Directory', '/hadoop/falcon/data/lineage/graphdb',
         owner = 'falcon',
-        recursive = True,
+        create_parents = True,
         group = 'hadoop',
         mode = 0775,
         cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/hadoop/falcon/data/lineage',
         owner = 'falcon',
-        recursive = True,
+        create_parents = True,
         group = 'hadoop',
         mode = 0775,
         cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/hadoop/falcon/store',
         owner = 'falcon',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('HdfsResource', '/apps/falcon',
         security_enabled = False,
@@ -332,7 +332,7 @@ class TestFalconServer(RMFTestCase):
     )
     self.assertResourceCalled('Directory', '/hadoop/falcon/store',
         owner = 'falcon',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('HdfsResource', '/apps/data-mirroring',
         security_enabled = False,
@@ -369,16 +369,16 @@ class TestFalconServer(RMFTestCase):
     )
     self.assertResourceCalled('Directory', '/hadoop/falcon',
         owner = 'falcon',
-        recursive = True,
+        create_parents = True,
         cd_access = 'a',
     )
     self.assertResourceCalled('Directory', '/hadoop/falcon/embeddedmq',
         owner = 'falcon',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('Directory', '/hadoop/falcon/embeddedmq/data',
         owner = 'falcon',
-        recursive = True,
+        create_parents = True,
     )
     self.assertResourceCalled('Execute', '/usr/hdp/current/falcon-server/bin/falcon-start -port 15000',
         environment = {'HADOOP_HOME': '/usr/hdp/current/hadoop-client'},

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.1/HIVE/test_hive_metastore.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.1/HIVE/test_hive_metastore.py b/ambari-server/src/test/python/stacks/2.1/HIVE/test_hive_metastore.py
index 6637040..6ef0081 100644
--- a/ambari-server/src/test/python/stacks/2.1/HIVE/test_hive_metastore.py
+++ b/ambari-server/src/test/python/stacks/2.1/HIVE/test_hive_metastore.py
@@ -190,7 +190,7 @@ class TestHiveMetastore(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/hive/conf',
                               owner = 'hive',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('XmlConfig', 'mapred-site.xml',
                               group = 'hadoop',
@@ -227,7 +227,7 @@ class TestHiveMetastore(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/security/limits.d',
                               owner = 'root',
                               group = 'root',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/etc/security/limits.d/hive.conf',
                               content = Template('hive.conf.j2'),
@@ -261,21 +261,21 @@ class TestHiveMetastore(RMFTestCase):
                               owner = 'hive',
                               group = 'hadoop',
                               mode = 0755,
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('Directory', '/var/log/hive',
                               owner = 'hive',
                               group = 'hadoop',
                               mode = 0755,
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('Directory', '/var/lib/hive',
                               owner = 'hive',
                               group = 'hadoop',
                               mode = 0755,
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
 
@@ -286,7 +286,7 @@ class TestHiveMetastore(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/hive/conf',
                               owner = 'hive',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('XmlConfig', 'mapred-site.xml',
                               group = 'hadoop',
@@ -323,7 +323,7 @@ class TestHiveMetastore(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/security/limits.d',
                               owner = 'root',
                               group = 'root',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/etc/security/limits.d/hive.conf',
                               content = Template('hive.conf.j2'),
@@ -357,21 +357,21 @@ class TestHiveMetastore(RMFTestCase):
                               owner = 'hive',
                               group = 'hadoop',
                               mode = 0755,
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('Directory', '/var/log/hive',
                               owner = 'hive',
                               group = 'hadoop',
                               mode = 0755,
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('Directory', '/var/lib/hive',
                               owner = 'hive',
                               group = 'hadoop',
                               mode = 0755,
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
 
@@ -641,7 +641,7 @@ class TestHiveMetastore(RMFTestCase):
     # we don't care about configure here - the strings are different anyway because this
     # is an upgrade, so just pop those resources off of the call stack
     self.assertResourceCalledIgnoreEarlier('Directory', '/var/lib/hive', owner = 'hive', group = 'hadoop',
-      mode = 0755, recursive = True, cd_access = 'a')
+      mode = 0755, create_parents = True, cd_access = 'a')
 
     self.assertResourceCalled('Execute', ('rm', '-f', '/usr/hdp/current/hive-server2/lib/ojdbc6.jar'),
         path = ['/bin', '/usr/bin/'],
@@ -722,7 +722,7 @@ class TestHiveMetastore(RMFTestCase):
     # we don't care about configure here - the strings are different anyway because this
     # is an upgrade, so just pop those resources off of the call stack
     self.assertResourceCalledIgnoreEarlier('Directory', '/var/lib/hive', owner = 'hive', group = 'hadoop',
-      mode = 0755, recursive = True, cd_access = 'a')
+      mode = 0755, create_parents = True, cd_access = 'a')
 
     self.assertResourceCalled('Execute', ('cp',
      '--remove-destination',
@@ -797,7 +797,7 @@ class TestHiveMetastore(RMFTestCase):
     # we don't care about configure here - the strings are different anyway because this
     # is an upgrade, so just pop those resources off of the call stack
     self.assertResourceCalledIgnoreEarlier('Directory', '/var/lib/hive', owner = 'hive', group = 'hadoop',
-      mode = 0755, recursive = True, cd_access = 'a')
+      mode = 0755, create_parents = True, cd_access = 'a')
 
     self.assertResourceCalled('Execute',
                               ('rm', '-f', '/usr/hdp/current/hive-server2/lib/ojdbc6.jar'),
@@ -818,7 +818,7 @@ class TestHiveMetastore(RMFTestCase):
 
     self.assertResourceCalled('Directory',
                               '/usr/hdp/current/hive-server2/lib/native/lib64',
-                              recursive = True)
+                              create_parents = True)
 
     self.assertResourceCalled('Execute',
                               ('yes | ambari-sudo.sh cp /tmp/sqla-client-jdbc/native/lib64/* /usr/hdp/current/hive-server2/lib/native/lib64'))
@@ -835,7 +835,7 @@ class TestHiveMetastore(RMFTestCase):
 
     self.assertResourceCalled('Directory',
                               '/usr/hdp/2.3.0.0-1234/hive/lib/native/lib64',
-                              recursive = True)
+                              create_parents = True)
 
     self.assertResourceCalled('Execute',
                               ('yes | ambari-sudo.sh cp /usr/hdp/current/hive-server2/lib/native/lib64/* /usr/hdp/2.3.0.0-1234/hive/lib/native/lib64'))

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_base.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_base.py b/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_base.py
index 301bb58..023b811 100644
--- a/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_base.py
+++ b/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_base.py
@@ -34,25 +34,25 @@ class TestStormBase(RMFTestCase):
       owner = 'storm',
       group = 'hadoop',
       mode = 0777,
-      recursive = True,
+      create_parents = True,
     )
     self.assertResourceCalled('Directory', '/var/run/storm',
       owner = 'storm',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access='a',
       mode=0755,
     )
     self.assertResourceCalled('Directory', '/hadoop/storm',
       owner = 'storm',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access='a',
       mode=0755,
     )
     self.assertResourceCalled('Directory', confDir,
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access='a'
     )
     self.assertResourceCalled('File', confDir + '/config.yaml',
@@ -77,25 +77,25 @@ class TestStormBase(RMFTestCase):
       owner = 'storm',
       group = 'hadoop',
       mode = 0777,
-      recursive = True,
+      create_parents = True,
     )
     self.assertResourceCalled('Directory', '/var/run/storm',
       owner = 'storm',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access='a',
       mode=0755,
     )
     self.assertResourceCalled('Directory', '/hadoop/storm',
       owner = 'storm',
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access='a',
       mode=0755,
     )
     self.assertResourceCalled('Directory', confDir,
       group = 'hadoop',
-      recursive = True,
+      create_parents = True,
       cd_access='a'
     )
     self.assertResourceCalled('File', confDir + '/config.yaml',

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.1/TEZ/test_tez_client.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.1/TEZ/test_tez_client.py b/ambari-server/src/test/python/stacks/2.1/TEZ/test_tez_client.py
index a23435b..6243913 100644
--- a/ambari-server/src/test/python/stacks/2.1/TEZ/test_tez_client.py
+++ b/ambari-server/src/test/python/stacks/2.1/TEZ/test_tez_client.py
@@ -43,7 +43,7 @@ class TestTezClient(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/tez/conf',
       owner = 'tez',
       group = 'hadoop',
-      recursive = True
+      create_parents = True
     )
 
     self.assertResourceCalled('XmlConfig', 'tez-site.xml',

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.1/YARN/test_apptimelineserver.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.1/YARN/test_apptimelineserver.py b/ambari-server/src/test/python/stacks/2.1/YARN/test_apptimelineserver.py
index f488509..4fccd91 100644
--- a/ambari-server/src/test/python/stacks/2.1/YARN/test_apptimelineserver.py
+++ b/ambari-server/src/test/python/stacks/2.1/YARN/test_apptimelineserver.py
@@ -96,48 +96,48 @@ class TestAppTimelineServer(RMFTestCase):
     self.assertResourceCalled('Directory', '/var/run/hadoop-yarn',
                               owner = 'yarn',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('Directory', '/var/run/hadoop-yarn/yarn',
                               owner = 'yarn',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('Directory', '/var/log/hadoop-yarn/yarn',
                               owner = 'yarn',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('Directory', '/var/run/hadoop-mapreduce',
                               owner = 'mapred',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('Directory', '/var/run/hadoop-mapreduce/mapred',
                               owner = 'mapred',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('Directory', '/var/log/hadoop-mapreduce',
                               owner = 'mapred',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('Directory', '/var/log/hadoop-mapreduce/mapred',
                               owner = 'mapred',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
                               )
     self.assertResourceCalled('Directory', '/var/log/hadoop-yarn',
                               owner = 'yarn',
-                              recursive = True,
+                              create_parents = True,
                               ignore_failures = True,
                               cd_access = 'a',
                               )
@@ -184,7 +184,7 @@ class TestAppTimelineServer(RMFTestCase):
     self.assertResourceCalled('Directory', '/var/log/hadoop-yarn/timeline',
                               owner = 'yarn',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               cd_access='a'
                               )
     self.assertResourceCalled('HdfsResource', None,
@@ -229,7 +229,7 @@ class TestAppTimelineServer(RMFTestCase):
                               )
     self.assertResourceCalled('Directory', '/cgroups_test/cpu',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access="a"
     )

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.2/KAFKA/test_kafka_broker.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.2/KAFKA/test_kafka_broker.py b/ambari-server/src/test/python/stacks/2.2/KAFKA/test_kafka_broker.py
index e368f2a..f1e0466 100644
--- a/ambari-server/src/test/python/stacks/2.2/KAFKA/test_kafka_broker.py
+++ b/ambari-server/src/test/python/stacks/2.2/KAFKA/test_kafka_broker.py
@@ -36,51 +36,41 @@ class TestKafkaBroker(RMFTestCase):
                          hdp_stack_version = self.STACK_VERSION,
                          target = RMFTestCase.TARGET_COMMON_SERVICES
     )
-
     self.assertResourceCalled('Directory', '/var/log/kafka',
                               owner = 'kafka',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
-                              cd_access = 'a'
+                              cd_access = 'a',
+                              recursive_ownership = True,
     )
 
     self.assertResourceCalled('Directory', '/var/run/kafka',
                               owner = 'kafka',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
-                              cd_access = 'a'
+                              cd_access = 'a',
+                              recursive_ownership = True,
     )
 
     self.assertResourceCalled('Directory', '/usr/hdp/current/kafka-broker/config',
                               owner = 'kafka',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
-                              cd_access = 'a'
+                              cd_access = 'a',
+                              recursive_ownership = True,
     )
-
-    self.assertResourceCalled('Execute', ('chown', '-R', u'kafka:hadoop', u'/var/log/kafka'),
-                              sudo = True)
-
-    self.assertResourceCalled('Execute', ('chown', '-R', u'kafka:hadoop', u'/var/run/kafka'),
-                              sudo = True)
-
-    self.assertResourceCalled('Execute', ('chown', '-R', u'kafka:hadoop', '/usr/hdp/current/kafka-broker/config'),
-                              sudo = True)
-
     self.assertResourceCalled('Directory', '/tmp/log/dir',
                               owner = 'kafka',
-                              recursive = True,
+                              create_parents = True,
                               group = 'hadoop',
                               mode = 0755,
                               cd_access = 'a',
+                              recursive_ownership = True,
     )
 
-    self.assertResourceCalled('Execute', ('chown', '-R', u'kafka:hadoop', u'/tmp/log/dir'),
-                              sudo = True)
-
 
   @patch("os.path.islink")
   @patch("os.path.realpath")
@@ -97,47 +87,39 @@ class TestKafkaBroker(RMFTestCase):
     self.assertResourceCalled('Directory', '/customdisk/var/log/kafka',
                               owner = 'kafka',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
-                              cd_access = 'a'
+                              cd_access = 'a',
+                              recursive_ownership = True,
     )
 
     self.assertResourceCalled('Directory', '/customdisk/var/run/kafka',
                               owner = 'kafka',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
-                              cd_access = 'a'
+                              cd_access = 'a',
+                              recursive_ownership = True,
     )
 
     self.assertResourceCalled('Directory', '/usr/hdp/current/kafka-broker/config',
                               owner = 'kafka',
                               group = 'hadoop',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
-                              cd_access = 'a'
+                              cd_access = 'a',
+                              recursive_ownership = True,
     )
 
-    self.assertResourceCalled('Execute', ('chown', '-R', u'kafka:hadoop', u'/customdisk/var/log/kafka'),
-                              sudo = True)
-
-    self.assertResourceCalled('Execute', ('chown', '-R', u'kafka:hadoop', u'/customdisk/var/run/kafka'),
-                              sudo = True)
-
-    self.assertResourceCalled('Execute', ('chown', '-R', u'kafka:hadoop', '/usr/hdp/current/kafka-broker/config'),
-                              sudo = True)
-
     self.assertResourceCalled('Directory', '/tmp/log/dir',
                               owner = 'kafka',
-                              recursive = True,
+                              create_parents = True,
                               group = 'hadoop',
                               mode = 0755,
                               cd_access = 'a',
+                              recursive_ownership = True,
     )
 
-    self.assertResourceCalled('Execute', ('chown', '-R', u'kafka:hadoop', u'/tmp/log/dir'),
-                              sudo = True)
-
     self.assertTrue(islink_mock.called)
     self.assertTrue(realpath_mock.called)
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.2/KERBEROS/test_kerberos_client.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.2/KERBEROS/test_kerberos_client.py b/ambari-server/src/test/python/stacks/2.2/KERBEROS/test_kerberos_client.py
index 7673988..0592fc4 100644
--- a/ambari-server/src/test/python/stacks/2.2/KERBEROS/test_kerberos_client.py
+++ b/ambari-server/src/test/python/stacks/2.2/KERBEROS/test_kerberos_client.py
@@ -46,7 +46,7 @@ class TestKerberosClient(RMFTestCase):
                               owner='root',
                               group='root',
                               mode=0755,
-                              recursive=True)
+                              create_parents = True)
 
     file_path = (use_cases.get_krb5_conf_dir(json_data) +
                  "/" +
@@ -72,7 +72,7 @@ class TestKerberosClient(RMFTestCase):
                               owner='root',
                               group='root',
                               mode=0755,
-                              recursive=True)
+                              create_parents = True)
 
     file_path = (use_cases.get_krb5_conf_dir(json_data) +
                  "/" +
@@ -96,7 +96,7 @@ class TestKerberosClient(RMFTestCase):
     )
 
     self.assertResourceCalled('Directory', '/tmp/AMBARI-artifacts/',
-                              recursive = True,
+                              create_parents = True,
                               )
     self.assertResourceCalled('File', '/tmp/AMBARI-artifacts//UnlimitedJCEPolicyJDK7.zip',
                             content = DownloadSource('http://c6401.ambari.apache.org:8080/resources//UnlimitedJCEPolicyJDK7.zip'),
@@ -118,7 +118,7 @@ class TestKerberosClient(RMFTestCase):
                               owner='root',
                               group='root',
                               mode=0755,
-                              recursive=True)
+                              create_parents = True)
 
     file_path = (use_cases.get_krb5_conf_dir(json_data) +
                  "/" +
@@ -144,7 +144,7 @@ class TestKerberosClient(RMFTestCase):
                               owner='root',
                               group='root',
                               mode=0755,
-                              recursive=True)
+                              create_parents = True)
 
     file_path = (use_cases.get_krb5_conf_dir(json_data) +
                  "/" +
@@ -278,7 +278,7 @@ class TestKerberosClient(RMFTestCase):
                               owner='root',
                               group='root',
                               mode=0755,
-                              recursive=True)
+                              create_parents = True)
 
     self.assertResourceCalled('File', "/etc/security/keytabs/spnego.service.keytab",
                               owner='root',
@@ -303,7 +303,7 @@ class TestKerberosClient(RMFTestCase):
                               owner='root',
                               group='root',
                               mode=0755,
-                              recursive=True)
+                              create_parents = True)
 
     self.assertResourceCalled('File', "/etc/security/keytabs/smokeuser.headless.keytab",
                           owner='ambari-qa',

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.2/KERBEROS/test_kerberos_server.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.2/KERBEROS/test_kerberos_server.py b/ambari-server/src/test/python/stacks/2.2/KERBEROS/test_kerberos_server.py
index cc69630..4de232e 100644
--- a/ambari-server/src/test/python/stacks/2.2/KERBEROS/test_kerberos_server.py
+++ b/ambari-server/src/test/python/stacks/2.2/KERBEROS/test_kerberos_server.py
@@ -45,7 +45,7 @@ class TestKerberosServer(RMFTestCase):
                               owner='root',
                               group='root',
                               mode=0755,
-                              recursive=True)
+                              create_parents = True)
 
     file_path = (use_cases.get_krb5_conf_dir(json_data) +
                  "/" +
@@ -61,7 +61,7 @@ class TestKerberosServer(RMFTestCase):
                               owner='root',
                               group='root',
                               mode=0700,
-                              recursive=True)
+                              create_parents = True)
 
     file_path = (use_cases.get_kdc_conf_dir(json_data) +
                  "/" +
@@ -77,7 +77,7 @@ class TestKerberosServer(RMFTestCase):
                               owner='root',
                               group='root',
                               mode=0700,
-                              recursive=True)
+                              create_parents = True)
 
     file_path = (use_cases.get_kadm5_acl_dir(json_data) +
                  "/" +
@@ -104,7 +104,7 @@ class TestKerberosServer(RMFTestCase):
                               owner='root',
                               group='root',
                               mode=0755,
-                              recursive=True)
+                              create_parents = True)
 
     file_path = (use_cases.get_krb5_conf_dir(json_data) +
                  "/" +
@@ -120,7 +120,7 @@ class TestKerberosServer(RMFTestCase):
                               owner='root',
                               group='root',
                               mode=0700,
-                              recursive=True)
+                              create_parents = True)
 
     file_path = (use_cases.get_kdc_conf_dir(json_data) +
                  "/" +
@@ -136,7 +136,7 @@ class TestKerberosServer(RMFTestCase):
                               owner='root',
                               group='root',
                               mode=0700,
-                              recursive=True)
+                              create_parents = True)
 
     file_path = (use_cases.get_kadm5_acl_dir(json_data) +
                  "/" +
@@ -163,7 +163,7 @@ class TestKerberosServer(RMFTestCase):
                               owner='root',
                               group='root',
                               mode=0755,
-                              recursive=True)
+                              create_parents = True)
 
     file_path = (use_cases.get_krb5_conf_dir(json_data) +
                  "/" +
@@ -179,7 +179,7 @@ class TestKerberosServer(RMFTestCase):
                               owner='root',
                               group='root',
                               mode=0700,
-                              recursive=True)
+                              create_parents = True)
 
     file_path = (use_cases.get_kdc_conf_dir(json_data) +
                  "/" +
@@ -195,7 +195,7 @@ class TestKerberosServer(RMFTestCase):
                               owner='root',
                               group='root',
                               mode=0700,
-                              recursive=True)
+                              create_parents = True)
 
     file_path = (use_cases.get_kadm5_acl_dir(json_data) +
                  "/" +
@@ -222,7 +222,7 @@ class TestKerberosServer(RMFTestCase):
                               owner='root',
                               group='root',
                               mode=0755,
-                              recursive=True)
+                              create_parents = True)
 
     file_path = (use_cases.get_krb5_conf_dir(json_data) +
                  "/" +
@@ -238,7 +238,7 @@ class TestKerberosServer(RMFTestCase):
                               owner='root',
                               group='root',
                               mode=0700,
-                              recursive=True)
+                              create_parents = True)
 
     file_path = (use_cases.get_kdc_conf_dir(json_data) +
                  "/" +
@@ -254,7 +254,7 @@ class TestKerberosServer(RMFTestCase):
                               owner='root',
                               group='root',
                               mode=0700,
-                              recursive=True)
+                              create_parents = True)
 
     file_path = (use_cases.get_kadm5_acl_dir(json_data) +
                  "/" +

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.2/KNOX/test_knox_gateway.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.2/KNOX/test_knox_gateway.py b/ambari-server/src/test/python/stacks/2.2/KNOX/test_knox_gateway.py
index 5f4e6fc..7c3b921 100644
--- a/ambari-server/src/test/python/stacks/2.2/KNOX/test_knox_gateway.py
+++ b/ambari-server/src/test/python/stacks/2.2/KNOX/test_knox_gateway.py
@@ -42,37 +42,42 @@ class TestKnoxGateway(RMFTestCase):
     self.assertResourceCalled('Directory', '/usr/hdp/current/knox-server/data/',
                               owner = 'knox',
                               group = 'knox',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access = "a",
+                              recursive_ownership = True,
     )
     self.assertResourceCalled('Directory', '/var/log/knox',
                               owner = 'knox',
                               group = 'knox',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access = "a",
+                              recursive_ownership = True,
     )
     self.assertResourceCalled('Directory', '/var/run/knox',
                               owner = 'knox',
                               group = 'knox',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access = "a",
+                              recursive_ownership = True,
     )
     self.assertResourceCalled('Directory', '/usr/hdp/current/knox-server/conf',
                               owner = 'knox',
                               group = 'knox',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access = "a",
+                              recursive_ownership = True,
     )
     self.assertResourceCalled('Directory', '/usr/hdp/current/knox-server/conf/topologies',
                               owner = 'knox',
                               group = 'knox',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access = "a",
+                              recursive_ownership = True,
     )
 
     self.assertResourceCalled('XmlConfig', 'gateway-site.xml',
@@ -99,16 +104,6 @@ class TestKnoxGateway(RMFTestCase):
                               owner = 'knox',
                               content = InlineTemplate(self.getConfig()['configurations']['admin-topology']['content'])
     )
-    self.assertResourceCalled('Execute', ('chown',
-     '-R',
-     'knox:knox',
-     '/usr/hdp/current/knox-server/data/',
-     '/var/log/knox',
-     '/var/run/knox',
-     '/usr/hdp/current/knox-server/conf',
-     '/usr/hdp/current/knox-server/conf/topologies'),
-        sudo = True,
-    )
     self.assertResourceCalled('Execute', '/usr/hdp/current/knox-server/bin/knoxcli.sh create-master --master sa',
         environment = {'JAVA_HOME': u'/usr/jdk64/jdk1.7.0_45'},
         not_if = "ambari-sudo.sh su knox -l -s /bin/bash -c '[RMF_EXPORT_PLACEHOLDER]test -f /usr/hdp/current/knox-server/data/security/master'",
@@ -494,37 +489,42 @@ class TestKnoxGateway(RMFTestCase):
     self.assertResourceCalled('Directory', '/usr/hdp/current/knox-server/data/',
                               owner = 'knox',
                               group = 'knox',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access = "a",
+                              recursive_ownership = True,
     )
     self.assertResourceCalled('Directory', '/var/log/knox',
                               owner = 'knox',
                               group = 'knox',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access = "a",
+                              recursive_ownership = True,
     )
     self.assertResourceCalled('Directory', '/var/run/knox',
                               owner = 'knox',
                               group = 'knox',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access = "a",
+                              recursive_ownership = True,
     )
     self.assertResourceCalled('Directory', '/usr/hdp/current/knox-server/conf',
                               owner = 'knox',
                               group = 'knox',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access = "a",
+                              recursive_ownership = True,
     )
     self.assertResourceCalled('Directory', '/usr/hdp/current/knox-server/conf/topologies',
                               owner = 'knox',
                               group = 'knox',
-                              recursive = True,
+                              create_parents = True,
                               mode = 0755,
                               cd_access = "a",
+                              recursive_ownership = True,
     )
 
     self.assertResourceCalled('XmlConfig', 'gateway-site.xml',
@@ -551,15 +551,6 @@ class TestKnoxGateway(RMFTestCase):
                               owner = 'knox',
                               content = InlineTemplate(self.getConfig()['configurations']['admin-topology']['content'])
     )
-    self.assertResourceCalled('Execute', ('chown',
-                                          '-R',
-                                          'knox:knox',
-                                          '/usr/hdp/current/knox-server/data/',
-                                          '/var/log/knox',
-                                          '/var/run/knox',
-                                          '/usr/hdp/current/knox-server/conf', '/usr/hdp/current/knox-server/conf/topologies'),
-                              sudo = True,
-                              )
     self.assertResourceCalled('Execute', '/usr/hdp/current/knox-server/bin/knoxcli.sh create-master --master sa',
                               environment = {'JAVA_HOME': u'/usr/jdk64/jdk1.7.0_45'},
                               not_if = "ambari-sudo.sh su knox -l -s /bin/bash -c '[RMF_EXPORT_PLACEHOLDER]test -f /usr/hdp/current/knox-server/data/security/master'",
@@ -589,11 +580,9 @@ class TestKnoxGateway(RMFTestCase):
                               owner = 'knox',
                               mode = 0755,
                               group = 'knox',
-                              recursive = True,
+                              create_parents = True,
                               cd_access = 'a',
-                              )
-    self.assertResourceCalled('Execute', ('chown', '-R', u'knox:knox', u'/var/log/knox'),
-                              sudo = True,
+                              recursive_ownership = True,
                               )
     self.assertResourceCalled("Execute", "/usr/hdp/current/knox-server/bin/gateway.sh start",
                               environment = {'JAVA_HOME': u'/usr/jdk64/jdk1.7.0_45'},

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.2/SLIDER/test_slider_client.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.2/SLIDER/test_slider_client.py b/ambari-server/src/test/python/stacks/2.2/SLIDER/test_slider_client.py
index de00077..01787a1 100644
--- a/ambari-server/src/test/python/stacks/2.2/SLIDER/test_slider_client.py
+++ b/ambari-server/src/test/python/stacks/2.2/SLIDER/test_slider_client.py
@@ -37,7 +37,7 @@ class TestSliderClient(RMFTestCase):
 
     self.assertResourceCalled('Directory',
                               '/usr/hdp/current/slider-client/conf',
-                              recursive=True
+                              create_parents = True
     )
 
     self.assertResourceCalled('XmlConfig',
@@ -53,7 +53,7 @@ class TestSliderClient(RMFTestCase):
 
     self.assertResourceCalled('Directory',
                               '/usr/hdp/current/storm-slider-client/conf',
-                              recursive=True
+                              create_parents = True
     )
 
     self.assertResourceCalled('File', '/usr/hdp/current/storm-slider-client/conf/storm-slider-env.sh',

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.2/SPARK/test_job_history_server.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.2/SPARK/test_job_history_server.py b/ambari-server/src/test/python/stacks/2.2/SPARK/test_job_history_server.py
index d4fef77..30da734 100644
--- a/ambari-server/src/test/python/stacks/2.2/SPARK/test_job_history_server.py
+++ b/ambari-server/src/test/python/stacks/2.2/SPARK/test_job_history_server.py
@@ -158,13 +158,13 @@ class TestJobHistoryServer(RMFTestCase):
     self.assertResourceCalled('Directory', '/var/run/spark',
         owner = 'spark',
         group = 'hadoop',
-        recursive = True,
+        create_parents = True,
         mode = 0775
     )
     self.assertResourceCalled('Directory', '/var/log/spark',
         owner = 'spark',
         group = 'hadoop',
-        recursive = True,
+        create_parents = True,
         mode = 0775
     )
     self.assertResourceCalled('HdfsResource', '/user/spark',
@@ -222,13 +222,13 @@ class TestJobHistoryServer(RMFTestCase):
     self.assertResourceCalled('Directory', '/var/run/spark',
         owner = 'spark',
         group = 'hadoop',
-        recursive = True,
+        create_parents = True,
         mode = 0775
     )
     self.assertResourceCalled('Directory', '/var/log/spark',
         owner = 'spark',
         group = 'hadoop',
-        recursive = True,
+        create_parents = True,
         mode = 0775
     )
     self.assertResourceCalled('HdfsResource', '/user/spark',

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.2/SPARK/test_spark_client.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.2/SPARK/test_spark_client.py b/ambari-server/src/test/python/stacks/2.2/SPARK/test_spark_client.py
index 841a4c0..8aef27c 100644
--- a/ambari-server/src/test/python/stacks/2.2/SPARK/test_spark_client.py
+++ b/ambari-server/src/test/python/stacks/2.2/SPARK/test_spark_client.py
@@ -55,13 +55,13 @@ class TestSparkClient(RMFTestCase):
     self.assertResourceCalled('Directory', '/var/run/spark',
         owner = 'spark',
         group = 'hadoop',
-        recursive = True,
+        create_parents = True,
         mode = 0775
     )
     self.assertResourceCalled('Directory', '/var/log/spark',
         owner = 'spark',
         group = 'hadoop',
-        recursive = True,
+        create_parents = True,
         mode = 0775
     )
     self.assertResourceCalled('PropertiesFile', '/usr/hdp/current/spark-client/conf/spark-defaults.conf',
@@ -91,13 +91,13 @@ class TestSparkClient(RMFTestCase):
     self.assertResourceCalled('Directory', '/var/run/spark',
         owner = 'spark',
         group = 'hadoop',
-        recursive = True,
+        create_parents = True,
         mode = 0775
     )
     self.assertResourceCalled('Directory', '/var/log/spark',
         owner = 'spark',
         group = 'hadoop',
-        recursive = True,
+        create_parents = True,
         mode = 0775
     )
     self.assertResourceCalled('PropertiesFile', '/usr/hdp/current/spark-client/conf/spark-defaults.conf',

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.3/ATLAS/test_metadata_server.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.3/ATLAS/test_metadata_server.py b/ambari-server/src/test/python/stacks/2.3/ATLAS/test_metadata_server.py
index 2644b4e..2bd02c7 100644
--- a/ambari-server/src/test/python/stacks/2.3/ATLAS/test_metadata_server.py
+++ b/ambari-server/src/test/python/stacks/2.3/ATLAS/test_metadata_server.py
@@ -34,35 +34,35 @@ class TestMetadataServer(RMFTestCase):
       self.assertResourceCalled('Directory', '/var/run/atlas',
                                 owner='atlas',
                                 group='hadoop',
-                                recursive=True,
+                                create_parents = True,
                                 cd_access='a',
                                 mode=0755
       )
       self.assertResourceCalled('Directory', '/etc/atlas/conf',
                                 owner='atlas',
                                 group='hadoop',
-                                recursive=True,
+                                create_parents = True,
                                 cd_access='a',
                                 mode=0755
       )
       self.assertResourceCalled('Directory', '/var/log/atlas',
                                 owner='atlas',
                                 group='hadoop',
-                                recursive=True,
+                                create_parents = True,
                                 cd_access='a',
                                 mode=0755
       )
       self.assertResourceCalled('Directory', '/var/lib/atlas/data',
                                 owner='atlas',
                                 group='hadoop',
-                                recursive=True,
+                                create_parents = True,
                                 cd_access='a',
                                 mode=0644
       )
       self.assertResourceCalled('Directory', '/var/lib/atlas/server/webapp',
                                 owner='atlas',
                                 group='hadoop',
-                                recursive=True,
+                                create_parents = True,
                                 cd_access='a',
                                 mode=0644
       )

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.3/MAHOUT/test_mahout_client.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.3/MAHOUT/test_mahout_client.py b/ambari-server/src/test/python/stacks/2.3/MAHOUT/test_mahout_client.py
index db8c0d9..f0f6326 100644
--- a/ambari-server/src/test/python/stacks/2.3/MAHOUT/test_mahout_client.py
+++ b/ambari-server/src/test/python/stacks/2.3/MAHOUT/test_mahout_client.py
@@ -42,7 +42,7 @@ class TestMahoutClient(RMFTestCase):
       '/usr/hdp/current/mahout-client/conf',
       owner = 'mahout',
       group = 'hadoop',
-      recursive = True)
+      create_parents = True)
 
     self.assertResourceCalled('XmlConfig', 'yarn-site.xml',
       owner = "yarn",

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.3/PXF/test_pxf.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.3/PXF/test_pxf.py b/ambari-server/src/test/python/stacks/2.3/PXF/test_pxf.py
index 2dd00ac..3d803c5 100644
--- a/ambari-server/src/test/python/stacks/2.3/PXF/test_pxf.py
+++ b/ambari-server/src/test/python/stacks/2.3/PXF/test_pxf.py
@@ -96,7 +96,7 @@ class TestPxf(RMFTestCase):
       self.assertResourceCalled('Directory', '/var/pxf',
               owner=self.PXF_USER,
               group=self.PXF_GROUP,
-              recursive=True)
+              create_parents = True)
 
       self.assertResourceCalled('Execute', 'service pxf-service restart',
                           timeout=self.DEFAULT_TIMEOUT,

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/test/python/stacks/2.3/SPARK/test_spark_thrift_server.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.3/SPARK/test_spark_thrift_server.py b/ambari-server/src/test/python/stacks/2.3/SPARK/test_spark_thrift_server.py
index 22e2eda..0a5ab6b 100644
--- a/ambari-server/src/test/python/stacks/2.3/SPARK/test_spark_thrift_server.py
+++ b/ambari-server/src/test/python/stacks/2.3/SPARK/test_spark_thrift_server.py
@@ -81,13 +81,13 @@ class TestSparkThriftServer(RMFTestCase):
     self.assertResourceCalled('Directory', '/var/run/spark',
         owner = 'spark',
         group = 'hadoop',
-        recursive = True,
+        create_parents = True,
         mode = 0775
     )
     self.assertResourceCalled('Directory', '/var/log/spark',
         owner = 'spark',
         group = 'hadoop',
-        recursive = True,
+        create_parents = True,
         mode = 0775
     )
     self.assertResourceCalled('HdfsResource', '/user/spark',


[5/5] ambari git commit: AMBARI-14396. Add support for recursive chown in resource management library. (aonishuk)

Posted by ao...@apache.org.
AMBARI-14396. Add support for recursive chown in resource management library. (aonishuk)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/92c054b1
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/92c054b1
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/92c054b1

Branch: refs/heads/trunk
Commit: 92c054b1d6fcc0dc436ae4ff6b1cd9b8da68b459
Parents: 314bbc6
Author: Andrew Onishuk <ao...@hortonworks.com>
Authored: Wed Dec 16 13:10:29 2015 +0200
Committer: Andrew Onishuk <ao...@hortonworks.com>
Committed: Wed Dec 16 13:10:29 2015 +0200

----------------------------------------------------------------------
 .../TestDirectoryResource.py                    |  2 +-
 .../core/providers/system.py                    | 32 ++++++-
 .../core/resources/system.py                    | 79 ++++++++++++++++-
 .../python/resource_management/core/sudo.py     | 35 +++++++-
 .../libraries/functions/conf_select.py          |  2 +-
 .../functions/setup_ranger_plugin_xml.py        |  2 +-
 .../libraries/script/script.py                  |  2 +-
 .../2.0.7/services/HIVE/package/scripts/hcat.py |  2 +-
 .../2.0.7/services/HIVE/package/scripts/hive.py |  4 +-
 .../package/scripts/accumulo_configuration.py   |  8 +-
 .../package/scripts/accumulo_service.py         | 12 ++-
 .../AMBARI_METRICS/0.1.0/package/scripts/ams.py | 38 ++++----
 .../0.1.0/package/scripts/hbase.py              | 37 +++-----
 .../ATLAS/0.1.0.2.3/package/scripts/metadata.py | 10 +--
 .../FALCON/0.5.0.2.1/package/scripts/falcon.py  | 26 +++---
 .../FLUME/1.4.0.2.0/package/scripts/flume.py    |  2 +-
 .../GANGLIA/3.5.0/package/scripts/ganglia.py    |  2 +-
 .../3.5.0/package/scripts/ganglia_monitor.py    |  2 +-
 .../3.5.0/package/scripts/ganglia_server.py     | 13 ++-
 .../HAWQ/2.0.0/package/scripts/common.py        |  4 +-
 .../HAWQ/2.0.0/package/scripts/utils.py         |  2 +-
 .../HBASE/0.96.0.2.0/package/scripts/hbase.py   | 12 +--
 .../HDFS/2.1.0.2.0/package/scripts/hdfs.py      |  8 +-
 .../2.1.0.2.0/package/scripts/hdfs_datanode.py  |  6 +-
 .../2.1.0.2.0/package/scripts/hdfs_namenode.py  | 10 +--
 .../2.1.0.2.0/package/scripts/hdfs_snamenode.py |  2 +-
 .../2.1.0.2.0/package/scripts/journalnode.py    |  2 +-
 .../HDFS/2.1.0.2.0/package/scripts/utils.py     |  4 +-
 .../HIVE/0.12.0.2.0/package/scripts/hcat.py     |  6 +-
 .../HIVE/0.12.0.2.0/package/scripts/hive.py     |  8 +-
 .../package/scripts/hive_metastore.py           |  2 +-
 .../HIVE/0.12.0.2.0/package/scripts/webhcat.py  |  8 +-
 .../KAFKA/0.8.1.2.2/package/scripts/kafka.py    | 48 +++-------
 .../package/scripts/kerberos_common.py          |  6 +-
 .../package/scripts/kerberos_server.py          |  4 +-
 .../KNOX/0.5.0.2.2/package/scripts/knox.py      | 40 +++------
 .../MAHOUT/1.0.0.2.3/package/scripts/mahout.py  |  2 +-
 .../OOZIE/4.0.0.2.0/package/scripts/oozie.py    | 26 ++++--
 .../PIG/0.12.0.2.0/package/scripts/pig.py       |  2 +-
 .../PXF/3.0.0/package/scripts/pxf.py            |  2 +-
 .../0.4.0/package/scripts/ranger_service.py     |  6 +-
 .../0.4.0/package/scripts/setup_ranger_xml.py   | 12 ++-
 .../RANGER_KMS/0.5.0.2.3/package/scripts/kms.py | 14 +--
 .../SLIDER/0.60.0.2.2/package/scripts/slider.py |  4 +-
 .../1.2.0.2.2/package/scripts/setup_spark.py    |  2 +-
 .../SQOOP/1.4.4.2.0/package/scripts/sqoop.py    |  2 +-
 .../STORM/0.9.1.2.1/package/scripts/storm.py    |  8 +-
 .../0.9.1.2.1/package/scripts/storm_upgrade.py  |  4 +-
 .../TEZ/0.4.0.2.1/package/scripts/tez.py        |  2 +-
 .../YARN/2.1.0.2.0/package/scripts/yarn.py      | 39 +++++----
 .../3.4.5.2.0/package/scripts/zookeeper.py      | 10 +--
 .../custom_actions/scripts/check_host.py        |  2 +-
 .../before-ANY/scripts/shared_initialization.py |  2 +-
 .../scripts/shared_initialization.py            |  6 +-
 .../0.8/services/FLUME/package/scripts/flume.py |  2 +-
 .../services/GANGLIA/package/scripts/ganglia.py |  2 +-
 .../GANGLIA/package/scripts/ganglia_monitor.py  |  2 +-
 .../GANGLIA/package/scripts/ganglia_server.py   |  6 +-
 .../0.8/services/HBASE/package/scripts/hbase.py | 10 +--
 .../0.8/services/HDFS/package/scripts/hdfs.py   |  2 +-
 .../HDFS/package/scripts/hdfs_datanode.py       |  4 +-
 .../HDFS/package/scripts/hdfs_namenode.py       |  4 +-
 .../HDFS/package/scripts/hdfs_snamenode.py      |  2 +-
 .../HDFS/package/scripts/journalnode.py         |  2 +-
 .../0.8/services/HDFS/package/scripts/utils.py  |  4 +-
 .../0.8/services/HIVE/package/scripts/hcat.py   |  6 +-
 .../0.8/services/HIVE/package/scripts/hive.py   |  4 +-
 .../services/HIVE/package/scripts/webhcat.py    |  6 +-
 .../0.8/services/OOZIE/package/scripts/oozie.py |  4 +-
 .../0.8/services/PIG/package/scripts/pig.py     |  2 +-
 .../package/scripts/mapred_service_check.py     |  2 +-
 .../0.8/services/YARN/package/scripts/yarn.py   | 10 +--
 .../ZOOKEEPER/package/scripts/zookeeper.py      |  8 +-
 .../before-ANY/scripts/shared_initialization.py | 18 ++--
 .../before-START/scripts/rack_awareness.py      |  4 +-
 .../scripts/shared_initialization.py            |  8 +-
 .../services/FALCON/package/scripts/falcon.py   |  4 +-
 .../services/STORM/package/scripts/storm.py     |  2 +-
 .../services/TEZ/package/scripts/tez.py         |  2 +-
 .../services/YARN/package/scripts/yarn.py       | 10 +--
 .../AMBARI_METRICS/test_metrics_collector.py    | 43 ++++-----
 .../python/stacks/2.0.6/FLUME/test_flume.py     |  8 +-
 .../2.0.6/GANGLIA/test_ganglia_monitor.py       |  4 +-
 .../stacks/2.0.6/GANGLIA/test_ganglia_server.py | 15 ++--
 .../stacks/2.0.6/HBASE/test_hbase_client.py     | 16 ++--
 .../stacks/2.0.6/HBASE/test_hbase_master.py     | 36 ++++----
 .../2.0.6/HBASE/test_hbase_regionserver.py      | 48 +++++-----
 .../2.0.6/HBASE/test_phoenix_queryserver.py     | 32 +++----
 .../python/stacks/2.0.6/HDFS/test_datanode.py   | 40 ++++-----
 .../stacks/2.0.6/HDFS/test_hdfs_client.py       |  2 +-
 .../stacks/2.0.6/HDFS/test_journalnode.py       | 24 ++---
 .../python/stacks/2.0.6/HDFS/test_namenode.py   | 60 ++++++-------
 .../python/stacks/2.0.6/HDFS/test_nfsgateway.py | 16 ++--
 .../python/stacks/2.0.6/HDFS/test_snamenode.py  | 26 +++---
 .../test/python/stacks/2.0.6/HDFS/test_zkfc.py  | 40 ++++-----
 .../stacks/2.0.6/HIVE/test_hcat_client.py       | 12 +--
 .../stacks/2.0.6/HIVE/test_hive_client.py       |  8 +-
 .../stacks/2.0.6/HIVE/test_hive_metastore.py    | 30 +++----
 .../stacks/2.0.6/HIVE/test_hive_server.py       | 20 ++---
 .../stacks/2.0.6/HIVE/test_webhcat_server.py    | 24 ++---
 .../stacks/2.0.6/OOZIE/test_oozie_client.py     |  6 +-
 .../stacks/2.0.6/OOZIE/test_oozie_server.py     | 92 ++++++++++----------
 .../python/stacks/2.0.6/PIG/test_pig_client.py  |  6 +-
 .../python/stacks/2.0.6/SQOOP/test_sqoop.py     |  4 +-
 .../stacks/2.0.6/YARN/test_historyserver.py     | 48 +++++-----
 .../stacks/2.0.6/YARN/test_mapreduce2_client.py | 36 ++++----
 .../stacks/2.0.6/YARN/test_nodemanager.py       | 82 +++++++++--------
 .../stacks/2.0.6/YARN/test_resourcemanager.py   | 36 ++++----
 .../stacks/2.0.6/YARN/test_yarn_client.py       | 54 ++++++------
 .../2.0.6/ZOOKEEPER/test_zookeeper_client.py    | 16 ++--
 .../2.0.6/ZOOKEEPER/test_zookeeper_server.py    | 16 ++--
 .../2.0.6/hooks/before-ANY/test_before_any.py   | 17 ++--
 .../hooks/before-START/test_before_start.py     | 24 ++---
 .../stacks/2.1/FALCON/test_falcon_client.py     | 12 +--
 .../stacks/2.1/FALCON/test_falcon_server.py     | 48 +++++-----
 .../stacks/2.1/HIVE/test_hive_metastore.py      | 30 +++----
 .../python/stacks/2.1/STORM/test_storm_base.py  | 16 ++--
 .../python/stacks/2.1/TEZ/test_tez_client.py    |  2 +-
 .../stacks/2.1/YARN/test_apptimelineserver.py   | 20 ++---
 .../stacks/2.2/KAFKA/test_kafka_broker.py       | 62 +++++--------
 .../stacks/2.2/KERBEROS/test_kerberos_client.py | 14 +--
 .../stacks/2.2/KERBEROS/test_kerberos_server.py | 24 ++---
 .../python/stacks/2.2/KNOX/test_knox_gateway.py | 55 +++++-------
 .../stacks/2.2/SLIDER/test_slider_client.py     |  4 +-
 .../stacks/2.2/SPARK/test_job_history_server.py |  8 +-
 .../stacks/2.2/SPARK/test_spark_client.py       |  8 +-
 .../stacks/2.3/ATLAS/test_metadata_server.py    | 10 +--
 .../stacks/2.3/MAHOUT/test_mahout_client.py     |  2 +-
 .../src/test/python/stacks/2.3/PXF/test_pxf.py  |  2 +-
 .../2.3/SPARK/test_spark_thrift_server.py       |  4 +-
 .../python/stacks/2.3/STORM/test_storm_base.py  | 16 ++--
 .../test/python/stacks/2.3/YARN/test_ats_1_5.py | 20 ++---
 .../HIVE/0.11.0.2.0.5.0/package/scripts/hcat.py |  2 +-
 .../HIVE/0.11.0.2.0.5.0/package/scripts/hive.py |  4 +-
 .../dummy_stack/HIVE/package/scripts/hcat.py    |  2 +-
 .../dummy_stack/HIVE/package/scripts/hive.py    |  4 +-
 .../2.0.7/services/HIVE/package/scripts/hcat.py |  2 +-
 .../2.0.7/services/HIVE/package/scripts/hive.py |  4 +-
 138 files changed, 1064 insertions(+), 1009 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-agent/src/test/python/resource_management/TestDirectoryResource.py
----------------------------------------------------------------------
diff --git a/ambari-agent/src/test/python/resource_management/TestDirectoryResource.py b/ambari-agent/src/test/python/resource_management/TestDirectoryResource.py
index 011be6d..867fbc8 100644
--- a/ambari-agent/src/test/python/resource_management/TestDirectoryResource.py
+++ b/ambari-agent/src/test/python/resource_management/TestDirectoryResource.py
@@ -63,7 +63,7 @@ class TestDirectoryResource(TestCase):
            mode=0777,
            owner="hdfs",
            group="hadoop",
-           recursive=True
+           create_parents = True
       )
       
     os_makedirs_mock.assert_called_with('/a/b/c/d', 0777)

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-common/src/main/python/resource_management/core/providers/system.py
----------------------------------------------------------------------
diff --git a/ambari-common/src/main/python/resource_management/core/providers/system.py b/ambari-common/src/main/python/resource_management/core/providers/system.py
index 4feacee..5066fa8 100644
--- a/ambari-common/src/main/python/resource_management/core/providers/system.py
+++ b/ambari-common/src/main/python/resource_management/core/providers/system.py
@@ -34,7 +34,12 @@ from resource_management.core import ExecuteTimeoutException
 from resource_management.core.providers import Provider
 from resource_management.core.logger import Logger
 
-def _ensure_metadata(path, user, group, mode=None, cd_access=None):
+def assert_not_safemode_folder(path, safemode_folders):
+  if os.path.abspath(path) in safemode_folders:
+    raise Fail(("Not performing recursive operation ('recursive_ownership' or 'recursive_mode_flags') on folder '%s'" +
+    " as this can damage the system. Please pass changed safemode_folders parameter to Directory resource if you really intend to do this.") % (path))
+
+def _ensure_metadata(path, user, group, mode=None, cd_access=None, recursive_ownership=False, recursive_mode_flags=None, recursion_follow_links=False, safemode_folders=[]):
   user_entity = group_entity = None
 
   if user or group:
@@ -62,7 +67,26 @@ def _ensure_metadata(path, user, group, mode=None, cd_access=None):
       Logger.info(
         "Changing group for %s from %d to %s" % (path, stat.st_gid, group))
   
+  if recursive_ownership:
+    assert_not_safemode_folder(path, safemode_folders)
+    sudo.chown_recursive(path, _user_entity, _group_entity, recursion_follow_links)
+  
   sudo.chown(path, user_entity, group_entity)
+  
+  if recursive_mode_flags:
+    if not isinstance(recursive_mode_flags, dict):
+      raise Fail("'recursion_follow_links' value should be a dictionary with 'f' and(or) 'd' key (for file and directory permission flags)")
+    
+    regexp_to_match = "^({0},)*({0})$".format("[ugoa]+[+=-][rwx]+" )
+    for key, flags in recursive_mode_flags.iteritems():
+      if key != 'd' and key != 'f':
+        raise Fail("'recursive_mode_flags' with value '%s' has unknown key '%s', only keys 'f' and 'd' are valid" % (str(recursive_mode_flags), str(key)))
+          
+      if not re.match(regexp_to_match, flags):
+        raise Fail("'recursive_mode_flags' found '%s', but should value format have the following format: [ugoa...][[+-=][perms...]...]." % (str(flags)))
+    
+    assert_not_safemode_folder(path, safemode_folders)
+    sudo.chmod_recursive(path, recursive_mode_flags, recursion_follow_links)
 
   if mode:
     stat = sudo.stat(path)
@@ -156,7 +180,7 @@ class DirectoryProvider(Provider):
         if path != self.resource.path:
           Logger.info("Following the link {0} to {1} to create the directory".format(self.resource.path, path))
 
-      if self.resource.recursive:
+      if self.resource.create_parents:
         sudo.makedirs(path, self.resource.mode or 0755)
       else:
         dirname = os.path.dirname(path)
@@ -169,7 +193,9 @@ class DirectoryProvider(Provider):
       raise Fail("Applying %s failed, file %s already exists" % (self.resource, path))
     
     _ensure_metadata(path, self.resource.owner, self.resource.group,
-                        mode=self.resource.mode, cd_access=self.resource.cd_access)
+                        mode=self.resource.mode, cd_access=self.resource.cd_access,
+                        recursive_ownership=self.resource.recursive_ownership, recursive_mode_flags=self.resource.recursive_mode_flags, 
+                        recursion_follow_links=self.resource.recursion_follow_links, safemode_folders=self.resource.safemode_folders)
 
   def action_delete(self):
     path = self.resource.path

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-common/src/main/python/resource_management/core/resources/system.py
----------------------------------------------------------------------
diff --git a/ambari-common/src/main/python/resource_management/core/resources/system.py b/ambari-common/src/main/python/resource_management/core/resources/system.py
index 558bb2b..6860735 100644
--- a/ambari-common/src/main/python/resource_management/core/resources/system.py
+++ b/ambari-common/src/main/python/resource_management/core/resources/system.py
@@ -60,10 +60,11 @@ class Directory(Resource):
   group = ResourceArgument()
   follow = BooleanArgument(default=True)  # follow links?
   """
-  this works for 'create', 'delete' is anyway recursive
-  recursive means only "mkdir -p", it does NOT perform recursive chown/chmod
+  Example:
+  Directory('/a/b/c/d', create_parents=False) # will fail unless /a/b/c exists
+  Directory('/a/b/c/d', create_parents=True) # will succeed if /a/b/c doesn't exists
   """
-  recursive = BooleanArgument(default=False)
+  create_parents = BooleanArgument(default=False)
   """
   Grants x-bit for all the folders up-to the directory
   
@@ -75,6 +76,78 @@ class Directory(Resource):
   The letters can be combined together.
   """
   cd_access = ResourceArgument()
+  """
+  If True sets the user and group mentioned in arguments, for all the contents of folder and its subfolder.
+  
+  CAUNTION: THIS IS NO RECOMENDED TO USE THIS, please treat such a usages as last resort hacks. 
+  The problem with using recursive permissions setting is that the system can be damaged badly by doing this,
+  imagine recursively setting for '/' or '/etc' (it can break the system) or other important for user folder.
+  This is partially fixed by 'safemode_folders' feature, but still is risky.
+  
+  See also: safemode_folders, recursion_follow_links
+  """
+  recursive_ownership = BooleanArgument(default=False)
+  
+  """
+  A dictionary, which gives the mode flags which should be set for files in key 'f', and for
+  directories in key 'd'.
+  
+  The format of those flags should be symbolic format used in chmod. From chmod man page:
+  the format of a symbolic mode is [ugoa...][[+-=][perms...]...], 
+  where perms is either zero or more letters from the set rwxXst, or a single letter from the set ugo.  
+  Multiple symbolic modes can be given, separated  by commas.
+  
+  u - user who is owner
+  g - user from group
+  o - other users
+  a - all
+  
+  Example:
+  recursive_mode_flags = {
+    'd': 'u+rwx,g+rx' # for subfolders, enforce 'rwx' (read,write,execute) for owner of the file, and 'rx' (read,execute) for group, don't change 'others' permissions
+    'f': 'u+rw,go+r' # for files in the directory, enforce 'rw' (read, write) for owner of the file, and 'r' (read) for group and others.
+  }
+  
+  recursive_mode_flags = {
+    'd': 'a+rwx' # for subfolders, enforce rwxrwxrwx (777) permisons. 
+    'f': 'a+rw' # for files in the directory, enforce adding 'rw' (read,write) to original permissions. If file had 'x' bit before it will stay there.
+  }
+  
+  CAUNTION: THIS IS NO RECOMENDED TO USE THIS, please treat such a usages as last resort hacks. 
+  The problem with using recursive permissions setting is that the system can be damaged badly by doing this,
+  imagine recursively setting permissions for '/' or '/etc' (it can break the system) or other important for user folder.
+  This is partially fixed by 'safemode_folders' feature, but still is risky. 
+  
+  See also: safemode_folders, recursion_follow_links   
+  """
+  recursive_mode_flags = ResourceArgument(default=None)
+  
+  """
+  This is the list folder which are not allowed to be recursively chmod-ed or chown-ed. (recursive_ownership and recursive_mode_flags).
+  Fail exception will appear if tried.
+  
+  Example of a dangerous code, which will not be succeed:
+  Directory("/",
+    owner="my_user", 
+    recursive_ownership=True
+  )
+  
+  This aims to the resolve the problem of mistakenly doing recursive actions for system necessary folders.
+  which results in damaging the operating system.
+  """
+  safemode_folders =  ForcedListArgument(default=["/", "/bin", "/sbin", "/etc", "/dev",
+                                                  "/proc", "/var", "/usr", "/home", "/boot", "/lib", "/opt",
+                                                  "/mnt", "/media", "/srv", "/root", "/sys" ])
+  
+  """
+  If True while recursive chown/chmod is done (recursive_ownership or recursive_mode_flags),
+  symlinks will be followed, duing recursion walking, also 
+  this will also make chmod/chown to set permissions for symlink targets, not for symlink itself.
+  
+  Note: if recursion_follow_links=False chmod will not set permissions nor on symlink neither on targets. 
+  As according to chmod man: 'This is not a problem since the permissions of symbolic links are never used'. 
+  """
+  recursion_follow_links = BooleanArgument(default=False)
 
   actions = Resource.actions + ["create", "delete"]
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-common/src/main/python/resource_management/core/sudo.py
----------------------------------------------------------------------
diff --git a/ambari-common/src/main/python/resource_management/core/sudo.py b/ambari-common/src/main/python/resource_management/core/sudo.py
index 46fa9d0..bb28d9f 100644
--- a/ambari-common/src/main/python/resource_management/core/sudo.py
+++ b/ambari-common/src/main/python/resource_management/core/sudo.py
@@ -36,6 +36,21 @@ if os.geteuid() == 0:
     gid = group.gr_gid if group else -1
     if uid != -1 or gid != -1:
       return os.chown(path, uid, gid)
+      
+  def chown_recursive(path, owner, group, follow_links=False):
+    uid = owner.pw_uid if owner else -1
+    gid = group.gr_gid if group else -1
+    
+    if uid == -1 and gid == -1:
+      return
+      
+    for root, dirs, files in os.walk(path, followlinks=follow_links):
+      for name in files + dirs:
+        if follow_links:
+          os.chown(os.path.join(root, name), uid, gid)
+        else:
+          os.lchown(os.path.join(root, name), uid, gid)
+            
   
   def chmod(path, mode):
     return os.chmod(path, mode)
@@ -112,7 +127,6 @@ if os.geteuid() == 0:
     
     
 else:
-
   # os.chown replacement
   def chown(path, owner, group):
     owner = owner.pw_name if owner else ""
@@ -120,6 +134,15 @@ else:
     if owner or group:
       shell.checked_call(["chown", owner+":"+group, path], sudo=True)
       
+  def chown_recursive(path, owner, group, follow_links=False):
+    owner = owner.pw_name if owner else ""
+    group = group.gr_name if group else ""
+    if owner or group:
+      flags = ["-R"]
+      if follow_links:
+        flags.append("-L")
+      shell.checked_call(["chown"] + flags + [owner+":"+group, path], sudo=True)
+      
   # os.chmod replacement
   def chmod(path, mode):
     shell.checked_call(["chmod", oct(mode), path], sudo=True)
@@ -226,4 +249,12 @@ else:
     
   # shutil.copy replacement
   def copy(src, dst):
-    shell.checked_call(["sudo", "cp", "-r", src, dst], sudo=True)
\ No newline at end of file
+    shell.checked_call(["sudo", "cp", "-r", src, dst], sudo=True)
+    
+def chmod_recursive(path, recursive_mode_flags, recursion_follow_links):
+  find_flags = []
+  if recursion_follow_links:
+    find_flags.append('-L')
+    
+  for key, flags in recursive_mode_flags.iteritems():
+    shell.checked_call(["find"] + find_flags + [path, "-type", key, "-exec" , "chmod", flags ,"{}" ,";"])
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-common/src/main/python/resource_management/libraries/functions/conf_select.py
----------------------------------------------------------------------
diff --git a/ambari-common/src/main/python/resource_management/libraries/functions/conf_select.py b/ambari-common/src/main/python/resource_management/libraries/functions/conf_select.py
index a3f64bf..2bc01ee 100644
--- a/ambari-common/src/main/python/resource_management/libraries/functions/conf_select.py
+++ b/ambari-common/src/main/python/resource_management/libraries/functions/conf_select.py
@@ -228,7 +228,7 @@ def create(stack_name, package, version, dry_run = False):
       Directory(d,
           mode=0755,
           cd_access='a',
-          recursive=True)
+          create_parents=True)
 
   return dirs
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-common/src/main/python/resource_management/libraries/functions/setup_ranger_plugin_xml.py
----------------------------------------------------------------------
diff --git a/ambari-common/src/main/python/resource_management/libraries/functions/setup_ranger_plugin_xml.py b/ambari-common/src/main/python/resource_management/libraries/functions/setup_ranger_plugin_xml.py
index 29ffe0d..d6f6deb 100644
--- a/ambari-common/src/main/python/resource_management/libraries/functions/setup_ranger_plugin_xml.py
+++ b/ambari-common/src/main/python/resource_management/libraries/functions/setup_ranger_plugin_xml.py
@@ -90,7 +90,7 @@ def setup_ranger_plugin(component_select_name, service_name,
       owner = component_user,
       group = component_group,
       mode=0775,
-      recursive = True,
+      create_parents = True,
       cd_access = 'a'
     )
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-common/src/main/python/resource_management/libraries/script/script.py
----------------------------------------------------------------------
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 09ca118..c954a15 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
@@ -610,7 +610,7 @@ class Script(object):
     env_configs_list = config['commandParams']['env_configs_list']
     properties_configs_list = config['commandParams']['properties_configs_list']
 
-    Directory(self.get_tmp_dir(), recursive=True)
+    Directory(self.get_tmp_dir(), create_parents = True)
 
     conf_tmp_dir = tempfile.mkdtemp(dir=self.get_tmp_dir())
     output_filename = os.path.join(self.get_tmp_dir(), config['commandParams']['output_file'])

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-funtest/src/test/resources/stacks/HDP/2.0.7/services/HIVE/package/scripts/hcat.py
----------------------------------------------------------------------
diff --git a/ambari-funtest/src/test/resources/stacks/HDP/2.0.7/services/HIVE/package/scripts/hcat.py b/ambari-funtest/src/test/resources/stacks/HDP/2.0.7/services/HIVE/package/scripts/hcat.py
index 2993d3a..29de1c0 100644
--- a/ambari-funtest/src/test/resources/stacks/HDP/2.0.7/services/HIVE/package/scripts/hcat.py
+++ b/ambari-funtest/src/test/resources/stacks/HDP/2.0.7/services/HIVE/package/scripts/hcat.py
@@ -32,7 +32,7 @@ def hcat():
 
   Directory(params.hcat_pid_dir,
             owner=params.webhcat_user,
-            recursive=True
+            create_parents = True
   )
 
   hcat_TemplateConfig('hcat-env.sh')

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-funtest/src/test/resources/stacks/HDP/2.0.7/services/HIVE/package/scripts/hive.py
----------------------------------------------------------------------
diff --git a/ambari-funtest/src/test/resources/stacks/HDP/2.0.7/services/HIVE/package/scripts/hive.py b/ambari-funtest/src/test/resources/stacks/HDP/2.0.7/services/HIVE/package/scripts/hive.py
index 63e7fa3..f813755 100644
--- a/ambari-funtest/src/test/resources/stacks/HDP/2.0.7/services/HIVE/package/scripts/hive.py
+++ b/ambari-funtest/src/test/resources/stacks/HDP/2.0.7/services/HIVE/package/scripts/hive.py
@@ -36,7 +36,7 @@ def hive(name=None):
   Directory(hive_config_dir,
             owner=params.hive_user,
             group=params.user_group,
-            recursive=True
+            create_parents = True
   )
 
   XmlConfig("hive-site.xml",
@@ -87,7 +87,7 @@ def crt_directory(name):
   import params
 
   Directory(name,
-            recursive=True,
+            create_parents = True,
             owner=params.hive_user,
             group=params.user_group,
             mode=0755)

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/package/scripts/accumulo_configuration.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/package/scripts/accumulo_configuration.py b/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/package/scripts/accumulo_configuration.py
index acc340f..09a3d90 100644
--- a/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/package/scripts/accumulo_configuration.py
+++ b/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/package/scripts/accumulo_configuration.py
@@ -29,7 +29,7 @@ def setup_conf_dir(name=None): # 'master' or 'tserver' or 'monitor' or 'gc' or '
       mode=0755,
       owner = params.accumulo_user,
       group = params.user_group,
-      recursive = True
+      create_parents = True
   )
 
   if name == 'client':
@@ -65,7 +65,7 @@ def setup_conf_dir(name=None): # 'master' or 'tserver' or 'monitor' or 'gc' or '
                mode=0700,
                owner = params.accumulo_user,
                group = params.user_group,
-               recursive = True
+               create_parents = True
     )
     # create a site file for server processes
     configs = {}
@@ -85,7 +85,7 @@ def setup_conf_dir(name=None): # 'master' or 'tserver' or 'monitor' or 'gc' or '
     Directory( params.pid_dir,
                owner = params.accumulo_user,
                group = params.user_group,
-               recursive = True,
+               create_parents = True,
                cd_access = "a",
                mode = 0755,
     )
@@ -94,7 +94,7 @@ def setup_conf_dir(name=None): # 'master' or 'tserver' or 'monitor' or 'gc' or '
     Directory (params.log_dir,
                owner = params.accumulo_user,
                group = params.user_group,
-               recursive = True,
+               create_parents = True,
                cd_access = "a",
                mode = 0755,
     )

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/package/scripts/accumulo_service.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/package/scripts/accumulo_service.py b/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/package/scripts/accumulo_service.py
index a4e9c54..0d9687b 100644
--- a/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/package/scripts/accumulo_service.py
+++ b/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/package/scripts/accumulo_service.py
@@ -20,6 +20,7 @@ limitations under the License.
 
 from resource_management import *
 import time
+import os
 
 def accumulo_service( name,
                       action = 'start'): # 'start' or 'stop' or 'status'
@@ -31,10 +32,13 @@ def accumulo_service( name,
     pid_exists = format("ls {pid_file} >/dev/null 2>&1 && ps `cat {pid_file}` >/dev/null 2>&1")
 
     if action == 'start':
-      Execute(as_sudo(['chown','-R',params.accumulo_user+":"+params.user_group,
-                       format("$(getent passwd {accumulo_user} | cut -d: -f6)")],
-                      auto_escape=False),
-              ignore_failures=True)
+      Directory(os.path.expanduser("~"), 
+                user = params.accumulo_user,
+                group = params.user_group,
+                recursive_ownership = True,
+                ignore_failures=True
+      )
+      
       if name != 'tserver':
         Execute(format("{daemon_script} org.apache.accumulo.master.state.SetGoalState NORMAL"),
                 not_if=as_user(pid_exists, params.accumulo_user),

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/ams.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/ams.py b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/ams.py
index 8fdf4ba..94b9fc9 100644
--- a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/ams.py
+++ b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/ams.py
@@ -34,12 +34,12 @@ def ams(name=None):
 
     Directory(params.ams_collector_conf_dir,
               owner=params.ams_user,
-              recursive=True
+              create_parents = True
     )
 
     Directory(params.ams_checkpoint_dir,
               owner=params.ams_user,
-              recursive=True
+              create_parents = True
     )
 
     XmlConfig("ams-site.xml",
@@ -155,7 +155,7 @@ def ams(name=None):
 
     Directory(params.ams_monitor_conf_dir,
               owner=params.ams_user,
-              recursive=True
+              create_parents = True
     )
 
     TemplateConfig(
@@ -184,24 +184,18 @@ def ams(name=None):
     Directory(params.ams_collector_conf_dir,
               owner=params.ams_user,
               group=params.user_group,
-              recursive=True
+              create_parents = True,
+              recursive_ownership = True,
     )
-
-    Execute(('chown', '-R', params.ams_user, params.ams_collector_conf_dir),
-            sudo=True
-            )
-
+    
     Directory(params.ams_checkpoint_dir,
               owner=params.ams_user,
               group=params.user_group,
               cd_access="a",
-              recursive=True
+              create_parents = True,
+              recursive_ownership = True
     )
 
-    Execute(('chown', '-R', params.ams_user, params.ams_checkpoint_dir),
-            sudo=True
-            )
-
     XmlConfig("ams-site.xml",
               conf_dir=params.ams_collector_conf_dir,
               configurations=params.config['configurations']['ams-site'],
@@ -249,7 +243,7 @@ def ams(name=None):
               owner=params.ams_user,
               group=params.user_group,
               cd_access="a",
-              recursive=True,
+              create_parents = True,
               mode=0755,
     )
 
@@ -257,7 +251,7 @@ def ams(name=None):
               owner=params.ams_user,
               group=params.user_group,
               cd_access="a",
-              recursive=True,
+              create_parents = True,
               mode=0755,
     )
 
@@ -269,7 +263,7 @@ def ams(name=None):
 
     # On some OS this folder could be not exists, so we will create it before pushing there files
     Directory(params.limits_conf_dir,
-              recursive=True,
+              create_parents = True,
               owner='root',
               group='root'
     )
@@ -289,7 +283,7 @@ def ams(name=None):
                 mode = 0755,
                 group=params.user_group,
                 cd_access="a",
-                recursive=True
+                create_parents = True
       )
     pass
 
@@ -337,28 +331,28 @@ def ams(name=None):
     Directory(params.ams_monitor_conf_dir,
               owner=params.ams_user,
               group=params.user_group,
-              recursive=True
+              create_parents = True
     )
 
     Directory(params.ams_monitor_log_dir,
               owner=params.ams_user,
               group=params.user_group,
               mode=0755,
-              recursive=True
+              create_parents = True
     )
 
     Directory(params.ams_monitor_pid_dir,
               owner=params.ams_user,
               group=params.user_group,
               mode=0755,
-              recursive=True
+              create_parents = True
     )
 
     Directory(format("{ams_monitor_dir}/psutil/build"),
               owner=params.ams_user,
               group=params.user_group,
               cd_access="a",
-              recursive=True)
+              create_parents = True)
 
     Execute(format("{sudo} chown -R {ams_user}:{user_group} {ams_monitor_dir}")
     )

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/hbase.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/hbase.py b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/hbase.py
index 2ddb8fe..556380e 100644
--- a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/hbase.py
+++ b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/hbase.py
@@ -27,16 +27,16 @@ def hbase(name=None, action = None):
   import params
   Directory(params.hbase_conf_dir,
             owner = params.hadoop_user,
-            recursive = True
+            create_parents = True
   )
   Directory(params.hbase_tmp_dir,
-             recursive = True,
+             create_parents = True,
              owner = params.hadoop_user
   )
 
   Directory (os.path.join(params.local_dir, "jars"),
              owner = params.hadoop_user,
-             recursive = True
+             create_parents = True
   )
 
   XmlConfig("hbase-site.xml",
@@ -73,7 +73,7 @@ def hbase(name=None, action = None):
   if name != "client":
     Directory (params.hbase_log_dir,
                owner = params.hadoop_user,
-               recursive = True
+               create_parents = True
     )
 
   if (params.hbase_log4j_props != None):
@@ -94,29 +94,23 @@ def hbase(name=None # 'master' or 'regionserver' or 'client'
   Directory(params.hbase_conf_dir,
       owner = params.hbase_user,
       group = params.user_group,
-      recursive = True
+      create_parents = True,
+      recursive_ownership = True,
   )
 
-  Execute(('chown', '-R', params.hbase_user, params.hbase_conf_dir),
-          sudo=True
-          )
-
   Directory (params.hbase_tmp_dir,
              owner = params.hbase_user,
              cd_access="a",
-             recursive = True
+             create_parents = True,
+             recursive_ownership = True,
   )
 
-  Execute(('chown', '-R', params.hbase_user, params.hbase_tmp_dir),
-          sudo=True
-          )
-
   Directory (os.path.join(params.local_dir, "jars"),
              owner = params.hbase_user,
              group = params.user_group,
              cd_access="a",
              mode=0775,
-             recursive = True
+             create_parents = True
   )
 
   merged_ams_hbase_site = {}
@@ -139,7 +133,7 @@ def hbase(name=None # 'master' or 'regionserver' or 'client'
               mode = 0755,
               group=params.user_group,
               cd_access="a",
-              recursive=True
+              create_parents = True
     )
   pass
 
@@ -184,14 +178,14 @@ def hbase(name=None # 'master' or 'regionserver' or 'client'
   if name != "client":
     Directory( params.hbase_pid_dir,
                owner = params.hbase_user,
-               recursive = True,
+               create_parents = True,
                cd_access = "a",
                mode = 0755,
     )
 
     Directory (params.hbase_log_dir,
                owner = params.hbase_user,
-               recursive = True,
+               create_parents = True,
                cd_access = "a",
                mode = 0755,
     )
@@ -237,13 +231,10 @@ def hbase(name=None # 'master' or 'regionserver' or 'client'
       Directory(local_root_dir,
                 owner = params.hbase_user,
                 cd_access="a",
-                recursive = True
+                create_parents = True,
+                recursive_ownership = True
       )
 
-      Execute(('chown', '-R', params.hbase_user, local_root_dir),
-              sudo=True
-              )
-
       File(format("{params.hbase_pid_dir}/distributed_mode"), action="delete", owner=params.hbase_user)
 
   if params.hbase_log4j_props is not None:

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/common-services/ATLAS/0.1.0.2.3/package/scripts/metadata.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/ATLAS/0.1.0.2.3/package/scripts/metadata.py b/ambari-server/src/main/resources/common-services/ATLAS/0.1.0.2.3/package/scripts/metadata.py
index 2dbb273..8c17214 100644
--- a/ambari-server/src/main/resources/common-services/ATLAS/0.1.0.2.3/package/scripts/metadata.py
+++ b/ambari-server/src/main/resources/common-services/ATLAS/0.1.0.2.3/package/scripts/metadata.py
@@ -30,7 +30,7 @@ def metadata():
               cd_access='a',
               owner=params.metadata_user,
               group=params.user_group,
-              recursive=True
+              create_parents = True
     )
 
     Directory(params.conf_dir,
@@ -38,7 +38,7 @@ def metadata():
               cd_access='a',
               owner=params.metadata_user,
               group=params.user_group,
-              recursive=True
+              create_parents = True
     )
 
     Directory(params.log_dir,
@@ -46,7 +46,7 @@ def metadata():
               cd_access='a',
               owner=params.metadata_user,
               group=params.user_group,
-              recursive=True
+              create_parents = True
     )
 
     Directory(params.data_dir,
@@ -54,7 +54,7 @@ def metadata():
               cd_access='a',
               owner=params.metadata_user,
               group=params.user_group,
-              recursive=True
+              create_parents = True
     )
 
     Directory(params.expanded_war_dir,
@@ -62,7 +62,7 @@ def metadata():
               cd_access='a',
               owner=params.metadata_user,
               group=params.user_group,
-              recursive=True
+              create_parents = True
     )
 
     File(format("{expanded_war_dir}/atlas.war"),

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/falcon.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/falcon.py b/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/falcon.py
index 6c8d5ff..81ea39e 100644
--- a/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/falcon.py
+++ b/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/falcon.py
@@ -41,33 +41,33 @@ def falcon(type, action = None, upgrade_type=None):
   if action == 'config':
     Directory(params.falcon_pid_dir,
       owner = params.falcon_user,
-      recursive = True,
+      create_parents = True,
       mode = 0755,
       cd_access = "a",
     )
 
     Directory(params.falcon_log_dir,
       owner = params.falcon_user,
-      recursive = True,
+      create_parents = True,
       mode = 0755,
       cd_access = "a",
     )
 
     Directory(params.falcon_webapp_dir,
       owner = params.falcon_user,
-      recursive = True)
+      create_parents = True)
 
     Directory(params.falcon_home,
       owner = params.falcon_user,
-      recursive = True)
+      create_parents = True)
 
     Directory(params.etc_prefix_dir,
       mode = 0755,
-      recursive = True)
+      create_parents = True)
 
     Directory(params.falcon_conf_dir,
       owner = params.falcon_user,
-      recursive = True)
+      create_parents = True)
 
     File(params.falcon_conf_dir + '/falcon-env.sh',
       content = InlineTemplate(params.falcon_env_sh_template),
@@ -95,7 +95,7 @@ def falcon(type, action = None, upgrade_type=None):
         owner = params.falcon_user,
         group = params.user_group,
         mode = 0775,
-        recursive = True,
+        create_parents = True,
         cd_access = "a")
 
     if params.falcon_graph_serialize_path:
@@ -103,7 +103,7 @@ def falcon(type, action = None, upgrade_type=None):
         owner = params.falcon_user,
         group = params.user_group,
         mode = 0775,
-        recursive = True,
+        create_parents = True,
         cd_access = "a")
 
   if type == 'server':
@@ -117,7 +117,7 @@ def falcon(type, action = None, upgrade_type=None):
       elif params.store_uri[0:4] == "file":
         Directory(params.store_uri[7:],
           owner = params.falcon_user,
-          recursive = True)
+          create_parents = True)
 
       # TODO change to proper mode
       params.HdfsResource(params.flacon_apps_dir,
@@ -135,7 +135,7 @@ def falcon(type, action = None, upgrade_type=None):
       elif params.falcon_store_uri[0:4] == "file":
         Directory(params.falcon_store_uri[7:],
           owner = params.falcon_user,
-          recursive = True)
+          create_parents = True)
 
       if params.supports_hive_dr:
         params.HdfsResource(params.dfs_data_mirroring_dir,
@@ -151,18 +151,18 @@ def falcon(type, action = None, upgrade_type=None):
       params.HdfsResource(None, action = "execute")
       Directory(params.falcon_local_dir,
         owner = params.falcon_user,
-        recursive = True,
+        create_parents = True,
         cd_access = "a")
 
       if params.falcon_embeddedmq_enabled == True:
         Directory(
           os.path.abspath(os.path.join(params.falcon_embeddedmq_data, "..")),
           owner = params.falcon_user,
-          recursive = True)
+          create_parents = True)
 
         Directory(params.falcon_embeddedmq_data,
           owner = params.falcon_user,
-          recursive = True)
+          create_parents = True)
 
     # although Falcon's falcon-config.sh will use 'which hadoop' to figure
     # this out, in an upgraded cluster, it's possible that 'which hadoop'

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/common-services/FLUME/1.4.0.2.0/package/scripts/flume.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/FLUME/1.4.0.2.0/package/scripts/flume.py b/ambari-server/src/main/resources/common-services/FLUME/1.4.0.2.0/package/scripts/flume.py
index 293df58..b30b122 100644
--- a/ambari-server/src/main/resources/common-services/FLUME/1.4.0.2.0/package/scripts/flume.py
+++ b/ambari-server/src/main/resources/common-services/FLUME/1.4.0.2.0/package/scripts/flume.py
@@ -96,7 +96,7 @@ def flume(action = None):
     )
 
     Directory(params.flume_conf_dir,
-              recursive=True,
+              create_parents = True,
               owner=params.flume_user,
               )
     Directory(params.flume_log_dir, 

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/common-services/GANGLIA/3.5.0/package/scripts/ganglia.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/GANGLIA/3.5.0/package/scripts/ganglia.py b/ambari-server/src/main/resources/common-services/GANGLIA/3.5.0/package/scripts/ganglia.py
index 69fde27..9a69b72 100644
--- a/ambari-server/src/main/resources/common-services/GANGLIA/3.5.0/package/scripts/ganglia.py
+++ b/ambari-server/src/main/resources/common-services/GANGLIA/3.5.0/package/scripts/ganglia.py
@@ -35,7 +35,7 @@ def config():
   Directory(shell_cmds_dir,
             owner="root",
             group="root",
-            recursive=True
+            create_parents = True
   )
   init_file("gmetad")
   init_file("gmond")

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/common-services/GANGLIA/3.5.0/package/scripts/ganglia_monitor.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/GANGLIA/3.5.0/package/scripts/ganglia_monitor.py b/ambari-server/src/main/resources/common-services/GANGLIA/3.5.0/package/scripts/ganglia_monitor.py
index 05ceaff..feb0af3 100644
--- a/ambari-server/src/main/resources/common-services/GANGLIA/3.5.0/package/scripts/ganglia_monitor.py
+++ b/ambari-server/src/main/resources/common-services/GANGLIA/3.5.0/package/scripts/ganglia_monitor.py
@@ -71,7 +71,7 @@ class GangliaMonitor(Script):
     Directory(params.ganglia_conf_dir,
               owner="root",
               group=params.user_group,
-              recursive=True
+              create_parents = True
     )
 
     ganglia.config()

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/common-services/GANGLIA/3.5.0/package/scripts/ganglia_server.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/GANGLIA/3.5.0/package/scripts/ganglia_server.py b/ambari-server/src/main/resources/common-services/GANGLIA/3.5.0/package/scripts/ganglia_server.py
index 1893483..8d75d7f 100644
--- a/ambari-server/src/main/resources/common-services/GANGLIA/3.5.0/package/scripts/ganglia_server.py
+++ b/ambari-server/src/main/resources/common-services/GANGLIA/3.5.0/package/scripts/ganglia_server.py
@@ -83,14 +83,13 @@ def change_permission():
 
   Directory(os.path.abspath(os.path.join(params.ganglia_runtime_dir, "..")),
             mode=0755,
-            recursive=True
+            create_parents = True
   )
   Directory(params.dwoo_path,
             mode=0755,
-            recursive=True
-  )
-  Execute(('chown', '-R', params.web_user, params.dwoo_path),
-          sudo = True,
+            create_parents = True,
+            owner = params.web_user,
+            recursive_ownership = True,
   )
 
 def server_files():
@@ -98,7 +97,7 @@ def server_files():
 
   rrd_py_path = params.rrd_py_path
   Directory(rrd_py_path,
-            recursive=True
+            create_parents = True
   )
   rrd_py_file_path = path.join(rrd_py_path, "rrd.py")
   TemplateConfig(rrd_py_file_path,
@@ -112,7 +111,7 @@ def server_files():
             owner=rrd_file_owner,
             group=rrd_file_owner,
             mode=0755,
-            recursive=True
+            create_parents = True
   )
   
   if OSCheck.is_suse_family() or OSCheck.is_ubuntu_family():

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/common-services/HAWQ/2.0.0/package/scripts/common.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HAWQ/2.0.0/package/scripts/common.py b/ambari-server/src/main/resources/common-services/HAWQ/2.0.0/package/scripts/common.py
index ac81b11..5ca2049 100644
--- a/ambari-server/src/main/resources/common-services/HAWQ/2.0.0/package/scripts/common.py
+++ b/ambari-server/src/main/resources/common-services/HAWQ/2.0.0/package/scripts/common.py
@@ -223,7 +223,7 @@ def __update_limits_file():
   """
   import params
   # Ensure limits directory exists
-  Directory(hawq_constants.limits_conf_dir, recursive=True, owner=hawq_constants.root_user, group=hawq_constants.root_user)
+  Directory(hawq_constants.limits_conf_dir, create_parents = True, owner=hawq_constants.root_user, group=hawq_constants.root_user)
 
   # Generate limits for hawq user
   limits_file_content = "#### HAWQ Limits Parameters  ###########\n"
@@ -266,7 +266,7 @@ def __update_sysctl_file():
   Updates /etc/sysctl.d/hawq_sysctl.conf file with the HAWQ parameters on CentOS/RHEL.
   """
   # Ensure sys ctl sub-directory exists
-  Directory(hawq_constants.sysctl_conf_dir, recursive=True, owner=hawq_constants.root_user, group=hawq_constants.root_user)
+  Directory(hawq_constants.sysctl_conf_dir, create_parents = True, owner=hawq_constants.root_user, group=hawq_constants.root_user)
 
   # Generate temporary file with kernel parameters needed by hawq
   File(hawq_constants.hawq_sysctl_tmp_file, content=__convert_sysctl_dict_to_text(), owner=hawq_constants.hawq_user,

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/common-services/HAWQ/2.0.0/package/scripts/utils.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HAWQ/2.0.0/package/scripts/utils.py b/ambari-server/src/main/resources/common-services/HAWQ/2.0.0/package/scripts/utils.py
index 316c7f2..c1a38bb 100644
--- a/ambari-server/src/main/resources/common-services/HAWQ/2.0.0/package/scripts/utils.py
+++ b/ambari-server/src/main/resources/common-services/HAWQ/2.0.0/package/scripts/utils.py
@@ -35,7 +35,7 @@ def create_dir_as_hawq_user(directory):
   """
   Creates directories with hawq_user and hawq_group (defaults to gpadmin:gpadmin)
   """
-  Directory(directory, recursive=True, owner=hawq_constants.hawq_user, group=hawq_constants.hawq_group)
+  Directory(directory, create_parents = True, owner=hawq_constants.hawq_user, group=hawq_constants.hawq_group)
 
 
 def exec_hawq_operation(operation, option, not_if=None, only_if=None, logoutput=True):

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/package/scripts/hbase.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/package/scripts/hbase.py b/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/package/scripts/hbase.py
index 22b67e1..c407a93 100644
--- a/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/package/scripts/hbase.py
+++ b/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/package/scripts/hbase.py
@@ -53,13 +53,13 @@ def hbase(name=None):
   Directory( params.hbase_conf_dir,
       owner = params.hbase_user,
       group = params.user_group,
-      recursive = True
+      create_parents = True
   )
    
   Directory(params.java_io_tmpdir,
       owner = params.hbase_user,
       group = params.user_group,
-      recursive = True,
+      create_parents = True,
       mode=0777
   )
   parent_dir = os.path.dirname(params.tmp_dir)
@@ -68,7 +68,7 @@ def hbase(name=None):
     parent_dir = os.path.dirname(parent_dir)
   if parent_dir != os.path.abspath(os.sep) :
     Directory (parent_dir,
-          recursive = True,
+          create_parents = True,
           cd_access="a",
     )
     Execute(("chmod", "1777", parent_dir), sudo=True)
@@ -129,7 +129,7 @@ def hbase(name=None):
   
   # On some OS this folder could be not exists, so we will create it before pushing there files
   Directory(params.limits_conf_dir,
-            recursive=True,
+            create_parents = True,
             owner='root',
             group='root'
             )
@@ -153,14 +153,14 @@ def hbase(name=None):
   if name != "client":
     Directory( params.pid_dir,
       owner = params.hbase_user,
-      recursive = True,
+      create_parents = True,
       cd_access = "a",
       mode = 0755,
     )
   
     Directory (params.log_dir,
       owner = params.hbase_user,
-      recursive = True,
+      create_parents = True,
       cd_access = "a",
       mode = 0755,
     )

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/hdfs.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/hdfs.py b/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/hdfs.py
index 1a34a24..246bf07 100644
--- a/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/hdfs.py
+++ b/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/hdfs.py
@@ -33,7 +33,7 @@ def hdfs(name=None):
   
   # On some OS this folder could be not exists, so we will create it before pushing there files
   Directory(params.limits_conf_dir,
-            recursive=True,
+            create_parents = True,
             owner='root',
             group='root'
   )
@@ -71,7 +71,7 @@ def hdfs(name=None):
     )
 
     Directory(params.hadoop_conf_secure_dir,
-              recursive=True,
+              create_parents = True,
               owner='root',
               group=params.user_group,
               cd_access='a',
@@ -122,7 +122,7 @@ def hdfs(name=None):
 def install_snappy():
   import params
   Directory([params.so_target_dir_x86, params.so_target_dir_x64],
-            recursive=True,
+            create_parents = True,
   )    
   Link(params.so_target_x86,
        to=params.so_src_x86,
@@ -139,7 +139,7 @@ def hdfs(component=None):
     Directory(directories,
               owner=params.hdfs_user,
               mode="(OI)(CI)F",
-              recursive=True
+              create_parents = True
     )
     File(params.exclude_file_path,
          content=Template("exclude_hosts_list.j2"),

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/hdfs_datanode.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/hdfs_datanode.py b/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/hdfs_datanode.py
index e225927..a22fb99 100644
--- a/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/hdfs_datanode.py
+++ b/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/hdfs_datanode.py
@@ -30,7 +30,7 @@ def create_dirs(data_dir, params):
   :param params: parameters
   """
   Directory(data_dir,
-            recursive=True,
+            create_parents = True,
             cd_access="a",
             mode=0755,
             owner=params.hdfs_user,
@@ -43,14 +43,14 @@ def datanode(action=None):
   if action == "configure":
     import params
     Directory(params.dfs_domain_socket_dir,
-              recursive=True,
+              create_parents = True,
               mode=0751,
               owner=params.hdfs_user,
               group=params.user_group)
 
     if not os.path.isdir(os.path.dirname(params.data_dir_mount_file)):
       Directory(os.path.dirname(params.data_dir_mount_file),
-                recursive=True,
+                create_parents = True,
                 mode=0755,
                 owner=params.hdfs_user,
                 group=params.user_group)

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/hdfs_namenode.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/hdfs_namenode.py b/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/hdfs_namenode.py
index 004caff..b91fdb5 100644
--- a/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/hdfs_namenode.py
+++ b/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/hdfs_namenode.py
@@ -228,7 +228,7 @@ def create_name_dirs(directories):
             mode=0755,
             owner=params.hdfs_user,
             group=params.user_group,
-            recursive=True,
+            create_parents = True,
             cd_access="a",
   )
 
@@ -278,7 +278,7 @@ def format_namenode(force=None):
         )
         for m_dir in mark_dir:
           Directory(m_dir,
-            recursive = True
+            create_parents = True
           )
   else:
     if params.dfs_ha_namenode_active is not None and \
@@ -298,7 +298,7 @@ def format_namenode(force=None):
           )
           for m_dir in mark_dir:
             Directory(m_dir,
-              recursive = True
+              create_parents = True
             )
 
 def is_namenode_formatted(params):
@@ -316,7 +316,7 @@ def is_namenode_formatted(params):
   if marked:
     for mark_dir in mark_dirs:
       Directory(mark_dir,
-        recursive = True
+        create_parents = True
       )      
     return marked  
   
@@ -334,7 +334,7 @@ def is_namenode_formatted(params):
     elif os.path.isfile(old_mark_dir):
       for mark_dir in mark_dirs:
         Directory(mark_dir,
-                  recursive = True,
+                  create_parents = True,
         )
       Directory(old_mark_dir,
         action = "delete"

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/hdfs_snamenode.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/hdfs_snamenode.py b/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/hdfs_snamenode.py
index aded211..500ed15 100644
--- a/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/hdfs_snamenode.py
+++ b/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/hdfs_snamenode.py
@@ -28,7 +28,7 @@ def snamenode(action=None, format=False):
     import params
     for fs_checkpoint_dir in params.fs_checkpoint_dirs:
       Directory(fs_checkpoint_dir,
-                recursive=True,
+                create_parents = True,
                 cd_access="a",
                 mode=0755,
                 owner=params.hdfs_user,

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/journalnode.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/journalnode.py b/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/journalnode.py
index 2ef1b69..ad4283c 100644
--- a/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/journalnode.py
+++ b/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/journalnode.py
@@ -88,7 +88,7 @@ class JournalNodeDefault(JournalNode):
     import params
 
     Directory(params.jn_edits_dir,
-              recursive=True,
+              create_parents = True,
               cd_access="a",
               owner=params.hdfs_user,
               group=params.user_group

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/utils.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/utils.py b/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/utils.py
index aa97af0..e59dd78 100644
--- a/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/utils.py
+++ b/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/utils.py
@@ -206,7 +206,7 @@ def service(action=None, name=None, user=None, options="", create_pid_dir=False,
     if create_pid_dir:
       Directory(pid_dir,
                 owner=user,
-                recursive=True)
+                create_parents = True)
     if create_log_dir:
       if name == "nfs3":
         Directory(log_dir,
@@ -216,7 +216,7 @@ def service(action=None, name=None, user=None, options="", create_pid_dir=False,
       else:
         Directory(log_dir,
                   owner=user,
-                  recursive=True)
+                  create_parents = True)
 
   if params.security_enabled and name == "datanode":
     ## The directory where pid files are stored in the secure data environment.

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hcat.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hcat.py b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hcat.py
index 5385099..45dcbe7 100644
--- a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hcat.py
+++ b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hcat.py
@@ -43,21 +43,21 @@ def hcat():
   from setup_atlas_hive import setup_atlas_hive
 
   Directory(params.hive_conf_dir,
-            recursive=True,
+            create_parents = True,
             owner=params.hcat_user,
             group=params.user_group,
   )
 
 
   Directory(params.hcat_conf_dir,
-            recursive=True,
+            create_parents = True,
             owner=params.hcat_user,
             group=params.user_group,
   )
 
   Directory(params.hcat_pid_dir,
             owner=params.webhcat_user,
-            recursive=True
+            create_parents = True
   )
 
   XmlConfig("hive-site.xml",

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive.py b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive.py
index 39b3433..a141185 100644
--- a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive.py
+++ b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive.py
@@ -240,7 +240,7 @@ def hive(name=None):
 
   # On some OS this folder could be not exists, so we will create it before pushing there files
   Directory(params.limits_conf_dir,
-            recursive=True,
+            create_parents = True,
             owner='root',
             group='root'
             )
@@ -308,7 +308,7 @@ def fill_conf_dir(component_conf_dir):
   Directory(component_conf_dir,
             owner=params.hive_user,
             group=params.user_group,
-            recursive=True
+            create_parents = True
   )
 
   XmlConfig("mapred-site.xml",
@@ -359,7 +359,7 @@ def crt_directory(name):
   import params
 
   Directory(name,
-            recursive=True,
+            create_parents = True,
             cd_access='a',
             owner=params.hive_user,
             group=params.user_group,
@@ -398,7 +398,7 @@ def jdbc_connector():
       Execute(format("yes | {sudo} cp {jars_path_in_archive} {hive_lib}"))
 
       Directory(params.jdbc_libs_dir,
-                recursive=True)
+                create_parents = True)
 
       Execute(format("yes | {sudo} cp {libs_path_in_archive} {jdbc_libs_dir}"))
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive_metastore.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive_metastore.py b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive_metastore.py
index e347e25..5866cd0 100644
--- a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive_metastore.py
+++ b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive_metastore.py
@@ -207,7 +207,7 @@ class HiveMetastoreDefault(HiveMetastore):
 
         Execute(format("yes | {sudo} cp {jars_in_hive_lib} {target_directory}"))
 
-        Directory(target_native_libs_directory, recursive=True)
+        Directory(target_native_libs_directory, create_parents = True)
 
         Execute(format("yes | {sudo} cp {libs_in_hive_lib} {target_native_libs_directory}"))
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/webhcat.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/webhcat.py b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/webhcat.py
index b597852..401debc 100644
--- a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/webhcat.py
+++ b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/webhcat.py
@@ -50,16 +50,16 @@ def webhcat():
             owner=params.webhcat_user,
             mode=0755,
             group=params.user_group,
-            recursive=True)
+            create_parents = True)
 
   Directory(params.templeton_log_dir,
             owner=params.webhcat_user,
             mode=0755,
             group=params.user_group,
-            recursive=True)
+            create_parents = True)
 
   Directory(params.config_dir,
-            recursive=True,
+            create_parents = True,
             owner=params.webhcat_user,
             group=params.user_group,
             cd_access="a")
@@ -116,7 +116,7 @@ def webhcat():
   
   Directory(params.webhcat_conf_dir,
        cd_access='a',
-       recursive=True
+       create_parents = True
   )
 
   log4j_webhcat_filename = 'webhcat-log4j.properties'

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/common-services/KAFKA/0.8.1.2.2/package/scripts/kafka.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/KAFKA/0.8.1.2.2/package/scripts/kafka.py b/ambari-server/src/main/resources/common-services/KAFKA/0.8.1.2.2/package/scripts/kafka.py
index faabee0..1c01174 100644
--- a/ambari-server/src/main/resources/common-services/KAFKA/0.8.1.2.2/package/scripts/kafka.py
+++ b/ambari-server/src/main/resources/common-services/KAFKA/0.8.1.2.2/package/scripts/kafka.py
@@ -82,8 +82,9 @@ def kafka(upgrade_type=None):
               cd_access='a',
               owner=params.kafka_user,
               group=params.user_group,
-              recursive=True)
-    set_dir_ownership(kafka_data_dirs)
+              create_parents = True,
+              recursive_ownership = True,
+    )
 
     PropertiesFile("server.properties",
                       dir=params.conf_dir,
@@ -114,7 +115,7 @@ def kafka(upgrade_type=None):
 
     # On some OS this folder could be not exists, so we will create it before pushing there files
     Directory(params.limits_conf_dir,
-              recursive=True,
+              create_parents = True,
               owner='root',
               group='root'
     )
@@ -150,7 +151,7 @@ def setup_symlink(kafka_managed_dir, kafka_ambari_managed_dir):
 
       Directory(kafka_managed_dir,
                 action="delete",
-                recursive=True)
+                create_parents = True)
 
     elif os.path.islink(kafka_managed_dir) and os.path.realpath(kafka_managed_dir) != kafka_ambari_managed_dir:
       Link(kafka_managed_dir,
@@ -169,8 +170,9 @@ def setup_symlink(kafka_managed_dir, kafka_ambari_managed_dir):
               cd_access='a',
               owner=params.kafka_user,
               group=params.user_group,
-              recursive=True)
-    set_dir_ownership(kafka_managed_dir)
+              create_parents = True,
+              recursive_ownership = True,
+    )
 
   if backup_folder_path:
     # Restore backed up files to current relevant dirs if needed - will be triggered only when changing to/from default path;
@@ -182,7 +184,7 @@ def setup_symlink(kafka_managed_dir, kafka_ambari_managed_dir):
     # Clean up backed up folder
     Directory(backup_folder_path,
               action="delete",
-              recursive=True)
+              create_parents = True)
 
 
 # Uses agent temp dir to store backup files
@@ -194,9 +196,9 @@ def backup_dir_contents(dir_path, backup_folder_suffix):
             cd_access='a',
             owner=params.kafka_user,
             group=params.user_group,
-            recursive=True
+            create_parents = True,
+            recursive_ownership = True,
   )
-  set_dir_ownership(backup_destination_path)
   # Safely copy top-level contents to backup folder
   for file in os.listdir(dir_path):
     File(os.path.join(backup_destination_path, file),
@@ -205,35 +207,13 @@ def backup_dir_contents(dir_path, backup_folder_suffix):
 
   return backup_destination_path
 
-
 def ensure_base_directories():
-  """
-  Make basic Kafka directories, and make sure that their ownership is correct
-  """
   import params
-  base_dirs = [params.kafka_log_dir, params.kafka_pid_dir, params.conf_dir]
-  Directory(base_dirs,
+  Directory([params.kafka_log_dir, params.kafka_pid_dir, params.conf_dir],
             mode=0755,
             cd_access='a',
             owner=params.kafka_user,
             group=params.user_group,
-            recursive=True
+            create_parents = True,
+            recursive_ownership = True,
             )
-  set_dir_ownership(base_dirs)
-
-
-def set_dir_ownership(targets):
-  import params
-  if isinstance(targets, collections.Iterable):
-    directories = targets
-  else:  # If target is a single object, convert it to list
-    directories = [targets]
-  for directory in directories:
-    # If path is empty or a single slash,
-    # may corrupt filesystem permissions
-    if len(directory) > 1:
-      Execute(('chown', '-R', format("{kafka_user}:{user_group}"), directory),
-            sudo=True)
-    else:
-      Logger.warning("Permissions for the folder \"%s\" were not updated due to "
-            "empty path passed: " % directory)

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/common-services/KERBEROS/1.10.3-10/package/scripts/kerberos_common.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/KERBEROS/1.10.3-10/package/scripts/kerberos_common.py b/ambari-server/src/main/resources/common-services/KERBEROS/1.10.3-10/package/scripts/kerberos_common.py
index d40627a..b72c4bf 100644
--- a/ambari-server/src/main/resources/common-services/KERBEROS/1.10.3-10/package/scripts/kerberos_common.py
+++ b/ambari-server/src/main/resources/common-services/KERBEROS/1.10.3-10/package/scripts/kerberos_common.py
@@ -102,7 +102,7 @@ class KerberosScript(Script):
 
     Directory(params.krb5_conf_dir,
               owner='root',
-              recursive=True,
+              create_parents = True,
               group='root',
               mode=0755
     )
@@ -366,7 +366,7 @@ class KerberosScript(Script):
           if (keytab_file_path is not None) and (len(keytab_file_path) > 0):
             head, tail = os.path.split(keytab_file_path)
             if head:
-              Directory(head, recursive=True, mode=0755, owner="root", group="root")
+              Directory(head, create_parents = True, mode=0755, owner="root", group="root")
 
             owner = get_property_value(item, 'keytab_file_owner_name')
             owner_access = get_property_value(item, 'keytab_file_owner_access')
@@ -438,7 +438,7 @@ class KerberosScript(Script):
     if params.jce_policy_zip is not None:
       jce_curl_target = format("{artifact_dir}/{jce_policy_zip}")
       Directory(params.artifact_dir,
-                recursive = True,
+                create_parents = True,
                 )
       File(jce_curl_target,
            content = DownloadSource(format("{jce_location}/{jce_policy_zip}")),

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/common-services/KERBEROS/1.10.3-10/package/scripts/kerberos_server.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/KERBEROS/1.10.3-10/package/scripts/kerberos_server.py b/ambari-server/src/main/resources/common-services/KERBEROS/1.10.3-10/package/scripts/kerberos_server.py
index 8cc4312..7fe02ab 100644
--- a/ambari-server/src/main/resources/common-services/KERBEROS/1.10.3-10/package/scripts/kerberos_server.py
+++ b/ambari-server/src/main/resources/common-services/KERBEROS/1.10.3-10/package/scripts/kerberos_server.py
@@ -27,7 +27,7 @@ class KerberosServer(KerberosScript):
 
     Directory(params.kadm5_acl_dir,
               owner='root',
-              recursive=True,
+              create_parents = True,
               group='root',
               mode=0700
     )
@@ -50,7 +50,7 @@ class KerberosServer(KerberosScript):
 
     Directory(params.kdc_conf_dir,
               owner='root',
-              recursive=True,
+              create_parents = True,
               group='root',
               mode=0700
     )

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/knox.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/knox.py b/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/knox.py
index 806cec8..5436e47 100644
--- a/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/knox.py
+++ b/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/knox.py
@@ -88,16 +88,14 @@ def knox():
 @OsFamilyFuncImpl(os_family=OsFamilyImpl.DEFAULT)
 def knox():
     import params
-
-    directories = [params.knox_data_dir, params.knox_logs_dir, params.knox_pid_dir, params.knox_conf_dir, os.path.join(params.knox_conf_dir, "topologies")]
-    for directory in directories:
-      Directory(directory,
-                owner = params.knox_user,
-                group = params.knox_group,
-                recursive = True,
-                cd_access = "a",
-                mode = 0755,
-      )
+    Directory([params.knox_data_dir, params.knox_logs_dir, params.knox_pid_dir, params.knox_conf_dir, os.path.join(params.knox_conf_dir, "topologies")],
+              owner = params.knox_user,
+              group = params.knox_group,
+              create_parents = True,
+              cd_access = "a",
+              mode = 0755,
+              recursive_ownership = True,
+    )
 
     XmlConfig("gateway-site.xml",
               conf_dir=params.knox_conf_dir,
@@ -139,12 +137,6 @@ def knox():
                       template_tag = None
       )
 
-    dirs_to_chown = tuple(directories)
-    cmd = ('chown','-R',format('{knox_user}:{knox_group}')) + dirs_to_chown
-    Execute(cmd,
-            sudo = True,
-    )
-
     cmd = format('{knox_client_bin} create-master --master {knox_master_secret!p}')
     master_secret_exist = as_user(format('test -f {knox_master_secret_path}'), params.knox_user)
 
@@ -181,20 +173,12 @@ def update_knox_logfolder_permissions():
    cluster in non-working state
   """
   import params
-  knox_dirs = [params.knox_logs_dir]
-
+  
   Directory(params.knox_logs_dir,
             owner = params.knox_user,
             group = params.knox_group,
-            recursive = True,
+            create_parents = True,
             cd_access = "a",
             mode = 0755,
-            )
-
-  for d in knox_dirs:
-    if len(d) > 1:  # If path is empty or a single slash, may corrupt filesystem permissions
-      Execute(('chown', '-R', format("{knox_user}:{knox_group}"), d),
-              sudo=True
-              )
-    else:
-      Logger.warning("Permissions for the Knox folder \"%s\" was not updated due to empty path passed" % d)
+            recursive_ownership = True,
+  )

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/common-services/MAHOUT/1.0.0.2.3/package/scripts/mahout.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/MAHOUT/1.0.0.2.3/package/scripts/mahout.py b/ambari-server/src/main/resources/common-services/MAHOUT/1.0.0.2.3/package/scripts/mahout.py
index 0fa937b..f2c3c18 100644
--- a/ambari-server/src/main/resources/common-services/MAHOUT/1.0.0.2.3/package/scripts/mahout.py
+++ b/ambari-server/src/main/resources/common-services/MAHOUT/1.0.0.2.3/package/scripts/mahout.py
@@ -26,7 +26,7 @@ def mahout():
   import params
 
   Directory( params.mahout_conf_dir,
-             recursive = True,
+             create_parents = True,
              owner = params.mahout_user,
              group = params.user_group
   )

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/package/scripts/oozie.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/package/scripts/oozie.py b/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/package/scripts/oozie.py
index ba56c26..b35eec0 100644
--- a/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/package/scripts/oozie.py
+++ b/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/package/scripts/oozie.py
@@ -57,7 +57,7 @@ def oozie(is_server=False):
 
   Directory(params.oozie_tmp_dir,
             owner=params.oozie_user,
-            recursive = True,
+            create_parents = True,
   )
 
   if is_server:
@@ -96,7 +96,7 @@ def oozie(is_server=False):
     )
     params.HdfsResource(None, action="execute")
   Directory(params.conf_dir,
-             recursive = True,
+             create_parents = True,
              owner = params.oozie_user,
              group = params.user_group
   )
@@ -193,12 +193,12 @@ def oozie_server_specific():
     owner = params.oozie_user,
     group = params.user_group,
     mode = 0755,
-    recursive = True,
+    create_parents = True,
     cd_access="a",
   )
   
   Directory(params.oozie_libext_dir,
-            recursive=True,
+            create_parents = True,
   )
   
   hashcode_file = format("{oozie_home}/.hashcode")
@@ -215,12 +215,18 @@ def oozie_server_specific():
   configure_cmds = []
   configure_cmds.append(('cp', params.ext_js_path, params.oozie_libext_dir))
   configure_cmds.append(('chown', format('{oozie_user}:{user_group}'), format('{oozie_libext_dir}/{ext_js_file}')))
-  configure_cmds.append(('chown', '-RL', format('{oozie_user}:{user_group}'), params.oozie_webapps_conf_dir))
   
   Execute( configure_cmds,
     not_if  = no_op_test,
     sudo = True,
   )
+  
+  Directory(params.oozie_webapps_conf_dir,
+            user = params.oozie_user,
+            group = params.user_group,
+            recursive_ownership = True,
+            recursion_follow_links = True,
+  )
 
   # download the database JAR
   download_database_library_if_needed()
@@ -259,7 +265,7 @@ def oozie_server_specific():
   if params.hdp_stack_version != "" and compare_versions(params.hdp_stack_version, '2.2') >= 0:
     # Create hive-site and tez-site configs for oozie
     Directory(params.hive_conf_dir,
-        recursive = True,
+        create_parents = True,
         owner = params.oozie_user,
         group = params.user_group
     )
@@ -281,8 +287,10 @@ def oozie_server_specific():
         group = params.user_group,
         mode = 0664
     )
-  Execute(('chown', '-R', format("{oozie_user}:{user_group}"), params.oozie_server_dir), 
-          sudo=True
+  Directory(params.oozie_server_dir,
+    owner = params.oozie_user,
+    group = params.user_group,
+    recursive_ownership = True,  
   )
 
 def download_database_library_if_needed(target_directory = None):
@@ -323,7 +331,7 @@ def download_database_library_if_needed(target_directory = None):
       Execute(format("yes | {sudo} cp {jars_path_in_archive} {oozie_libext_dir}"))
 
       Directory(params.jdbc_libs_dir,
-                recursive=True)
+                create_parents = True)
 
       Execute(format("yes | {sudo} cp {libs_path_in_archive} {jdbc_libs_dir}"))
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/common-services/PIG/0.12.0.2.0/package/scripts/pig.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/PIG/0.12.0.2.0/package/scripts/pig.py b/ambari-server/src/main/resources/common-services/PIG/0.12.0.2.0/package/scripts/pig.py
index c5f095f..83f7048 100644
--- a/ambari-server/src/main/resources/common-services/PIG/0.12.0.2.0/package/scripts/pig.py
+++ b/ambari-server/src/main/resources/common-services/PIG/0.12.0.2.0/package/scripts/pig.py
@@ -28,7 +28,7 @@ def pig():
   import params
 
   Directory( params.pig_conf_dir,
-    recursive = True,
+    create_parents = True,
     owner = params.hdfs_user,
     group = params.user_group
   )

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/common-services/PXF/3.0.0/package/scripts/pxf.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/PXF/3.0.0/package/scripts/pxf.py b/ambari-server/src/main/resources/common-services/PXF/3.0.0/package/scripts/pxf.py
index 08475fd..caae9bf 100644
--- a/ambari-server/src/main/resources/common-services/PXF/3.0.0/package/scripts/pxf.py
+++ b/ambari-server/src/main/resources/common-services/PXF/3.0.0/package/scripts/pxf.py
@@ -121,7 +121,7 @@ class Pxf(Script):
     Directory(params.pxf_instance_dir,
               owner=params.pxf_user,
               group=params.pxf_group,
-              recursive=True)
+              create_parents = True)
 
 
 if __name__ == "__main__":

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/common-services/RANGER/0.4.0/package/scripts/ranger_service.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/RANGER/0.4.0/package/scripts/ranger_service.py b/ambari-server/src/main/resources/common-services/RANGER/0.4.0/package/scripts/ranger_service.py
index 4f711c3..9270ea3 100644
--- a/ambari-server/src/main/resources/common-services/RANGER/0.4.0/package/scripts/ranger_service.py
+++ b/ambari-server/src/main/resources/common-services/RANGER/0.4.0/package/scripts/ranger_service.py
@@ -34,7 +34,11 @@ def ranger_service(name, action=None):
 
 
     if params.stack_is_hdp23_or_further:
-      Execute(('chown','-R', format('{unix_user}:{unix_group}'), format('{usersync_log_dir}/')), sudo=True)
+      Directory(format('{usersync_log_dir}/'),
+                user = params.unix_user,
+                group = params.unix_group,
+                recursive_ownership = True,
+      )
       Execute(params.usersync_start,
               environment=env_dict,
               not_if=no_op_test,

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/common-services/RANGER/0.4.0/package/scripts/setup_ranger_xml.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/RANGER/0.4.0/package/scripts/setup_ranger_xml.py b/ambari-server/src/main/resources/common-services/RANGER/0.4.0/package/scripts/setup_ranger_xml.py
index 8de0d80..81f93a1 100644
--- a/ambari-server/src/main/resources/common-services/RANGER/0.4.0/package/scripts/setup_ranger_xml.py
+++ b/ambari-server/src/main/resources/common-services/RANGER/0.4.0/package/scripts/setup_ranger_xml.py
@@ -52,7 +52,7 @@ def setup_ranger_admin(upgrade_type=None):
   Directory(ranger_conf,
     owner = params.unix_user,
     group = params.unix_group,
-    recursive = True
+    create_parents = True
   )
 
   if upgrade_type is not None:
@@ -95,7 +95,11 @@ def setup_ranger_admin(upgrade_type=None):
 
     Execute(('cp', '-f', src_file, dst_file), sudo=True)
 
-  Execute(('chown','-R',format('{unix_user}:{unix_group}'), format('{ranger_home}/')), sudo=True)
+  Directory(format('{ranger_home}/'),
+            user = params.unix_user,
+            group = params.unix_group,
+            recursive_ownership = True,
+  )
 
   Directory(params.admin_log_dir,
     owner = params.unix_user,
@@ -140,7 +144,7 @@ def setup_ranger_db(upgrade_type=None):
 
   Directory(params.java_share_dir,
     mode=0755,
-    recursive=True,
+    create_parents = True,
     cd_access="a"
   )
 
@@ -164,7 +168,7 @@ def setup_ranger_db(upgrade_type=None):
 
     Directory(params.jdbc_libs_dir,
       cd_access="a",
-      recursive=True)
+      create_parents = True)
 
     Execute(as_sudo(['yes', '|', 'cp', params.libs_path_in_archive, params.jdbc_libs_dir], auto_escape=False),
             path=["/bin", "/usr/bin/"])

http://git-wip-us.apache.org/repos/asf/ambari/blob/92c054b1/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/package/scripts/kms.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/package/scripts/kms.py b/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/package/scripts/kms.py
index 25134df..a611f8e 100755
--- a/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/package/scripts/kms.py
+++ b/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/package/scripts/kms.py
@@ -61,7 +61,7 @@ def setup_kms_db():
 
     Directory(params.java_share_dir,
       mode=0755,
-      recursive=True,
+      create_parents = True,
       cd_access="a"
     )
     
@@ -85,7 +85,7 @@ def setup_kms_db():
 
       Directory(params.jdbc_libs_dir,
         cd_access="a",
-        recursive=True)
+        create_parents = True)
 
       Execute(as_sudo(['yes', '|', 'cp', params.libs_path_in_archive, params.jdbc_libs_dir], auto_escape=False),
         path=["/bin", "/usr/bin/"])
@@ -171,7 +171,7 @@ def kms():
     Directory(params.kms_conf_dir,
       owner = params.kms_user,
       group = params.kms_group,
-      recursive = True
+      create_parents = True
     )
 
     if params.xa_audit_db_is_enabled:
@@ -201,7 +201,11 @@ def kms():
       mode = 0755
     )
 
-    Execute(('chown','-R',format('{kms_user}:{kms_group}'), format('{kms_home}/')), sudo=True)
+    Directory(format('{kms_home}/'),
+              user = params.kms_user,
+              group = params.kms_group,
+              recursive_ownership = True,
+    )
 
     Directory(params.kms_log_dir,
       owner = params.kms_user,
@@ -301,7 +305,7 @@ def enable_kms_plugin():
       owner = params.kms_user,
       group = params.kms_group,
       mode=0775,
-      recursive = True
+      create_parents = True
     )
     
     File(os.path.join('/etc', 'ranger', params.repo_name, 'policycache',format('kms_{repo_name}.json')),