Example #1
0
        public async Task NotAvailableInTimelyManner_RunAsync_LogsFailure()
        {
            _item.MaxApplicationReadyWaitTime = 5;
            _command.AvailableCheckDelay      = 5000;
            var appInfo1 = new ApplicationUpgradeProgressInfo(
                _item.ApplicationName,
                _item.ApplicationTypeName,
                _item.ApplicationTypeVersion,
                upgradeState: UpgradeState.RollingForwardInProgress);
            var appInfo2 = new ApplicationUpgradeProgressInfo(
                _item.ApplicationName,
                _item.ApplicationTypeName,
                _item.ApplicationTypeVersion,
                upgradeState: UpgradeState.RollingForwardInProgress);

            _appClient
            .SetupSequence(c => c.GetApplicationUpgradeAsync(_item.ApplicationId, 60, CancellationToken.None))
            .Returns(Task.FromResult(appInfo1))
            .Returns(Task.FromResult(appInfo2));

            await _command.RunAsync();

            ShouldContainsLogMessage(
                $"Failed to upgrade application {_item.ApplicationName}: " +
                $"The application failed to startup within {_item.MaxApplicationReadyWaitTime} seconds");
        }
Example #2
0
        public async Task NoErrors_RunAsync_LogsSuccess(UpgradeState upgradeState)
        {
            var appInfo = new ApplicationUpgradeProgressInfo(
                _item.ApplicationName,
                _item.ApplicationTypeName,
                _item.ApplicationTypeVersion,
                upgradeState: upgradeState);

            _appClient
            .Setup(c => c.GetApplicationUpgradeAsync(_item.ApplicationId, 60, CancellationToken.None))
            .Returns(Task.FromResult(appInfo));

            await _command.RunAsync();

            ShouldContainsLogMessage($"Upgraded application {_item.ApplicationName} successfully");
        }
Example #3
0
        public async Task NotAvailableOnFirstCheck_RunAsync_LogsSuccess()
        {
            var appInfo1 = new ApplicationUpgradeProgressInfo(
                _item.ApplicationName,
                _item.ApplicationTypeName,
                _item.ApplicationTypeVersion,
                upgradeState: UpgradeState.RollingForwardInProgress);
            var appInfo2 = new ApplicationUpgradeProgressInfo(
                _item.ApplicationName,
                _item.ApplicationTypeName,
                _item.ApplicationTypeVersion,
                upgradeState: UpgradeState.RollingForwardCompleted);

            _appClient
            .SetupSequence(c => c.GetApplicationUpgradeAsync(_item.ApplicationId, 60, CancellationToken.None))
            .Returns(Task.FromResult(appInfo1))
            .Returns(Task.FromResult(appInfo2));

            await _command.RunAsync();

            ShouldContainsLogMessage($"Upgraded application {_item.ApplicationName} successfully");
        }
Example #4
0
        /// <summary>
        /// Serializes the object to JSON.
        /// </summary>
        /// <param name="writer">The <see cref="T: Newtonsoft.Json.JsonWriter" /> to write to.</param>
        /// <param name="obj">The object to serialize to JSON.</param>
        internal static void Serialize(JsonWriter writer, ApplicationUpgradeProgressInfo obj)
        {
            // Required properties are always serialized, optional properties are serialized when not null.
            writer.WriteStartObject();
            writer.WriteProperty(obj.UpgradeState, "UpgradeState", UpgradeStateConverter.Serialize);
            writer.WriteProperty(obj.RollingUpgradeMode, "RollingUpgradeMode", UpgradeModeConverter.Serialize);
            writer.WriteProperty(obj.FailureReason, "FailureReason", FailureReasonConverter.Serialize);
            if (obj.Name != null)
            {
                writer.WriteProperty(obj.Name, "Name", JsonWriterExtensions.WriteStringValue);
            }

            if (obj.TypeName != null)
            {
                writer.WriteProperty(obj.TypeName, "TypeName", JsonWriterExtensions.WriteStringValue);
            }

            if (obj.TargetApplicationTypeVersion != null)
            {
                writer.WriteProperty(obj.TargetApplicationTypeVersion, "TargetApplicationTypeVersion", JsonWriterExtensions.WriteStringValue);
            }

            if (obj.UpgradeDomains != null)
            {
                writer.WriteEnumerableProperty(obj.UpgradeDomains, "UpgradeDomains", UpgradeDomainInfoConverter.Serialize);
            }

            if (obj.NextUpgradeDomain != null)
            {
                writer.WriteProperty(obj.NextUpgradeDomain, "NextUpgradeDomain", JsonWriterExtensions.WriteStringValue);
            }

            if (obj.UpgradeDescription != null)
            {
                writer.WriteProperty(obj.UpgradeDescription, "UpgradeDescription", ApplicationUpgradeDescriptionConverter.Serialize);
            }

            if (obj.UpgradeDurationInMilliseconds != null)
            {
                writer.WriteProperty(obj.UpgradeDurationInMilliseconds, "UpgradeDurationInMilliseconds", JsonWriterExtensions.WriteStringValue);
            }

            if (obj.UpgradeDomainDurationInMilliseconds != null)
            {
                writer.WriteProperty(obj.UpgradeDomainDurationInMilliseconds, "UpgradeDomainDurationInMilliseconds", JsonWriterExtensions.WriteStringValue);
            }

            if (obj.UnhealthyEvaluations != null)
            {
                writer.WriteEnumerableProperty(obj.UnhealthyEvaluations, "UnhealthyEvaluations", HealthEvaluationWrapperConverter.Serialize);
            }

            if (obj.CurrentUpgradeDomainProgress != null)
            {
                writer.WriteProperty(obj.CurrentUpgradeDomainProgress, "CurrentUpgradeDomainProgress", CurrentUpgradeDomainProgressInfoConverter.Serialize);
            }

            if (obj.StartTimestampUtc != null)
            {
                writer.WriteProperty(obj.StartTimestampUtc, "StartTimestampUtc", JsonWriterExtensions.WriteStringValue);
            }

            if (obj.FailureTimestampUtc != null)
            {
                writer.WriteProperty(obj.FailureTimestampUtc, "FailureTimestampUtc", JsonWriterExtensions.WriteStringValue);
            }

            if (obj.UpgradeDomainProgressAtFailure != null)
            {
                writer.WriteProperty(obj.UpgradeDomainProgressAtFailure, "UpgradeDomainProgressAtFailure", FailureUpgradeDomainProgressInfoConverter.Serialize);
            }

            if (obj.UpgradeStatusDetails != null)
            {
                writer.WriteProperty(obj.UpgradeStatusDetails, "UpgradeStatusDetails", JsonWriterExtensions.WriteStringValue);
            }

            writer.WriteEndObject();
        }