Преглед на файлове

AMBARI-17344. Clear /security.json config on solr znode when kerberos is disabled. (oleewere)

oleewere преди 9 години
родител
ревизия
18862ff09f

+ 14 - 13
ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/package/scripts/setup_logsearch_solr.py

@@ -80,20 +80,21 @@ def setup_logsearch_solr(name = None):
          )
     zk_cli_prefix = format('export JAVA_HOME={java64_home}; {cloud_scripts}/zkcli.sh -zkhost {zookeeper_quorum}')
     create_ambari_solr_znode(zk_cli_prefix)
-    if params.logsearch_solr_ssl_enabled:
-      Execute(format('{zk_cli_prefix}{logsearch_solr_znode} -cmd clusterprop -name urlScheme -val https'),
-              user=params.logsearch_solr_user
-              )
+
+    url_scheme = 'https' if params.logsearch_solr_ssl_enabled else 'http'
+    Execute(format('{zk_cli_prefix}{logsearch_solr_znode} -cmd clusterprop -name urlScheme -val {url_scheme}'),
+            user=params.logsearch_solr_user)
+
+    if params.security_enabled:
+      File(format("{logsearch_solr_jaas_file}"),
+           content=Template("logsearch_solr_jaas.conf.j2"),
+           owner=params.logsearch_solr_user)
+      security_content = '\'{"authentication":{"class": "org.apache.solr.security.KerberosPlugin"}}\''
     else:
-      Execute(format('{zk_cli_prefix}{logsearch_solr_znode} -cmd clusterprop -name urlScheme -val http'),
-              user=params.logsearch_solr_user
-              )
-      if params.security_enabled:
-        File(format("{logsearch_solr_jaas_file}"),
-             content=Template("logsearch_solr_jaas.conf.j2"),
-             owner=params.logsearch_solr_user)
-        security_content = '\'{"authentication":{"class": "org.apache.solr.security.KerberosPlugin"}}\''
-        Execute(format('{zk_cli_prefix} -cmd put {logsearch_solr_znode}/security.json ') + security_content)
+      security_content = '\'{}\''
+    Execute(format('{zk_cli_prefix} -cmd put {logsearch_solr_znode}/security.json ') + security_content,
+            user=params.logsearch_solr_user)
+
   elif name == 'client':
     solr_cloud_util.setup_solr_client(params.config)
     if params.security_enabled:

+ 3 - 0
ambari-server/src/test/python/stacks/2.4/LOGSEARCH/test_solr.py

@@ -106,6 +106,9 @@ class TestSolr(RMFTestCase):
       self.assertResourceCalled('Execute', 'export JAVA_HOME=/usr/jdk64/jdk1.7.0_45; /usr/lib/ambari-logsearch-solr/server/scripts/cloud-scripts/zkcli.sh -zkhost c6401.ambari.apache.org:2181/logsearch -cmd clusterprop -name urlScheme -val http',
                                 user = "solr"
       )
+      self.assertResourceCalled('Execute', 'export JAVA_HOME=/usr/jdk64/jdk1.7.0_45; /usr/lib/ambari-logsearch-solr/server/scripts/cloud-scripts/zkcli.sh -zkhost c6401.ambari.apache.org:2181 -cmd put /logsearch/security.json \'{}\'',
+                                user = "solr"
+                                )
 
   def test_configure_default(self):
     self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/logsearch_solr.py",