public async Task PollDeploymentStatusAsync()

in sdk/Sdk/Tasks/ZipDeploy/ZipDeploymentStatus.cs [42:82]


        public async Task<DeployStatus> PollDeploymentStatusAsync(string deploymentUrl, string userName, string password)
        {
            var deployStatus = DeployStatus.Pending;
            var deployStatusText = string.Empty;
            var tokenSource = new CancellationTokenSource(TimeSpan.FromMinutes(MaxMinutesToWait));

            if (_logMessages)
            {
                _log.LogMessage(StringMessages.DeploymentStatusPolling);
            }
            while (!tokenSource.IsCancellationRequested
                && deployStatus != DeployStatus.Success
                && deployStatus != DeployStatus.PartialSuccess
                && deployStatus != DeployStatus.Failed
                && deployStatus != DeployStatus.Conflict
                && deployStatus != DeployStatus.Unknown)
            {
                try
                {
                    (deployStatus, deployStatusText) = await GetDeploymentStatusAsync(deploymentUrl, userName, password, RetryCount, TimeSpan.FromSeconds(RetryDelaySeconds), tokenSource);
                    if (_logMessages)
                    {
                        var deployStatusName = Enum.GetName(typeof(DeployStatus), deployStatus);

                        var message = string.IsNullOrEmpty(deployStatusText)
                            ? string.Format(StringMessages.DeploymentStatus, deployStatusName)
                            : string.Format(StringMessages.DeploymentStatusWithText, deployStatusName, deployStatusText);

                        _log.LogMessage(message);
                    }
                }
                catch (HttpRequestException)
                {
                    return DeployStatus.Unknown;
                }

                await Task.Delay(TimeSpan.FromSeconds(StatusRefreshDelaySeconds), tokenSource.Token);
            }

            return deployStatus;
        }