Search in sources :

Example 1 with HostMonitorConfig

use of io.pravega.controller.store.host.HostMonitorConfig in project pravega by pravega.

the class Main method main.

public static void main(String[] args) {
    try {
        // 0. Initialize metrics provider
        MetricsProvider.initialize(Config.getMetricsConfig());
        ZKClientConfig zkClientConfig = ZKClientConfigImpl.builder().connectionString(Config.ZK_URL).namespace("pravega/" + Config.CLUSTER_NAME).initialSleepInterval(Config.ZK_RETRY_SLEEP_MS).maxRetries(Config.ZK_MAX_RETRIES).sessionTimeoutMs(Config.ZK_SESSION_TIMEOUT_MS).build();
        StoreClientConfig storeClientConfig = StoreClientConfigImpl.withZKClient(zkClientConfig);
        HostMonitorConfig hostMonitorConfig = HostMonitorConfigImpl.builder().hostMonitorEnabled(Config.HOST_MONITOR_ENABLED).hostMonitorMinRebalanceInterval(Config.CLUSTER_MIN_REBALANCE_INTERVAL).containerCount(Config.HOST_STORE_CONTAINER_COUNT).hostContainerMap(HostMonitorConfigImpl.getHostContainerMap(Config.SERVICE_HOST, Config.SERVICE_PORT, Config.HOST_STORE_CONTAINER_COUNT)).build();
        TimeoutServiceConfig timeoutServiceConfig = TimeoutServiceConfig.builder().maxLeaseValue(Config.MAX_LEASE_VALUE).maxScaleGracePeriod(Config.MAX_SCALE_GRACE_PERIOD).build();
        ControllerEventProcessorConfig eventProcessorConfig = ControllerEventProcessorConfigImpl.withDefault();
        GRPCServerConfig grpcServerConfig = Config.getGRPCServerConfig();
        RESTServerConfig restServerConfig = RESTServerConfigImpl.builder().host(Config.REST_SERVER_IP).port(Config.REST_SERVER_PORT).build();
        ControllerServiceConfig serviceConfig = ControllerServiceConfigImpl.builder().threadPoolSize(Config.ASYNC_TASK_POOL_SIZE).storeClientConfig(storeClientConfig).hostMonitorConfig(hostMonitorConfig).controllerClusterListenerEnabled(true).timeoutServiceConfig(timeoutServiceConfig).eventProcessorConfig(Optional.of(eventProcessorConfig)).grpcServerConfig(Optional.of(grpcServerConfig)).restServerConfig(Optional.of(restServerConfig)).build();
        ControllerServiceMain controllerServiceMain = new ControllerServiceMain(serviceConfig);
        controllerServiceMain.startAsync();
        controllerServiceMain.awaitTerminated();
        log.info("Controller service exited");
        System.exit(0);
    } catch (Throwable e) {
        log.error("Controller service failed", e);
        System.exit(-1);
    }
}
Also used : ControllerEventProcessorConfig(io.pravega.controller.server.eventProcessor.ControllerEventProcessorConfig) TimeoutServiceConfig(io.pravega.controller.timeout.TimeoutServiceConfig) ZKClientConfig(io.pravega.controller.store.client.ZKClientConfig) GRPCServerConfig(io.pravega.controller.server.rpc.grpc.GRPCServerConfig) StoreClientConfig(io.pravega.controller.store.client.StoreClientConfig) HostMonitorConfig(io.pravega.controller.store.host.HostMonitorConfig) RESTServerConfig(io.pravega.controller.server.rest.RESTServerConfig)

Example 2 with HostMonitorConfig

use of io.pravega.controller.store.host.HostMonitorConfig in project pravega by pravega.

the class SegmentContainerMonitorTest method testMonitorWithInMemoryStore.

@Test
public void testMonitorWithInMemoryStore() throws Exception {
    HostMonitorConfig config = HostMonitorConfigImpl.builder().hostMonitorEnabled(false).containerCount(Config.HOST_STORE_CONTAINER_COUNT).hostMonitorMinRebalanceInterval(Config.CLUSTER_MIN_REBALANCE_INTERVAL).hostContainerMap(HostMonitorConfigImpl.getHostContainerMap(Config.SERVICE_HOST, Config.SERVICE_PORT, Config.HOST_STORE_CONTAINER_COUNT)).build();
    HostControllerStore hostStore = HostStoreFactory.createInMemoryStore(config);
    testMonitor(hostStore);
}
Also used : HostControllerStore(io.pravega.controller.store.host.HostControllerStore) HostMonitorConfig(io.pravega.controller.store.host.HostMonitorConfig) Test(org.junit.Test)

Example 3 with HostMonitorConfig

use of io.pravega.controller.store.host.HostMonitorConfig in project pravega by pravega.

the class SegmentContainerMonitorTest method testMonitorWithZKStore.

@Test
public void testMonitorWithZKStore() throws Exception {
    HostMonitorConfig config = HostMonitorConfigImpl.builder().hostMonitorEnabled(true).containerCount(Config.HOST_STORE_CONTAINER_COUNT).hostMonitorMinRebalanceInterval(Config.CLUSTER_MIN_REBALANCE_INTERVAL).build();
    HostControllerStore hostStore = HostStoreFactory.createStore(config, StoreClientFactory.createZKStoreClient(zkClient));
    testMonitor(hostStore);
}
Also used : HostControllerStore(io.pravega.controller.store.host.HostControllerStore) HostMonitorConfig(io.pravega.controller.store.host.HostMonitorConfig) Test(org.junit.Test)

Example 4 with HostMonitorConfig

use of io.pravega.controller.store.host.HostMonitorConfig in project pravega by pravega.

the class ControllerServiceConfigTest method configTests.

@Test
public void configTests() {
    // Config parameters should be initialized, default values of the type are not allowed.
    AssertExtensions.assertThrows(IllegalArgumentException.class, () -> GRPCServerConfigImpl.builder().build());
    // Published host/port can be empty.
    Assert.assertNotNull(GRPCServerConfigImpl.builder().port(10).build());
    // Published host cannot be empty.
    AssertExtensions.assertThrows(IllegalArgumentException.class, () -> GRPCServerConfigImpl.builder().publishedRPCHost("").port(10).build());
    // Port should be positive integer.
    AssertExtensions.assertThrows(IllegalArgumentException.class, () -> GRPCServerConfigImpl.builder().port(-10).build());
    // Published port should be a positive integer.
    AssertExtensions.assertThrows(IllegalArgumentException.class, () -> GRPCServerConfigImpl.builder().port(10).publishedRPCHost("localhost").publishedRPCPort(-10).build());
    // Config parameters should be initialized, default values of the type are not allowed.
    AssertExtensions.assertThrows(NullPointerException.class, () -> RESTServerConfigImpl.builder().build());
    AssertExtensions.assertThrows(NullPointerException.class, () -> RESTServerConfigImpl.builder().host(null).port(10).build());
    AssertExtensions.assertThrows(IllegalArgumentException.class, () -> RESTServerConfigImpl.builder().host("").port(10).build());
    // Port should be positive integer
    AssertExtensions.assertThrows(IllegalArgumentException.class, () -> RESTServerConfigImpl.builder().host("localhost").port(-10).build());
    // Config parameters should be initialized, default values of the type are not allowed.
    AssertExtensions.assertThrows(IllegalArgumentException.class, () -> HostMonitorConfigImpl.builder().build());
    // If hostMonitorEnabled then containerMap should be non-null
    AssertExtensions.assertThrows(NullPointerException.class, () -> HostMonitorConfigImpl.builder().hostMonitorEnabled(false).hostContainerMap(null).containerCount(10).hostMonitorMinRebalanceInterval(10).build());
    // Port should be positive integer
    AssertExtensions.assertThrows(IllegalArgumentException.class, () -> HostMonitorConfigImpl.builder().hostMonitorEnabled(false).hostContainerMap(HostMonitorConfigImpl.getHostContainerMap("host", 10, 2)).hostMonitorMinRebalanceInterval(-10).build());
    // Port should be positive integer
    AssertExtensions.assertThrows(IllegalArgumentException.class, () -> HostMonitorConfigImpl.builder().hostMonitorEnabled(true).hostContainerMap(null).hostMonitorMinRebalanceInterval(-10).build());
    // Following combination is OK.
    HostMonitorConfig hostMonitorConfig = HostMonitorConfigImpl.builder().hostMonitorEnabled(true).hostContainerMap(null).containerCount(10).hostMonitorMinRebalanceInterval(10).build();
    // Values should be specified
    AssertExtensions.assertThrows(IllegalArgumentException.class, () -> TimeoutServiceConfig.builder().build());
    // Positive values required
    AssertExtensions.assertThrows(IllegalArgumentException.class, () -> TimeoutServiceConfig.builder().maxLeaseValue(-10).maxScaleGracePeriod(10).build());
    // Positive values required
    AssertExtensions.assertThrows(IllegalArgumentException.class, () -> TimeoutServiceConfig.builder().maxLeaseValue(10).maxScaleGracePeriod(-10).build());
    TimeoutServiceConfig timeoutServiceConfig = TimeoutServiceConfig.builder().maxLeaseValue(10).maxScaleGracePeriod(20).build();
    AssertExtensions.assertThrows(NullPointerException.class, () -> StoreClientConfigImpl.withZKClient(null));
    AssertExtensions.assertThrows(NullPointerException.class, () -> ZKClientConfigImpl.builder().connectionString(null).build());
    // Namespace should be non-null
    AssertExtensions.assertThrows(NullPointerException.class, () -> ZKClientConfigImpl.builder().connectionString("localhost").build());
    // Sleep interval should be positive number
    AssertExtensions.assertThrows(IllegalArgumentException.class, () -> ZKClientConfigImpl.builder().connectionString("localhost").namespace("test").initialSleepInterval(-10).build());
    // max retries should be positive number
    AssertExtensions.assertThrows(IllegalArgumentException.class, () -> ZKClientConfigImpl.builder().connectionString("localhost").namespace("test").initialSleepInterval(10).maxRetries(-10).namespace("").build());
    // zk session timeout should be positive number
    AssertExtensions.assertThrows(IllegalArgumentException.class, () -> ZKClientConfigImpl.builder().connectionString("localhost").namespace("test").sessionTimeoutMs(-10).namespace("").build());
    StoreClientConfig storeClientConfig = StoreClientConfigImpl.withInMemoryClient();
    // If eventProcessor config is enabled, it should be non-null
    AssertExtensions.assertThrows(NullPointerException.class, () -> ControllerServiceConfigImpl.builder().threadPoolSize(15).storeClientConfig(storeClientConfig).hostMonitorConfig(hostMonitorConfig).timeoutServiceConfig(timeoutServiceConfig).eventProcessorConfig(Optional.of(null)).grpcServerConfig(Optional.empty()).restServerConfig(Optional.empty()).build());
    // If grpcServerConfig is present it should be non-null
    AssertExtensions.assertThrows(NullPointerException.class, () -> ControllerServiceConfigImpl.builder().threadPoolSize(15).storeClientConfig(storeClientConfig).hostMonitorConfig(hostMonitorConfig).timeoutServiceConfig(timeoutServiceConfig).eventProcessorConfig(Optional.empty()).grpcServerConfig(Optional.of(null)).restServerConfig(Optional.empty()).build());
    // If restServerConfig is present it should be non-null
    AssertExtensions.assertThrows(NullPointerException.class, () -> ControllerServiceConfigImpl.builder().threadPoolSize(15).storeClientConfig(storeClientConfig).hostMonitorConfig(hostMonitorConfig).timeoutServiceConfig(timeoutServiceConfig).eventProcessorConfig(Optional.empty()).grpcServerConfig(Optional.empty()).restServerConfig(Optional.of(null)).build());
    AssertExtensions.assertThrows(IllegalArgumentException.class, () -> ControllerServiceConfigImpl.builder().threadPoolSize(15).storeClientConfig(storeClientConfig).hostMonitorConfig(hostMonitorConfig).controllerClusterListenerEnabled(true).timeoutServiceConfig(timeoutServiceConfig).eventProcessorConfig(Optional.empty()).grpcServerConfig(Optional.empty()).restServerConfig(Optional.empty()).build());
}
Also used : TimeoutServiceConfig(io.pravega.controller.timeout.TimeoutServiceConfig) StoreClientConfig(io.pravega.controller.store.client.StoreClientConfig) HostMonitorConfig(io.pravega.controller.store.host.HostMonitorConfig) Test(org.junit.Test)

Example 5 with HostMonitorConfig

use of io.pravega.controller.store.host.HostMonitorConfig in project pravega by pravega.

the class ControllerServiceMainTest method createControllerServiceConfig.

protected ControllerServiceConfig createControllerServiceConfig() {
    HostMonitorConfig hostMonitorConfig = HostMonitorConfigImpl.builder().hostMonitorEnabled(false).hostMonitorMinRebalanceInterval(Config.CLUSTER_MIN_REBALANCE_INTERVAL).containerCount(Config.HOST_STORE_CONTAINER_COUNT).hostContainerMap(HostMonitorConfigImpl.getHostContainerMap(Config.SERVICE_HOST, Config.SERVICE_PORT, Config.HOST_STORE_CONTAINER_COUNT)).build();
    TimeoutServiceConfig timeoutServiceConfig = TimeoutServiceConfig.builder().maxLeaseValue(Config.MAX_LEASE_VALUE).maxScaleGracePeriod(Config.MAX_SCALE_GRACE_PERIOD).build();
    return ControllerServiceConfigImpl.builder().threadPoolSize(15).storeClientConfig(storeClientConfig).controllerClusterListenerEnabled(!disableControllerCluster).hostMonitorConfig(hostMonitorConfig).timeoutServiceConfig(timeoutServiceConfig).eventProcessorConfig(Optional.empty()).grpcServerConfig(Optional.empty()).restServerConfig(Optional.empty()).build();
}
Also used : TimeoutServiceConfig(io.pravega.controller.timeout.TimeoutServiceConfig) HostMonitorConfig(io.pravega.controller.store.host.HostMonitorConfig)

Aggregations

HostMonitorConfig (io.pravega.controller.store.host.HostMonitorConfig)9 TimeoutServiceConfig (io.pravega.controller.timeout.TimeoutServiceConfig)5 Test (org.junit.Test)5 StoreClientConfig (io.pravega.controller.store.client.StoreClientConfig)4 HostControllerStore (io.pravega.controller.store.host.HostControllerStore)4 ZKClientConfig (io.pravega.controller.store.client.ZKClientConfig)3 ControllerEventProcessorConfig (io.pravega.controller.server.eventProcessor.ControllerEventProcessorConfig)2 RESTServerConfig (io.pravega.controller.server.rest.RESTServerConfig)2 GRPCServerConfig (io.pravega.controller.server.rpc.grpc.GRPCServerConfig)2 ControllerServiceConfig (io.pravega.controller.server.ControllerServiceConfig)1 ControllerServiceMain (io.pravega.controller.server.ControllerServiceMain)1 StoreClient (io.pravega.controller.store.client.StoreClient)1 TestingServerStarter (io.pravega.test.common.TestingServerStarter)1 Cleanup (lombok.Cleanup)1 TestingServer (org.apache.curator.test.TestingServer)1