use of io.hetu.core.filesystem.LocalConfig in project hetu-core by openlookeng.
the class TestStateStoreLauncherAndProvider method testLaunchAndFailure.
// Test Launcher
@Test
public void testLaunchAndFailure() throws Exception {
Set<Seed> seeds = new HashSet<>();
SeedStore mockSeedStore = mock(SeedStore.class);
Seed mockSeed1 = mock(Seed.class);
Seed mockSeed2 = mock(Seed.class);
seeds.add(mockSeed1);
seeds.add(mockSeed2);
when(mockSeed1.getLocation()).thenReturn(LOCALHOST + ":" + PORT1);
when(mockSeed2.getLocation()).thenReturn(LOCALHOST + ":" + PORT2);
when(mockSeedStore.get()).thenReturn(seeds);
SeedStoreManager mockSeedStoreManager = mock(SeedStoreManager.class);
when(mockSeedStoreManager.getSeedStore(SeedStoreSubType.HAZELCAST)).thenReturn(mockSeedStore);
when(mockSeedStoreManager.addSeed(SeedStoreSubType.HAZELCAST, LOCALHOST, true)).thenReturn(seeds);
when(mockSeedStoreManager.getFileSystemClient()).thenReturn(new HetuLocalFileSystemClient(new LocalConfig(new Properties()), Paths.get("/")));
InternalCommunicationConfig mockInternalCommunicationConfig = mock(InternalCommunicationConfig.class);
HttpServerInfo mockHttpServerInfo = mock(HttpServerInfo.class);
when(mockHttpServerInfo.getHttpsUri()).thenReturn(new URI("https://" + LOCALHOST + ":" + PORT1));
when(mockInternalCommunicationConfig.isHttpsRequired()).thenReturn(true);
EmbeddedStateStoreLauncher launcher = new EmbeddedStateStoreLauncher(mockSeedStoreManager, mockInternalCommunicationConfig, mockHttpServerInfo, new HetuConfig());
StateStoreBootstrapper bootstrapper = new HazelcastStateStoreBootstrapper();
launcher.addStateStoreBootstrapper(bootstrapper);
launcher.launchStateStore();
StateStore second = setupSecondInstance();
// mock "remove" second instance from cluster (delete from seed store)
seeds.remove(mockSeed2);
when(mockSeed1.getLocation()).thenReturn(LOCALHOST + ":" + PORT1);
when(mockSeedStoreManager.addSeed(SeedStoreSubType.HAZELCAST, LOCALHOST, true)).thenReturn(seeds);
((HazelcastStateStore) second).shutdown();
// Allow the first node to handle failure
Thread.sleep(3000L);
}
use of io.hetu.core.filesystem.LocalConfig in project hetu-core by openlookeng.
the class TestFileBasedSeedStore method setUp.
/**
* set up before unit test runs
*/
@BeforeMethod
public void setUp() {
Map<String, String> config = new HashMap<>(0);
config.put(FileBasedSeedConstants.SEED_STORE_FILESYSTEM_DIR, rootDir);
filebasedSeedStoreFactory = new FileBasedSeedStoreFactory();
seedStore = (FileBasedSeedStore) filebasedSeedStoreFactory.create("filebased", SeedStoreSubType.HAZELCAST, new HetuLocalFileSystemClient(new LocalConfig(new Properties()), Paths.get(rootDir)), config);
seedStore.setName(clusterName);
}
use of io.hetu.core.filesystem.LocalConfig in project hetu-core by openlookeng.
the class TestHetuMetastoreGlobalCache method setUp.
@BeforeClass
public void setUp() throws Throwable {
try {
Map<String, String> config = new ImmutableMap.Builder<String, String>().put("hetu.metastore.hetufilesystem.path", path).put("hetu.metastore.hetufilesystem.profile-name", "local-config-catalog").put("hetu.metastore.cache.size", "10000").put("hetu.metastore.cache.ttl", "10h").build();
LocalConfig localConfig = new LocalConfig(null);
client = new HetuLocalFileSystemClient(localConfig, Paths.get(path));
if (!client.exists(Paths.get(path))) {
client.createDirectories(Paths.get(path));
}
client.deleteRecursively(Paths.get(path));
createStateStoreCluster(PORT3);
stateStoreProvider.loadStateStore();
StateStore stateStore = stateStoreProvider.getStateStore();
String type = GLOBAL;
Bootstrap app = new Bootstrap(new MBeanModule(), new MBeanServerModule(), new HetuFsMetastoreModule(client, stateStore, type));
Injector injector = app.strictConfig().doNotInitializeLogging().setRequiredConfigurationProperties(config).initialize();
metastore = injector.getInstance(HetuMetastore.class);
} catch (Exception ex) {
throwIfUnchecked(ex);
throw new PrestoException(HETU_METASTORE_CODE, "init hetu metastore module failed.");
}
// create default catalog and database
defaultCatalog = CatalogEntity.builder().setCatalogName("hetu1").setOwner("hetu1").build();
metastore.createCatalog(defaultCatalog);
defaultDatabase = DatabaseEntity.builder().setCatalogName(defaultCatalog.getName()).setDatabaseName("db1").build();
metastore.createDatabase(defaultDatabase);
// get metastore catalog cache
Field catalogCacheField = metastore.getClass().getSuperclass().getDeclaredField("catalogCache");
catalogCacheField.setAccessible(true);
catalogCache = (HetuCache<String, Optional<CatalogEntity>>) catalogCacheField.get(metastore);
Field catalogsCacheField = metastore.getClass().getSuperclass().getDeclaredField("catalogsCache");
catalogsCacheField.setAccessible(true);
catalogsCache = (HetuCache<String, List<CatalogEntity>>) catalogsCacheField.get(metastore);
// get metastore database cache
Field databaseCacheField = metastore.getClass().getSuperclass().getDeclaredField("databaseCache");
databaseCacheField.setAccessible(true);
databaseCache = (HetuCache<String, Optional<DatabaseEntity>>) databaseCacheField.get(metastore);
Field databasesCacheField = metastore.getClass().getSuperclass().getDeclaredField("databasesCache");
databasesCacheField.setAccessible(true);
databasesCache = (HetuCache<String, List<DatabaseEntity>>) databasesCacheField.get(metastore);
// get metastore table cache
Field tableCacheField = metastore.getClass().getSuperclass().getDeclaredField("tableCache");
tableCacheField.setAccessible(true);
tableCache = (HetuCache<String, Optional<TableEntity>>) tableCacheField.get(metastore);
Field tablesCacheField = metastore.getClass().getSuperclass().getDeclaredField("tablesCache");
tablesCacheField.setAccessible(true);
tablesCache = (HetuCache<String, List<TableEntity>>) tablesCacheField.get(metastore);
}
use of io.hetu.core.filesystem.LocalConfig in project hetu-core by openlookeng.
the class TestMemoryMetadata method setUp.
@BeforeMethod
public void setUp() throws IOException {
TempFolder tmp = new TempFolder().create();
Runtime.getRuntime().addShutdownHook(new Thread(tmp::close));
metadata = new MemoryMetadata(new TestingTypeManager(), new TestingNodeManager(), new HetuFsMetastore(new HetuFsMetastoreConfig().setHetuFileSystemMetastorePath(tmp.getRoot().getCanonicalPath()), new HetuLocalFileSystemClient(new LocalConfig(null), Paths.get(tmp.getRoot().getCanonicalPath()))), null, new MemoryConfig());
}
Aggregations