@@ -117,6 +117,10 @@ public static GenericContainer<?> makeRQLite() {
117117 return new GenericContainer <>(DockerImageName .parse ("rqlite/rqlite" )).withNetworkMode ("host" );
118118 }
119119
120+ public static GenericContainer <?> makeFile () {
121+ return new GenericContainer <>(DockerImageName .parse ("rqlite/rqlite" )).withNetworkMode ("host" );
122+ }
123+
120124 private static DockerImageName getHStreamImageName () {
121125 String hstreamImageName = System .getenv ("HSTREAM_IMAGE_NAME" );
122126 if (hstreamImageName == null || hstreamImageName .equals ("" )) {
@@ -139,6 +143,9 @@ private static String getHStreamMetaStorePreference(String metaHost) {
139143 } else if (hstreamMetaStore .equalsIgnoreCase ("RQLITE" )) {
140144 logger .info ("HSTREAM_META_STORE specified RQLITE as meta store" );
141145 return "rq://" + metaHost + ":4001" ;
146+ } else if (hstreamMetaStore .equalsIgnoreCase ("FILE" )) {
147+ logger .info ("HSTREAM_META_STORE specified FILE as meta store" );
148+ return "file:///data/metastore/hstream" ;
142149 } else {
143150 throw new RuntimeException ("Invalid HSTREAM_META_STORE env variable value" );
144151 }
@@ -184,10 +191,12 @@ public String toString() {
184191 }
185192
186193 public static GenericContainer <?> makeHServer (
187- HServerCliOpts hserverConf , String seedNodes , Path dataDir ) {
194+ HServerCliOpts hserverConf , String seedNodes , Path dataDir , Path metadataDir ) {
188195 return new GenericContainer <>(getHStreamImageName ())
189196 .withNetworkMode ("host" )
190197 .withFileSystemBind (dataDir .toAbsolutePath ().toString (), "/data/hstore" , BindMode .READ_ONLY )
198+ .withFileSystemBind (
199+ metadataDir .toAbsolutePath ().toString (), "/data/metastore" , BindMode .READ_WRITE )
191200 .withFileSystemBind (hserverConf .securityOptions .dir , "/data/security" , BindMode .READ_ONLY )
192201 .withCommand (
193202 "bash" , "-c" , " hstream-server" + hserverConf .toString () + " --seed-nodes " + seedNodes )
@@ -230,11 +239,11 @@ public String toString() {
230239 }
231240
232241 public static List <GenericContainer <?>> bootstrapHServerCluster (
233- List <HServerCliOpts > hserverConfs , String seedNodes , Path dataDir )
242+ List <HServerCliOpts > hserverConfs , String seedNodes , Path dataDir , Path metadataDir )
234243 throws IOException , InterruptedException {
235244 List <GenericContainer <?>> hServers = new ArrayList <>();
236245 for (HServerCliOpts hserverConf : hserverConfs ) {
237- var hServer = makeHServer (hserverConf , seedNodes , dataDir );
246+ var hServer = makeHServer (hserverConf , seedNodes , dataDir , metadataDir );
238247 hServers .add (hServer );
239248 }
240249 hServers .stream ().parallel ().forEach (GenericContainer ::start );
0 commit comments