Custom Host(IP) and Ports (proxy, Gateway) in TestClusterBuilder

35 Views Asked by At

Is it possible to specify custom hostname and ports when using TestClusterBuilder? As when I query OrleansMembershipTable I notice that the hostname and ports I am specifying or not being set

public async Task CreateTestCluster(IMessageSink messageSink)
        {
            await DatabaseConfiguration.InitConfiguration(messageSink);

            // Setup and start the cluster
            var builder = new TestClusterBuilder(2);
            builder.AddSiloBuilderConfigurator<DbTestSiloBuilderConfigurator>();

            // Pass the instance name to DbTestSiloBuilderConfigurator
            builder.ConfigureHostConfiguration(configBuilder =>
                configBuilder.AddInMemoryCollection(new[] {
                    KeyValuePair.Create(nameof(DbTestSiloBuilderConfigurator), DatabaseConfiguration.DatabaseInstanceName)
                })
            );

            Cluster = builder.Build();

            if (Cluster is { Primary: null })
            {
                await Cluster.DeployAsync();
            }
        }
public void Configure(ISiloBuilder siloBuilder)
{
    var configuration = (ConfigurationRoot)siloBuilder.Properties["Configuration"];

    DatabaseInstanceName = configuration.GetValue<string>(nameof(DbTestSiloBuilderConfigurator));
    string connectionString = $"{OrleansDatabaseConnection}Initial Catalog=casino_game;";

    siloBuilder
        .ConfigureEndpoints(Dns.GetHostName(), 22222, 30000)
        .Configure<ClusterOptions>(options =>
        {
            options.ClusterId = "test";
            options.ServiceId = "test";
        })
        .UseAdoNetClustering(options =>
        {
            options.ConnectionString = connectionString;
            options.Invariant = "System.Data.SqlClient";
        })
        .UseAdoNetReminderService(options =>
        {
            options.ConnectionString = connectionString;
            options.Invariant = "System.Data.SqlClient";
        })
        .ConfigureServices(ConfigureServices)
        .Configure<SchedulingOptions>(options => { options.AllowCallChainReentrancy = false; })
        .Configure<GrainCollectionOptions>(options =>
        {
            // ConnectionSessionGrains are only needed for a very short time. Must be over the CollectionQuantum time that is set at 1 min
            options.ClassSpecificCollectionAge[typeof(ConnectionSessionGrain).FullName] = TimeSpan.FromMinutes(2);
            // We need to take a good guess as to how long a player is inactive before becoming active again
            options.ClassSpecificCollectionAge[typeof(PlayerGrain).FullName] = TimeSpan.FromMinutes(2);
            options.ClassSpecificCollectionAge[typeof(RateLimitGrain).FullName] = TimeSpan.FromMinutes(2);
        })
        .AddStartupTask((services, cancellation) => StartupTask(services))
        .AddIncomingGrainCallFilter<OrleansGrainCallFilter>();
}

enter image description here

I have tried hardcoding IP address instead of Dns.GetHostName() so that I am sure this is not returning 127.0.0.1.

0

There are 0 best solutions below