public PrepareProviderConfigResult PrepareConfig(PrepareProviderConfigInput input) { _log.LogDebug("{method}: ", nameof(PrepareConfig)); _log.LogTrace("->input = {@input}", input); _log.LogTrace("->state = {@state}", this); // TODO: configure and return any validation errors var result = new PrepareProviderConfigResult(); _log.LogTrace("<-state = {@state}", this); _log.LogTrace("<-result = {@result}", this); return(result); }
public override async Task <Tfplugin5.PrepareProviderConfig.Types.Response> PrepareProviderConfig( Tfplugin5.PrepareProviderConfig.Types.Request request, ServerCallContext context) { _log.LogDebug(">>>{method}>>>", nameof(PrepareProviderConfig)); _log.LogTrace($"->input[{nameof(request)}] = {{@request}}", request); _log.LogTrace($"->input[{nameof(context)}] = {{@context}}", context); try { var response = new Tfplugin5.PrepareProviderConfig.Types.Response(); // Default prepared config to incoming config response.PreparedConfig = request.Config; var plugin = SchemaHelper.GetPluginDetails(PluginAssembly); _ProviderInstance = DynamicValue.Unmarshal(plugin.Provider, request.Config); if (typeof(IHasPrepareProviderConfig).IsAssignableFrom(plugin.Provider)) { var invokeInput = new PrepareProviderConfigInput(); var invokeResult = (_ProviderInstance as IHasPrepareProviderConfig).PrepareConfig(invokeInput); if (invokeResult == null) { throw new Exception("invocation result returned null"); } var diagnostics = invokeResult.Diagnostics; if (diagnostics.Count() > 0) { response.Diagnostics.Add(diagnostics.All()); } response.PreparedConfig = DynamicValue.Marshal(plugin.Provider, _ProviderInstance); } _log.LogTrace("<-result = {@response}", response); return(await Task.FromResult(response)); } catch (Exception ex) { _log.LogError(ex, "<!exception = "); throw; } }