DeploymentResult Ex(Func <DeploymentDetail, DeploymentResult> action) { Console.WriteLine(Name); var result = new DeploymentResult(); foreach (var role in _roles) { Console.WriteLine(" {0}", role.Name); role.ForEachServer(s => { Console.WriteLine(" {0}", s.Name); s.ForEachDetail(d => { Console.WriteLine(" {0}", d.Name); var r = action(d); result.MergedWith(r); foreach (var item in r.Results) { Console.WriteLine(" [{0}] {1}", item.Status, item.Message); } }); }); } return(result); }
public DeploymentResult Execute() { var deploymentResult = new DeploymentResult(); bool abort = false; Ex(d => { if (!abort) { var o = d.Verify(); deploymentResult.MergedWith(o); if (deploymentResult.ShouldAbort) { abort = true; } if (o.ContainsError()) { //display errors! DisplayResults(o); //stop. report verify error. return; } var result = d.Execute(); DisplayResults(result); deploymentResult.MergedWith(result); if (deploymentResult.ShouldAbort) { abort = true; } } else { Logging.Coarse(LogLevel.Error, "[Skip ] {0}", d.Name); } }); return(deploymentResult); }
public DeploymentResult Verify() { var deploymentResult = new DeploymentResult(); Ex(d => { var result = d.Verify(); DisplayResults(result); deploymentResult.MergedWith(result); }); return(deploymentResult); }