public override async Task <RunResponse> Run(RunRequest request, ServerCallContext context) { if (this._callerContext.CancellationToken.IsCancellationRequested || // if caller of UpAsync has cancelled context.CancellationToken.IsCancellationRequested) // if CLI has cancelled { return(new RunResponse()); } var args = request.Args; var engineAddr = args != null && args.Any() ? args[0] : ""; var settings = new InlineDeploymentSettings( engineAddr, request.MonitorAddress, request.Config, request.Project, request.Stack, request.Parallel, request.DryRun, request.ConfigSecretKeys); using var cts = CancellationTokenSource.CreateLinkedTokenSource( this._callerContext.CancellationToken, context.CancellationToken); this._callerContext.ExceptionDispatchInfo = await Deployment.RunInlineAsync( settings, runner => this._callerContext.Program.InvokeAsync(runner, cts.Token)) .ConfigureAwait(false); return(new RunResponse()); }
public override async Task <RunResponse> Run(RunRequest request, ServerCallContext context) { if (this._callerContext.CancellationToken.IsCancellationRequested || // if caller of UpAsync has cancelled context.CancellationToken.IsCancellationRequested) // if CLI has cancelled { return(new RunResponse()); } var args = request.Args; var engineAddr = args != null && args.Any() ? args[0] : ""; var settings = new InlineDeploymentSettings( _callerContext.Logger, engineAddr, request.MonitorAddress, request.Config, request.ConfigSecretKeys, request.Project, request.Stack, request.Parallel, request.DryRun); using var cts = CancellationTokenSource.CreateLinkedTokenSource( this._callerContext.CancellationToken, context.CancellationToken); var result = await Deployment.RunInlineAsync( settings, // ReSharper disable once AccessToDisposedClosure runner => this._callerContext.Program.InvokeAsync(runner, cts.Token)) .ConfigureAwait(false); if (result.ExitCode != 0 || result.ExceptionDispatchInfo != null) { this._callerContext.ExceptionDispatchInfo = result.ExceptionDispatchInfo; return(new RunResponse() { Bail = true, Error = result.ExceptionDispatchInfo?.SourceException.Message ?? "One or more errors occurred.", }); } return(new RunResponse()); }