Skip to content

Commit 917f9d8

Browse files
committed
Use Kibana for version checks if ES is not configured
1 parent e7c1436 commit 917f9d8

File tree

2 files changed

+37
-8
lines changed

2 files changed

+37
-8
lines changed

internal/clients/api_client.go

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -358,6 +358,43 @@ func (a *ApiClient) serverInfo(ctx context.Context) (*models.ClusterInfo, diag.D
358358
}
359359

360360
func (a *ApiClient) ServerVersion(ctx context.Context) (*version.Version, diag.Diagnostics) {
361+
if a.elasticsearch != nil {
362+
return a.versionFromElasticsearch(ctx)
363+
}
364+
365+
return a.versionFromKibana()
366+
}
367+
368+
func (a *ApiClient) versionFromKibana() (*version.Version, diag.Diagnostics) {
369+
kibClient, err := a.GetKibanaClient()
370+
if err != nil {
371+
return nil, diag.FromErr(err)
372+
}
373+
374+
status, err := kibClient.KibanaStatus.Get()
375+
if err != nil {
376+
return nil, diag.FromErr(err)
377+
}
378+
379+
vMap, ok := status["version"].(map[string]interface{})
380+
if !ok {
381+
return nil, diag.Errorf("failed to get version from Kibana API")
382+
}
383+
384+
rawVersion, ok := vMap["number"].(string)
385+
if !ok {
386+
return nil, diag.Errorf("failed to get version number from Kibana status")
387+
}
388+
389+
serverVersion, err := version.NewVersion(rawVersion)
390+
if err != nil {
391+
return nil, diag.FromErr(err)
392+
}
393+
394+
return serverVersion, nil
395+
}
396+
397+
func (a *ApiClient) versionFromElasticsearch(ctx context.Context) (*version.Version, diag.Diagnostics) {
361398
info, diags := a.serverInfo(ctx)
362399
if diags.HasError() {
363400
return nil, diags

internal/kibana/alerting_test.go

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,6 @@ func TestAccResourceAlertingRule(t *testing.T) {
189189
func testAccResourceAlertingRuleCreate(name string) string {
190190
return fmt.Sprintf(`
191191
provider "elasticstack" {
192-
elasticsearch {}
193192
kibana {}
194193
}
195194
@@ -221,7 +220,6 @@ resource "elasticstack_kibana_alerting_rule" "test_rule" {
221220
func testAccResourceAlertingRuleUpdate(name string) string {
222221
return fmt.Sprintf(`
223222
provider "elasticstack" {
224-
elasticsearch {}
225223
kibana {}
226224
}
227225
@@ -256,7 +254,6 @@ resource "elasticstack_kibana_alerting_rule" "test_rule" {
256254
func testAccResourceAlertingRuleWithFrequencyCreate(name string) string {
257255
return fmt.Sprintf(`
258256
provider "elasticstack" {
259-
elasticsearch {}
260257
kibana {}
261258
}
262259
@@ -314,7 +311,6 @@ resource "elasticstack_kibana_alerting_rule" "test_rule" {
314311
func testAccResourceAlertingRuleWithFrequencyUpdate(name string) string {
315312
return fmt.Sprintf(`
316313
provider "elasticstack" {
317-
elasticsearch {}
318314
kibana {}
319315
}
320316
@@ -375,7 +371,6 @@ resource "elasticstack_kibana_alerting_rule" "test_rule" {
375371
func testAccResourceAlertingRuleWithAlertsFilterCreate(name string) string {
376372
return fmt.Sprintf(`
377373
provider "elasticstack" {
378-
elasticsearch {}
379374
kibana {}
380375
}
381376
@@ -450,7 +445,6 @@ resource "elasticstack_kibana_alerting_rule" "test_rule" {
450445
func testAccResourceAlertingRuleWithAlertsFilterUpdate(name string) string {
451446
return fmt.Sprintf(`
452447
provider "elasticstack" {
453-
elasticsearch {}
454448
kibana {}
455449
}
456450
@@ -527,7 +521,6 @@ resource "elasticstack_kibana_alerting_rule" "test_rule" {
527521
func testAccResourceAlertingRuleWithAlertDelayCreate(name string) string {
528522
return fmt.Sprintf(`
529523
provider "elasticstack" {
530-
elasticsearch {}
531524
kibana {}
532525
}
533526
@@ -587,7 +580,6 @@ resource "elasticstack_kibana_alerting_rule" "test_rule" {
587580
func testAccResourceAlertingRuleWithAlertDelayUpdate(name string) string {
588581
return fmt.Sprintf(`
589582
provider "elasticstack" {
590-
elasticsearch {}
591583
kibana {}
592584
}
593585

0 commit comments

Comments
 (0)