Example #1
0
        public HerculesDeployer(HerculesDeploySettings deploySettings, ILog log)
        {
            this.deploySettings = deploySettings;
            this.log            = log;

            baseDirectory = GetHerculesBaseDirectory(deploySettings);
        }
 private void Check(HerculesDeploySettings settings)
 {
     using (var cluster = HerculesCluster.DeployNew(settings, log))
     {
         cluster.ZooKeeperEnsemble.IsRunning.Should().BeTrue();
         cluster.KafkaInstance.IsRunning.Should().BeTrue();
         cluster.HerculesServices.All(service => service.IsRunning).Should().BeTrue();
     }
 }
        public void Should_deploy_and_start_cluster_by_default(int size)
        {
            var settings = new HerculesDeploySettings
            {
                HerculesGateCount          = size,
                HerculesManagementApiCount = size,
                HerculesStreamApiCount     = size,
                HerculesStreamManagerCount = size
            };

            Check(settings);
        }
        public void Should_deploy_and_start_management_stream_manager()
        {
            var settings = new HerculesDeploySettings
            {
                HerculesGateCount          = 0,
                HerculesManagementApiCount = 0,
                HerculesStreamApiCount     = 0,
                HerculesStreamManagerCount = 1
            };

            Check(settings);
        }
Example #5
0
        public static HerculesCluster DeployNew(HerculesDeploySettings deploySettings, ILog log, bool started = true)
        {
            HerculesCluster cluster = null;

            Retrier.RetryOnException(() =>
            {
                cluster = new HerculesDeployer(deploySettings, log).Deploy();

                if (started)
                {
                    cluster.Start();
                }
            },
                                     3,
                                     "Unable to start Hercules.Local",
                                     () =>
            {
                log.Warn("Retrying Hercules.Local deployment...");
                cluster?.Dispose();
            });

            return(cluster);
        }
Example #6
0
 private static string GetHerculesBaseDirectory(HerculesDeploySettings settings)
 {
     return(string.IsNullOrEmpty(settings.BaseDirectory) ? Directory.GetCurrentDirectory() : settings.BaseDirectory);
 }