Ejemplo n.º 1
0
 private static FallbackOptions BindExtendedOptions(IConfiguration extendedConfiguration)
 {
     var fallbackOptions = new FallbackOptions();
     extendedConfiguration.Bind(fallbackOptions);
     return fallbackOptions;
 }
Ejemplo n.º 2
0
        /// <summary>Build a cluster configuration.</summary>
        /// <param name="baseSiloPort">Base port number to use for silos</param>
        /// <param name="baseGatewayPort">Base port number to use for silo's gateways</param>
        /// <param name="silosCount">The number of initial silos to deploy.</param>
        /// <param name="extendedOptions">The extended fallback options.</param>
        /// <returns>The builded cluster configuration</returns>
        public static ClusterConfiguration BuildClusterConfiguration(int baseSiloPort, int baseGatewayPort, int silosCount, FallbackOptions extendedOptions)
        {
            var config = ClusterConfiguration.LocalhostPrimarySilo(baseSiloPort, baseGatewayPort);
            config.Globals.DeploymentId = CreateDeploymentId(baseSiloPort);
            if (extendedOptions.TraceToConsole.HasValue)
            {
                config.Defaults.TraceToConsole = extendedOptions.TraceToConsole.Value;
            }

            var defaultLogsFolder = extendedOptions.LogsFolder;
            if (!string.IsNullOrWhiteSpace(defaultLogsFolder))
            {
                if (!Directory.Exists(defaultLogsFolder))
                {
                    Directory.CreateDirectory(defaultLogsFolder);
                }

                config.Defaults.TraceFilePattern = $"{defaultLogsFolder}\\{config.Defaults.TraceFilePattern}";
            }

            AddNodeConfiguration(config, Silo.SiloType.Primary, 0, baseSiloPort, baseGatewayPort);
            for (short instanceNumber = 1; instanceNumber < silosCount; instanceNumber++)
            {
                AddNodeConfiguration(config, Silo.SiloType.Secondary, instanceNumber, baseSiloPort, baseGatewayPort);
            }

            config.Globals.ExpectedClusterSize = silosCount;

            config.AdjustForTestEnvironment(extendedOptions.DataConnectionString);
            return config;
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Initializes a new instance of <see cref="TestClusterOptions"/>.
 /// </summary>
 /// <param name="extendedFallbackOptions">Fallback options to use when they are not explicitly specified in the <see cref="ClusterConfiguration"/>.</param>
 public TestClusterOptions(FallbackOptions extendedFallbackOptions)
 {
     this.BaseSiloPort = ThreadSafeRandom.Next(22300, 30000);
     this.BaseGatewayPort = ThreadSafeRandom.Next(40000, 50000);
     this.ExtendedFallbackOptions = extendedFallbackOptions;
 }
Ejemplo n.º 4
0
        /// <summary>Build a cluster configuration.</summary>
        /// <param name="baseSiloPort">Base port number to use for silos</param>
        /// <param name="baseGatewayPort">Base port number to use for silo's gateways</param>
        /// <param name="silosCount">The number of initial silos to deploy.</param>
        /// <param name="extendedOptions">The extended fallback options.</param>
        /// <returns>The builded cluster configuration</returns>
        public static ClusterConfiguration BuildClusterConfiguration(int baseSiloPort, int baseGatewayPort, int silosCount, FallbackOptions extendedOptions)
        {
            var config = ClusterConfiguration.LocalhostPrimarySilo(baseSiloPort, baseGatewayPort);

            config.Globals.DeploymentId = CreateDeploymentId(baseSiloPort);

            AddNodeConfiguration(config, Silo.SiloType.Primary, 0, baseSiloPort, baseGatewayPort);
            for (short instanceNumber = 1; instanceNumber < silosCount; instanceNumber++)
            {
                AddNodeConfiguration(config, Silo.SiloType.Secondary, instanceNumber, baseSiloPort, baseGatewayPort);
            }

            config.Globals.ExpectedClusterSize             = silosCount;
            config.Globals.AssumeHomogenousSilosForTesting = true;

            config.AdjustForTestEnvironment(extendedOptions.DataConnectionString);
            return(config);
        }