/// <summary> /// Registers a given type of <typeparamref name="T"/> where <typeparamref name="T"/> is bootstrap provider /// </summary> /// <typeparam name="T">Non-abstract type which implements <see cref="IBootstrapProvider"/> interface</typeparam> /// <param name="providerName">Name of the bootstrap provider</param> /// <param name="properties">Properties that will be passed to bootstrap provider upon initialization</param> public void RegisterBootstrapProvider <T>(string providerName, IDictionary <string, string> properties = null) where T : IBootstrapProvider { Type providerType = typeof(T); if (providerType.IsAbstract || providerType.IsGenericType || !typeof(IBootstrapProvider).IsAssignableFrom(providerType)) { throw new ArgumentException("Expected non-generic, non-abstract type which implements IBootstrapProvider interface", "typeof(T)"); } ProviderConfigurationUtility.RegisterProvider(ProviderConfigurations, ProviderCategoryConfiguration.BOOTSTRAP_PROVIDER_CATEGORY_NAME, providerType.FullName, providerName, properties); }
/// <summary> /// Registers a given type of <typeparamref name="T"/> where <typeparamref name="T"/> is stream provider /// </summary> /// <typeparam name="T">Non-abstract type which implements <see cref="Orleans.Streams.IStreamProvider"/> stream</typeparam> /// <param name="providerName">Name of the stream provider</param> /// <param name="properties">Properties that will be passed to stream provider upon initialization</param> public void RegisterStreamProvider <T>(string providerName, IDictionary <string, string> properties = null) where T : Orleans.Streams.IStreamProvider { Type providerTypeInfo = typeof(T).GetTypeInfo(); if (providerTypeInfo.IsAbstract || providerTypeInfo.IsGenericType || !typeof(Orleans.Streams.IStreamProvider).IsAssignableFrom(providerTypeInfo)) { throw new ArgumentException("Expected non-generic, non-abstract type which implements IStreamProvider interface", "typeof(T)"); } ProviderConfigurationUtility.RegisterProvider(ProviderConfigurations, ProviderCategoryConfiguration.STREAM_PROVIDER_CATEGORY_NAME, providerTypeInfo.FullName, providerName, properties); }
public void RegisterStatisticsProvider <T>(string providerName, IDictionary <string, string> properties = null) where T : IStatisticsPublisher, IClientMetricsDataPublisher { TypeInfo providerTypeInfo = typeof(T).GetTypeInfo(); if (providerTypeInfo.IsAbstract || providerTypeInfo.IsGenericType || providerTypeInfo.IsGenericType || !( typeof(IStatisticsPublisher).IsAssignableFrom(typeof(T)) && typeof(IClientMetricsDataPublisher).IsAssignableFrom(typeof(T)) )) { throw new ArgumentException("Expected non-generic, non-abstract type which implements IStatisticsPublisher, IClientMetricsDataPublisher interface", "typeof(T)"); } ProviderConfigurationUtility.RegisterProvider(ProviderConfigurations, ProviderCategoryConfiguration.STATISTICS_PROVIDER_CATEGORY_NAME, providerTypeInfo.FullName, providerName, properties); }
public override string ToString() { var sb = new StringBuilder(); sb.AppendLine("Platform version info:").Append(ConfigUtilities.RuntimeVersionInfo()); sb.Append(" Host: ").AppendLine(Dns.GetHostName()); sb.Append(" Processor Count: ").Append(System.Environment.ProcessorCount).AppendLine(); sb.AppendLine("Client Configuration:"); sb.Append(" Config File Name: ").AppendLine(string.IsNullOrEmpty(SourceFile) ? "" : Path.GetFullPath(SourceFile)); sb.Append(" Start time: ").AppendLine(TraceLogger.PrintDate(DateTime.UtcNow)); sb.Append(" Gateway Provider: ").Append(GatewayProvider); if (GatewayProvider == GatewayProviderType.None) { sb.Append(". Gateway Provider that will be used instead: ").Append(GatewayProviderToUse); } sb.AppendLine(); if (Gateways != null && Gateways.Count > 0) { sb.AppendFormat(" Gateways[{0}]:", Gateways.Count).AppendLine(); foreach (var endpoint in Gateways) { sb.Append(" ").AppendLine(endpoint.ToString()); } } else { sb.Append(" Gateways: ").AppendLine("Unspecified"); } sb.Append(" Preferred Gateway Index: ").AppendLine(PreferedGatewayIndex.ToString()); if (Gateways != null && PreferedGatewayIndex >= 0 && PreferedGatewayIndex < Gateways.Count) { sb.Append(" Preferred Gateway Address: ").AppendLine(Gateways[PreferedGatewayIndex].ToString()); } sb.Append(" GatewayListRefreshPeriod: ").Append(GatewayListRefreshPeriod).AppendLine(); if (!String.IsNullOrEmpty(DeploymentId) || !String.IsNullOrEmpty(DataConnectionString)) { sb.Append(" Azure:").AppendLine(); sb.Append(" DeploymentId: ").Append(DeploymentId).AppendLine(); string dataConnectionInfo = ConfigUtilities.RedactConnectionStringInfo(DataConnectionString); // Don't print Azure account keys in log files sb.Append(" DataConnectionString: ").Append(dataConnectionInfo).AppendLine(); } if (!string.IsNullOrWhiteSpace(NetInterface)) { sb.Append(" Network Interface: ").AppendLine(NetInterface); } if (Port != 0) { sb.Append(" Network Port: ").Append(Port).AppendLine(); } sb.Append(" Preferred Address Family: ").AppendLine(PreferredFamily.ToString()); sb.Append(" DNS Host Name: ").AppendLine(DNSHostName); sb.Append(" Client Name: ").AppendLine(ClientName); sb.Append(ConfigUtilities.TraceConfigurationToString(this)); sb.Append(ConfigUtilities.IStatisticsConfigurationToString(this)); sb.Append(LimitManager); sb.AppendFormat(base.ToString()); sb.AppendFormat(" Providers:").AppendLine(); sb.Append(ProviderConfigurationUtility.PrintProviderConfigurations(ProviderConfigurations)); return(sb.ToString()); }
/// <summary> /// Retrieves an enumeration of all currently configured provider configurations. /// </summary> /// <returns>An enumeration of all currently configured provider configurations.</returns> public IEnumerable <IProviderConfiguration> GetAllProviderConfigurations() { return(ProviderConfigurationUtility.GetAllProviderConfigurations(ProviderConfigurations)); }
/// <summary> /// Retrieves an existing provider configuration /// </summary> /// <param name="providerTypeFullName">Full name of the stream provider type</param> /// <param name="providerName">Name of the stream provider</param> /// <param name="config">The provider configuration, if exists</param> /// <returns>True if a configuration for this provider already exists, false otherwise.</returns> public bool TryGetProviderConfiguration(string providerTypeFullName, string providerName, out IProviderConfiguration config) { return(ProviderConfigurationUtility.TryGetProviderConfiguration(ProviderConfigurations, providerTypeFullName, providerName, out config)); }
/// <summary> /// Registers a given stream provider. /// </summary> /// <param name="providerTypeFullName">Full name of the stream provider type</param> /// <param name="providerName">Name of the stream provider</param> /// <param name="properties">Properties that will be passed to the stream provider upon initialization </param> public void RegisterStreamProvider(string providerTypeFullName, string providerName, IDictionary <string, string> properties = null) { ProviderConfigurationUtility.RegisterProvider(ProviderConfigurations, ProviderCategoryConfiguration.STREAM_PROVIDER_CATEGORY_NAME, providerTypeFullName, providerName, properties); }
/// <summary> /// This method may be called by the client host or test host to tweak a provider configuration after it has been already loaded. /// Its is optional and should NOT be automaticaly called by the runtime. /// </summary> internal void AdjustConfiguration() { ProviderConfigurationUtility.AdjustConfiguration(ProviderConfigurations, DeploymentId); }
/// <summary> /// This method may be called by the silo host or test host to tweak a provider configuration after it has been already loaded. /// Its is optional and should NOT be automaticaly called by the runtime. /// </summary> internal void AdjustConfiguration() { ProviderConfigurationUtility.AdjustConfiguration(Globals.ProviderConfigurations, Globals.DeploymentId); }
public override string ToString() { var sb = new StringBuilder(); sb.AppendFormat(" System Ids:").AppendLine(); sb.AppendFormat(" ServiceId: {0}", ServiceId).AppendLine(); sb.AppendFormat(" DeploymentId: {0}", DeploymentId).AppendLine(); sb.Append(" Subnet: ").Append(Subnet == null ? "" : Subnet.ToStrings(x => x.ToString(CultureInfo.InvariantCulture), ".")).AppendLine(); sb.Append(" Seed nodes: "); bool first = true; foreach (IPEndPoint node in SeedNodes) { if (!first) { sb.Append(", "); } sb.Append(node.ToString()); first = false; } sb.AppendLine(); sb.AppendFormat(base.ToString()); sb.AppendFormat(" Liveness:").AppendLine(); sb.AppendFormat(" LivenessEnabled: {0}", LivenessEnabled).AppendLine(); sb.AppendFormat(" LivenessType: {0}", LivenessType).AppendLine(); sb.AppendFormat(" ProbeTimeout: {0}", ProbeTimeout).AppendLine(); sb.AppendFormat(" TableRefreshTimeout: {0}", TableRefreshTimeout).AppendLine(); sb.AppendFormat(" DeathVoteExpirationTimeout: {0}", DeathVoteExpirationTimeout).AppendLine(); sb.AppendFormat(" NumMissedProbesLimit: {0}", NumMissedProbesLimit).AppendLine(); sb.AppendFormat(" NumProbedSilos: {0}", NumProbedSilos).AppendLine(); sb.AppendFormat(" NumVotesForDeathDeclaration: {0}", NumVotesForDeathDeclaration).AppendLine(); sb.AppendFormat(" UseLivenessGossip: {0}", UseLivenessGossip).AppendLine(); sb.AppendFormat(" IAmAliveTablePublishTimeout: {0}", IAmAliveTablePublishTimeout).AppendLine(); sb.AppendFormat(" NumMissedTableIAmAliveLimit: {0}", NumMissedTableIAmAliveLimit).AppendLine(); sb.AppendFormat(" MaxJoinAttemptTime: {0}", MaxJoinAttemptTime).AppendLine(); sb.AppendFormat(" ExpectedClusterSize: {0}", ExpectedClusterSize).AppendLine(); sb.AppendFormat(" SystemStore:").AppendLine(); // Don't print connection credentials in log files, so pass it through redactment filter string connectionStringForLog = ConfigUtilities.RedactConnectionStringInfo(DataConnectionString); sb.AppendFormat(" ConnectionString: {0}", connectionStringForLog).AppendLine(); sb.Append(Application.ToString()).AppendLine(); sb.Append(" PlacementStrategy: ").AppendLine(); sb.Append(" ").Append(" Default Placement Strategy: ").Append(DefaultPlacementStrategy).AppendLine(); sb.Append(" ").Append(" Deployment Load Publisher Refresh Time: ").Append(DeploymentLoadPublisherRefreshTime).AppendLine(); sb.Append(" ").Append(" Activation CountBased Placement Choose Out Of: ").Append(ActivationCountBasedPlacementChooseOutOf).AppendLine(); sb.AppendFormat(" Grain directory cache:").AppendLine(); sb.AppendFormat(" Maximum size: {0} grains", CacheSize).AppendLine(); sb.AppendFormat(" Initial TTL: {0}", InitialCacheTTL).AppendLine(); sb.AppendFormat(" Maximum TTL: {0}", MaximumCacheTTL).AppendLine(); sb.AppendFormat(" TTL extension factor: {0:F2}", CacheTTLExtensionFactor).AppendLine(); sb.AppendFormat(" Directory Caching Strategy: {0}", DirectoryCachingStrategy).AppendLine(); sb.AppendFormat(" Grain directory:").AppendLine(); sb.AppendFormat(" Lazy deregistration delay: {0}", DirectoryLazyDeregistrationDelay).AppendLine(); sb.AppendFormat(" Client registration refresh: {0}", ClientRegistrationRefresh).AppendLine(); sb.AppendFormat(" Reminder Service:").AppendLine(); sb.AppendFormat(" ReminderServiceType: {0}", ReminderServiceType).AppendLine(); if (ReminderServiceType == ReminderServiceProviderType.MockTable) { sb.AppendFormat(" MockReminderTableTimeout: {0}ms", MockReminderTableTimeout.TotalMilliseconds).AppendLine(); } sb.AppendFormat(" Consistent Ring:").AppendLine(); sb.AppendFormat(" Use Virtual Buckets Consistent Ring: {0}", UseVirtualBucketsConsistentRing).AppendLine(); sb.AppendFormat(" Num Virtual Buckets Consistent Ring: {0}", NumVirtualBucketsConsistentRing).AppendLine(); sb.AppendFormat(" Providers:").AppendLine(); sb.Append(ProviderConfigurationUtility.PrintProviderConfigurations(ProviderConfigurations)); return(sb.ToString()); }
/// <summary> /// Registers a given bootstrap provider. /// </summary> /// <param name="providerTypeFullName">Full name of the bootstrap provider type</param> /// <param name="providerName">Name of the bootstrap provider</param> /// <param name="properties">Properties that will be passed to the bootstrap provider upon initialization </param> public static void RegisterBootstrapProvider(this GlobalConfiguration config, string providerTypeFullName, string providerName, IDictionary <string, string> properties = null) { ProviderConfigurationUtility.RegisterProvider(config.ProviderConfigurations, BOOTSTRAP_PROVIDER_CATEGORY_NAME, providerTypeFullName, providerName, properties); }