You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by jl...@apache.org on 2015/09/02 18:07:23 UTC

ambari git commit: AMBARI-12018. JCE distribution should be done as part of Kerberos service configure function instead from hooks (refactoring) (Emil Anca via rlevas)

Repository: ambari
Updated Branches:
  refs/heads/branch-2.1 189beebd3 -> 113a0b602


AMBARI-12018. JCE distribution should be done as part of Kerberos service configure function instead from hooks (refactoring) (Emil Anca via rlevas)


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

Branch: refs/heads/branch-2.1
Commit: 113a0b602f59f03a05851ad4f4bfcec7d8f00d57
Parents: 189beeb
Author: Emil Anca <ea...@hortonworks.com>
Authored: Mon Jun 22 11:22:39 2015 -0400
Committer: Jayush Luniya <jl...@hortonworks.com>
Committed: Wed Sep 2 09:07:19 2015 -0700

----------------------------------------------------------------------
 .../package/scripts/kerberos_client.py          |  6 ++++
 .../package/scripts/kerberos_common.py          | 33 +++++++++++++++++++
 .../1.10.3-10/package/scripts/params.py         |  9 ++++++
 .../HDP/2.0.6/hooks/before-ANY/scripts/hook.py  |  3 +-
 .../2.0.6/hooks/before-ANY/scripts/params.py    |  2 --
 .../before-ANY/scripts/shared_initialization.py | 34 --------------------
 .../2.0.6/hooks/before-ANY/test_before_any.py   |  7 +---
 .../stacks/2.2/KERBEROS/test_kerberos_client.py |  6 ++++
 8 files changed, 56 insertions(+), 44 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/113a0b60/ambari-server/src/main/resources/common-services/KERBEROS/1.10.3-10/package/scripts/kerberos_client.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/KERBEROS/1.10.3-10/package/scripts/kerberos_client.py b/ambari-server/src/main/resources/common-services/KERBEROS/1.10.3-10/package/scripts/kerberos_client.py
index 282915a..580545d 100644
--- a/ambari-server/src/main/resources/common-services/KERBEROS/1.10.3-10/package/scripts/kerberos_client.py
+++ b/ambari-server/src/main/resources/common-services/KERBEROS/1.10.3-10/package/scripts/kerberos_client.py
@@ -37,6 +37,8 @@ class KerberosClient(KerberosScript):
     if params.manage_krb5_conf:
       self.write_krb5_conf()
 
+    self.setup_jce()
+
   def status(self, env):
     raise ClientComponentHasNoStatus()
 
@@ -67,5 +69,9 @@ class KerberosClient(KerberosScript):
   def remove_keytab(self, env):
     self.delete_keytab_file()
 
+  def download_install_jce(self, env):
+    self.setup_jce()
+
+
 if __name__ == "__main__":
   KerberosClient().execute()

http://git-wip-us.apache.org/repos/asf/ambari/blob/113a0b60/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 cd9b2ba..d40627a 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
@@ -428,3 +428,36 @@ class KerberosScript(Script):
             curr_content['keytabs'][principal.replace("_HOST", params.hostname)] = '_REMOVED_'
 
             self.put_structured_out(curr_content)
+
+  def setup_jce(self):
+    import params
+
+    if not params.jdk_name:
+      return
+    jce_curl_target = None
+    if params.jce_policy_zip is not None:
+      jce_curl_target = format("{artifact_dir}/{jce_policy_zip}")
+      Directory(params.artifact_dir,
+                recursive = True,
+                )
+      File(jce_curl_target,
+           content = DownloadSource(format("{jce_location}/{jce_policy_zip}")),
+           )
+    elif params.security_enabled:
+      # Something weird is happening
+      raise Fail("Security is enabled, but JCE policy zip is not specified.")
+
+    # The extraction will occur only after the security flag is set
+    if params.security_enabled:
+      security_dir = format("{java_home}/jre/lib/security")
+
+      File([format("{security_dir}/US_export_policy.jar"), format("{security_dir}/local_policy.jar")],
+           action = "delete",
+           )
+
+      extract_cmd = ("unzip", "-o", "-j", "-q", jce_curl_target, "-d", security_dir)
+      Execute(extract_cmd,
+              only_if = format("test -e {security_dir} && test -f {jce_curl_target}"),
+              path = ['/bin/','/usr/bin'],
+              sudo = True
+      )

http://git-wip-us.apache.org/repos/asf/ambari/blob/113a0b60/ambari-server/src/main/resources/common-services/KERBEROS/1.10.3-10/package/scripts/params.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/KERBEROS/1.10.3-10/package/scripts/params.py b/ambari-server/src/main/resources/common-services/KERBEROS/1.10.3-10/package/scripts/params.py
index beb0479..422c686 100644
--- a/ambari-server/src/main/resources/common-services/KERBEROS/1.10.3-10/package/scripts/params.py
+++ b/ambari-server/src/main/resources/common-services/KERBEROS/1.10.3-10/package/scripts/params.py
@@ -62,6 +62,15 @@ smoke_user = 'ambari-qa'
 
 manage_identities = 'true'
 
+artifact_dir = format("{tmp_dir}/AMBARI-artifacts/")
+jce_policy_zip = default("/hostLevelParams/jce_name", None) # None when jdk is already installed by user
+jce_location = config['hostLevelParams']['jdk_location']
+jdk_name = default("/hostLevelParams/jdk_name", None)
+java_home = config['hostLevelParams']['java_home']
+java_version = int(config['hostLevelParams']['java_version'])
+
+security_enabled = config['configurations']['cluster-env']['security_enabled']
+
 if config is not None:
   kerberos_command_params = get_property_value(config, 'kerberosCommandParams')
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/113a0b60/ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-ANY/scripts/hook.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-ANY/scripts/hook.py b/ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-ANY/scripts/hook.py
index 2f95c94..18dd49e 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-ANY/scripts/hook.py
+++ b/ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-ANY/scripts/hook.py
@@ -25,8 +25,7 @@ class BeforeAnyHook(Hook):
   def hook(self, env):
     import params
     env.set_params(params)
-    
-    setup_jce()
+
     setup_users()
     if params.has_namenode:
       setup_hadoop_env()

http://git-wip-us.apache.org/repos/asf/ambari/blob/113a0b60/ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-ANY/scripts/params.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-ANY/scripts/params.py b/ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-ANY/scripts/params.py
index ae758a6..8abd72b 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-ANY/scripts/params.py
+++ b/ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-ANY/scripts/params.py
@@ -38,8 +38,6 @@ config = Script.get_config()
 tmp_dir = Script.get_tmp_dir()
 
 artifact_dir = format("{tmp_dir}/AMBARI-artifacts/")
-jce_policy_zip = default("/hostLevelParams/jce_name", None) # None when jdk is already installed by user
-jce_location = config['hostLevelParams']['jdk_location']
 jdk_name = default("/hostLevelParams/jdk_name", None)
 java_home = config['hostLevelParams']['java_home']
 java_version = int(config['hostLevelParams']['java_version'])

http://git-wip-us.apache.org/repos/asf/ambari/blob/113a0b60/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 a22c27c..bd44caf 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
@@ -24,40 +24,6 @@ from copy import copy
 from resource_management.libraries.functions.version import compare_versions
 from resource_management import *
 
-
-
-def setup_jce():
-  import params
-  
-  if not params.jdk_name:
-    return
-  
-  if params.jce_policy_zip is not None:
-    jce_curl_target = format("{artifact_dir}/{jce_policy_zip}")
-    Directory(params.artifact_dir,
-         recursive = True,
-    )
-    File(jce_curl_target,
-         content = DownloadSource(format("{jce_location}/{jce_policy_zip}")),
-    )
-  elif params.security_enabled:
-    # Something weird is happening
-    raise Fail("Security is enabled, but JCE policy zip is not specified.")
-  
-  if params.security_enabled:
-    security_dir = format("{java_home}/jre/lib/security")
-    
-    File([format("{security_dir}/US_export_policy.jar"), format("{security_dir}/local_policy.jar")],
-         action = "delete",
-    )
-    
-    extract_cmd = ("unzip", "-o", "-j", "-q", jce_curl_target, "-d", security_dir) 
-    Execute(extract_cmd,
-            only_if = format("test -e {security_dir} && test -f {jce_curl_target}"),
-            path = ['/bin/','/usr/bin'],
-            sudo = True
-    )
-
 def setup_users():
   """
   Creates users before cluster installation

http://git-wip-us.apache.org/repos/asf/ambari/blob/113a0b60/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 82740fc..39fd3d5 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
@@ -43,12 +43,7 @@ class TestHookBeforeInstall(RMFTestCase):
                        command="hook",
                        config_file="default.json"
     )
-    self.assertResourceCalled('Directory', '/tmp/AMBARI-artifacts/',
-        recursive = True,
-    )
-    self.assertResourceCalled('File', '/tmp/AMBARI-artifacts//UnlimitedJCEPolicyJDK7.zip',
-        content = DownloadSource('http://c6401.ambari.apache.org:8080/resources//UnlimitedJCEPolicyJDK7.zip'),
-    )
+
     self.assertResourceCalled('Group', 'hadoop',
     )
     self.assertResourceCalled('Group', 'nobody',

http://git-wip-us.apache.org/repos/asf/ambari/blob/113a0b60/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 85f3f7c..105e741 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
@@ -93,6 +93,12 @@ class TestKerberosClient(RMFTestCase):
                        target = RMFTestCase.TARGET_COMMON_SERVICES
     )
 
+    self.assertResourceCalled('Directory', '/tmp/AMBARI-artifacts/',
+                              recursive = True,
+                              )
+    self.assertResourceCalled('File', '/tmp/AMBARI-artifacts//UnlimitedJCEPolicyJDK7.zip',
+                            content = DownloadSource('http://c6401.ambari.apache.org:8080/resources//UnlimitedJCEPolicyJDK7.zip'),
+                            )
     self.assertNoMoreResources()
 
   def test_configure_unmanaged_ad(self):