Beispiel #1
0
        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);
        }
Beispiel #2
0
    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));
    }