public void TestThatExecutionSequenceIsValid() { var config = new ConDepConfig { EnvironmentName = "bogusEnv" }; var server = new ServerConfig { Name = "jat-web03" }; config.Servers = new[] { server }; var infrastructureSequence = new InfrastructureSequence(); var preOpsSequence = new PreOpsSequence(new WebDeployHandlerMock()); var webDeploy = new WebDeployHandlerMock(); var infrastructureBuilder = new InfrastructureBuilder(infrastructureSequence, webDeploy); _infra.Configure(infrastructureBuilder, config); var local = new LocalOperationsBuilder(_sequenceManager.NewLocalSequence("Test"), infrastructureSequence, preOpsSequence, config.Servers, webDeploy); _app.Configure(local, config); var notification = new Notification(); Assert.That(_sequenceManager.IsValid(notification)); }
public void Setup() { var app = new OnlyIfTestApp(); var config = new ConDepEnvConfig { EnvironmentName = "bogusEnv" }; var server = new ServerConfig { Name = "bogusHost" }; config.Servers = new[] { server }; _sequenceManager = new ExecutionSequenceManager(config.Servers, new DefaultLoadBalancer()); var settings = new ConDepSettings { Config = config }; var local = new LocalOperationsBuilder(_sequenceManager.NewLocalSequence("Test")); app.Configure(local, settings); _serverInfo = new ServerInfo { OperatingSystem = new OperatingSystemInfo { Name = "Windows Server 2012" } }; }
public void TestThatExecutionSequenceIsValid() { var config = new ConDepEnvConfig { EnvironmentName = "bogusEnv" }; var server = new ServerConfig { Name = "jat-web03" }; config.Servers = new[] { server }; var sequenceManager = new ExecutionSequenceManager(config.Servers, new DefaultLoadBalancer()); var settings = new ConDepSettings(); settings.Config = config; var local = new LocalOperationsBuilder(sequenceManager.NewLocalSequence("Test")); //Configure.LocalOperations = local; _app.Configure(local, settings); var notification = new Notification(); Assert.That(sequenceManager.IsValid(notification)); }
private void ConfigureAtrifact(IProvideArtifact artifact, ExecutionSequenceManager sequenceManager, ConDepSettings settings) { if (artifact is Artifact.Local) { var localSequence = sequenceManager.NewLocalSequence(artifact.GetType().Name); var localBuilder = new LocalOperationsBuilder(localSequence); ((Artifact.Local)artifact).Configure(localBuilder, settings); } else if (artifact is Artifact.Remote) { var remoteSequence = sequenceManager.NewRemoteSequence(artifact.GetType().Name); var remoteBuilder = new RemoteOperationsBuilder(remoteSequence); ((Artifact.Remote)artifact).Configure(remoteBuilder, settings); } }
private void Execute(Assembly assembly, ConDepConfig envConfig, ConDepOptions options, IReportStatus status) { if (assembly == null) { throw new ArgumentException("assembly"); } if (envConfig == null) { throw new ArgumentException("envSettings"); } if (options == null) { throw new ArgumentException("options"); } if (status == null) { throw new ArgumentException("status"); } var applications = CreateApplicationArtifacts(options, assembly); if (!options.WebDeployExist) { var serverValidator = new RemoteServerValidator(envConfig.Servers); if (!serverValidator.IsValid()) { Logger.Error("Not all servers fulfill ConDep's requirements. Aborting execution."); return; } } var webDeploy = new WebDeployHandler(); var lbLookup = new LoadBalancerLookup(envConfig.LoadBalancer); var sequenceManager = new ExecutionSequenceManager(lbLookup.GetLoadBalancer()); var notification = new Notification(); var postOpSeq = new PostOpsSequence(); foreach (var application in applications) { var infrastructureSequence = new InfrastructureSequence(); var preOpsSequence = new PreOpsSequence(webDeploy); if (!options.DeployOnly) { var infrastructureBuilder = new InfrastructureBuilder(infrastructureSequence, webDeploy); Configure.InfrastructureOperations = infrastructureBuilder; if (HasInfrastructureDefined(application)) { var infrastructureInstance = GetInfrastructureArtifactForApplication(assembly, application); if (!infrastructureSequence.IsValid(notification)) { notification.Throw(); } infrastructureInstance.Configure(infrastructureBuilder, envConfig); } } var local = new LocalOperationsBuilder(sequenceManager.NewLocalSequence(application.GetType().Name), infrastructureSequence, preOpsSequence, envConfig.Servers, webDeploy); Configure.LocalOperations = local; application.Configure(local, envConfig); } if (!sequenceManager.IsValid(notification)) { notification.Throw(); } sequenceManager.Execute(status, envConfig, options); postOpSeq.Execute(status, options); }