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>();
}
I have tried hardcoding IP address instead of Dns.GetHostName() so that I am sure this is not returning 127.0.0.1.
