Skip to content

Commit bf51aaa

Browse files
krmnnphillbaker
authored andcommitted
Make ping to elasticsearch during provider config optional
1 parent c32e57c commit bf51aaa

File tree

2 files changed

+20
-7
lines changed

2 files changed

+20
-7
lines changed

CHANGELOG.md

+3
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22

33
## [Unreleased]
44

5+
## [1.1.1] - 2020-05-09
6+
### Added
7+
- Make ping to elasticsearch during provider config optional
58

69
## [1.1.0] - 2020-05-04
710

es/provider.go

+17-7
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,12 @@ func Provider() terraform.ResourceProvider {
113113
Default: true,
114114
Description: "Enable signing of AWS elasticsearch requests",
115115
},
116+
"elasticsearch_version": {
117+
Type: schema.TypeString,
118+
Optional: true,
119+
Default: "",
120+
Description: "ElasticSearch Version",
121+
},
116122
},
117123

118124
ResourcesMap: map[string]*schema.Resource{
@@ -154,6 +160,7 @@ func providerConfigure(d *schema.ResourceData) (interface{}, error) {
154160
password := d.Get("password").(string)
155161
parsedUrl, err := url.Parse(rawUrl)
156162
signAWSRequests := d.Get("sign_aws_requests").(bool)
163+
esVersion := d.Get("elasticsearch_version").(string)
157164
if err != nil {
158165
return nil, err
159166
}
@@ -187,13 +194,16 @@ func providerConfigure(d *schema.ResourceData) (interface{}, error) {
187194
}
188195
relevantClient = client
189196

190-
// Use the v7 client to ping the cluster to determine the version
191-
info, _, err := client.Ping(rawUrl).Do(context.TODO())
192-
if err != nil {
193-
return nil, err
197+
// Use the v7 client to ping the cluster to determine the version if one was not provided
198+
if esVersion == "" {
199+
info, _, err := client.Ping(rawUrl).Do(context.TODO())
200+
if err != nil {
201+
return nil, err
202+
}
203+
esVersion = info.Version.Number
194204
}
195205

196-
if info.Version.Number < "7.0.0" && info.Version.Number >= "6.0.0" {
206+
if esVersion < "7.0.0" && esVersion >= "6.0.0" {
197207
log.Printf("[INFO] Using ES 6")
198208
opts := []elastic6.ClientOptionFunc{
199209
elastic6.SetURL(rawUrl),
@@ -220,7 +230,7 @@ func providerConfigure(d *schema.ResourceData) (interface{}, error) {
220230
if err != nil {
221231
return nil, err
222232
}
223-
} else if info.Version.Number < "6.0.0" && info.Version.Number >= "5.0.0" {
233+
} else if esVersion < "6.0.0" && esVersion >= "5.0.0" {
224234
log.Printf("[INFO] Using ES 5")
225235
opts := []elastic5.ClientOptionFunc{
226236
elastic5.SetURL(rawUrl),
@@ -246,7 +256,7 @@ func providerConfigure(d *schema.ResourceData) (interface{}, error) {
246256
if err != nil {
247257
return nil, err
248258
}
249-
} else if info.Version.Number < "5.0.0" {
259+
} else if esVersion < "5.0.0" {
250260
return nil, errors.New("ElasticSearch is older than 5.0.0!")
251261
}
252262

0 commit comments

Comments
 (0)