createCommandException function

PulumiCommandException createCommandException(
  1. PulumiCommandRequest request,
  2. PulumiCommandResult result
)

Maps a failed command to a more specific automation error subtype.

Implementation

PulumiCommandException createCommandException(
  PulumiCommandRequest request,
  PulumiCommandResult result,
) {
  final stderr = result.stderr;
  final stdout = result.stdout;

  if (_notFoundRegex.hasMatch(stderr)) {
    return StackNotFoundError(request: request, result: result);
  }
  if (_alreadyExistsRegex.hasMatch(stderr)) {
    return StackAlreadyExistsError(request: request, result: result);
  }
  if (stderr.contains(_conflictText) ||
      stderr.contains(_diyBackendConflictText)) {
    return ConcurrentUpdateError(request: request, result: result);
  }
  if (_compilationErrorRegex.hasMatch(stdout)) {
    return CompilationError(request: request, result: result);
  }
  if (stdout.contains(_inlineSourceErrorText)) {
    return InlineSourceRuntimeError(request: request, result: result);
  }
  if (_runtimeErrorRegex.hasMatch(stdout)) {
    return RuntimeError(request: request, result: result);
  }

  return CommandError(request: request, result: result);
}