Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        public DeploymentResult Verify()
        {
            var deploymentResult = new DeploymentResult();

            Ex(d =>
            {
                var result = d.Verify();
                DisplayResults(result);
                deploymentResult.MergedWith(result);
            });

            return(deploymentResult);
        }