@@ -116,6 +116,9 @@ public static GenericContainer<?> makeZooKeeper() {
116116 public static GenericContainer <?> makeRQLite () {
117117 return new GenericContainer <>(DockerImageName .parse ("rqlite/rqlite" )).withNetworkMode ("host" );
118118 }
119+ public static GenericContainer <?> makeFile () {
120+ return new GenericContainer <>(DockerImageName .parse ("rqlite/rqlite" )).withNetworkMode ("host" );
121+ }
119122
120123 private static DockerImageName getHStreamImageName () {
121124 String hstreamImageName = System .getenv ("HSTREAM_IMAGE_NAME" );
@@ -139,6 +142,9 @@ private static String getHStreamMetaStorePreference(String metaHost) {
139142 } else if (hstreamMetaStore .equalsIgnoreCase ("RQLITE" )) {
140143 logger .info ("HSTREAM_META_STORE specified RQLITE as meta store" );
141144 return "rq://" + metaHost + ":4001" ;
145+ } else if (hstreamMetaStore .equalsIgnoreCase ("FILE" )) {
146+ logger .info ("HSTREAM_META_STORE specified FILE as meta store" );
147+ return "file:///data/metastore/hstream" ;
142148 } else {
143149 throw new RuntimeException ("Invalid HSTREAM_META_STORE env variable value" );
144150 }
@@ -184,10 +190,11 @@ public String toString() {
184190 }
185191
186192 public static GenericContainer <?> makeHServer (
187- HServerCliOpts hserverConf , String seedNodes , Path dataDir ) {
193+ HServerCliOpts hserverConf , String seedNodes , Path dataDir , Path metadataDir ) {
188194 return new GenericContainer <>(getHStreamImageName ())
189195 .withNetworkMode ("host" )
190196 .withFileSystemBind (dataDir .toAbsolutePath ().toString (), "/data/hstore" , BindMode .READ_ONLY )
197+ .withFileSystemBind (metadataDir .toAbsolutePath ().toString (), "/data/metastore" , BindMode .READ_WRITE )
191198 .withFileSystemBind (hserverConf .securityOptions .dir , "/data/security" , BindMode .READ_ONLY )
192199 .withCommand (
193200 "bash" , "-c" , " hstream-server" + hserverConf .toString () + " --seed-nodes " + seedNodes )
@@ -230,11 +237,11 @@ public String toString() {
230237 }
231238
232239 public static List <GenericContainer <?>> bootstrapHServerCluster (
233- List <HServerCliOpts > hserverConfs , String seedNodes , Path dataDir )
240+ List <HServerCliOpts > hserverConfs , String seedNodes , Path dataDir , Path metadataDir )
234241 throws IOException , InterruptedException {
235242 List <GenericContainer <?>> hServers = new ArrayList <>();
236243 for (HServerCliOpts hserverConf : hserverConfs ) {
237- var hServer = makeHServer (hserverConf , seedNodes , dataDir );
244+ var hServer = makeHServer (hserverConf , seedNodes , dataDir , metadataDir );
238245 hServers .add (hServer );
239246 }
240247 hServers .stream ().parallel ().forEach (GenericContainer ::start );
0 commit comments