Exemplo n.º 1
0
        private string FormatRolloutInfoHeader(PSRollout rollout)
        {
            StringBuilder sb = new StringBuilder();

            sb.InvariantAppend($"\n\nStatus: {rollout.Status}");

            if (rollout.Status == RolloutCmdletBase.FailedStatus)
            {
                verboseBuilder.InvariantAppend(sb.ToString());
                sb.Clear();
            }

            sb.Append(RolloutCmdletBase.FormatRolloutDetails(rollout));
            sb.AppendFormatWithLeftIndentAndNewLineIfNotNull(
                RolloutCmdletBase.NoIndent,
                "Total Retry Attempts",
                rollout.TotalRetryAttempts.HasValue && rollout.TotalRetryAttempts > 0 ? rollout.TotalRetryAttempts.Value.ToString(CultureInfo.InvariantCulture) : null);

            if (rollout.OperationInfo != null)
            {
                sb.AppendFormatWithLeftIndentAndNewLine(NoIndent, RolloutCmdletBase.FormatOperationInfo(rollout.OperationInfo, RolloutCmdletBase.NoIndent));
            }

            return(sb.ToString());
        }
Exemplo n.º 2
0
        private void PrintServiceUnits(PSServiceUnit serviceUnit, StringBuilder eb)
        {
            StringBuilder sb = new StringBuilder();

            if (serviceUnit != null)
            {
                sb.AppendLine();
                sb.AppendFormatWithLeftIndentAndNewLine(
                    RolloutCmdletBase.ServiceUnitIndentFactor,
                    $"ServiceUnit: {serviceUnit.Name}");

                sb.AppendFormatWithLeftIndentAndNewLineIfNotNull(
                    RolloutCmdletBase.StepIndentFactor,
                    "TargetResourceGroup",
                    serviceUnit.TargetResourceGroup);

                foreach (var step in serviceUnit.Steps)
                {
                    if (step.Status != null && step.Status.Equals("Failed", StringComparison.OrdinalIgnoreCase))
                    {
                        verboseBuilder.InvariantAppend(sb.ToString());
                        sb.Clear();
                    }

                    sb.AppendLine();
                    sb.AppendFormatWithLeftIndentAndNewLine(RolloutCmdletBase.StepIndentFactor, $"Step: {step.Name}");
                    sb.AppendFormatWithLeftIndentAndNewLine(RolloutCmdletBase.StepPropertiesIndentFactor, $"Status: {step.Status}");
                    sb.AppendFormatWithLeftIndentAndNewLine(RolloutCmdletBase.StepPropertiesIndentFactor, $"StepGroup: {step.StepGroup}");

                    sb.AppendFormatWithLeftIndentAndNewLineIfNotNull(
                        RolloutCmdletBase.StepPropertiesIndentFactor,
                        "Message",
                        RolloutCmdletBase.ActionMessagesToDisplayString(step.Messages));

                    if (step.OperationInfo != null)
                    {
                        string formatOperationInfo = RolloutCmdletBase.FormatOperationInfo(step.OperationInfo, RolloutCmdletBase.StepPropertiesIndentFactor);
                        sb.Append(formatOperationInfo);
                    }

                    if (step.Status != null && step.Status.Equals("Failed", StringComparison.OrdinalIgnoreCase))
                    {
                        verboseBuilder.InvariantAppend(sb.ToString());
                        eb.InvariantAppend(sb.ToString());
                    }
                    else
                    {
                        verboseBuilder.InvariantAppend(sb.ToString());
                    }

                    sb.Clear();

                    this.PrintResourceOperations(step.ResourceOperations, eb);
                }
            }
        }
Exemplo n.º 3
0
        protected static string FormatOperationInfo(PSBaseOperationInfo operationInfo, int indentFactor)
        {
            string formattedString        = string.Empty;
            int    indentFactorForDetails = indentFactor < int.MaxValue ? indentFactor + 1 : indentFactor;

            if (operationInfo != null)
            {
                StringBuilder sb = new StringBuilder();

                var rolloutOperationInfo = operationInfo as PSRolloutOperationInfo;
                if (rolloutOperationInfo != null)
                {
                    sb.AppendFormatWithLeftIndentAndNewLine(indentFactorForDetails, $"Retry Attempt: {rolloutOperationInfo.RetryAttempt}");
                    sb.AppendFormatWithLeftIndentAndNewLine(indentFactorForDetails, $"Skip Succeeded: {rolloutOperationInfo.SkipSucceededOnRetry}");
                }

                var stepOperationInfo = operationInfo as PSStepOperationInfo;
                if (stepOperationInfo != null)
                {
                    sb.AppendFormatWithLeftIndentAndNewLineIfNotNull(indentFactorForDetails, "DeploymentName", stepOperationInfo.DeploymentName);
                    sb.AppendFormatWithLeftIndentAndNewLineIfNotNull(indentFactorForDetails, "CorrelationId", stepOperationInfo.CorrelationId);
                }

                if (operationInfo?.StartTime != null && operationInfo.StartTime.HasValue)
                {
                    sb.AppendFormatWithLeftIndentAndNewLine(indentFactorForDetails, $"Start Time: {operationInfo.StartTime.Value.ToLocalTimeForUserDisplay()}");
                }

                if (operationInfo?.EndTime != null && operationInfo.EndTime.HasValue)
                {
                    sb.AppendFormatWithLeftIndentAndNewLine(indentFactorForDetails, $"End Time: {operationInfo.EndTime.Value.ToLocalTimeForUserDisplay()}");

                    if (operationInfo?.StartTime != null && operationInfo.StartTime.HasValue)
                    {
                        sb.AppendFormatWithLeftIndentAndNewLine(
                            indentFactorForDetails,
                            "Total Duration: {0}",
                            (operationInfo.EndTime.Value - operationInfo.StartTime.Value).ToDisplayFormat());
                    }
                }

                sb.InvariantAppend(RolloutCmdletBase.FormatErrorInfo(operationInfo, indentFactorForDetails));

                formattedString = sb.ToString();
                if (!StringUtilities.IsNullOrWhiteSpace(formattedString))
                {
                    sb.Clear();
                    sb.AppendFormatWithLeftIndentAndNewLine(indentFactor, "Operation Info:");
                    formattedString = string.Concat(sb.ToString(), formattedString);
                }
            }

            return(formattedString);
        }
Exemplo n.º 4
0
        private static string FormatErrorInfo(PSBaseOperationInfo operationInfo, int indentFactor)
        {
            StringBuilder sb = new StringBuilder();

            if (operationInfo != null && operationInfo.Error != null)
            {
                sb.AppendFormatWithLeftIndentAndNewLineIfNotNull(
                    indentFactor,
                    "Error",
                    RolloutCmdletBase.AppendError(operationInfo.Error, indentFactor + 1));
                sb.AppendFormatWithLeftIndentAndNewLineIfNotNull(
                    indentFactor + 1,
                    "Details",
                    operationInfo.Error?.Details?.ToList().Select(e =>
                                                                  RolloutCmdletBase.AppendError(e, indentFactor + 2)).ToCommaDelimitedString());
            }

            return(sb.ToString());
        }