private async Task <IMembershipTable> GetMembershipTable(GlobalConfiguration.LivenessProviderType membershipType) { string runId = Guid.NewGuid().ToString("N"); var config = new GlobalConfiguration { LivenessType = membershipType, DeploymentId = runId }; IMembershipTable membership; switch (membershipType) { case GlobalConfiguration.LivenessProviderType.AzureTable: config.DataConnectionString = StorageTestConstants.DataConnectionString; membership = await AzureBasedMembershipTable.GetMembershipTable(config, true); break; case GlobalConfiguration.LivenessProviderType.SqlServer: config.DataConnectionString = StorageTestConstants.GetSqlConnectionString(TestContext.DeploymentDirectory); membership = await SqlMembershipTable.GetMembershipTable(config, true); break; default: throw new NotImplementedException(membershipType.ToString()); } return(membership); }
internal static async Task <IGatewayListProvider> CreateGatewayListProvider(ClientConfiguration cfg) { IGatewayListProvider listProvider = null; ClientConfiguration.GatewayProviderType gatewayProviderToUse = cfg.GatewayProviderToUse; switch (gatewayProviderToUse) { case ClientConfiguration.GatewayProviderType.AzureTable: listProvider = AssemblyLoader.LoadAndCreateInstance <IGatewayListProvider>(Constants.ORLEANS_AZURE_UTILS_DLL, logger); break; case ClientConfiguration.GatewayProviderType.SqlServer: listProvider = new SqlMembershipTable(); break; case ClientConfiguration.GatewayProviderType.ZooKeeper: listProvider = AssemblyLoader.LoadAndCreateInstance <IGatewayListProvider>(Constants.ORLEANS_ZOOKEEPER_UTILS_DLL, logger); break; case ClientConfiguration.GatewayProviderType.Config: listProvider = new StaticGatewayListProvider(); break; default: throw new NotImplementedException(gatewayProviderToUse.ToString()); } await listProvider.InitializeGatewayListProvider(cfg, TraceLogger.GetLogger(listProvider.GetType().Name)); return(listProvider); }
private async Task <IMembershipTable> GetMembershipTable(GlobalConfiguration.LivenessProviderType membershipType) { string runId = Guid.NewGuid().ToString("N"); var config = new GlobalConfiguration(); config.LivenessType = membershipType; config.DeploymentId = runId; IMembershipTable membership; if (membershipType == GlobalConfiguration.LivenessProviderType.AzureTable) { config.DataConnectionString = StorageTestConstants.DataConnectionString; membership = new AzureBasedMembershipTable(); } else if (membershipType == GlobalConfiguration.LivenessProviderType.SqlServer) { config.DataConnectionString = TestUtils.GetSqlConnectionString(TestContext); membership = new SqlMembershipTable(); } else { throw new NotImplementedException(membershipType.ToString()); } await membership.InitializeMembershipTable(config, true, logger); return(membership); }
public async Task GatewaySelection_SqlServer() { string testName = Guid.NewGuid().ToString();// TestContext.TestName; Guid serviceId = Guid.NewGuid(); GlobalConfiguration cfg = new GlobalConfiguration { ServiceId = serviceId, DeploymentId = testName, DataConnectionString = TestHelper.TestUtils.GetSqlConnectionString() }; var membership = new SqlMembershipTable(); var logger = LogManager.GetLogger(membership.GetType().Name); await membership.InitializeMembershipTable(cfg, true, logger); IMembershipTable membershipTable = membership; // Pre-populate gateway table with data int count = 1; foreach (Uri gateway in gatewayAddressUris) { output.WriteLine("Adding gataway data for {0}", gateway); SiloAddress siloAddress = gateway.ToSiloAddress(); Assert.IsNotNull(siloAddress, "Unable to get SiloAddress from Uri {0}", gateway); MembershipEntry MembershipEntry = new MembershipEntry { SiloAddress = siloAddress, HostName = gateway.Host, Status = SiloStatus.Active, ProxyPort = gateway.Port, StartTime = DateTime.UtcNow }; var tableVersion = new TableVersion(count, Guid.NewGuid().ToString()); output.WriteLine("Inserting gataway data for {0} with TableVersion={1}", MembershipEntry, tableVersion); bool ok = await membershipTable.InsertRow(MembershipEntry, tableVersion); count++; Assert.IsTrue(ok, "Membership record should have been written OK but were not: {0}", MembershipEntry); output.WriteLine("Successfully inserted Membership row {0}", MembershipEntry); } MembershipTableData data = await membershipTable.ReadAll(); Assert.IsNotNull(data, "MembershipTableData returned"); Assert.AreEqual(gatewayAddressUris.Count, data.Members.Count, "Number of gateway records read"); IGatewayListProvider listProvider = membership; Test_GatewaySelection(listProvider); }
public void TestCleanup() { if (membership != null && SiloInstanceTableTestConstants.DeleteEntriesAfterTest) { membership.DeleteMembershipTableEntries(deploymentId).Wait(); membership = null; } logger.Info("Test {0} completed - Outcome = {1}", TestContext.TestName, TestContext.CurrentTestOutcome); }
protected async Task SqlStatisticsPublisher_ReportMetrics_Silo() { GlobalConfiguration config = new GlobalConfiguration { DeploymentId = "statisticsDeployment", AdoInvariant = AdoInvariant, DataConnectionString = ConnectionString }; IMembershipTable mbr = new SqlMembershipTable(this.environment.Services.GetRequiredService <IGrainReferenceConverter>(), this.loggerFactory.CreateLogger <SqlMembershipTable>()); await mbr.InitializeMembershipTable(config, true).WithTimeout(TimeSpan.FromMinutes(1)); StatisticsPublisher.AddConfiguration("statisticsDeployment", true, "statisticsSiloId", SiloAddressUtils.NewLocalSiloAddress(0), new IPEndPoint(IPAddress.Loopback, 12345), "statisticsHostName"); await RunParallel(10, () => StatisticsPublisher.ReportMetrics((ISiloPerformanceMetrics) new DummyPerformanceMetrics())); }
protected async Task SqlStatisticsPublisher_ReportMetrics_Silo() { GlobalConfiguration config = new GlobalConfiguration { DeploymentId = "statisticsDeployment", AdoInvariant = AdoInvariant, DataConnectionString = ConnectionString }; IMembershipTable mbr = new SqlMembershipTable(); await mbr.InitializeMembershipTable(config, true, logger).WithTimeout(TimeSpan.FromMinutes(1)); StatisticsPublisher.AddConfiguration("statisticsDeployment", true, "statisticsSiloId", SiloAddress.NewLocalAddress(0), new IPEndPoint(IPAddress.Loopback, 12345), "statisticsHostName"); await RunParallel(10, () => StatisticsPublisher.ReportMetrics((ISiloPerformanceMetrics) new DummyPerformanceMetrics())); }
private async Task Initialize() { deploymentId = "test-" + Guid.NewGuid(); int generation = SiloAddress.AllocateNewGeneration(); siloAddress = SiloAddress.NewLocalAddress(generation); logger.Info("DeploymentId={0} Generation={1}", deploymentId, generation); GlobalConfiguration config = new GlobalConfiguration { DeploymentId = deploymentId, DataConnectionString = relationalStorage.ConnectionString }; var mbr = new SqlMembershipTable(); await mbr.InitializeMembershipTable(config, true, logger).WithTimeout(timeout); membership = mbr; }
internal static async Task <IGatewayListProvider> CreateGatewayListProvider(ClientConfiguration cfg) { IGatewayListProvider listProvider = null; ClientConfiguration.GatewayProviderType gatewayProviderToUse = cfg.GatewayProviderToUse; switch (gatewayProviderToUse) { case ClientConfiguration.GatewayProviderType.AzureTable: listProvider = await AzureGatewayListProvider.GetAzureGatewayListProvider(cfg); break; case ClientConfiguration.GatewayProviderType.SqlServer: listProvider = new SqlMembershipTable(cfg); break; case ClientConfiguration.GatewayProviderType.Config: listProvider = new StaticGatewayListProvider(cfg); break; } return(listProvider); }