Browse Source

[indexer] Change config defaults

zookeeper ensemble can be extracted from the solr url.
use which to locate solrctl or provide alternative default.
Abraham Elmahrek 11 năm trước cách đây
mục cha
commit
0b89284f0f
1 tập tin đã thay đổi với 23 bổ sung2 xóa
  1. 23 2
      desktop/libs/indexer/src/indexer/conf.py

+ 23 - 2
desktop/libs/indexer/src/indexer/conf.py

@@ -16,12 +16,33 @@
 # limitations under the License.
 
 import os
+import subprocess
+from urlparse import urlparse
 
 from django.utils.translation import ugettext_lazy as _t
 
 from desktop.lib.conf import Config
 
 
+def solrctl():
+  """
+  solrctl path
+  """
+  try:
+    return subprocess.check_output(['which', 'solrctl'])
+  except subprocess.CalledProcessError:
+    return '/usr/bin/solrctl'
+
+
+def zkensemble():
+  """
+  ZooKeeper Ensemble
+  """
+  from search.conf import SOLR_URL
+  parsed = urlparse(SOLR_URL.get())
+  return "%s:2181/solr" % (parsed.hostname or 'localhost')
+
+
 # Unused
 BATCH_INDEXER_PATH = Config(
   key="batch_indexer_path",
@@ -40,7 +61,7 @@ SOLRCTL_PATH = Config(
   key="solrctl_path",
   help=_t("Location of the solrctl binary."),
   type=str,
-  default="/usr/bin/solrctl")
+  dynamic_default=solrctl)
 
 SOLR_HOME = Config(
   key="solr_home",
@@ -52,4 +73,4 @@ SOLR_ZK_ENSEMBLE  = Config(
   key="solr_zk_ensemble",
   help=_t("Zookeeper ensemble."),
   type=str,
-  default="localhost:2181/solr")
+  dynamic_default=zkensemble)