in src/AWS.Deploy.CLI/ServerMode/Controllers/DeploymentController.cs [613:648]
public IActionResult GetDeploymentStatus(string sessionId)
{
var state = _stateServer.Get(sessionId);
if (state == null)
{
return NotFound($"Session ID {sessionId} not found.");
}
var output = new GetDeploymentStatusOutput();
if (state.DeploymentTask == null)
output.Status = DeploymentStatus.NotStarted;
else if (state.DeploymentTask.IsCompleted && state.DeploymentTask.Status == TaskStatus.RanToCompletion)
output.Status = DeploymentStatus.Success;
else if (state.DeploymentTask.IsCompleted && state.DeploymentTask.Status == TaskStatus.Faulted)
{
output.Status = DeploymentStatus.Error;
if (state.DeploymentTask.Exception != null)
{
var innerException = state.DeploymentTask.Exception.InnerException;
var message = innerException.GetTruncatedErrorMessage();
if (innerException is DeployToolException deployToolException)
{
output.Exception = new DeployToolExceptionSummary(deployToolException.ErrorCode.ToString(), message, deployToolException.ProcessExitCode);
}
else
{
output.Exception = new DeployToolExceptionSummary(DeployToolErrorCode.UnexpectedError.ToString(), message);
}
}
}
else
output.Status = DeploymentStatus.Executing;
return Ok(output);
}