2323
2424
2525EPILOG = __doc__
26-
26+ ENCD_CONFIG_DIR = os . environ . get ( 'ENCD_CONFIG_DIR' )
2727logger = logging .getLogger (__name__ )
2828
2929
@@ -60,6 +60,14 @@ def main():
6060 parser .add_argument ('--init' , action = "store_true" , help = "Init database" )
6161 parser .add_argument ('--load' , action = "store_true" , help = "Load test set" )
6262 parser .add_argument ('--datadir' , default = '/tmp/snovault' , help = "path to datadir" )
63+ parser .add_argument ('-c' , '--encd-config-dir' , default = ENCD_CONFIG_DIR , help = "ES dir with config" )
64+ parser .add_argument (
65+ '-e' ,
66+ '--es-config-version' ,
67+ default = 5 ,
68+ type = int ,
69+ help = "ES dir with config"
70+ )
6371 args = parser .parse_args ()
6472
6573 appsettings = get_appsettings (args .config_uri , name = 'app' )
@@ -77,17 +85,38 @@ def main():
7785 from snovault .elasticsearch import create_mapping
7886 datadir = os .path .abspath (args .datadir )
7987 pgdata = os .path .join (datadir , 'pgdata' )
80- esdata = os .path .join (datadir , 'esdata' )
88+ esdata = os .path .join (datadir , 'data' )
89+ es_data_dir = None
90+ esconfig = None
91+ if args .encd_config_dir :
92+ es_data_dir = f"{ ENCD_CONFIG_DIR } /elasticsearch/es{ args .es_config_version } "
93+ es_config_dir = f"{ es_data_dir } /config"
94+ es_yml_path = f"{ es_config_dir } /elasticsearch.yml"
95+ if os .path .exists (es_yml_path ):
96+ # es yml config overrides logs/data/host/port vars
97+ esconfig = es_config_dir
98+ esdata = es_data_dir
8199 redisdata = os .path .join (datadir , 'redisdata' )
82100 if args .clear :
83- for dirname in [pgdata , esdata , redisdata ]:
101+ rm_dirs = [args .datadir ]
102+ if esconfig :
103+ rm_dirs .extend ([f"{ es_data_dir } /data" , f"{ es_data_dir } /logs" , f"{ esconfig } /scripts" ])
104+ es_keystore_path = f"{ esconfig } /elasticsearch.keystore"
105+ if os .path .exists (es_keystore_path ):
106+ os .remove (es_keystore_path )
107+ for dirname in rm_dirs :
84108 if os .path .exists (dirname ):
85109 shutil .rmtree (dirname )
86110 if args .init :
87111 postgresql_fixture .initdb (pgdata , echo = True )
88112
89113 postgres = postgresql_fixture .server_process (pgdata , echo = True )
90- elasticsearch = elasticsearch_fixture .server_process (esdata , echo = True )
114+ elasticsearch = elasticsearch_fixture .server_process (
115+ esdata ,
116+ configdir = esconfig ,
117+ echo = True ,
118+ version = args .es_config_version ,
119+ )
91120 nginx = nginx_server_process (echo = True )
92121 redis_config_path = redis_storage_fixture .initdb (redisdata , local_storage_port , echo = True )
93122 redis = redis_storage_fixture .server_process (redis_config_path , local_storage_port , local_storage_redis_index , echo = True )
0 commit comments