コード例 #1
0
ファイル: MembershipFactory.cs プロジェクト: supwar/orleans
        internal IMembershipTable GetMembershipTable(GlobalConfiguration.LivenessProviderType livenessType)
        {
            IMembershipTable membershipTable;

            if (livenessType.Equals(GlobalConfiguration.LivenessProviderType.MembershipTableGrain))
            {
                membershipTable =
                    GrainReference.FromGrainId(Constants.SystemMembershipTableId).Cast <IMembershipTableGrain>();
            }
            else if (livenessType.Equals(GlobalConfiguration.LivenessProviderType.SqlServer))
            {
                membershipTable = new SqlMembershipTable();
            }
            else if (livenessType.Equals(GlobalConfiguration.LivenessProviderType.AzureTable))
            {
                membershipTable = AssemblyLoader.LoadAndCreateInstance <IMembershipTable>(Constants.ORLEANS_AZURE_UTILS_DLL, logger);
            }
            else if (livenessType.Equals(GlobalConfiguration.LivenessProviderType.ZooKeeper))
            {
                membershipTable = AssemblyLoader.LoadAndCreateInstance <IMembershipTable>(Constants.ORLEANS_ZOOKEEPER_UTILS_DLL, logger);
            }
            else
            {
                throw new NotImplementedException("No membership table provider found for LivenessType=" + livenessType);
            }

            return(membershipTable);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
ファイル: MembershipFactory.cs プロジェクト: tcunning/orleans
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
 public UnitTestSiloOptions()
 {
     // all defaults except:
     StartFreshOrleans   = true;
     StartPrimary        = true;
     StartSecondary      = true;
     StartClient         = true;
     PickNewDeploymentId = false;
     BasePort            = -1; // use default from configuration file
     MachineName         = ".";
     LivenessType        = GlobalConfiguration.LivenessProviderType.MembershipTableGrain;
 }
コード例 #6
0
        public static void SetGlobals(this GlobalConfiguration globals,
                                      GlobalConfiguration.LivenessProviderType liveness = GlobalConfiguration.LivenessProviderType.Custom,
                                      string dataConnectionString    = "http://localhost:8500",
                                      string membershipTableAssembly = "OrleansConsulUtils")
        {
            globals.LivenessType         = liveness;
            globals.DataConnectionString = dataConnectionString;

            if (!string.IsNullOrWhiteSpace(membershipTableAssembly))
            {
                globals.MembershipTableAssembly = membershipTableAssembly;
            }
        }
コード例 #7
0
ファイル: SiloHost.cs プロジェクト: sramkumarmca/orleans
 /// <summary>
 ///  Set the membership liveness type to be used by this silo.
 /// </summary>
 /// <param name="livenessType">Liveness type for this silo</param>
 public void SetSiloLivenessType(GlobalConfiguration.LivenessProviderType livenessType)
 {
     logger.Info(ErrorCode.SetSiloLivenessType, "Setting silo Liveness Provider Type={0}", livenessType);
     Config.Globals.LivenessType = livenessType;
 }