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); }
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); }
private static string GetHerculesBaseDirectory(HerculesDeploySettings settings) { return(string.IsNullOrEmpty(settings.BaseDirectory) ? Directory.GetCurrentDirectory() : settings.BaseDirectory); }