internal async Task <IMembershipTable> GetMembershipTable(Silo silo) { var config = silo.GlobalConfig; IMembershipTable membershipTable; GlobalConfiguration.LivenessProviderType livenessType = config.LivenessType; if (livenessType.Equals(GlobalConfiguration.LivenessProviderType.MembershipTableGrain)) { membershipTable = MembershipTableFactory.Cast(GrainReference.FromGrainId(Constants.SystemMembershipTableId)); } else if (livenessType.Equals(GlobalConfiguration.LivenessProviderType.SqlServer)) { membershipTable = await SqlMembershipTable.GetMembershipTable(config, true); } else if (livenessType.Equals(GlobalConfiguration.LivenessProviderType.AzureTable)) { membershipTable = await AzureBasedMembershipTable.GetMembershipTable(config, true); } else { throw new NotImplementedException("No membership table provider found for LivenessType=" + livenessType); } return(membershipTable); }
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); }
private async Task Initialize() { deploymentId = "test-" + Guid.NewGuid(); logger.Info("DeploymentId={0}", deploymentId); var config = new GlobalConfiguration { DeploymentId = deploymentId, DataConnectionString = StorageTestConstants.DataConnectionString }; var mbr = new AzureBasedMembershipTable(); await mbr.InitializeMembershipTable(config, true, logger).WithTimeout(timeout); membership = mbr; }
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 = StorageTestConstants.DataConnectionString }; var mbr = new AzureBasedMembershipTable(); await mbr.InitializeMembershipTable(config, true, logger).WithTimeout(timeout); membership = mbr; }
public static async Task <AzureBasedMembershipTable> GetMembershipTable( GlobalConfiguration config, bool tryInitTableVersion) { var table = new AzureBasedMembershipTable { tableManager = await OrleansSiloInstanceManager.GetManager( config.DeploymentId, config.DataConnectionString) }; // even if I am not the one who created the table, // try to insert an initial table version if it is not already there, // so we always have a first table version row, before this silo starts working. if (tryInitTableVersion) { // ignore return value, since we don't care if I inserted it or not, as long as it is in there. await table.tableManager.TryCreateTableVersionEntryAsync().WithTimeout(AzureTableDefaultPolicies.TableOperationTimeout); } return(table); }
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; }