浏览代码

AMBARI-7720 Sqoop service check fails on HDP2.2 (dsen)

Dmytro Sen 10 年之前
父节点
当前提交
923128f60c

+ 13 - 20
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/SQOOP/package/scripts/sqoop.py

@@ -18,7 +18,7 @@ limitations under the License.
 """
 
 from resource_management import *
-import sys
+import os
 
 def sqoop(type=None):
   import params
@@ -30,29 +30,22 @@ def sqoop(type=None):
             group = params.user_group,
             recursive = True
   )
-  
   File(format("{sqoop_conf_dir}/sqoop-env.sh"),
     owner=params.sqoop_user,
+    group = params.user_group,
     content=InlineTemplate(params.sqoop_env_sh_template)
   )
-  
-  File (params.sqoop_conf_dir + "/sqoop-env-template.sh",
-          owner = params.sqoop_user,
-          group = params.user_group
-  )
-  File (params.sqoop_conf_dir + "/sqoop-site-template.xml",
-         owner = params.sqoop_user,
-         group = params.user_group
-  )
-  File (params.sqoop_conf_dir + "/sqoop-site.xml",
-         owner = params.sqoop_user,
-         group = params.user_group
-  )
+  update_config_permissions(["sqoop-env-template.sh",
+                             "sqoop-site-template.xml",
+                             "sqoop-site.xml"])
   pass
 
-def sqoop_TemplateConfig(name, tag=None):
+def update_config_permissions(names):
   import params
-  TemplateConfig( format("{sqoop_conf_dir}/{name}"),
-                  owner = params.sqoop_user,
-                  template_tag = tag
-  )
+  for filename in names:
+    full_filename = os.path.join(params.sqoop_conf_dir, filename)
+    File(full_filename,
+          owner = params.sqoop_user,
+          group = params.user_group,
+          only_if = format("test -e {full_filename}")
+    )

+ 4 - 0
ambari-server/src/test/python/stacks/2.0.6/SQOOP/test_sqoop.py

@@ -36,15 +36,19 @@ class TestSqoop(RMFTestCase):
                               group = 'hadoop',)
     self.assertResourceCalled('File', '/usr/lib/sqoop/conf/sqoop-env.sh',
                               owner = 'sqoop',
+                              group = 'hadoop',
                               content = InlineTemplate(self.getConfig()['configurations']['sqoop-env']['content'])
                               )
     self.assertResourceCalled('File', '/usr/lib/sqoop/conf/sqoop-env-template.sh',
+                              only_if = 'test -e /usr/lib/sqoop/conf/sqoop-env-template.sh',
                               owner = 'sqoop',
                               group = 'hadoop',)
     self.assertResourceCalled('File', '/usr/lib/sqoop/conf/sqoop-site-template.xml',
+                              only_if = 'test -e /usr/lib/sqoop/conf/sqoop-site-template.xml',
                               owner = 'sqoop',
                               group = 'hadoop',)
     self.assertResourceCalled('File', '/usr/lib/sqoop/conf/sqoop-site.xml',
+                              only_if = 'test -e /usr/lib/sqoop/conf/sqoop-site.xml',
                               owner = 'sqoop',
                               group = 'hadoop',)
     self.assertNoMoreResources()