Skip to content

Commit e6aecc0

Browse files
committed
WIP
1 parent ee02c78 commit e6aecc0

File tree

3 files changed

+60
-4
lines changed

3 files changed

+60
-4
lines changed

internal/clients/config/base_test.go

+53-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"testing"
77

88
providerSchema "github.com./elastic/terraform-provider-elasticstack/internal/schema"
9+
"github.com./hashicorp/terraform-plugin-framework/types"
910
"github.com./hashicorp/terraform-plugin-sdk/v2/helper/schema"
1011
"github.com./stretchr/testify/require"
1112
)
@@ -27,11 +28,62 @@ func TestNewBaseConfigFromSDK(t *testing.T) {
2728
})
2829

2930
baseCfg := newBaseConfigFromSDK(rd, "unit-testing", "elasticsearch")
30-
ua := buildUserAgent("unit-testing")
31+
ua := "elasticstack-terraform-provider/unit-testing"
3132
require.Equal(t, baseConfig{
3233
Username: "elastic",
3334
Password: "changeme",
3435
UserAgent: ua,
3536
Header: http.Header{"User-Agent": []string{ua}},
3637
}, baseCfg)
3738
}
39+
40+
func TestNewBaseConfigFromFramework(t *testing.T) {
41+
os.Unsetenv("ELASTICSEARCH_USERNAME")
42+
os.Unsetenv("ELASTICSEARCH_PASSWORD")
43+
os.Unsetenv("ELASTICSEARCH_API_KEY")
44+
45+
expectedUA := "elasticstack-terraform-provider/unit-testing"
46+
47+
tests := []struct {
48+
name string
49+
config ProviderConfiguration
50+
expectedBaseConfig baseConfig
51+
}{
52+
{
53+
name: "with es config defined",
54+
config: ProviderConfiguration{
55+
Elasticsearch: []ElasticsearchConnection{
56+
{
57+
Username: types.StringValue("elastic"),
58+
Password: types.StringValue("changeme"),
59+
APIKey: types.StringValue("apikey"),
60+
},
61+
},
62+
},
63+
expectedBaseConfig: baseConfig{
64+
Username: "elastic",
65+
Password: "changeme",
66+
ApiKey: "apikey",
67+
UserAgent: expectedUA,
68+
Header: http.Header{"User-Agent": []string{expectedUA}},
69+
},
70+
},
71+
{
72+
name: "should not set credentials if no configuration available",
73+
config: ProviderConfiguration{
74+
Elasticsearch: []ElasticsearchConnection{},
75+
},
76+
expectedBaseConfig: baseConfig{
77+
UserAgent: expectedUA,
78+
Header: http.Header{"User-Agent": []string{expectedUA}},
79+
},
80+
},
81+
}
82+
83+
for _, tt := range tests {
84+
t.Run(tt.name, func(t *testing.T) {
85+
baseCfg := newBaseConfigFromFramework(tt.config, "unit-testing")
86+
require.Equal(t, tt.expectedBaseConfig, baseCfg)
87+
})
88+
}
89+
}

internal/kibana/import_saved_objects/schema.go

+4
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ import (
1717
var _ resource.Resource = &Resource{}
1818
var _ resource.ResourceWithConfigure = &Resource{}
1919

20+
// TODO - Uncomment these lines when we're using a kibana client which supports create_new_copies and compatibility_mode
21+
// create_new_copies and compatibility_mode aren't supported by the current version of the Kibana client
22+
// We can add these ourselves once https://github.com./elastic/terraform-provider-elasticstack/pull/372 is merged
23+
2024
// var _ resource.ResourceWithConfigValidators = &Resource{}
2125

2226
// func (r *Resource) ConfigValidators(context.Context) []resource.ConfigValidator {

provider/provider.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ func init() {
2929
func New(version string) *schema.Provider {
3030
p := &schema.Provider{
3131
Schema: map[string]*schema.Schema{
32-
esKeyName: providerSchema.GetEsConnectionSchema(esKeyName, true),
33-
"kibana": providerSchema.GetKibanaConnectionSchema(),
34-
"fleet": providerSchema.GetFleetConnectionSchema(),
32+
esKeyName: providerSchema.GetEsConnectionSchema(esKeyName, true),
33+
kbKeyName: providerSchema.GetKibanaConnectionSchema(),
34+
fleetKeyName: providerSchema.GetFleetConnectionSchema(),
3535
},
3636
DataSourcesMap: map[string]*schema.Resource{
3737
"elasticstack_elasticsearch_ingest_processor_append": ingest.DataSourceProcessorAppend(),

0 commit comments

Comments
 (0)