public override async Task<Configure.Types.Response> Configure( Configure.Types.Request request, ServerCallContext context) { var response = new Configure.Types.Response(); var providerType =_schemaResolver.PluginDetails.Provider; var configType = _schemaResolver.GetProviderConfigurationSchema().Type; if (providerType.HasConfigureSkill(configType)) { providerType.InvokeConfigureSkill( PluginProviderInstance, configType, writeInput: (type, input) => { type.GetProperty(nameof(request.TerraformVersion)) .SetValue(input, request.TerraformVersion); type.GetProperty(nameof(request.Config)) .SetValue(input, request.Config.UnmarshalFromDynamicValue(configType)); }, readResult: (resultType, result) => { var diagnostics = ((TFDiagnostics)resultType .GetProperty(nameof(response.Diagnostics)) .GetValue(result)); if (diagnostics.Count() > 0) response.Diagnostics.Add(diagnostics.All()); }); } return await Task.FromResult(response); }
public override async Task <Configure.Types.Response> Configure(Configure.Types.Request request, ServerCallContext context) { if (_providerConfiguration == null) { return(new Configure.Types.Response { }); } var configurationHostType = typeof(ProviderConfigurationHost <>).MakeGenericType(_providerConfiguration.ConfigurationType); var configurationHost = _serviceProvider.GetService(configurationHostType); await(Task) configurationHostType.GetMethod(nameof(ProviderConfigurationHost <object> .ConfigureAsync)) .Invoke(configurationHost, new[] { request }); return(new Configure.Types.Response { }); }
public Task ConfigureAsync(Configure.Types.Request request) { var config = DeserializeDynamicValue(request.Config); return(_providerConfigurator.ConfigureAsync(config)); }