Exemplo n.º 1
0
        public async Task <Error?> LogActionWithWarningsAsync(ActionRunResult runResult)
        {
            var title = runResult.ActionName + " action " + (runResult.Successful ? "SUCCEEDED" : "FAILED") + $" in {runResult.TotalMillis}ms";

            var log      = new StringBuilder();
            var warnings = new StringBuilder();

            var actionSucceeded = LogAction(log, warnings, runResult);

            var logString = log.ToString();
            await _outputWriter.PrintMessageAsync(title, logString);

            var errorListOutput = runResult.GetStepOutputs();
            await _errorList.AddToErrorListAsync(errorListOutput);

            if (warnings.Length == 0)
            {
                return(null);
            }
            if (!actionSucceeded)
            {
                return(new Error(message: warnings.ToString(), critical: true, title: "RAD Action Execution Failed"));
            }
            return(new Error(message: warnings.ToString(), critical: false, title: "RAD Action Execution Warnings"));
        }
Exemplo n.º 2
0
 public ActionCompletedEventArgs(Error?error, ActionProfileOptions action, MacroEvaluatorTransientValues transients, ActionRunResult runResult = null)
 {
     Error      = error;
     Action     = action;
     Transients = transients;
     RunResult  = runResult;
 }
Exemplo n.º 3
0
        private bool LogAction(StringBuilder log, StringBuilder warnings, ActionRunResult run, int depth = 0)
        {
            var logIndent = new string('=', 2 * depth);

            log.AppendFormat("{0}=> Fetched initial timestamps in {1}ms\r\n", logIndent, run.InitTimestampFetchMillis);

            var prevStepsSucceeded = true;

            for (int i = 0; i < run.Steps.Count; ++i)
            {
                var step = run.Steps[i];
                if (prevStepsSucceeded || run.ContinueOnError)
                {
                    var result = run.StepResults[i];
                    log.AppendFormat("{0}=> [{1}] {2} {3} in {4}ms\r\n", logIndent, i, step, result.Successful ? "SUCCEEDED" : "FAILED", run.StepRunMillis[i]);
                    if (!string.IsNullOrEmpty(result.Log))
                    {
                        log.Append(result.Log);
                    }
                    if (!string.IsNullOrEmpty(result.Warning))
                    {
                        warnings.AppendFormat("* {0}\r\n", result.Warning);
                    }
                    prevStepsSucceeded = result.Successful;

                    if (run.StepResults[i].SubAction != null)
                    {
                        LogAction(log, warnings, run.StepResults[i].SubAction, depth: depth + 1);
                    }
                }
                else
                {
                    log.AppendFormat("{0}=> [{1}] {2} SKIPPED\r\n", logIndent, i, step);
                }
            }

            return(prevStepsSucceeded);
        }