internal StreamingMessage ProcessFunctionLoadRequest(StreamingMessage request) { FunctionLoadRequest functionLoadRequest = request.FunctionLoadRequest; StreamingMessage response = NewStreamingMessageTemplate( request.RequestId, StreamingMessage.ContentOneofCase.FunctionLoadResponse, out StatusResult status); response.FunctionLoadResponse.FunctionId = functionLoadRequest.FunctionId; try { // Try loading the metadata of the function _functionLoader.Load(functionLoadRequest); // if we haven't yet, add the well-known Function App module path to the PSModulePath // The location of this module path is in a folder called "Modules" in the root of the Function App. if (!_prependedPath) { string functionAppModulesPath = Path.GetFullPath( Path.Combine(functionLoadRequest.Metadata.Directory, "..", "Modules")); _powerShellManager.PrependToPSModulePath(functionAppModulesPath); _prependedPath = true; } } catch (Exception e) { status.Status = StatusResult.Types.Status.Failure; status.Exception = e.ToRpcException(); } return(response); }
internal StreamingMessage ProcessFunctionLoadRequest(StreamingMessage request) { FunctionLoadRequest functionLoadRequest = request.FunctionLoadRequest; // Assume success unless something bad happens StatusResult status = new StatusResult() { Status = StatusResult.Types.Status.Success }; // Try to load the functions try { _functionLoader.Load(functionLoadRequest); } catch (Exception e) { status.Status = StatusResult.Types.Status.Failure; status.Exception = e.ToRpcException(); } return(new StreamingMessage() { RequestId = request.RequestId, FunctionLoadResponse = new FunctionLoadResponse() { FunctionId = functionLoadRequest.FunctionId, Result = status } }); }